21 #ifndef __bulkio_out_port_h 22 #define __bulkio_out_port_h 27 #include <boost/thread/condition_variable.hpp> 28 #include <boost/thread/locks.hpp> 29 #include <boost/make_shared.hpp> 30 #include <boost/ref.hpp> 32 #include <ossie/CorbaUtils.h> 35 #include "bulkio_traits.h" 36 #include "bulkio_callbacks.h" 37 #include "bulkio_out_stream.h" 49 template <
typename PortTraits >
51 #ifdef BEGIN_AUTOCOMPLETE_IGNORE 52 ,
public virtual POA_BULKIO::UsesPortStatisticsProvider
110 ConnectionEventListener *connectCB=NULL,
111 ConnectionEventListener *disconnectCB=NULL );
115 ConnectionEventListener *connectCB=NULL,
116 ConnectionEventListener *disconnectCB=NULL );
133 virtual ExtendedCF::UsesConnectionSequence *
connections();
143 virtual void connectPort(CORBA::Object_ptr connection,
const char* connectionId);
158 template<
typename T >
inline 161 _connectCB = boost::make_shared< MemberConnectionEventListener< T > >( boost::ref(target), func );
164 template<
typename T >
inline 167 _connectCB = boost::make_shared< MemberConnectionEventListener< T > >( boost::ref(*target), func );
170 template<
typename T >
inline 173 _disconnectCB = boost::make_shared< MemberConnectionEventListener< T > >( boost::ref(target), func );
176 template<
typename T >
inline 179 _disconnectCB = boost::make_shared< MemberConnectionEventListener< T > >( boost::ref(*target), func );
196 virtual void pushSRI(
const BULKIO::StreamSRI& H);
215 virtual BULKIO::UsesPortStatisticsSequence *
statistics();
225 virtual BULKIO::PortUsageType
state();
269 typedef typename std::map<std::string, linkStatistics >
_StatsMap;
322 PushArgumentType data,
323 const BULKIO::PrecisionUTCTime& T,
325 const std::string& streamID);
333 PushArgumentType data,
334 const BULKIO::PrecisionUTCTime& T,
336 const std::string& streamID);
344 const std::string& streamID);
352 PushArgumentType data,
353 const BULKIO::PrecisionUTCTime& T,
355 const char* streamID);
366 template <
typename PortTraits >
430 ConnectionEventListener *connectCB=NULL,
431 ConnectionEventListener *disconnectCB=NULL );
435 ConnectionEventListener *connectCB=NULL,
436 ConnectionEventListener *disconnectCB=NULL );
457 void pushPacket( NativeSequenceType & data,
const BULKIO::PrecisionUTCTime& T,
bool EOS,
const std::string& streamID);
474 void pushPacket(
const TransportType* data,
size_t size,
const BULKIO::PrecisionUTCTime& T,
bool EOS,
const std::string& streamID);
490 void pushPacket(
const DataBufferType & data,
const BULKIO::PrecisionUTCTime& T,
bool EOS,
const std::string& streamID);
502 const TransportType* buffer,
504 const BULKIO::PrecisionUTCTime& T,
506 const std::string& streamID);
518 ConnectionEventListener *connectCB=NULL,
519 ConnectionEventListener *disconnectCB=NULL );
523 ConnectionEventListener *connectCB=NULL,
524 ConnectionEventListener *disconnectCB=NULL );
530 void pushPacket(
const std::vector< Int8 >& data,
const BULKIO::PrecisionUTCTime& T,
bool EOS,
const std::string& streamID);
533 void pushPacket(
const std::vector< Char >& data,
const BULKIO::PrecisionUTCTime& T,
bool EOS,
const std::string& streamID);
536 void pushPacket(
const Int8* buffer,
size_t size,
const BULKIO::PrecisionUTCTime& T,
bool EOS,
const std::string& streamID);
539 void pushPacket(
const Char* buffer,
size_t size,
const BULKIO::PrecisionUTCTime& T,
bool EOS,
const std::string& streamID);
588 ConnectionEventListener *connectCB=NULL,
589 ConnectionEventListener *disconnectCB=NULL );
594 ConnectionEventListener *connectCB=NULL,
595 ConnectionEventListener *disconnectCB=NULL );
615 void pushPacket(
const char *URL,
const BULKIO::PrecisionUTCTime& T,
bool EOS,
const std::string& streamID);
630 void pushPacket(
const std::string& URL,
const BULKIO::PrecisionUTCTime& T,
bool EOS,
const std::string& streamID);
635 void pushPacket(
const char *data,
bool EOS,
const std::string& streamID);
686 ConnectionEventListener *connectCB=NULL,
687 ConnectionEventListener *disconnectCB=NULL );
692 ConnectionEventListener *connectCB=NULL,
693 ConnectionEventListener *disconnectCB=NULL );
702 void pushPacket(
const char *data,
const BULKIO::PrecisionUTCTime& T,
bool EOS,
const std::string& streamID);
712 void pushPacket(
const char *data,
bool EOS,
const std::string& streamID);
722 void pushPacket(
const std::string& data,
bool EOS,
const std::string& streamID);
769 CF::Properties* temp;
770 if (!(a >>= temp))
return false;
771 CF::Properties& props = *temp;
772 for (
unsigned int idx = 0; idx < props.length(); idx++) {
773 if (!strcmp(
"connectionTable::connection_id", props[idx].
id)) {
775 }
else if (!strcmp(
"connectionTable::stream_id", props[idx].
id)) {
776 if (!(props[idx].value >>= s.
stream_id))
return false;
777 }
else if (!strcmp(
"connectionTable::port_name", props[idx].
id)) {
778 if (!(props[idx].value >>= s.
port_name))
return false;
785 CF::Properties props;
787 props[0].id = CORBA::string_dup(
"connectionTable::connection_id");
789 props[1].id = CORBA::string_dup(
"connectionTable::stream_id");
791 props[2].id = CORBA::string_dup(
"connectionTable::port_name");
Traits::PortVarType PortVarType
Definition: bulkio_out_port.h:657
std::vector< connection_descriptor_struct > filterTable
Definition: bulkio_out_port.h:306
Traits::DataBufferType DataBufferType
Definition: bulkio_out_port.h:405
OutPortBase(std::string port_name, ConnectionEventListener *connectCB=NULL, ConnectionEventListener *disconnectCB=NULL)
Traits::PushType PushArgumentType
Definition: bulkio_out_port.h:84
void _pushSRI(typename ConnectionsList::iterator connPair, SriMapStruct &sri_ctx)
void setNewConnectListener(T &target, void(T::*func)(const char *connectionId))
Definition: bulkio_out_port.h:159
void _pushOversizedPacket(const TransportType *buffer, size_t size, const BULKIO::PrecisionUTCTime &T, bool EOS, const std::string &streamID)
void setLogger(LOGGER_PTR newLogger)
boost::mutex updatingPortsLock
Definition: Port_impl.h:360
Traits::PortType PortType
Definition: bulkio_out_port.h:662
PortTraits Traits
Definition: bulkio_out_port.h:58
OutXMLPort(std::string pname, ConnectionEventListener *connectCB=NULL, ConnectionEventListener *disconnectCB=NULL)
Definition: bulkio_out_port.h:39
std::vector< NativeType > NativeSequenceType
Definition: bulkio_out_port.h:400
Definition: bulkio_out_port.h:50
virtual ~OutXMLPort()
Definition: bulkio_out_port.h:697
Definition: bulkio_out_port.h:646
Traits::SequenceType PortSequenceType
Definition: bulkio_out_port.h:569
OutPort< ULongPortTraits > OutULongPort
Definition: bulkio_out_port.h:746
OutOctetPort OutUInt8Port
Definition: bulkio_out_port.h:734
virtual ExtendedCF::UsesConnectionSequence * connections()
std::string connection_id
Definition: bulkio_base.h:102
void setNewConnectListener(T *target, void(T::*func)(const char *connectionId))
Definition: bulkio_out_port.h:165
virtual void disconnectPort(const char *connectionId)
void pushPacket(const char *data, const BULKIO::PrecisionUTCTime &T, bool EOS, const std::string &streamID)
Traits::SequenceType PortSequenceType
Definition: bulkio_out_port.h:385
Traits::PortVarType PortVarType
Definition: bulkio_out_port.h:63
OutPort< ShortPortTraits > OutShortPort
Definition: bulkio_out_port.h:736
virtual ConnectionsList __attribute__((deprecated)) _getConnections()
Definition: bulkio_out_port.h:257
OutPort< UShortPortTraits > OutUShortPort
Definition: bulkio_out_port.h:738
OutCharPort(std::string port_name, ConnectionEventListener *connectCB=NULL, ConnectionEventListener *disconnectCB=NULL)
Traits::NativeType NativeType
Definition: bulkio_out_port.h:682
void setNewDisconnectListener(T &target, void(T::*func)(const char *connectionId))
Definition: bulkio_out_port.h:171
std::map< std::string, std::pair< BULKIO::StreamSRI, bool > > SriMap
Definition: bulkio_base.h:72
_StatsMap stats
Definition: bulkio_out_port.h:297
virtual void pushSRI(const BULKIO::StreamSRI &H)
bool operator!=(const bulkio::connection_descriptor_struct &s1, const bulkio::connection_descriptor_struct &s2)
Definition: bulkio_out_port.h:806
Traits::PortType PortType
Definition: bulkio_out_port.h:380
std::map< std::string, SriMapStruct > OutPortSriMap
Definition: bulkio_out_port.h:415
bool operator==(const bulkio::connection_descriptor_struct &s1, const bulkio::connection_descriptor_struct &s2)
Definition: bulkio_out_port.h:796
Traits::SequenceType PortSequenceType
Definition: bulkio_out_port.h:78
void operator<<=(CORBA::Any &a, const bulkio::connection_descriptor_struct &s)
Definition: bulkio_out_port.h:784
OutUShortPort OutUInt16Port
Definition: bulkio_out_port.h:742
OutPort< ULongLongPortTraits > OutULongLongPort
Definition: bulkio_out_port.h:754
Definition: bulkio_out_port.h:515
OutFilePort OutURLPort
Definition: bulkio_out_port.h:764
virtual BULKIO::PortUsageType state()
Traits::PortVarType PortVarType
Definition: bulkio_out_port.h:375
virtual void connectPort(CORBA::Object_ptr connection, const char *connectionId)
Traits::TransportType TransportType
Definition: bulkio_out_port.h:390
char * NativeSequenceType
Definition: bulkio_out_port.h:579
Traits::PortVarType PortVarType
Definition: bulkio_out_port.h:559
Definition: bulkio_base.h:95
FilePortTraits Traits
Definition: bulkio_out_port.h:554
StreamType createStream(const std::string &streamID)
virtual ConnectionsList getConnections()
LOGGER_PTR logger
Definition: bulkio_out_port.h:305
bool _isStreamRoutedToConnection(const std::string &connectionID, const std::string &streamID)
PortTraits Traits
Definition: bulkio_out_port.h:370
size_t _dataLength(PushArgumentType data)
void _pushPacketLocked(PushArgumentType data, const BULKIO::PrecisionUTCTime &T, bool EOS, const std::string &streamID)
OutputStream< PortTraits > StreamType
Definition: bulkio_out_port.h:420
XMLPortTraits Traits
Definition: bulkio_out_port.h:650
OutLongLongPort OutInt64Port
Definition: bulkio_out_port.h:756
std::string port_name
Definition: bulkio_base.h:106
virtual bulkio::SriList getActiveSRIs()
OutULongLongPort OutUInt64Port
Definition: bulkio_out_port.h:758
std::string getRepid() const
char Char
Definition: bulkio_base.h:144
Traits::TransportType TransportType
Definition: bulkio_out_port.h:574
Traits::PortType PortType
Definition: bulkio_out_port.h:564
std::vector< std::pair< T, std::string > > List
Definition: bulkio_base.h:50
bool recConnectionsRefresh
Definition: bulkio_out_port.h:292
ExtendedCF::UsesConnectionSequence recConnections
Definition: bulkio_out_port.h:287
OutFilePort(std::string pname, ConnectionEventListener *connectCB=NULL, ConnectionEventListener *disconnectCB=NULL)
LOGGER LOGGER_PTR
Definition: bulkio_base.h:138
boost::mutex::scoped_lock SCOPED_LOCK
Definition: bulkio_base.h:132
OutLongPort OutInt32Port
Definition: bulkio_out_port.h:748
OutPort< DoublePortTraits > OutDoublePort
Definition: bulkio_out_port.h:762
Traits::NativeType NativeType
Definition: bulkio_out_port.h:395
virtual void enableStats(bool enable)
void pushPacket(const std::vector< Int8 > &data, const BULKIO::PrecisionUTCTime &T, bool EOS, const std::string &streamID)
OutPort< LongLongPortTraits > OutLongLongPort
Definition: bulkio_out_port.h:752
void pushPacket(NativeSequenceType &data, const BULKIO::PrecisionUTCTime &T, bool EOS, const std::string &streamID)
std::string stream_id
Definition: bulkio_base.h:105
bool operator>>=(const CORBA::Any &a, bulkio::connection_descriptor_struct &s)
Definition: bulkio_out_port.h:768
boost::shared_ptr< ConnectionEventListener > _disconnectCB
Definition: bulkio_out_port.h:308
PortType::_ptr_type PortPtrType
Definition: bulkio_out_port.h:73
void _pushPacketToPort(PortPtrType port, PushArgumentType data, const BULKIO::PrecisionUTCTime &T, bool EOS, const char *streamID)
OutPortBase< XMLPortTraits > Base
Definition: bulkio_out_port.h:652
void _pushSinglePacket(PushArgumentType data, const BULKIO::PrecisionUTCTime &T, bool EOS, const std::string &streamID)
Traits::NativeType NativeType
Definition: bulkio_out_port.h:89
Definition: bulkio_out_port.h:367
std::map< std::string, SriMapStruct > OutPortSriMap
Definition: bulkio_out_port.h:99
virtual BULKIO::UsesPortStatisticsSequence * statistics()
ConnectionsList outConnections
Definition: bulkio_out_port.h:281
OutPort< OctetPortTraits > OutOctetPort
Definition: bulkio_out_port.h:732
char * NativeSequenceType
Definition: bulkio_out_port.h:677
Traits::SequenceType PortSequenceType
Definition: bulkio_out_port.h:667
OutShortPort OutInt16Port
Definition: bulkio_out_port.h:740
int8_t Int8
Definition: bulkio_base.h:145
Definition: bulkio_base.h:79
void pushPacket(const char *URL, const BULKIO::PrecisionUTCTime &T, bool EOS, const std::string &streamID)
OutULongPort OutUInt32Port
Definition: bulkio_out_port.h:750
Definition: bulkio_out_port.h:550
virtual ~OutCharPort()
Definition: bulkio_out_port.h:527
void setNewDisconnectListener(T *target, void(T::*func)(const char *connectionId))
Definition: bulkio_out_port.h:177
OutPort< FloatPortTraits > OutFloatPort
Definition: bulkio_out_port.h:760
Traits::PortType PortType
Definition: bulkio_out_port.h:68
OutPort< LongPortTraits > OutLongPort
Definition: bulkio_out_port.h:744
OutPort(std::string port_name, ConnectionEventListener *connectCB=NULL, ConnectionEventListener *disconnectCB=NULL)
Traits::TransportType TransportType
Definition: bulkio_out_port.h:672
bulkio::Connections< PortVarType >::List ConnectionsList
Definition: bulkio_out_port.h:410
bulkio::Connections< PortVarType >::List ConnectionsList
Definition: bulkio_out_port.h:94
virtual bulkio::SriMap getCurrentSRI()
Definition: Port_impl.h:320
std::map< std::string, linkStatistics > _StatsMap
Definition: bulkio_out_port.h:269
std::vector< BULKIO::StreamSRI > SriList
Definition: bulkio_base.h:74
boost::shared_ptr< ConnectionEventListener > _connectCB
Definition: bulkio_out_port.h:307
void _sendEOS(PortPtrType port, const std::string &streamID)
Traits::NativeType NativeType
Definition: bulkio_out_port.h:584
void updateConnectionFilter(const std::vector< connection_descriptor_struct > &_filterTable)
Definition: bulkio_out_port.h:152
virtual ~OutFilePort()
Definition: bulkio_out_port.h:599