3#include "../../exception.hpp"
4#include "../../global.hpp"
5#include "../../size_2d.hpp"
6#include "../../utilities/system_info.hpp"
7#include "../logical_network_interface.hpp"
9#include "../../driver/driver.hpp"
10#include "../../driver/flow_set_pool.hpp"
11#include "../../driver/gendc_descriptor.hpp"
12#include "../_decl/decl_server_base.hpp"
13#include "../gevserver.hpp"
14#include "../../pfnc_format.hpp"
21 inline HandleGuard<GevServer::ServerGev3>::HandleGuard(
void *handle) noexcept
22 : HandleGuard<GevServer::ServerGev3>(handle, [](
void *handle) { CVB_CALL_CAPI(
ReleaseObject(handle)); })
31 class ServerGev3 :
public ServerBase
34 using GuardType = HandleGuard<ServerGev3>;
62 void *
Handle() const noexcept
override
64 return handle_.Handle();
67 ServerGev3(HandleGuard<ServerGev3> &&guard, ProtectedTag)
69 , handle_(std::move(guard))
70 , registeredPoolSize_{0}
71 , registeredFlowSetInfo_{}
108 mutable Internal::AsyncRef<
GevServer::StreamGev3> gsStream_;
109 std::vector<
FlowInfo> registeredFlowSetInfo_;
110 size_t registeredPoolSize_;
111 HandleGuard<ServerGev3> handle_;
Class for a GenDC container descriptor.
Definition decl_gendc_descriptor.hpp:692
Represents one acquisition stream of a device.
Definition decl_stream.hpp:33
Base class for a GigE Vision server object.
Definition decl_server_base.hpp:39
Specialized server class for GigE Vision 3.0 servers.
Definition decl_server_gev3.hpp:32
size_t GetRegisteredFlowSetPoolSize() const noexcept
Gets the size of the registered flow set pool.
Definition detail_server_gev3.hpp:22
std::vector< FlowInfo > GetRegisteredFlowSetInfo() const noexcept
Gets the registered flow set information about the count and size of the flows.
Definition detail_server_gev3.hpp:27
static ServerGev3Ptr FromHandle(HandleGuard< ServerGev3 > &&guard)
Creates a shared pointer to a ServerGev3 instance from a given handle guard.
Definition decl_server_gev3.hpp:55
void RegisterFlowSetPool(const GenDcDescriptor &descriptor, FlowSetPoolPtr flowSetPool, std::function< void()> onFlowSetRelease)
Registers a flow set pool with the server. Uses a callback that will be called when the flow set pool...
Definition detail_server_gev3.hpp:32
void * Handle() const noexcept override
Returns the internal handle of this server object.
Definition decl_server_gev3.hpp:62
static ServerGev3Ptr Create(GevServer::DriverType driverType)
Creates a new ServerGev3 object with a client configurable payload in the format of GenDC.
Definition detail_server_gev3.hpp:14
cvbbool_t ReleaseObject(OBJ &Object)
std::shared_ptr< FlowSetPool > FlowSetPoolPtr
Convenience shared pointer for FlowSetPool.
Definition driver.hpp:33
Namespace for GevServer based device configuration.
Definition decl_int_swiss_knife_node.hpp:11
DriverType
GigE Vision driver to use for communication and streaming.
Definition gevserver.hpp:167
std::shared_ptr< StreamGev3 > StreamGev3Ptr
Convenience shared pointer for StreamGev3.
Definition gevserver.hpp:68
std::shared_ptr< ServerGev3 > ServerGev3Ptr
Convenience shared pointer for a version 3 GevServer.
Definition gevserver.hpp:48
Root namespace for the Image Manager interface.
Definition version.hpp:11
Struct handling the size, alignment and number of flows per set.
Definition flow_set_pool.hpp:19