IRSOL
C++ code implementing socket server for interacting with Baumer camera.
irsol::server::handlers::AssignmentFrameRateHandler Class Reference

Handler for assignment of the frame rate parameter. More...

#include <assignment_frame_rate.hpp>

Inheritance diagram for irsol::server::handlers::AssignmentFrameRateHandler:
irsol::server::handlers::internal::HandlerBase< T, >

Public Member Functions

 AssignmentFrameRateHandler (std::shared_ptr< Context > ctx)
 Constructs the AssignmentFrameRateHandler.
 
- Public Member Functions inherited from irsol::server::handlers::internal::HandlerBase< T, >
virtual std::vector< out_message_toperator() (const irsol::types::client_id_t &clientId, T &&message)
 Invokes the handler for a given client and message.
 

Protected Member Functions

std::vector< out_message_tprocess (std::shared_ptr< irsol::server::ClientSession > session, protocol::Assignment &&message) final override
 Processes an assignment message to set the frame rate.
 
- Protected Member Functions inherited from irsol::server::handlers::internal::HandlerBase< T, >
 HandlerBase (std::shared_ptr< Context > ctx)
 Constructs the handler base.
 
virtual std::vector< out_message_tprocess (std::shared_ptr< irsol::server::ClientSession > session, T &&message)=0
 Processes the protocol message for the given session.
 

Additional Inherited Members

- Protected Attributes inherited from irsol::server::handlers::internal::HandlerBase< T, >
std::shared_ptr< Contextctx
 Handler context (provides access to app and utilities).
 

Detailed Description

Handler for assignment of the frame rate parameter.

Processes assignment messages to set the frame rate for frame collection in a client session.

Definition at line 24 of file assignment_frame_rate.hpp.

Constructor & Destructor Documentation

◆ AssignmentFrameRateHandler()

irsol::server::handlers::AssignmentFrameRateHandler::AssignmentFrameRateHandler ( std::shared_ptr< Context ctx)

Constructs the AssignmentFrameRateHandler.

Parameters
ctxHandler context.

Definition at line 9 of file assignment_frame_rate.cpp.

11{}
std::shared_ptr< Context > ctx
Handler context (provides access to app and utilities).
Definition base.hpp:81
internal::HandlerBase< protocol::Assignment > AssignmentHandler
Handler type for assignment messages.
Definition base.hpp:88

Member Function Documentation

◆ process()

std::vector< out_message_t > irsol::server::handlers::AssignmentFrameRateHandler::process ( std::shared_ptr< irsol::server::ClientSession session,
protocol::Assignment &&  message 
)
finaloverrideprotected

Processes an assignment message to set the frame rate.

Parameters
sessionThe client session.
messageThe assignment message.
Returns
Vector of outbound messages (success or error).

Definition at line 14 of file assignment_frame_rate.cpp.

17{
18 auto& frameListeningState = session->userData().frameListeningState;
19 if(frameListeningState.running()) {
21 session->id(), "Session is already listening to frames. Cannot set a frameRate.");
22 std::vector<out_message_t> result;
24 message, "Session is already listening to frames. Cannot set a frameRate."));
25 return result;
26 }
27 const double frameRate = irsol::utils::toDouble(message.value);
28 if(frameRate <= 0) {
29 IRSOL_NAMED_LOG_WARN(session->id(), "frameRate ({}) must be positive.", frameRate);
30 std::vector<out_message_t> result;
31 result.emplace_back(irsol::protocol::Error::from(message, "frameRate must be positive."));
32 return result;
33 }
34 IRSOL_NAMED_LOG_INFO(session->id(), "Setting 'frameRate' to {}", frameRate);
35
36 frameListeningState.gisParams.frameRate = frameRate;
37 std::vector<out_message_t> result;
39 return result;
40}
#define IRSOL_NAMED_LOG_INFO(name,...)
Logs an info-level message using a named logger.
Definition logging.hpp:176
#define IRSOL_NAMED_LOG_WARN(name,...)
Logs a warning-level message using a named logger.
Definition logging.hpp:178
constexpr auto makeHandler(std::shared_ptr< Context > ctx, Args &&... args)
Constructs a handler instance of the given type.
Definition factory.hpp:28
double toDouble(const irsol::types::protocol_value_t &x)
Converts a protocol value to a double.
Definition utils.hpp:55
static Error from(const T &msg, const std::string &description)
Creates an error from a specific incoming message type.
Definition error.hpp:63
static Success from(const Assignment &msg, std::optional< irsol::types::protocol_value_t > overrideValue=std::nullopt)
Creates a success message from an Assignment.
Definition success.hpp:75
auto result

The documentation for this class was generated from the following files: