BulkDataDistributerImpl< TReceiverCallback, TSenderCallback > Class Template Reference

#include <bulkDataDistributerImpl.h>

Inheritance diagram for BulkDataDistributerImpl< TReceiverCallback, TSenderCallback >:
Inheritance graph
[legend]
Collaboration diagram for BulkDataDistributerImpl< TReceiverCallback, TSenderCallback >:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 BulkDataDistributerImpl (const ACE_CString &name, maci::ContainerServices *containerServices)
virtual ~BulkDataDistributerImpl ()
virtual void initialize ()
virtual void cleanUp ()
virtual void connect (bulkdata::BulkDataReceiver_ptr receiverObj_p)
virtual void multiConnect (bulkdata::BulkDataReceiver_ptr receiverObj_p)
virtual void connectByName (const char *receiverName_p)
virtual void disconnect ()
virtual void multiDisconnect (bulkdata::BulkDataReceiver_ptr receiverObj_p)
virtual void disconnectByName (const char *receiverName_p)
virtual void startSend ()
virtual void paceData ()
virtual void stopSend ()
virtual void openReceiver ()
bulkdata::BulkDataReceiverConfig * getReceiverConfig ()
virtual void closeReceiver ()
virtual void setReceiver (const bulkdata::BulkDataReceiverConfig &receiverConfig)
virtual
AcsBulkdata::BulkDataDistributer
< TReceiverCallback,
TSenderCallback > * 
getDistributer ()
virtual ACSErr::CompletiongetCbStatus (CORBA::ULong flowNumber)
virtual ACSErr::CompletiongetReceiverCbStatus (const char *recvName, CORBA::ULong flowNumber)
virtual void setTimeout (CORBA::ULong flowNumber, CORBA::ULong timeout)
virtual void setRecvName (const char *recvName)
virtual void subscribeNotification (ACS::CBvoid_ptr notifCb)

Private Types

typedef ACE_Pair
< bulkdata::BulkDataReceiver_ptr,
AcsBulkdata::BulkDataSender
< TSenderCallback > * > 
Sender_Map_Pair
typedef ACE_Hash_Map_Manager
< ACE_CString, Sender_Map_Pair,
ACE_Null_Mutex > 
Sender_Map
typedef ACE_Hash_Map_Entry
< ACE_CString, Sender_Map_Pair
Sender_Map_Entry
typedef ACE_Hash_Map_Iterator
< ACE_CString, Sender_Map_Pair,ACE_Null_Mutex > 
Sender_Map_Iterator

Private Member Functions

void rmEntryFromSenderMap (bulkdata::BulkDataReceiver_ptr receiverObj_p)
void rmEntryFromSenderMap (const char *receiverName_p)

Private Attributes

maci::ContainerServicescontainerServices_p
CDB::DAL_ptr dal_p
AcsBulkdata::BulkDataDistributer
< TReceiverCallback,
TSenderCallback > 
distributer

template<class TReceiverCallback, class TSenderCallback = BulkDataSenderDefaultCallback>
class BulkDataDistributerImpl< TReceiverCallback, TSenderCallback >


Member Typedef Documentation

template<class TReceiverCallback, class TSenderCallback = BulkDataSenderDefaultCallback>
typedef ACE_Hash_Map_Manager<ACE_CString, Sender_Map_Pair, ACE_Null_Mutex> BulkDataDistributerImpl< TReceiverCallback, TSenderCallback >::Sender_Map [private]
template<class TReceiverCallback, class TSenderCallback = BulkDataSenderDefaultCallback>
typedef ACE_Hash_Map_Entry<ACE_CString, Sender_Map_Pair > BulkDataDistributerImpl< TReceiverCallback, TSenderCallback >::Sender_Map_Entry [private]
template<class TReceiverCallback, class TSenderCallback = BulkDataSenderDefaultCallback>
typedef ACE_Hash_Map_Iterator<ACE_CString, Sender_Map_Pair ,ACE_Null_Mutex> BulkDataDistributerImpl< TReceiverCallback, TSenderCallback >::Sender_Map_Iterator [private]
template<class TReceiverCallback, class TSenderCallback = BulkDataSenderDefaultCallback>
typedef ACE_Pair< bulkdata::BulkDataReceiver_ptr, AcsBulkdata::BulkDataSender<TSenderCallback> *> BulkDataDistributerImpl< TReceiverCallback, TSenderCallback >::Sender_Map_Pair [private]

Constructor & Destructor Documentation

template<class TReceiverCallback, class TSenderCallback = BulkDataSenderDefaultCallback>
BulkDataDistributerImpl< TReceiverCallback, TSenderCallback >::BulkDataDistributerImpl ( const ACE_CString &  name,
maci::ContainerServices containerServices 
)

Constructor

Parameters:
poa Poa which will activate this and also all other Components.
name component name.
template<class TReceiverCallback, class TSenderCallback = BulkDataSenderDefaultCallback>
virtual BulkDataDistributerImpl< TReceiverCallback, TSenderCallback >::~BulkDataDistributerImpl (  )  [virtual]

Destructor


Member Function Documentation

template<class TReceiverCallback, class TSenderCallback = BulkDataSenderDefaultCallback>
virtual void BulkDataDistributerImpl< TReceiverCallback, TSenderCallback >::cleanUp (  )  [virtual]

Called after the last functional call to the component has finished. The component should then orderly release resources etc. If this method is overwritten in a subclass, the developer has to make sure that all cleanup performed by the implementation of the base class take place. The best way to do this is to call the implementation of the base itself explicitly, as would be done implicitly in a destructor chain.

Returns:
void

Reimplemented from acscomponent::ACSComponentImpl.

template<class TReceiverCallback, class TSenderCallback = BulkDataSenderDefaultCallback>
virtual void BulkDataDistributerImpl< TReceiverCallback, TSenderCallback >::closeReceiver (  )  [virtual]
template<class TReceiverCallback, class TSenderCallback = BulkDataSenderDefaultCallback>
virtual void BulkDataDistributerImpl< TReceiverCallback, TSenderCallback >::connect ( bulkdata::BulkDataReceiver_ptr  receiverObj_p  )  [virtual]

Negotiate and initialize connection with the Sender object.

Parameters:
receiverObj_p reference of the Receiver Component.
Exceptions:
ACSBulkDataError::AVConnectErrorEx 
Returns:
void

template<class TReceiverCallback, class TSenderCallback = BulkDataSenderDefaultCallback>
virtual void BulkDataDistributerImpl< TReceiverCallback, TSenderCallback >::connectByName ( const char *  receiverName_p  )  [virtual]

Negotiate and initialize connection with the Sender object.

Parameters:
receiverName_p name of the Receiver Component.
Exceptions:
ACSBulkDataError::AVConnectErrorEx 
Returns:
void

template<class TReceiverCallback, class TSenderCallback = BulkDataSenderDefaultCallback>
virtual void BulkDataDistributerImpl< TReceiverCallback, TSenderCallback >::disconnect (  )  [virtual]
template<class TReceiverCallback, class TSenderCallback = BulkDataSenderDefaultCallback>
virtual void BulkDataDistributerImpl< TReceiverCallback, TSenderCallback >::disconnectByName ( const char *  receiverName_p  )  [virtual]
template<class TReceiverCallback, class TSenderCallback = BulkDataSenderDefaultCallback>
virtual ACSErr::Completion* BulkDataDistributerImpl< TReceiverCallback, TSenderCallback >::getCbStatus ( CORBA::ULong  flowNumber  )  [virtual]
template<class TReceiverCallback, class TSenderCallback = BulkDataSenderDefaultCallback>
virtual AcsBulkdata::BulkDataDistributer<TReceiverCallback, TSenderCallback>* BulkDataDistributerImpl< TReceiverCallback, TSenderCallback >::getDistributer (  )  [inline, virtual]
template<class TReceiverCallback, class TSenderCallback = BulkDataSenderDefaultCallback>
virtual ACSErr::Completion* BulkDataDistributerImpl< TReceiverCallback, TSenderCallback >::getReceiverCbStatus ( const char *  recvName,
CORBA::ULong  flowNumber 
) [virtual]
template<class TReceiverCallback, class TSenderCallback = BulkDataSenderDefaultCallback>
bulkdata::BulkDataReceiverConfig* BulkDataDistributerImpl< TReceiverCallback, TSenderCallback >::getReceiverConfig (  ) 
template<class TReceiverCallback, class TSenderCallback = BulkDataSenderDefaultCallback>
virtual void BulkDataDistributerImpl< TReceiverCallback, TSenderCallback >::initialize (  )  [virtual]

Called to give the component time to initialize itself. For instance, the component could retrieve connections, read in configuration files/parameters, build up in-memory tables, ... Called before execute. In fact, this method might be called quite some time before functional requests can be sent to the component. Must be implemented as a synchronous (blocking) call.

Returns:
void

Reimplemented from acscomponent::ACSComponentImpl.

template<class TReceiverCallback, class TSenderCallback = BulkDataSenderDefaultCallback>
virtual void BulkDataDistributerImpl< TReceiverCallback, TSenderCallback >::multiConnect ( bulkdata::BulkDataReceiver_ptr  receiverObj_p  )  [virtual]

Negotiate and initialize connection with the Sender object.

Parameters:
receiverObj_p reference of the Receiver Component.
Exceptions:
ACSBulkDataError::AVConnectErrorEx 
Returns:
void

template<class TReceiverCallback, class TSenderCallback = BulkDataSenderDefaultCallback>
virtual void BulkDataDistributerImpl< TReceiverCallback, TSenderCallback >::multiDisconnect ( bulkdata::BulkDataReceiver_ptr  receiverObj_p  )  [virtual]
template<class TReceiverCallback, class TSenderCallback = BulkDataSenderDefaultCallback>
virtual void BulkDataDistributerImpl< TReceiverCallback, TSenderCallback >::openReceiver (  )  [virtual]

Opens connection creating an out-of-bound channel using TAO A/V services. It creates the Receiver Stream End Point and Flow End Point for the connection with the Sender. The Receiver Stream End Point can be retrieved as an attribute.

Exceptions:
ACSBulkDataError::AVOpenReceiverErrorEx 
Returns:
void

template<class TReceiverCallback, class TSenderCallback = BulkDataSenderDefaultCallback>
virtual void BulkDataDistributerImpl< TReceiverCallback, TSenderCallback >::paceData (  )  [virtual]

Sends data to the Receiver calling the receive_frame() method on the Receiver side. This method must be overriden by the user to send his own data.

Parameters:
size buffer size of the sent data.
Exceptions:
ACSBulkDataError::AVPaceDataErrorEx 
Returns:
void

template<class TReceiverCallback, class TSenderCallback = BulkDataSenderDefaultCallback>
void BulkDataDistributerImpl< TReceiverCallback, TSenderCallback >::rmEntryFromSenderMap ( const char *  receiverName_p  )  [private]
template<class TReceiverCallback, class TSenderCallback = BulkDataSenderDefaultCallback>
void BulkDataDistributerImpl< TReceiverCallback, TSenderCallback >::rmEntryFromSenderMap ( bulkdata::BulkDataReceiver_ptr  receiverObj_p  )  [private]
template<class TReceiverCallback, class TSenderCallback = BulkDataSenderDefaultCallback>
virtual void BulkDataDistributerImpl< TReceiverCallback, TSenderCallback >::setReceiver ( const bulkdata::BulkDataReceiverConfig &  receiverConfig  )  [virtual]
template<class TReceiverCallback, class TSenderCallback = BulkDataSenderDefaultCallback>
virtual void BulkDataDistributerImpl< TReceiverCallback, TSenderCallback >::setRecvName ( const char *  recvName  )  [inline, virtual]
template<class TReceiverCallback, class TSenderCallback = BulkDataSenderDefaultCallback>
virtual void BulkDataDistributerImpl< TReceiverCallback, TSenderCallback >::setTimeout ( CORBA::ULong  flowNumber,
CORBA::ULong  timeout 
) [inline, virtual]
template<class TReceiverCallback, class TSenderCallback = BulkDataSenderDefaultCallback>
virtual void BulkDataDistributerImpl< TReceiverCallback, TSenderCallback >::startSend (  )  [virtual]

Calls the Receiver handle_start() method once the connection is established.

Exceptions:
ACSBulkDataError::AVStartSendErrorEx 
Returns:
void

template<class TReceiverCallback, class TSenderCallback = BulkDataSenderDefaultCallback>
virtual void BulkDataDistributerImpl< TReceiverCallback, TSenderCallback >::stopSend (  )  [virtual]

Calls the Receiver handle_stop() method.

Exceptions:
ACSBulkDataError::AVStopSendErrorEx 
Returns:
void

template<class TReceiverCallback, class TSenderCallback = BulkDataSenderDefaultCallback>
virtual void BulkDataDistributerImpl< TReceiverCallback, TSenderCallback >::subscribeNotification ( ACS::CBvoid_ptr  notifCb  )  [virtual]

Member Data Documentation

template<class TReceiverCallback, class TSenderCallback = BulkDataSenderDefaultCallback>
maci::ContainerServices* BulkDataDistributerImpl< TReceiverCallback, TSenderCallback >::containerServices_p [private]
template<class TReceiverCallback, class TSenderCallback = BulkDataSenderDefaultCallback>
CDB::DAL_ptr BulkDataDistributerImpl< TReceiverCallback, TSenderCallback >::dal_p [private]
template<class TReceiverCallback, class TSenderCallback = BulkDataSenderDefaultCallback>
AcsBulkdata::BulkDataDistributer<TReceiverCallback, TSenderCallback> BulkDataDistributerImpl< TReceiverCallback, TSenderCallback >::distributer [private]

The documentation for this class was generated from the following file:

Generated by  doxygen 1.6.2