25 #ifndef ED247_CHANNEL_H_ 26 #define ED247_CHANNEL_H_ 28 #include "ed247_xml.h" 29 #include "ed247_cominterface.h" 30 #include "ed247_stream.h" 31 #include "ed247_frame_header.h" 44 using map_uid_stream_t = std::unordered_map<ed247_uid_t, stream_ptr_t>;
53 const std::string& get_name()
const {
return _configuration->_name; }
54 const std::string& get_comment()
const {
return _configuration->_comment; }
55 ed247_standard_t get_frame_standard_revision()
const {
return _configuration->_frame_standard_revision; }
58 void set_user_data(
void *user_data) { _user_data = user_data; }
59 void get_user_data(
void **user_data) { *user_data = _user_data; }
62 stream_list_t find_streams(std::string strregex);
63 stream_ptr_t get_stream(std::string str_name);
69 void encode_and_send();
73 bool decode(
const char* frame, uint32_t frame_size);
79 map_uid_stream_t _streams;
84 std::unique_ptr<ed247_internal_stream_list_t> _client_streams;
89 typedef std::shared_ptr<Channel> channel_ptr_t;
90 typedef std::vector<channel_ptr_t> channel_list_t;
91 typedef std::unordered_map<std::string, channel_ptr_t> channel_map_t;
101 channel_ptr_t create(
const xml::Channel* configuration);
103 channel_ptr_t
get(std::string str_name);
104 channel_list_t find(std::string str_regex);
106 channel_map_t& channels() {
return _channels; }
107 uint32_t size()
const {
return _channels.size(); }
111 channel_map_t _channels;
Definition: ed247_channel.h:41
Definition: ed247_sample.h:14
Definition: ed247_channel.h:93
ed247_standard_t
ED247 Standard revisions.
Definition: ed247.h:104
Definition: ed247_channel.h:34
Definition: ed247_stream.h:34
Definition: ed247_context.h:36
Definition: ed247_xml.h:252
Definition: ed247_channel.cpp:37
Definition: ed247_channel.h:35
Definition: ed247_cominterface.h:171