MPQC 2.3.1
|
00001 // 00002 // File: MPQC_ComponentFactory_Impl.hh 00003 // Symbol: MPQC.ComponentFactory-v0.2 00004 // Symbol Type: class 00005 // Babel Version: 0.10.2 00006 // Description: Server-side implementation for MPQC.ComponentFactory 00007 // 00008 // WARNING: Automatically generated; only changes within splicers preserved 00009 // 00010 // babel-version = 0.10.2 00011 // 00012 00013 #ifndef included_MPQC_ComponentFactory_Impl_hh 00014 #define included_MPQC_ComponentFactory_Impl_hh 00015 00016 #ifndef included_sidl_cxx_hh 00017 #include "sidl_cxx.hh" 00018 #endif 00019 #ifndef included_MPQC_ComponentFactory_IOR_h 00020 #include "MPQC_ComponentFactory_IOR.h" 00021 #endif 00022 // 00023 // Includes for all method dependencies. 00024 // 00025 #ifndef included_MPQC_ComponentFactory_hh 00026 #include "MPQC_ComponentFactory.hh" 00027 #endif 00028 #ifndef included_gov_cca_CCAException_hh 00029 #include "gov_cca_CCAException.hh" 00030 #endif 00031 #ifndef included_gov_cca_Component_hh 00032 #include "gov_cca_Component.hh" 00033 #endif 00034 #ifndef included_gov_cca_ComponentClassDescription_hh 00035 #include "gov_cca_ComponentClassDescription.hh" 00036 #endif 00037 #ifndef included_sidl_BaseInterface_hh 00038 #include "sidl_BaseInterface.hh" 00039 #endif 00040 #ifndef included_sidl_ClassInfo_hh 00041 #include "sidl_ClassInfo.hh" 00042 #endif 00043 00044 00045 // DO-NOT-DELETE splicer.begin(MPQC.ComponentFactory._includes) 00046 // Put additional includes or other arbitrary code here... 00047 // DO-NOT-DELETE splicer.end(MPQC.ComponentFactory._includes) 00048 00049 namespace MPQC { 00050 00054 class ComponentFactory_impl 00055 // DO-NOT-DELETE splicer.begin(MPQC.ComponentFactory._inherits) 00056 00069 // DO-NOT-DELETE splicer.end(MPQC.ComponentFactory._inherits) 00070 { 00071 00072 private: 00073 // Pointer back to IOR. 00074 // Use this to dispatch back through IOR vtable. 00075 ComponentFactory self; 00076 00077 // DO-NOT-DELETE splicer.begin(MPQC.ComponentFactory._implementation) 00078 std::vector< gov::cca::ComponentClassDescription > descriptions; 00079 // DO-NOT-DELETE splicer.end(MPQC.ComponentFactory._implementation) 00080 00081 private: 00082 // private default constructor (required) 00083 ComponentFactory_impl() 00084 {} 00085 00086 public: 00087 // sidl constructor (required) 00088 // Note: alternate Skel constructor doesn't call addref() 00089 // (fixes bug #275) 00090 ComponentFactory_impl( struct MPQC_ComponentFactory__object * s ) : self(s, 00091 true) { _ctor(); } 00092 00093 // user defined construction 00094 void _ctor(); 00095 00096 // virtual destructor (required) 00097 virtual ~ComponentFactory_impl() { _dtor(); } 00098 00099 // user defined destruction 00100 void _dtor(); 00101 00102 // static class initializer 00103 static void _load(); 00104 00105 public: 00106 00110 void 00111 addDescription ( 00112 /* in */ const ::std::string& className, 00113 /* in */ const ::std::string& classAlias 00114 ) 00115 throw () 00116 ; 00117 00118 00128 ::sidl::array< ::gov::cca::ComponentClassDescription> 00129 getAvailableComponentClasses() throw ( 00130 ::gov::cca::CCAException 00131 ); 00132 00138 ::gov::cca::Component 00139 createComponentInstance ( 00140 /* in */ const ::std::string& className 00141 ) 00142 throw () 00143 ; 00144 00145 00151 void 00152 destroyComponentInstance ( 00153 /* in */ const ::std::string& className, 00154 /* in */ ::gov::cca::Component c 00155 ) 00156 throw () 00157 ; 00158 00159 }; // end class ComponentFactory_impl 00160 00161 } // end namespace MPQC 00162 00163 // DO-NOT-DELETE splicer.begin(MPQC.ComponentFactory._misc) 00164 // Put miscellaneous things here... 00165 // DO-NOT-DELETE splicer.end(MPQC.ComponentFactory._misc) 00166 00167 #endif