00001 /* Copyright (C) 2003 Carsten Griwodz 00002 * 00003 * You are allowed to use all other parts of the code under the following terms: 00004 * 00005 * For non-commercial use, code may be used in unmodified form provided 00006 * that this copyright notice and this permission notice appear in 00007 * supporting documentation. 00008 * 00009 * This software is provided "as is" and without any express or implied 00010 * warranties, including, without limitation, the implied warranty of 00011 * fitness for a particular purpose. 00012 * 00013 * The code may be subjected to the GNU General Public License, Version 2, 00014 * and re-distributed under the terms of this license. 00015 * As a special exception, permission is granted to link this code 00016 * with the Qt library and distribute executables, as long as you 00017 * follow the requirements of the GNU GPL in regard to all of the 00018 * software in the executable aside from Qt. 00019 * 00020 * Commercial use other than under the terms of the GNU General Public 00021 * License is allowed only after express negotiation of conditions 00022 * with the authors. 00023 */ 00024 #ifndef DATA_POP_SH_H 00025 #define DATA_POP_SH_H 00026 00027 #include <sys/types.h> 00028 #include <sys/time.h> 00029 00030 #include "SH.h" 00031 #include "SHEndpoint.h" 00032 #include "SHEndpointSpec.h" 00033 00034 namespace SH 00035 { 00036 00037 class DataPopSinkSH; 00038 class DataPopSinkEndpointSpec; 00039 class DataPopSinkEndpoint; 00040 00045 /**********************************************************************/ 00046 /* DataPopSinkEndpoint */ 00047 /**********************************************************************/ 00048 00052 class DataPopSinkEndpoint 00053 : public SinkEndpoint 00054 { 00055 public: 00056 DataPopSinkEndpoint( DataPopSinkSH* mySH ); 00057 virtual ~DataPopSinkEndpoint( ); 00058 }; 00059 00060 /**********************************************************************/ 00061 /* DataPopSinkSH */ 00062 /**********************************************************************/ 00063 00064 class DataPopSinkSH 00065 : public Base 00066 { 00067 public: 00068 DataPopSinkSH( SHGraphManager* mgr, 00069 u_int32_t runtimeId, 00070 MNSelector& sel ); 00071 00072 virtual ~DataPopSinkSH(); 00073 00074 private: 00079 DataPopSinkSH( const DataPopSinkSH& ); 00080 00085 DataPopSinkSH& operator=( const DataPopSinkSH& ); 00086 00087 /******************************************************************/ 00088 /* functions required for Status */ 00089 /******************************************************************/ 00090 protected: 00091 friend class DataPopSinkEndpoint; 00092 00093 SinkEndpoint* _in_ep_a[1]; 00094 DataPopSinkEndpoint _inEP; 00095 00096 public: 00097 virtual SinkEndpoint** getSinkSpecs(); 00098 virtual SourceEndpoint** getSourceSpecs(); 00099 00109 virtual bool isConnected() const; 00110 00111 bool get_packet( DataPtr& item ); 00112 }; 00113 00115 00116 }; // namespace SH 00117 00118 #endif /* DATA_POP_SH_H */ 00119