メインページ | ネームスペース一覧 | クラス階層 | 構成 | ファイル一覧 | ネームスペースメンバ | 構成メンバ | ファイルメンバ

RtcOutPortBase.h

説明を見る。
00001 // -*- C++ -*-
00021 #ifndef __RtcOutPortBase_h__
00022 #define __RtcOutPortBase_h__
00023 
00024 #include <list>
00025 #include <ace/Task.h>
00026 
00027 #include "rtm/RTC.h"
00028 #include "rtm/idl/RTCDataTypeSkel.h"
00029 #include "rtm/idl/RTCOutPortSkel.h"
00030 #include "rtm/idl/RTCOutPortStub.h"
00031 #include "rtm/RtcInPortBase.h"
00032 #include "rtm/RtcRingBuffer.h"
00033 
00034 
00035 namespace RTM {
00036   class SubscriberBase;
00037   using namespace std;
00038 
00060   class OutPortBase :
00061         public POA_RTM::OutPort,
00062         public PortableServer::RefCountServantBase
00063   {
00064   public:
00079         OutPortBase(){};
00080 
00095         virtual ~OutPortBase(){};
00096 
00097         //============================================================
00098         // CORBA interfaces.
00099         //============================================================
00111         virtual CORBA::Any* get() throw (CORBA::SystemException) = 0;
00112 
00114         //      virtual CORBA::TypeCode_ptr port_type();
00115 
00127         virtual RtmRes subscribe(InPort_ptr in_port, SubscriptionID_out id,
00128                                                          const SubscriberProfile &profile)
00129           throw (CORBA::SystemException);
00130 
00142         virtual RtmRes unsubscribe(const char* id) throw (CORBA::SystemException);
00143 
00155         virtual InPortList* inports() throw (CORBA::SystemException);
00156 
00168         virtual PortProfile* profile() throw (CORBA::SystemException);
00169 
00170         // End of CORBA interfaces
00171         //============================================================
00172 
00184         //      virtual RtmRes push(const InPort_ptr& inport, SubscriptionID subsid) = 0;
00185         virtual RtmRes push(const InPort_ptr& inport, std::string subsid) = 0;
00186 
00198         virtual void updateall();
00199 
00211         virtual const char* name() {return m_Profile.name;};
00212 
00213   protected:
00221         //      list<SubscriberBase*> m_Subscribers;
00222         struct Subscribers
00223         {
00224           ACE_Thread_Mutex m_Mutex;
00225           list<SubscriberBase*> m_List;
00226         };
00227         Subscribers m_Subscribers;
00228           
00229 
00237         PortProfile m_Profile;
00238 
00239   };
00240 
00241 
00242   
00243 }; // End of namespace RTM
00244 
00245 #endif // End of ifndef __RtcOutPortBase_h__

OpenRTMに対してThu Dec 16 15:29:06 2004に生成されました。 doxygen 1.3.6