GComm  0.2.3
Public Types | Public Member Functions | Friends | List of all members
gcomm::evs::InputMap Class Reference

#include <evs_input_map2.hpp>

Public Types

typedef InputMapMsgIndex::iterator iterator
 
typedef
InputMapMsgIndex::const_iterator 
const_iterator
 

Public Member Functions

 InputMap ()
 
 ~InputMap ()
 
seqno_t aru_seq () const
 
seqno_t safe_seq () const
 
void set_safe_seq (const size_t uuid, const seqno_t seq)
 
seqno_t safe_seq (const size_t uuid) const
 
Range range (const size_t uuid) const
 
seqno_t min_hs () const
 
seqno_t max_hs () const
 
iterator begin () const
 
iterator end () const
 
bool is_safe (iterator i) const
 
bool is_agreed (iterator i) const
 
bool is_fifo (iterator i) const
 
bool has_deliverables () const
 
Range insert (const size_t uuid, const UserMessage &msg, const Datagram &dg=Datagram())
 
void erase (iterator i)
 
iterator find (const size_t uuid, const seqno_t seq) const
 
iterator recover (const size_t uuid, const seqno_t seq) const
 
void reset (const size_t, const seqno_t=256)
 
void clear ()
 

Friends

std::ostream & operator<< (std::ostream &, const InputMap &)
 

Detailed Description

Input map for messages.

Constructor & Destructor Documentation

gcomm::evs::InputMap::InputMap ( )

Default constructor.

gcomm::evs::InputMap::~InputMap ( )

Default destructor.

Member Function Documentation

seqno_t gcomm::evs::InputMap::aru_seq ( ) const
inline

Get current value of aru_seq.

Returns
Current value of aru_seq
iterator gcomm::evs::InputMap::begin ( ) const
inline

Get iterator to the beginning of the input map

Returns
Iterator pointing to the first element
void gcomm::evs::InputMap::clear ( )

Clear input map state.

iterator gcomm::evs::InputMap::end ( ) const
inline

Get iterator next to the last element of the input map

Returns
Iterator pointing past the last element
void gcomm::evs::InputMap::erase ( iterator  i)

Erase message pointed by iterator. Note that message may still be recovered through recover() method as long as it does not fulfill O_SAFE constraint.

Parameters
iIterator
Exceptions
FatalExceptionif iterator is not valid
iterator gcomm::evs::InputMap::find ( const size_t  uuid,
const seqno_t  seq 
) const

Find message.

Parameters
uuidMessage source node uuid
seqMessage sequence numeber
Returns
Iterator pointing to message or at end() if message was not found
Exceptions
FatalExceptionif node was not found
Range gcomm::evs::InputMap::insert ( const size_t  uuid,
const UserMessage msg,
const Datagram dg = Datagram() 
)

Insert new message into input map.

Parameters
uuidNode uuid of the message source
msgEVS message
rbReadBuf pointer associated to message
offsetOffset to the beginning of the payload
Returns
Range parameter of the node
Exceptions
FatalExceptionif node not found or message sequence number is out of allowed range
bool gcomm::evs::InputMap::is_agreed ( iterator  i) const
inline

Check if message pointed by iterator fulfills O_AGREED condition.

Returns
True or false
bool gcomm::evs::InputMap::is_fifo ( iterator  i) const
inline

Check if message pointed by iterator fulfills O_FIFO condition.

Returns
True or false
bool gcomm::evs::InputMap::is_safe ( iterator  i) const
inline

Check if message pointed by iterator fulfills O_SAFE condition.

Returns
True or false
Range gcomm::evs::InputMap::range ( const size_t  uuid) const
inline

Get current range parameter for node

Parameters
uuidNode uuid
Returns
Range parameter for node
Exceptions
FatalExceptionif node was not found
iterator gcomm::evs::InputMap::recover ( const size_t  uuid,
const seqno_t  seq 
) const

Recover message.

Parameters
uuidMessage source node uuid
seqMessage sequence number
Returns
Iterator pointing to the message
Exceptions
FatalExceptionif node or message was not found
seqno_t gcomm::evs::InputMap::safe_seq ( ) const
inline

Get current value of safe_seq.

Returns
Current value of safe_seq
seqno_t gcomm::evs::InputMap::safe_seq ( const size_t  uuid) const
inline

Get current value of safe_seq for node.

Parameters
uuidNode uuid
Returns
Safe sequence number for node
Exceptions
FatalExceptionif node was not found
void gcomm::evs::InputMap::set_safe_seq ( const size_t  uuid,
const seqno_t  seq 
)

Set sequence number safe for node.

Parameters
uuidNode uuid
seqSequence number to be set safe
Exceptions
FatalExceptionif node was not found or sequence number was not in the allowed range

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