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