NEOCCA bindings Specification  0.2.8
Services.hh
Go to the documentation of this file.
00001 #ifndef __neo_Services_hh_seen
00002 #define __neo_Services_hh_seen
00003 
00004 namespace neo {
00005 namespace cca {
00006 
00016 class Services
00017 {
00018 
00019 public:
00020   
00022   virtual ~Services(){}
00023   
00033   virtual Port * getPort(const ::std::string & name) throw(Exception )= 0;
00034 
00039   virtual Port * getPortNonBlocking(const ::std::string & name) throw(Exception )= 0;
00040 
00049   virtual void releasePort(const ::std::string & name) throw(Exception )= 0;
00050   
00056   virtual void registerUsesPort( const ::std::string & name,  const ::std::string & type) throw(Exception )= 0;
00057 
00066   virtual void registerUsesPort( const ::std::string & name,  const ::std::string & type, TypeMap_shared properties) throw(Exception )= 0;
00067 
00068 
00074   virtual void unregisterUsesPort(const ::std::string & name) throw(Exception )= 0;
00075 
00083   virtual void addProvidesPort( Port * inPort, const ::std::string & name, const ::std::string & type) throw (Exception )= 0;
00092   virtual void addProvidesPort( Port * inPort, const ::std::string & name, const ::std::string & type, TypeMap_shared properties) throw (Exception )= 0;
00093 
00099   virtual void removeProvidesPort(const ::std::string & name)  throw (Exception )= 0;
00100   
00104   virtual ComponentID_shared getComponentID()= 0;
00105 
00107   virtual TypeMap_shared createTypeMap() throw (Exception )= 0;
00108 
00113   virtual TypeMap_shared getPortProperties(const ::std::string & portName)  throw (Exception )= 0;
00114 
00117   virtual ::std::string genUniquePortName(const ::std::string & base)= 0;
00118 
00129   virtual void registerForRelease(ComponentRelease *callBack) throw(Exception)= 0;
00130 
00131 };
00132 
00133 }  // end namespace cca
00134 }  // end namespace neo
00135 
00136 #endif // __neo_Services_hh_seen