00001
00002
00003
00004
00005
00006
00008 #ifndef JOBCPATHREGISTRY_H
00009 #define JOBCPATHREGISTRY_H
00010 #ifndef VECTOR
00011 #define VECTOR
00012 #include <vector>
00013 #endif
00014 #ifdef SITE_HAS_SIGC
00015 # ifndef __CINT__
00016 # include "sigc++/signal.h"
00017 # endif
00018 #endif
00019
00020 class JobCModule;
00021 class JobCPath;
00022 class MomNavigator;
00023 class JobCInputModule;
00024
00025 class JobCPathRegistry
00026 {
00027 public:
00028 typedef std::vector<JobCPath*>::const_iterator PathIterator;
00029
00030 JobCPathRegistry();
00031 ~JobCPathRegistry();
00032
00033 JobCModule* LookUpModule(const char* module) const;
00034 JobCPath* LookUpPath(const char* path) const;
00035
00036 JobCPath* MakePath(const char* name,
00037 MomNavigator* mom,
00038 JobCInputModule* inp);
00039 void DeletePath(const char* name);
00040 void Reset();
00041
00042
00043 PathIterator GetPathBegin() const { return fPathList.begin(); }
00044 PathIterator GetPathEnd() const { return fPathList.end(); }
00045
00046 #ifdef SITE_HAS_SIGC
00047 # ifndef __CINT__
00048
00049 SigC::Signal1<void,JobCPath*> NewPath;
00050 # endif
00051 private:
00052
00053
00054 JobCPathRegistry& operator= (const JobCPathRegistry&);
00055 #endif
00056
00057 private:
00058 std::vector<JobCPath*> fPathList;
00059 };
00060
00061 #endif // JOBCPATHREGISTRY_H
00062