|
iLab Neuromorphic Robotics Toolkit
0.1
|
#include <nrt/Core/Typing/Demangle.H>
// ////////////////////////////////////////////////////////////////////////
// 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()) |