iLab Neuromorphic Robotics Toolkit  0.1
include/nrt/Core/Blackboard/details/MessageImpl.H File Reference

Author:
Randolph Voorhies

License

    // ////////////////////////////////////////////////////////////////////////
    //              The iLab Neuromorphic Robotics Toolkit (NRT)             //
    // Copyright 2010-2012 by the University of Southern California (USC)    //
    //                          and the iLab at USC.                         //
    //                                                                       //
    //                iLab - University of Southern California               //
    //                Hedco Neurociences Building, Room HNB-10               //
    //                    Los Angeles, Ca 90089-2520 - USA                   //
    //                                                                       //
    //      See http://ilab.usc.edu for information about this project.      //
    // ////////////////////////////////////////////////////////////////////////
    // This file is part of The iLab Neuromorphic Robotics Toolkit.          //
    //                                                                       //
    // The iLab Neuromorphic Robotics Toolkit is free software: you can      //
    // redistribute it and/or modify it under the terms of the GNU General   //
    // Public License as published by the Free Software Foundation, either   //
    // version 3 of the License, or (at your option) any later version.      //
    //                                                                       //
    // The iLab Neuromorphic Robotics Toolkit is distributed in the hope     //
    // that it will be useful, but WITHOUT ANY WARRANTY; without even the    //
    // implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR       //
    // PURPOSE.  See the GNU General Public License for more details.        //
    //                                                                       //
    // You should have received a copy of the GNU General Public License     //
    // along with The iLab Neuromorphic Robotics Toolkit.  If not, see       //
    // <http://www.gnu.org/licenses/>.                                       //
    // ////////////////////////////////////////////////////////////////////////
    

Definition in file MessageImpl.H.

Go to the source code of this file.

Functions

this load< I+1 > (ar, version)

Variables

std::enable_if< I
< nrt::CompositeMessage
< Fields...>::msgsize, void >
::typenrt::CompositeMessage
< Fields...>
::createSubPostersInternal(nrt::CompositeMessage
< Fields...>
::SplitPostersTuple &sp,
std::string const &module,
std::string const &descriptor){typedef
typename std::tuple_element< I,
TupleType >::type IType;std::string
const des=descriptor+
'.'+IType::name();std::get< I >
sp).reset(new
nrt::SplitMessagePoster
< typename IType::DataType >
module, des, std::string("Poster
for field ")+des+"
["+IType::description()+
']'));createSubPostersInternal
< I+1 >sp, module, descriptor);}template
< class...Fields >
inlinestd::shared_ptr
< typename
nrt::CompositeMessage
< Fields...>
::SplitPostersTuple >
nrt::CompositeMessage
< Fields...>::createSubPosters(std::string
const &module, std::string
const &descriptor){std::shared_ptr
< SplitPostersTuple > ret(new
SplitPostersTuple);createSubPostersInternal(*ret,
module, descriptor);return ret;}template
< class...Fields > template
< size_t I > inlinetypename
std::enable_if< I==nrt::CompositeMessage
< Fields...>::msgsize, void >
::typenrt::CompositeMessage
< Fields...>::doSplitPost(nrt::CompositeMessage
< Fields...>
::SplitPostersTuple const &sp,
std::list< std::future< void >
> &fut) const {}template
< class...Fields > template
< size_t I > inlinetypename
std::enable_if< I
< nrt::CompositeMessage
< Fields...>::msgsize, void >
::typenrt::CompositeMessage
< Fields...>::doSplitPost(nrt::CompositeMessage
< Fields...>
::SplitPostersTuple const &sp,
std::list< std::future< void >
> &fut) const {typedef
typename std::tuple_element< I,
TupleType >::type IType;std::get
< I >sp)->
doPostInternalWrapper(fut,
IType::FieldType::value_);doSplitPost
< I+1 >sp, fut);}template
< class...Fields > template
< size_t I > inlinetypename
std::enable_if< I==nrt::CompositeMessage
< Fields...>::msgsize, void >
::typenrt::CompositeMessage
< Fields...>
::createSubSubscribersInternal(nrt::CompositeMessage
< Fields...>
::SplitSubscribersTuple &ss,
nrt::MessageSubscriberCoreBase
*parent, std::string const
&module, std::string const
&descriptor){}template
< class...Fields > template
< size_t I > inlinetypename
std::enable_if< I
< nrt::CompositeMessage
< Fields...>::msgsize, void >
::typenrt::CompositeMessage
< Fields...>
::createSubSubscribersInternal(nrt::CompositeMessage
< Fields...>
::SplitSubscribersTuple &ss,
nrt::MessageSubscriberCoreBase
*parent, std::string const
&module, std::string const
&descriptor){typedef typename
std::tuple_element< I,
TupleType >::type IType;std::string
const des=descriptor+
'.'+IType::name();std::get< I >
ss).reset(new
nrt::SplitMessageSubscriber
< typename IType::DataType >
parent, this->IType::value_, I,
module, des, std::string("Subscriber
for field ")+des+"  
save< I+1 > [" + IType::description() + ']')); createSubSubscribersInternal<I + 1>ss, parent, module, descriptor);}template <class ... Fields>std::shared_ptr<typename nrt::CompositeMessage<Fields ...>::SplitSubscribersTuple>nrt::CompositeMessage<Fields ...>::createSubSubscribers(nrt::MessageSubscriberCoreBase * parent, std::string const & module, std::string const & descriptor){ std::shared_ptr<SplitSubscribersTuple> ret(new SplitSubscribersTuple); createSubSubscribersInternal(*ret, parent, module, descriptor); return ret;}template <class ... Fields> template <size_t I, class Archive> inlinetypename std::enable_if<I == nrt::CompositeMessage<Fields ...>::msgsize, void>::typenrt::CompositeMessage<Fields ...>::save(Archive & ar, unsigned int const version) const{ }template <class ... Fields> template <size_t I, class Archive> inlinetypename std::enable_if<I < nrt::CompositeMessage<Fields ...>::msgsize, void>::typenrt::CompositeMessage<Fields ...>::save(Archive & ar, unsigned int const version) const{ typedef typename std::tuple_element<I, TupleType>::type IType; ar << *(this->IType::value_); this->(ar, version)
std::enable_if< I
< nrt::CompositeMessage
< Fields...>::msgsize, void >
::typenrt::CompositeMessage
< Fields...>::load(Archive &ar,
unsigned int const version){typedef
typename std::tuple_element< I,
TupleType >::type IType;this->
IType::value_ 
reset (new typename IType::DataType())
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines