replicode
Classes | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Private Attributes | Friends | List of all members
mBrane::Messaging Class Reference

#include <messaging.h>

Inheritance diagram for mBrane::Messaging:
Inheritance graph
Collaboration diagram for mBrane::Messaging:
Collaboration graph

Classes

class  ConstantEntry
 
struct  MessageSlot
 

Protected Member Functions

 Messaging ()
 
 ~Messaging ()
 
bool loadConfig (XMLNode &n)
 
void start ()
 
void shutdown ()
 
void send (_Payload *message, module::Node::Network network)
 
void send (_Payload *message, uint8_t nodeID, module::Node::Network network)
 
void pushJobs (_Payload *p, NodeEntry &e)
 
void pushJobs (_Payload *p)
 
void processControlMessage (_Payload *p)
 

Static Protected Member Functions

static void SendMessages (Node *node)
 

Protected Attributes

Pipe11< P< _Payload >, MESSAGE_INPUT_BLOCK_SIZEmessageInputQueue
 
PipeN1< MessageSlot, MESSAGE_OUTPUT_BLOCK_SIZEmessageOutputQueue
 
PipeNN< Job, JOBS_BLOCK_SIZEjobs
 
Array< RecvThread *, MESSAGE_INPUT_BLOCK_SIZErecvThreads
 
std::thread sendThread
 
Array< PushThread *, MESSAGE_INPUT_BLOCK_SIZEpushThreads
 
std::vector< ConstantEntryconstants
 
UNORDERED_MAP< uint32_t, P< _Payload > > cache
 
std::vector< UNORDERED_SET< uint32_t > > lookup
 
std::mutex cacheMutex
 
uint8_t pendingAck
 
UNORDERED_SET< _Payload * > pendingDeletions [2]
 
uint8_t pendingDeletions_GC
 
uint8_t pendingDeletions_SO
 
std::mutex pendingDeletionsMutex
 
uint32_t GCPeriod
 
GarbageCollectorGC
 

Private Attributes

std::mutex moduleMutex
 control access to spaces, modules descriptors and projections in processControlMessages. More...
 
std::mutex spaceMutex
 
std::mutex projectionMutex
 

Friends

class RecvThread
 
class PushThread
 
class XThread
 
class Executing
 
class GarbageCollector
 

Constructor & Destructor Documentation

mBrane::Messaging::Messaging ( )
protected
mBrane::Messaging::~Messaging ( )
protected

Member Function Documentation

bool mBrane::Messaging::loadConfig ( XMLNode n)
protected

Here is the call graph for this function:

Here is the caller graph for this function:

void mBrane::Messaging::processControlMessage ( _Payload p)
protected

Here is the call graph for this function:

Here is the caller graph for this function:

void mBrane::Messaging::pushJobs ( _Payload p,
NodeEntry e 
)
inlineprotected

Here is the call graph for this function:

Here is the caller graph for this function:

void mBrane::Messaging::pushJobs ( _Payload p)
inlineprotected

Here is the call graph for this function:

void mBrane::Messaging::send ( _Payload message,
module::Node::Network  network 
)
protected

Here is the caller graph for this function:

void mBrane::Messaging::send ( _Payload message,
uint8_t  nodeID,
module::Node::Network  network 
)
protected
void mBrane::Messaging::SendMessages ( Node node)
staticprotected

Here is the call graph for this function:

Here is the caller graph for this function:

void mBrane::Messaging::shutdown ( )
protected

Here is the caller graph for this function:

void mBrane::Messaging::start ( )
protected

Here is the call graph for this function:

Here is the caller graph for this function:

Friends And Related Function Documentation

friend class Executing
friend
friend class GarbageCollector
friend
friend class PushThread
friend
friend class RecvThread
friend
friend class XThread
friend

Member Data Documentation

UNORDERED_MAP<uint32_t, P<_Payload> > mBrane::Messaging::cache
protected
std::mutex mBrane::Messaging::cacheMutex
protected
std::vector<ConstantEntry> mBrane::Messaging::constants
protected
GarbageCollector* mBrane::Messaging::GC
protected
uint32_t mBrane::Messaging::GCPeriod
protected
PipeNN<Job, JOBS_BLOCK_SIZE> mBrane::Messaging::jobs
protected
std::vector<UNORDERED_SET<uint32_t> > mBrane::Messaging::lookup
protected
Pipe11<P<_Payload>, MESSAGE_INPUT_BLOCK_SIZE> mBrane::Messaging::messageInputQueue
protected
PipeN1<MessageSlot, MESSAGE_OUTPUT_BLOCK_SIZE> mBrane::Messaging::messageOutputQueue
protected
std::mutex mBrane::Messaging::moduleMutex
private

control access to spaces, modules descriptors and projections in processControlMessages.

uint8_t mBrane::Messaging::pendingAck
protected
UNORDERED_SET<_Payload *> mBrane::Messaging::pendingDeletions[2]
protected
uint8_t mBrane::Messaging::pendingDeletions_GC
protected
uint8_t mBrane::Messaging::pendingDeletions_SO
protected
std::mutex mBrane::Messaging::pendingDeletionsMutex
protected
std::mutex mBrane::Messaging::projectionMutex
private
Array<PushThread *, MESSAGE_INPUT_BLOCK_SIZE> mBrane::Messaging::pushThreads
protected
Array<RecvThread *, MESSAGE_INPUT_BLOCK_SIZE> mBrane::Messaging::recvThreads
protected
std::thread mBrane::Messaging::sendThread
protected
std::mutex mBrane::Messaging::spaceMutex
private

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