MPQC_ComponentFactory_Impl.hh

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

Generated at Mon Dec 3 23:23:39 2007 for MPQC 2.3.1 using the documentation package Doxygen 1.5.2.