Messages::MTransportSender Class Reference

class Messages::MTransportSender

Defines the interface used for sending messages to a peer worker thread. Various functions are present, supporting different message sizes and different policies for coping with the inability to send. Behaviours common to all Send...() operations are finding a transport to the peer based upon its cookie and panicking if no transport is available (the sender has corrupted the peer cookie or is using it after termination of the transport service - either case is serious misbehaviour)

Public Member Functions
void PostMessage (const TRuntimeCtxId &, const TRuntimeCtxId &, const Meta::SMetaData &)

Member Functions Documentation

PostMessage(const TRuntimeCtxId &, const TRuntimeCtxId &, const Meta::SMetaData &)

void PostMessage ( const TRuntimeCtxId & aPostFrom,
const TRuntimeCtxId & aPostTo,
const Meta::SMetaData & aMessage
) [pure virtual]

Blocking send functions. If no outbound queue space is available they block until either space becomes available or a GENEROUS time limit is exceeded, in which case it panics diagnostically. This relieves the caller of the burden of supporting an error case which will only be seen in a grossly malfunctioning system and so will be hard to test and difficult to recover from. To avoid deadlock due to the peer being in the same state the inbound queue is drained while waiting for space. The receipt order is always preserved.

Parameters

const TRuntimeCtxId & aPostFrom
const TRuntimeCtxId & aPostTo
const Meta::SMetaData & aMessage