Collage  1.2.1
High-performance C++ library for developing object-oriented distributed applications.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
co::OCommand Class Reference

A class for sending commands with data to local and external nodes. More...

#include <oCommand.h>

+ Inheritance diagram for co::OCommand:
+ Collaboration diagram for co::OCommand:

Public Member Functions

CO_API OCommand (const Connections &receivers, const uint32_t cmd, const uint32_t type=COMMANDTYPE_NODE)
 
CO_API OCommand (Dispatcher *const dispatcher, LocalNodePtr localNode, const uint32_t cmd, const uint32_t type=COMMANDTYPE_NODE)
 
CO_API OCommand (const OCommand &rhs)
 
virtual CO_API ~OCommand ()
 Send or dispatch this command during destruction. More...
 
CO_API void sendHeader (const uint64_t additionalSize)
 
- Public Member Functions inherited from co::DataOStream
CO_API void disable ()
 
void enableSave ()
 
void disableSave ()
 
CO_API bool hasSentData () const
 
CO_API const ConnectionsgetConnections () const
 
DataOStreamstreamDataHeader (DataOStream &os)
 
void sendBody (ConnectionPtr connection, const void *data, const uint64_t dataSize)
 
uint64_t getCompressedDataSize () const
 
template<class T >
DataOStreamoperator<< (const T &value)
 Write a plain data item by copying it to the stream. More...
 
template<class T >
DataOStreamoperator<< (const Array< T > array)
 Write a C array. More...
 
template<class T >
DataOStreamoperator<< (const lunchbox::RefPtr< T > &ptr)
 Write a lunchbox::RefPtr. More...
 
template<class T >
DataOStreamoperator<< (const lunchbox::Buffer< T > &buffer)
 Write a lunchbox::Buffer. More...
 
template<class T >
DataOStreamoperator<< (const lunchbox::Request< T > &request)
 Transmit a request identifier. More...
 
template<class T >
DataOStreamoperator<< (const std::vector< T > &value)
 Write a std::vector of serializable items. More...
 
template<class K , class V >
DataOStreamoperator<< (const std::map< K, V > &value)
 Write a std::map of serializable items. More...
 
template<class T >
DataOStreamoperator<< (const std::set< T > &value)
 Write a std::set of serializable items. More...
 
template<class K , class V >
DataOStreamoperator<< (const stde::hash_map< K, V > &value)
 Write a stde::hash_map of serializable items. More...
 
template<class T >
DataOStreamoperator<< (const stde::hash_set< T > &value)
 Write a stde::hash_set of serializable items. More...
 
template<typename C >
void serializeChildren (const std::vector< C * > &children)
 
template<>
DataOStreamoperator<< (const std::string &str)
 Write a std::string. More...
 
template<>
DataOStreamoperator<< (const Object *const &object)
 Write an object identifier and version. More...
 
template<>
DataOStreamoperator<< (const std::vector< uint8_t > &value)
 Optimized specialization to write a std::vector of uint8_t. More...
 
template<>
DataOStreamoperator<< (const std::vector< uint16_t > &value)
 Optimized specialization to write a std::vector of uint16_t. More...
 
template<>
DataOStreamoperator<< (const std::vector< int16_t > &value)
 Optimized specialization to write a std::vector of int16_t. More...
 
template<>
DataOStreamoperator<< (const std::vector< uint32_t > &value)
 Optimized specialization to write a std::vector of uint32_t. More...
 
template<>
DataOStreamoperator<< (const std::vector< int32_t > &value)
 Optimized specialization to write a std::vector of int32_t. More...
 
template<>
DataOStreamoperator<< (const std::vector< uint64_t > &value)
 Optimized specialization to write a std::vector of uint64_t. More...
 
template<>
DataOStreamoperator<< (const std::vector< int64_t > &value)
 Optimized specialization to write a std::vector of int64_t. More...
 
template<>
DataOStreamoperator<< (const std::vector< float > &value)
 Optimized specialization to write a std::vector of float. More...
 
template<>
DataOStreamoperator<< (const std::vector< double > &value)
 Optimized specialization to write a std::vector of double. More...
 
template<>
DataOStreamoperator<< (const std::vector< ObjectVersion > &value)
 Optimized specialization to write a std::vector of ObjectVersion. More...
 

Static Public Member Functions

static CO_API size_t getSize ()
 

Protected Member Functions

CO_API void sendData (const void *buffer, const uint64_t size, const bool last) override
 
- Protected Member Functions inherited from co::DataOStream
 DataOStream (DataOStream &rhs)
 
CO_API lunchbox::Bufferb & getBuffer ()
 
void _initCompressor (const uint32_t compressor)
 
CO_API void _enable ()
 
void flush (const bool last)
 
void _setupConnections (const Nodes &receivers)
 
void _setupConnections (const Connections &connections)
 
void _setupConnection (NodePtr node, const bool useMulticast)
 
CO_API void _setupConnection (ConnectionPtr connection)
 
void _resend ()
 
void _clearConnections ()
 
virtual CO_API void reset ()
 

Detailed Description

A class for sending commands with data to local and external nodes.

The data to this command is added via the interface provided by DataOStream. The command is send or dispatched after it goes out of scope, i.e. during destruction.

Definition at line 40 of file oCommand.h.

Constructor & Destructor Documentation

virtual CO_API co::OCommand::~OCommand ( )
virtual

Send or dispatch this command during destruction.


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