00001 #ifndef ccafe_AbstractFramework_h_seen
00002 #define ccafe_AbstractFramework_h_seen
00003
00004 namespace ccafe {
00005
00012 class Frame;
00013
00019 class AbstractFramework : public virtual ::ccafeopq::AbstractFramework
00020 {
00021
00022 private:
00024 ::ccafe::Frame *f;
00025
00026 void checkFrame(const char *s);
00027 int64_t fortranMPIComm;
00028 bool hasComm;
00029
00030 public:
00031 AbstractFramework(int64_t fComm, bool useComm);
00032
00034 virtual ~AbstractFramework();
00035
00045 virtual void initWithString( const ::std::string & arg);
00046
00047 virtual void initWithArgv( const char **argv, int argc);
00048
00050 virtual ::ccafeopq::TypeMap_shared createTypeMap();
00051
00053 virtual ccafeopq::Services *getServices(const std::string & selfInstanceName, const std::string & selfClassName, ::ccafeopq::TypeMap_shared selfProperties);
00054
00056 virtual ccafeopq::Services *getServices(const std::string & selfInstanceName, const std::string & selfClassName);
00057
00059 virtual void releaseServices( ::ccafeopq::Services * svc);
00060
00062 virtual void shutdownFramework();
00063
00065 virtual ::ccafeopq::AbstractFramework * createEmptyFramework();
00066
00068 virtual void destroyEmptyFramework( ::ccafeopq::AbstractFramework * subframe);
00069
00070 };
00071
00072 } ENDSEMI
00073
00074 #endif // ccafe_AbstractFramework_h_seen