4#ifndef _Stroika_Frameworks_Modbus_Server_h_
5#define _Stroika_Frameworks_Modbus_Server_h_ 1
7#include "Stroika/Frameworks/StroikaPreComp.h"
16#include "IModbusService.h"
34 struct ServerOptions {
38 optional<uint16_t> fListenPort;
43 optional<Execution::Logger*> fLogger;
48 optional<IO::Network::Socket::BindFlags> fBindFlags;
53 shared_ptr<Execution::ThreadPool> fThreadPool;
60 optional<bool> fShutdownThreadPool;
79 template <
typename MODBUS_REGISTER_DESCRIPTOR,
typename SRC_TYPE>
80 void SplitSrcAcrossOutputs (
const SRC_TYPE& s,
typename MODBUS_REGISTER_DESCRIPTOR::NameType baseRegister,
Thread::Ptr is a (unsynchronized) smart pointer referencing an internally synchronized std::thread ob...
Execution::Thread::Ptr MakeModbusTCPServerThread(const shared_ptr< IModbusService > &serviceHandler, const ServerOptions &options=ServerOptions{})