2#include <ossia/detail/string_view.hpp> 
    3#include <ossia/network/base/node.hpp> 
    5#include <ossia/network/base/parameter.hpp> 
    6#include <ossia/network/common/parameter_properties.hpp> 
    7#include <ossia/network/oscquery/detail/typetag.hpp> 
    9#include <boost/mp11/list.hpp> 
   17namespace ossia::oscquery
 
   27constexpr auto osc_ip()
 
   31constexpr auto osc_port()
 
   39constexpr auto ws_port()
 
   43constexpr auto transport()
 
   47constexpr auto attribute_full_path()
 
   52constexpr auto attribute_typetag()
 
   56constexpr auto contents()
 
   61constexpr auto attribute_value()
 
   65constexpr auto attribute_range()
 
   69constexpr auto attribute_clipmode()
 
   73constexpr auto attribute_accessmode()
 
   77constexpr auto attribute_description()
 
   81constexpr auto attribute_tags()
 
   87constexpr auto attribute_unit()
 
   91constexpr auto attribute_refresh_rate()
 
   93  return "REFRESH_RATE";
 
   95constexpr auto attribute_priority()
 
   99constexpr auto attribute_step_size()
 
  103constexpr auto attribute_instance_bounds()
 
  105  return "INSTANCE_BOUNDS";
 
  107constexpr auto attribute_critical()
 
  111constexpr auto attribute_hidden()
 
  115constexpr auto attribute_disabled()
 
  119constexpr auto attribute_extended_type()
 
  121  return "EXTENDED_TYPE";
 
  123constexpr auto attribute_repetition_filter()
 
  125  return "REPETITION_FILTER";
 
  127constexpr auto attribute_default_value()
 
  129  return "DEFAULT_VALUE";
 
  131constexpr auto attribute_app_name()
 
  135constexpr auto attribute_app_version()
 
  137  return "APP_VERSION";
 
  139constexpr auto attribute_app_creator()
 
  141  return "APP_CREATOR";
 
  145constexpr auto command()
 
  154constexpr auto path_added()
 
  158constexpr auto path_removed()
 
  160  return "PATH_REMOVED";
 
  162constexpr auto path_renamed()
 
  164  return "PATH_RENAMED";
 
  166constexpr auto path_changed()
 
  168  return "PATH_CHANGED";
 
  170constexpr auto attributes_changed()
 
  172  return "ATTRIBUTES_CHANGED";
 
  176constexpr auto add_node()
 
  178  constexpr_return(ossia::make_string_view(
"ADD_NODE"));
 
  180constexpr auto remove_node()
 
  182  constexpr_return(ossia::make_string_view(
"REMOVE_NODE"));
 
  184constexpr auto rename_node()
 
  186  constexpr_return(ossia::make_string_view(
"RENAME_NODE"));
 
  188constexpr auto node_name()
 
  190  constexpr_return(ossia::make_string_view(
"NAME"));
 
  192constexpr auto start_osc_streaming()
 
  194  constexpr_return(ossia::make_string_view(
"START_OSC_STREAMING"));
 
  196constexpr auto local_server_port()
 
  198  constexpr_return(ossia::make_string_view(
"LOCAL_SERVER_PORT"));
 
  200constexpr auto local_sender_port()
 
  202  constexpr_return(ossia::make_string_view(
"LOCAL_SENDER_PORT"));
 
  204constexpr auto listen()
 
  206  constexpr_return(ossia::make_string_view(
"LISTEN"));
 
  208constexpr auto ignore()
 
  210  constexpr_return(ossia::make_string_view(
"IGNORE"));
 
  212constexpr auto text_true()
 
  214  constexpr_return(ossia::make_string_view(
"TRUE"));
 
  216constexpr auto text_false()
 
  218  constexpr_return(ossia::make_string_view(
"FALSE"));
 
  220constexpr auto query_value()
 
  222  constexpr_return(ossia::make_string_view(
"?VALUE"));
 
  225struct OSSIA_EXPORT full_path_attribute
 
  227  using type = std::string;
 
  228  static auto text() { 
return detail::attribute_full_path(); }
 
  232struct OSSIA_EXPORT typetag_attribute
 
  234  using type = std::string;
 
  235  static auto text() { 
return ossia::net::text_value_type(); }
 
  238    return oscquery::get_osc_typetag(n);
 
  242    return oscquery::set_osc_typetag(n, t);
 
  246template <
typename Attr>
 
  251struct metadata<full_path_attribute>
 
  253  static constexpr auto key() { 
return detail::attribute_full_path(); }
 
  256struct metadata<typetag_attribute>
 
  258  static constexpr auto key() { 
return detail::attribute_typetag(); }
 
  263struct metadata<net::value_attribute>
 
  265  static constexpr auto key() { 
return detail::attribute_value(); }
 
  268struct metadata<net::domain_attribute>
 
  270  static constexpr auto key() { 
return detail::attribute_range(); }
 
  273struct metadata<net::access_mode_attribute>
 
  275  static constexpr auto key() { 
return detail::attribute_accessmode(); }
 
  278struct metadata<net::bounding_mode_attribute>
 
  280  static constexpr auto key() { 
return detail::attribute_clipmode(); }
 
  283struct metadata<net::unit_attribute>
 
  285  static constexpr auto key() { 
return detail::attribute_unit(); }
 
  288struct metadata<net::default_value_attribute>
 
  290  static constexpr auto key() { 
return detail::attribute_default_value(); }
 
  293struct metadata<net::tags_attribute>
 
  295  static constexpr auto key() { 
return detail::attribute_tags(); }
 
  298struct metadata<net::refresh_rate_attribute>
 
  300  static constexpr auto key() { 
return detail::attribute_refresh_rate(); }
 
  303struct metadata<net::priority_attribute>
 
  305  static constexpr auto key() { 
return detail::attribute_priority(); }
 
  308struct metadata<net::value_step_size_attribute>
 
  310  static constexpr auto key() { 
return detail::attribute_step_size(); }
 
  313struct metadata<net::instance_bounds_attribute>
 
  315  static constexpr auto key() { 
return detail::attribute_instance_bounds(); }
 
  318struct metadata<net::critical_attribute>
 
  320  static constexpr auto key() { 
return detail::attribute_critical(); }
 
  323struct metadata<net::hidden_attribute>
 
  325  static constexpr auto key() { 
return detail::attribute_hidden(); }
 
  328struct metadata<net::disabled_attribute>
 
  330  static constexpr auto key() { 
return detail::attribute_disabled(); }
 
  333struct metadata<net::extended_type_attribute>
 
  335  static constexpr auto key() { 
return detail::attribute_extended_type(); }
 
  338struct metadata<net::description_attribute>
 
  340  static constexpr auto key() { 
return detail::attribute_description(); }
 
  343struct metadata<net::repetition_filter_attribute>
 
  345  static constexpr auto key() { 
return detail::attribute_repetition_filter(); }
 
  348struct metadata<net::app_version_attribute>
 
  350  static constexpr auto key() { 
return detail::attribute_app_version(); }
 
  353struct metadata<net::app_creator_attribute>
 
  355  static constexpr auto key() { 
return detail::attribute_app_creator(); }
 
  358struct metadata<net::app_name_attribute>
 
  360  static constexpr auto key() { 
return detail::attribute_app_name(); }
 
  363using base_attributes = boost::mp11::mp_list<
 
  364    typetag_attribute, net::value_attribute, net::domain_attribute,
 
  365    net::access_mode_attribute, net::bounding_mode_attribute,
 
  366    net::repetition_filter_attribute, net::unit_attribute, net::default_value_attribute>;
 
  368using base_attributes_without_type = boost::mp11::mp_list<
 
  369    net::value_attribute, net::domain_attribute, net::access_mode_attribute,
 
  370    net::bounding_mode_attribute, net::repetition_filter_attribute, net::unit_attribute,
 
  371    net::default_value_attribute>;
 
  373using extended_attributes = boost::mp11::mp_list<
 
  374    net::tags_attribute, net::refresh_rate_attribute, net::priority_attribute,
 
  375    net::value_step_size_attribute, net::instance_bounds_attribute,
 
  376    net::critical_attribute, net::hidden_attribute, net::disabled_attribute,
 
  377    net::extended_type_attribute, net::description_attribute, net::app_name_attribute,
 
  378    net::app_creator_attribute, net::app_version_attribute>;
 
  380using attributes_when_reading = boost::mp11::mp_list<
 
  381    net::domain_attribute, net::access_mode_attribute, net::bounding_mode_attribute,
 
  382    net::repetition_filter_attribute, net::tags_attribute, net::refresh_rate_attribute,
 
  383    net::priority_attribute, net::value_step_size_attribute,
 
  384    net::instance_bounds_attribute, net::critical_attribute, net::hidden_attribute,
 
  385    net::disabled_attribute, net::description_attribute, net::app_name_attribute,
 
  386    net::app_creator_attribute, net::app_version_attribute>;
 
  388using all_attributes = boost::mp11::mp_list<
 
  389    typetag_attribute, net::unit_attribute, net::extended_type_attribute,
 
  391    net::value_attribute, net::default_value_attribute,
 
  393    net::domain_attribute, net::access_mode_attribute, net::bounding_mode_attribute,
 
  394    net::repetition_filter_attribute, net::tags_attribute, net::refresh_rate_attribute,
 
  395    net::priority_attribute, net::value_step_size_attribute,
 
  396    net::instance_bounds_attribute, net::critical_attribute, net::hidden_attribute,
 
  397    net::disabled_attribute, net::description_attribute, net::app_name_attribute,
 
  398    net::app_creator_attribute, net::app_version_attribute>;
 
  400enum class message_type
 
  416using key_map_type = string_view_map<std::string_view>;
 
  419OSSIA_EXPORT 
const key_map_type& ossia_to_oscquery_key();
 
  422OSSIA_EXPORT 
const key_map_type& oscquery_to_ossia_key();
 
  425OSSIA_EXPORT std::optional<std::string_view> ossia_to_oscquery_key(std::string_view);
 
  428OSSIA_EXPORT std::optional<std::string_view> oscquery_to_ossia_key(std::string_view);
 
The node_base class.
Definition node.hpp:48