Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

DynMultiplierSH.h

Go to the documentation of this file.
00001 00007 #ifndef DYN_MULTIPLIER_SH_H 00008 #define DYN_MULTIPLIER_SH_H 00009 00010 #include <sys/types.h> 00011 #include <list> 00012 00013 #include "SH.h" 00014 #include "SHEndpoint.h" 00015 #include "SHEndpointSpec.h" 00016 #include "var_type.h" 00017 00018 class MNRTP; 00019 class MNUDPSocket; 00020 class MNRTPCodecBase; 00021 class MNRope; 00022 00023 namespace SH 00024 { 00025 00026 class DynMultiplierSH; 00027 class DynMultiplierSinkEndpointSpec; 00028 class DynMultiplierSourceEndpointSpec; 00029 class DynMultiplierSinkEndpoint; 00030 class DynMultiplierSourceEndpoint; 00031 00036 /**********************************************************************/ 00037 /* DynMultiplierSinkEndpoint */ 00038 /**********************************************************************/ 00039 00040 class DynMultiplierSinkEndpoint 00041 : public SinkEndpoint 00042 { 00043 public: 00044 DynMultiplierSinkEndpoint( DynMultiplierSH* mySH ); 00045 virtual ~DynMultiplierSinkEndpoint( ); 00046 00047 virtual SH_RC push( DataPtr item ); 00048 00049 DynMultiplierSH* dsh(); 00050 }; 00051 00052 /**********************************************************************/ 00053 /* DynMultiplierSourceEndpoint */ 00054 /**********************************************************************/ 00055 00056 class DynMultiplierSourceEndpoint 00057 : public SourceEndpoint 00058 { 00059 public: 00060 DynMultiplierSourceEndpoint( DynMultiplierSH* mySH ); 00061 virtual ~DynMultiplierSourceEndpoint( ); 00062 00063 virtual SH_RC pull( DataPtr& item, 00064 SourceUnit su = UnitDefault, 00065 size_t amount = 0 ); 00066 00067 DynMultiplierSH* dsh(); 00068 }; 00069 00070 /**********************************************************************/ 00071 /* DynMultiplierSH */ 00072 /**********************************************************************/ 00073 00074 class DynMultiplierSH 00075 : public Base 00076 { 00077 00078 public: 00079 SH_RC push_decode( DataPtr item ); 00080 SH_RC pull_decode( DataPtr& item ); 00081 00082 public: 00083 DynMultiplierSH( SHGraphManager* mgr, 00084 u_int32_t runtimeId, 00085 MNSelector& sel ); 00086 00087 private: 00088 00093 DynMultiplierSH( const DynMultiplierSH& ); 00094 00099 DynMultiplierSH& operator=( const DynMultiplierSH& ); 00100 void increaseNumberOfSourceEndpoints(); 00101 void decreaseNumberOfSourceEndpoints(); 00102 00103 /******************************************************************/ 00104 /* functions required for Status */ 00105 /******************************************************************/ 00106 protected: 00107 friend class DynMultiplierSinkEndpoint; 00108 friend class DynMultiplierSourceEndpoint; 00109 00110 virtual void pushReport( ReportPtr report, Direction d ); 00111 00112 //SinkEndpoint* _in_ep_a[1]; 00113 //SourceEndpoint* _out_ep_a[2]; 00114 //DynMultiplierSinkEndpoint _inEP; 00115 //DynMultiplierSourceEndpoint _outEP1; 00116 //DynMultiplierSourceEndpoint _outEP2; 00117 00118 SinkEndpoint* _in_ep_a[1]; 00119 SourceEndpoint** _out_ep_a; 00120 DynMultiplierSinkEndpoint _inEP; 00121 std::list<DynMultiplierSourceEndpoint*> _outEPList; 00122 00123 int _numSources; 00124 00125 00126 public: 00127 virtual SinkEndpoint** getSinkSpecs(); 00128 virtual SourceEndpoint** getSourceSpecs(); 00129 00139 virtual bool isConnected() const ; 00140 00142 int getConnectedCount(); 00143 00145 bool unmatch(SH::Base* sh); 00146 }; 00147 00149 00150 }; // namespace SH 00151 00152 #endif /* DYN_MULTIPLIER_SH_H*/ 00153

Generated on Sun Mar 6 13:35:49 2005 for Komssys by doxygen 1.3.8