hmbdc
simplify-high-performance-messaging-programming
 All Classes Namespaces Functions Variables Friends Pages
Namespaces | Classes | Functions
hmbdc::app Namespace Reference

Namespaces

 context_property
 
 netmap
 
 tcpcast
 
 udpcast
 
 utils
 

Classes

class  BlockingContext
 A BlockingContext is like a media object that facilitates the communications for the Clients that it is holding. Each Client is powered by a single OS thread. a Client needs to be started once and only once to a single BlockingContext before any messages sending happens - typically in the initialization stage in main(), undefined behavior otherwise. More...
 
class  single_thread_powered_client
 a trait class, if a Client can only run on a single specific thread in Pool, derive the Client from it, hmbdc will check to ensure that is the case More...
 
class  Client
 A Client represents a thread of execution/a task. The execution is managed by a Context. a Client object could participate in message dispatching as the receiver of specifed message types. More...
 
class  ClientWithStash
 It behaves like Client, with the extra capability of storing messages received and processing them later - it is used when the user wants to process messages in a specific order other than FIFO. If a message is deemed to come too early, just stash it and move on (to the next message). The stashed messages will be delivered later at the user's choice - see the added stash and openStash functions. The stash mechanism can enforce any particular order of message processing regarless of the order of message being sent. More...
 
class  Context
 A Context is like a media object that facilitates the communications for the Clients that it is holding. a Client can only be added to (or started within) once to a single Context, undefined behavior otherwise. the communication model is determined by the context_property by default it is in the nature of broadcast fashion within local process indicating by broadcast<> More...
 
struct  LogTrailer
 
struct  EmptyLogTrailer
 
struct  SyncLogger
 a very straightforward logger that works synchronisely. More...
 
class  hasTag
 each message type has 16 bit tag More...
 
class  MessageHead
 
struct  MessageWrap
 
struct  Flush
 
struct  LoggingT
 
class  JustBytes
 A special type of message only used on the receiving side. More...
 
struct  Trace
 
struct  MessageWrap< JustBytes >
 
class  hasMemoryAttachment
 if a specific hmbdc network transport (for example tcpcast, rmcast, and rnetmap) supports message with memory attachment, the message needs to be derived from this base - as the FIRST base, so it can be handled properly by the hmbdc network transport when sending and receiving it More...
 
struct  StartMemorySegTrain
 
struct  MemorySeg
 
class  LastSystemMessage
 hmbdc system messages use tag values less than this one More...
 
struct  REQUEST
 template that convert a regular message to be a request used in request / reply sync messaging - see RequestReply.hpp for details More...
 
struct  REPLY
 template that convert a regular message to be a reply used in request / reply sync messaging - see RequestReply.hpp for details More...
 
struct  REPLY< JustBytes >
 
struct  MessageWrap< REPLY< JustBytes > >
 
struct  RequestReplySender
 synchronous request reply interface for the Network Sender More...
 
struct  StuckClientPurger
 

Functions

template<RequestC RequestT, typename Sender , typename ReplyContext , typename ReplyHandler >
bool requestReply (RequestT &&request, Sender &sender, ReplyContext &ctx, ReplyHandler &replyHandler, time::Duration timeout)
 not an interface exposed to end user
 

Detailed Description

hmbdc's application layer where API resides