3#include "../../_cexports/c_gev_server.h"
4#include "../_decl/decl_server_gev3.hpp"
5#include "../_decl/decl_stream_gev3.hpp"
6#include "../../driver/flow_set_pool.hpp"
7#include "../../driver/gendc_descriptor.hpp"
16 auto server = Internal::DoResCallShareOut<ServerGev3>([&](
void *&handle) {
17 return CVB_CALL_CAPI(CVGSCreateGevServer3(
static_cast<CExports::TDriver
>(driverType), handle));
24 return registeredPoolSize_;
29 return registeredFlowSetInfo_;
41 pool->SetUserCallback(userCallback);
42 CVB_CALL_CAPI_CHECKED(CVGSServerRegisterFlowSetPool(
43 Handle(),
reinterpret_cast<CExports::CVDGNDCDESCRIPTORDATA *
>(descriptor.
Handle()),
44 reinterpret_cast<CExports::CVDFlowSet *
>(pool->ToNativeStruct().data()), pool->PoolSize(),
45 pool->OnReleaseCallback, &*pool));
46 registeredPoolSize_ = pool->PoolSize();
47 registeredFlowSetInfo_ = pool->FlowSetInfo();
48 pool->SetReleaseThis(pool);
54 return gsStream_.AtomicGet([&]() {
Class for a GenDC container descriptor.
Definition decl_gendc_descriptor.hpp:692
void * Handle() const noexcept
Return the Handle to the internal resource.
Definition detail_gendc_descriptor.hpp:665
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
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
StreamGev3Ptr Stream() const
Gets the Cvb::GevServer::StreamGev3 for sending GenDC data.
Definition detail_server_gev3.hpp:51
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
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
T const_pointer_cast(T... args)