class sbnd::websocket_pipeline_client
Base classes
Enumerations
  • enum server_states
Methods
class sbnd::socket_pipeline_server
Base classes
Types
  • using counter_type = id_type
  • using id_type = typename interface_address_type::rep_type
  • using interface_socket_address_type = sys::interface_socket_address< ip_address >
  • using interface_address_type = sys::interface_address< ip_address >
  • using ip_address = sys::ipv4_address
Enumerations
  • enum protocols
Methods
  • parent() const -> socket_pipeline *
  • remove(const connection_ptr & self) -> voidvirtual
  • add(const connection_ptr & self) -> voidvirtual
  • handle(const sys::epoll_event & ev) -> voidvirtual
  • protocol() const -> protocols
  • socket() -> sys::socket &
  • socket() const -> const sys::socket &
  • fd() const -> sys::fd_type
  • interface_socket_address() const -> interface_socket_address_type
  • interface_address() const -> const interface_address_type
  • operator=(socket_pipeline_server &&) -> socket_pipeline_server &
  • socket_pipeline_server(socket_pipeline_server &&)
  • operator=(const socket_pipeline_server &) -> socket_pipeline_server &
  • socket_pipeline_server(const socket_pipeline_server &)
  • ~socket_pipeline_server()
  • socket_pipeline_server()
  • socket_pipeline_server(const interface_socket_address_type & ifaddr, protocols protocol = protocols::tcp)explicit
  • socket_pipeline_server(const interface_address_type & ifaddr, sys::port_type port, protocols protocol)explicit
class sbnd::socket_pipeline
Base classes
Types
  • using counter_type = uint32_t
  • using interface_address = sys::interface_address< ip_address >
  • using ip_address = sys::ipv4_address
Structs
  • struct sbnd::socket_pipeline::properties
Methods
  • route(bool rhs) -> void
  • route() const -> bool
  • scheduler() -> socket_pipeline_scheduler &
  • scheduler() const -> const socket_pipeline_scheduler &
  • remove_server(const interface_address & interface_address) -> void
  • clients() const -> const client_table &
  • servers() const -> const server_array &
  • websocket_port(const sys::port_type & rhs) -> void
  • websocket_port() const -> const sys::port_type &
  • tcp_port(const sys::port_type & rhs) -> void
  • tcp_port() const -> const sys::port_type &
  • forward(sbn::kernel_ptr && hdr) -> voidvirtual
  • add(server_ptr server) -> void
  • add_server(const sys::socket_address & rhs, ip_address netmask, socket_pipeline_server::protocols protocol = socket_pipeline_server::protocols::tcp) -> void
  • add_server(const interface_address & rhs) -> void
  • update_clients(const hierarchy_type & hierarchy) -> void
  • stop_client(const sys::socket_address & addr) -> void
  • add_client(const sys::socket_address & addr, const hierarchy_type & hierarchy) -> void
  • operator=(socket_pipeline &&) -> socket_pipeline &
  • operator=(const socket_pipeline &) -> socket_pipeline &
  • socket_pipeline(socket_pipeline &&)
  • socket_pipeline(const socket_pipeline &)
  • ~socket_pipeline()
  • socket_pipeline()
  • socket_pipeline(const properties & p)explicit
class sbnd::socket_pipeline_scheduler
Types
  • using resource_array = sbn::resources::Bindings
  • using file_system_ptr = std::shared_ptr< file_system >
  • using counter_array = std::array< counter_type, 2 >
  • using counter_type = uint32_t
  • using server_array = std::vector< server_ptr >
  • using server_ptr = std::shared_ptr< socket_pipeline_server >
  • using client_iterator = typename client_table::const_iterator
  • using client_table = std::unordered_map< sys::socket_address, client_ptr >
  • using client_ptr = std::shared_ptr< socket_pipeline_client >
Methods
  • template <class ... Args>
    log(const Args &... args) const -> void
  • rebase_counters(const client_table & clients) -> void
  • add_file_system(file_system_ptr ptr) -> void
  • local_resources(const resource_array & rhs) -> void
  • local_resources() const -> const resource_array &
  • local() const -> bool
  • local(bool rhs) -> void
  • schedule(sbn::kernel * k, const client_table & clients, const server_array & servers) -> client_iterator
class sbnd::socket_pipeline_client
Base classes
Derived classes
Types
  • using hierarchy_node_array = std::vector< hierarchy_node >
  • using resource_array = sbn::resources::Bindings
  • using kernel_queue = std::deque< sbn::kernel_ptr >
  • using counter_array = std::array< counter_type, 2 >
  • using counter_type = socket_pipeline::counter_type
Methods
  • write(std::ostream & out) const -> voidvirtual
  • relative_load() const -> sbn::modular_weight_array

    The first element is the number of kernels with the maximum weight sent to the client divided by the number of cluster nodes. Each kernel uses all threads of the client. The second element is the number of kernels sent to the client divided by the number of threads "behind" the client.

  • num_nodes_behind() const -> counter_type
  • num_threads_behind() const -> counter_type

    The number of threads "behind" this node in the hierarchy.

  • receive_foreign_kernel(sbn::kernel_ptr && k) -> voidvirtual
  • match(sbn::kernel::resource_expression & node_filter) -> bool
  • update_counters() -> void
  • nodes_behind(const hierarchy_node_array & rhs) -> void
  • nodes_behind() const -> const hierarchy_node_array &
  • route(bool rhs) -> void
  • route() const -> bool
  • parent() const -> socket_pipeline *
  • activate(const connection_ptr & self) -> voidvirtual
  • deactivate(const connection_ptr & self) -> voidvirtual
  • remove(const connection_ptr &) -> voidvirtual
  • add(const connection_ptr & self) -> voidvirtual
  • socket() -> sys::socket &
  • socket() const -> const sys::socket &
  • flush() -> voidvirtual
  • handle(const sys::epoll_event & event) -> voidvirtual
  • recover() -> void
  • forward(sbn::kernel_ptr k) -> sbn::kernel_ptr
  • socket_pipeline_client(socket_pipeline_client && rhs)
  • socket_pipeline_client(const socket_pipeline_client &)
  • operator=(socket_pipeline_client &&) -> socket_pipeline_client &
  • operator=(const socket_pipeline_client &) -> socket_pipeline_client &
  • socket_pipeline_client()
  • ~socket_pipeline_client()virtual
  • socket_pipeline_client(sys::socket && socket)explicit