5 #ifndef LODESTAR_PROTOMSGOUTBLOCK_HPP
6 #define LODESTAR_PROTOMSGOUTBLOCK_HPP
8 #include "Lodestar/blocks/Block.hpp"
9 #include <Lodestar/io/NanopbWrapper.hpp>
14 template<
typename TType,
bool BEncrypt = false>
18 ::std::tuple<pb_ostream_t *>,
19 ::std::tuple<pb_ostream_t *>
25 ::std::tuple<pb_ostream_t *>,
26 ::std::tuple<pb_ostream_t *>
34 typename ::std::tuple_element<0, typename Base::Params>::type &
37 return this->
template p<0>();
40 const typename ::std::tuple_element<0, typename Base::Params>::type &
43 return this->
template p<0>();
49 info.encrypted = BEncrypt;
50 info.slot = this->
template i<0>().connectionPtrs.begin()->slotId;
51 info.id = this->
template i<0>().connectionPtrs.begin()->blockId;
59 this->equation = ::std::bind(
62 ::std::placeholders::_1
66 void triggerFunction(
Base &b)
69 b.template o<0>() = b.template p<0>();
74 template<
typename TType>
79 directFeedthrough =
false
91 static const ::std::array<::std::string, kIns> inTypes;
92 static const ::std::array<::std::string, kOuts> outTypes;
93 static const ::std::array<::std::string, kPars> parTypes;
95 static const ::std::array<::std::string, 1> templateTypes;
98 template<
typename TType>
100 {demangle(
typeid(TType).name())};
102 template<
typename TType>
103 const ::std::array<::std::string, BlockTraits<std::ProtoMsgOutBlock<TType>>::kOuts> BlockTraits<std::ProtoMsgOutBlock<TType>>::outTypes =
104 {demangle(
typeid(pb_ostream_t *).name())};
106 template<
typename TType>
107 const ::std::array<::std::string, BlockTraits<std::ProtoMsgOutBlock<TType>>::kPars> BlockTraits<std::ProtoMsgOutBlock<TType>>::parTypes =
108 {demangle(
typeid(pb_ostream_t *).name())};
110 template<
typename TType>
111 const ::std::array<::std::string, 1> BlockTraits<std::ProtoMsgOutBlock<TType>>::templateTypes =
112 {demangle(
typeid(pb_ostream_t *).name())};
116 #endif //LODESTAR_PROTOMSGOUTBLOCK_HPP