30 #ifndef MONERO_MESSAGES_MAP_H
31 #define MONERO_MESSAGES_MAP_H
34 #include <type_traits>
40 #include <google/protobuf/stubs/common.h>
41 #include <google/protobuf/generated_message_util.h>
42 #include <google/protobuf/repeated_field.h>
43 #include <google/protobuf/extension_set.h>
44 #include <google/protobuf/generated_enum_reflection.h>
45 #include "google/protobuf/descriptor.pb.h"
47 #include "messages/messages.pb.h"
58 static ::google::protobuf::Message *
get_message(
int wire_number);
59 static ::google::protobuf::Message *
get_message(messages::MessageType);
60 static ::google::protobuf::Message *
get_message(
const std::string & msg_name);
65 template<
class t_message=google::protobuf::Message>
67 BOOST_STATIC_ASSERT(boost::is_base_of<google::protobuf::Message, t_message>::value);
72 template<
class t_message=google::protobuf::Message>
74 BOOST_STATIC_ASSERT(boost::is_base_of<google::protobuf::Message, t_message>::value);
79 return std::dynamic_pointer_cast<t_message>(in);
82 template<
class t_message=google::protobuf::Message>
84 BOOST_STATIC_ASSERT(boost::is_base_of<google::protobuf::Message, t_message>::value);
89 return std::static_pointer_cast<t_message>(in);
94 #endif //MONERO_MESSAGES_MAP_H