CCAFFEINE  0.8.8
ConnectionID.h
00001 #ifndef dc_fwk_ConnectionID_h_seen
00002 #define dc_fwk_ConnectionID_h_seen
00003 
00004 #include <boost/shared_ptr.hpp>
00005 #include <string>
00006 
00007 class ConnectionID_impl;
00008 class Gizzard;
00009 
00010 typedef boost::shared_ptr< ConnectionID_impl > ConnectionID_ptr;
00011 
00016 class ConnectionID_impl : public virtual ::ccafeopq::ConnectionID_Interface
00017 {
00018 private:
00019   bool dead;
00020   bool inUse;
00021   bool selfConnection;
00022   ::std::string pPortName;
00023   ::std::string uPortName;
00024   Gizzard *p;
00025   Gizzard *u;
00026   ::ccafeopq::TypeMap_shared tm;
00027   ::ccafeopq::Port *pp;
00028 
00029 public:
00030 
00031   // set up a standard connection.
00032   ConnectionID_impl(Gizzard *provider, const ::std::string & providerPortName,
00033      Gizzard *user, const ::std::string & userPortName , ::ccafeopq::Port *pp_);
00034 
00035   // set up an internal connection.
00036   ConnectionID_impl(Gizzard *user, const ::std::string & userPortName,
00037      ::ccafeopq::Port *pp_);
00038 
00040   virtual ~ConnectionID_impl();
00041 
00042   virtual ::ccafeopq::ComponentID_shared getProvider() throw ( ::ccafeopq::Exception );
00043 
00047   virtual ::ccafeopq::ComponentID_shared getUser() throw ( ::ccafeopq::Exception );
00048 
00049   virtual ::std::string getProviderPortName() throw ( ::ccafeopq::Exception );
00050 
00051   virtual ::std::string getUserPortName() throw ( ::ccafeopq::Exception );
00052 
00053   virtual bool isSameAs( ConnectionID_ptr cp);
00054 
00055   virtual bool isSameAs( ::ccafeopq::ConnectionID_shared & cp);
00056 
00060   virtual int isActive();
00061 
00063   virtual int isFrameworkConnection();
00064 
00065   virtual ::ccafeopq::TypeMap_shared getProperties();
00066 
00067   virtual void setProperties( ::ccafeopq::TypeMap_shared tm_);
00068 
00069   Gizzard *getProviderGizzard();
00070 
00071   Gizzard *getUserGizzard();
00072 
00073   ::ccafeopq::Port *getCachedPort();
00074 
00075   // return index of first in conns, or -1 if not found.
00076   static int indexOfConnection( const ::std::vector< ConnectionID_ptr > & conns,
00077                                    const ::std::string & upname,
00078                                    const ::std::string & ppname,
00079                                    Gizzard *userg, Gizzard * providerg);
00080 
00081   // return index of first in conns, or -1 if not found.
00082   static int indexOfConnection( const ::std::vector< ConnectionID_ptr > & conns,
00083                                ConnectionID_ptr c);
00084 
00085 }; // end implementation of ComponentID_Interface
00086 
00087 #endif // dc_fwk_ConnectionID_h_seen