iLab Neuromorphic Robotics Toolkit  0.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
nrt::SplitMessagePoster< T > Class Template Reference

#include <nrt/Core/Blackboard/details/ModulePortHelpers.H>

template<class T>
class nrt::SplitMessagePoster< T >

Split message poster, implemented by MessagePoster ports that use splittable CompositeMessage messages.

Definition at line 533 of file ModulePortHelpers.H.

Inheritance diagram for nrt::SplitMessagePoster< T >:
nrt::MessagePosterCore< SimpleMessagePosting< T > > nrt::ModuleBase nrt::MessagePosterCoreBase

Public Member Functions

 SplitMessagePoster ()
 Constructor, will register us with the Blackboard.
 
 SplitMessagePoster (std::string const &mod, std::string const &portna, std::string const &descr)
 Special constructor used only by dynamic ports (Parameter ports, split ports)
 
virtual ~SplitMessagePoster ()
 Destructor, will un-register us with the Blackboard.
 
template<typename TT >
std::enable_if< !std::is_same
< typename
SimpleMessagePosting< T >
::MsgType, TT >::value, void >
::type 
doPostInternalWrapper (std::list< std::future< void > > &fut, std::shared_ptr< TT > msg) const
 Internal split posting of a shared_ptr<T>, we may have to wrap T into an nrt::Message<T>
 
template<typename TT >
std::enable_if< std::is_same
< typename
SimpleMessagePosting< T >
::MsgType, TT >::value, void >
::type 
doPostInternalWrapper (std::list< std::future< void > > &fut, std::shared_ptr< TT > msg) const
 Internal split posting of a shared_ptr<T>, we may have to wrap T into an nrt::Message<T>
 
template<typename TT >
std::enable_if<!std::is_same
< typename
nrt::SimpleMessagePosting< T >
::MsgType, TT >::value, void >
::type 
doPostInternalWrapper (std::list< std::future< void > > &fut, std::shared_ptr< TT > msg) const
 
template<typename TT >
std::enable_if< std::is_same
< typename
nrt::SimpleMessagePosting< T >
::MsgType, TT >::value, void >
::type 
doPostInternalWrapper (std::list< std::future< void > > &fut, std::shared_ptr< TT > msg) const
 
- Public Member Functions inherited from nrt::MessagePosterCore< SimpleMessagePosting< T > >
 MessagePosterCore ()
 Constructor, will register us with the Blackboard.
 
virtual ~MessagePosterCore ()
 Destructor, will un-register us with the Blackboard.
 
virtual void createSubPosters ()
 Create our split sub-ports.
 
virtual void deleteSubPosters ()
 Delete our split sub-ports.
 
virtual bool isSplit () const
 Return true if we currently have split-sub-posters.
 
SimpleMessagePosting< T >::MsgUptr make_message (Args &&...args) const
 Allocate a message and return a unique_ptr to it, to be used by post() More...
 
PostResultsType post (std::unique_ptr< typename SimpleMessagePosting< T >::MsgType > &m) const
 Post a Message to the blackboard. More...
 
PostResultsType post (std::unique_ptr< typename SimpleMessagePosting< T >::MsgType > &&m) const
 Post a Message to the blackboard, move semantics. More...
 
PostResultsType repost (std::shared_ptr< typename SimpleMessagePosting< T >::MsgType const > &m) const
 Re-post a received message. More...
 
void expunge () const
 Expunge from the Blackboard any previously posted message. More...
 
std::string make_connector (std::string const &name, std::string const &namespc, nrt::ConnectorType const type, std::string const &topicfilter, std::string const &topic) const
 Create a connector for this port's Posting type on the master Blackboard. More...
 
- Public Member Functions inherited from nrt::ModuleBase
 ModuleBase ()
 Constructor.
 
virtual ~ModuleBase ()
 Virtual destructor for safe inheritance.
 
ModuleUID const & uid () const
 Get our unique ID which will be used to track Module objects in distributed systems.
 
std::string getNamespace () const
 Get the module's namespace. More...
 
void setLogicalPath (std::string const &lp)
 Set the logical path for this module, as categ/subcat/.../classname. More...
 
std::string getLogicalPath () const
 Get the logical path for this module, as categ/subcat/.../classname.
 
- Public Member Functions inherited from nrt::MessagePosterCoreBase
virtual ~MessagePosterCoreBase ()
 Virtual destructor for safe inheritance.
 
void setTopic (std::string const &topic_)
 Set topic of a MessagePoster port. More...
 

Additional Inherited Members

- Public Types inherited from nrt::MessagePosterCore< SimpleMessagePosting< T > >
typedef SimpleMessagePosting< T > PostingType
 Our underlying posting type (used by Connectors)
 
typedef MessagePosterResults
< SimpleMessagePosting< T > > 
PostResultsType
 Type for the results of a post.
 
- Protected Attributes inherited from nrt::ModuleBase
boost::shared_mutex itsNamespaceMtx
 
std::string namespc
 
std::string logicalpath
 
- Protected Attributes inherited from nrt::MessagePosterCoreBase
std::string msgtype
 Type of Message we post.
 
std::string rettype
 Type of Message we expect back from subscribers.
 
std::string module
 Module which we belong to.
 
std::string portname
 String name for our Posting port class.
 
std::string description
 String human description for our Posting.
 
std::string topic
 Topic into which we post.
 
int sequence
 Poster sequence number within module used for ordering of ports in the GUI.
 
bool splittable
 Can this port be split into sub-ports?
 
std::map< std::string,
RemotePostData > 
remotePostData
 Map of remote post handlers that get triggered when we post a message, one per remote blackboard.
 
std::map< std::string,
RemotePostData > 
remotePostDataAny
 Map of remote post handlers, one per remote blackboard that has subscribers for nrt::AnyMessage version.
 
nrt::blackboard::msgkey messagekey
 Pre-computed key to our Blackboard's internal repository of messages.
 
boost::shared_mutex mtx
 

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