Classes | Public Types | Public Member Functions | List of all members
WireCell::shared_queued< T< Types... > > Struct Template Reference

#include <TupleHelpers.h>

Classes

struct  WrappedShared
 

Public Types

typedef T< Types... > tuple_type
 
typedef std::deque< boost::any > any_queue_type
 
typedef WrappedShared< std::deque >::type shared_queued_tuple_type
 

Public Member Functions

template<typename Element >
any_queue_type as_any_queue_convert (const std::deque< std::shared_ptr< const Element > > &in)
 
template<std::size_t... Indices>
std::vector< any_queue_typeas_any_queue_impl (const shared_queued_tuple_type &toq, std::index_sequence< Indices... >)
 
std::vector< any_queue_typeas_any_queue (const shared_queued_tuple_type &toq)
 
template<typename Type >
std::deque< std::shared_ptr< const Type > > from_any_queue_convert (const any_queue_type &aq)
 
template<std::size_t... Indices>
shared_queued_tuple_type from_any_queue_impl (const std::vector< any_queue_type > &vaq, std::index_sequence< Indices... >)
 
shared_queued_tuple_type from_any_queue (const std::vector< any_queue_type > &vaq)
 

Detailed Description

template<template< typename... > class T, typename... Types>
struct WireCell::shared_queued< T< Types... > >

Definition at line 135 of file TupleHelpers.h.

Member Typedef Documentation

template<template< typename... > class T, typename... Types>
typedef std::deque<boost::any> WireCell::shared_queued< T< Types... > >::any_queue_type

Definition at line 145 of file TupleHelpers.h.

template<template< typename... > class T, typename... Types>
typedef WrappedShared<std::deque>::type WireCell::shared_queued< T< Types... > >::shared_queued_tuple_type

Definition at line 148 of file TupleHelpers.h.

template<template< typename... > class T, typename... Types>
typedef T<Types...> WireCell::shared_queued< T< Types... > >::tuple_type

Definition at line 137 of file TupleHelpers.h.

Member Function Documentation

template<template< typename... > class T, typename... Types>
std::vector< any_queue_type > WireCell::shared_queued< T< Types... > >::as_any_queue ( const shared_queued_tuple_type toq)
inline

Convert a tuple of queues of types to a vector of queues of boost::any.

typedef typename tuple_helper<IFDCS>::Wrapped<std::deque>::type IFDCS_queues; IFDCS_queues qs; auto any_q = as_any_queue(qs); cerr << "First element from each queue:\n"; cerr << any_cast<int>(any_q[0][0]) << endl; cerr << any_cast<float>(any_q[1][0]) << endl; cerr << any_cast<double>(any_q[2][0]) << endl; cerr << any_cast<char>(any_q[3][0]) << endl; cerr << any_cast<std::string>(any_q[4][0]) << endl;

Definition at line 175 of file TupleHelpers.h.

175  {
177  }
const GenericPointer< typename T::ValueType > T2 value
Definition: pointer.h:1225
std::vector< any_queue_type > as_any_queue_impl(const shared_queued_tuple_type &toq, std::index_sequence< Indices... >)
Definition: TupleHelpers.h:158
template<template< typename... > class T, typename... Types>
template<typename Element >
any_queue_type WireCell::shared_queued< T< Types... > >::as_any_queue_convert ( const std::deque< std::shared_ptr< const Element > > &  in)
inline

Definition at line 152 of file TupleHelpers.h.

152  {
153  return any_queue_type(in.begin(), in.end());
154  }
std::deque< boost::any > any_queue_type
Definition: TupleHelpers.h:145
template<template< typename... > class T, typename... Types>
template<std::size_t... Indices>
std::vector< any_queue_type > WireCell::shared_queued< T< Types... > >::as_any_queue_impl ( const shared_queued_tuple_type toq,
std::index_sequence< Indices... >   
)
inline

Definition at line 158 of file TupleHelpers.h.

159  {
160  return { as_any_queue_convert(std::get<Indices>(toq))... };
161  }
any_queue_type as_any_queue_convert(const std::deque< std::shared_ptr< const Element > > &in)
Definition: TupleHelpers.h:152
template<template< typename... > class T, typename... Types>
shared_queued_tuple_type WireCell::shared_queued< T< Types... > >::from_any_queue ( const std::vector< any_queue_type > &  vaq)
inline

Convert a vector of queues of any to a tuple of queues of type.

Definition at line 199 of file TupleHelpers.h.

199  {
201  }
shared_queued_tuple_type from_any_queue_impl(const std::vector< any_queue_type > &vaq, std::index_sequence< Indices... >)
Definition: TupleHelpers.h:193
const GenericPointer< typename T::ValueType > T2 value
Definition: pointer.h:1225
template<template< typename... > class T, typename... Types>
template<typename Type >
std::deque< std::shared_ptr<const Type> > WireCell::shared_queued< T< Types... > >::from_any_queue_convert ( const any_queue_type aq)
inline

Definition at line 183 of file TupleHelpers.h.

183  {
184  std::deque< std::shared_ptr<const Type> > ret;
185  for (auto a : aq) {
186  ret.push_back(boost::any_cast< std::shared_ptr<const Type> >(a));
187  }
188  return ret;
189  }
const GenericPointer< typename T::ValueType > T2 T::AllocatorType & a
Definition: pointer.h:1124
template<template< typename... > class T, typename... Types>
template<std::size_t... Indices>
shared_queued_tuple_type WireCell::shared_queued< T< Types... > >::from_any_queue_impl ( const std::vector< any_queue_type > &  vaq,
std::index_sequence< Indices... >   
)
inline

Definition at line 193 of file TupleHelpers.h.

193  {
194  return std::make_tuple(from_any_queue_convert<Types>(vaq[Indices])...);
195  }

The documentation for this struct was generated from the following file: