4 #ifndef NDS2_CLIENT_NDS_CHANNEL_SELECTION_HH
5 #define NDS2_CLIENT_NDS_CHANNEL_SELECTION_HH
9 #include "nds_channel.hh"
10 #include "nds_connection_ptype.hh"
19 std::string filter_trend_from_string(
const std::string& input );
28 channel strip_trend_from_name(
const channel& chan );
32 class channel_selector
35 enum class selection_method
47 explicit channel_selector( std::shared_ptr< conn_p_type > conn )
48 : conn_( std::move( conn ) )
52 channel_selector(
const channel_selector& other ) =
default;
54 channel_selector( channel_selector&& other ) =
default;
57 operator=(
const channel_selector& other ) =
default;
58 channel_selector& operator=( channel_selector&& other ) =
default;
66 const std::string& name,
67 selection_method policy = selection_method::UNIQUE_CHANNEL );
75 std::vector< const NDS::channel* > filter_and_sort_channel_list(
76 NDS::channels_type& input,
77 NDS::channel::channel_type channel_type_mask );
84 channel downselect( NDS::channels_type& input,
85 const std::string& name,
86 NDS::channel::channel_type channel_type_mask,
87 selection_method policy );
89 std::shared_ptr< conn_p_type > conn_;
94 #endif // NDS2_CLIENT_NDS_CHANNEL_SELECTION_HH