Buran Motion Planning Framework
Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
BaseServer Class Referenceabstract

Базовый класс для всех серверов Для реализации сервера, необходимо переопределить две чисто виртуальные функции: processCommand() и onSocketConnected() More...

#include <base_server.h>

Inheritance diagram for BaseServer:
Inheritance graph
[legend]

Public Member Functions

void mainLoop ()
 
virtual void init (int port, int maxClients, int delay)
 
virtual void processCommand (int clientSocket, int command, Json::Value jsonData)=0
 
virtual void onSocketConnected (int clientSocket)=0
 
void processRequests (int clientSocket)
 
void stop ()
 
int acceptNewSocket ()
 
int getServerFd () const
 
const sockaddr_in & getAddress () const
 

Static Public Member Functions

static void initLinuxServerSocket ()
 

Protected Attributes

sem_t _sem
 

Detailed Description

Базовый класс для всех серверов Для реализации сервера, необходимо переопределить две чисто виртуальные функции: processCommand() и onSocketConnected()

Member Function Documentation

◆ acceptNewSocket()

int BaseServer::acceptNewSocket ( )
inline

Непосредственное подключение сокета

Returns
fd нового клиента

◆ getAddress()

const sockaddr_in& BaseServer::getAddress ( ) const
inline

Получить адрес сервера

Returns
объект адреса сервера

◆ getServerFd()

int BaseServer::getServerFd ( ) const
inline

получить fd сервера

Returns
fd сервера

◆ init()

void BaseServer::init ( int  port,
int  maxClients,
int  delay 
)
virtual

Инициализация сервера

Parameters
portпорт
maxClientsмаксимальное число клиентов
delayпауза в микросекундах между итерациями цикла

◆ initLinuxServerSocket()

void BaseServer::initLinuxServerSocket ( )
static

без вызова этого метода отваливается север после отключения клиента

◆ mainLoop()

void BaseServer::mainLoop ( )

главный цикл обработки запросов

◆ onSocketConnected()

virtual void BaseServer::onSocketConnected ( int  clientSocket)
pure virtual

Обработка подключения нового клиента

Parameters
clientSocketfd клиента

Implemented in TrajectoryFindingServer, PathOptimisingServer, and PathFindingServer.

◆ processCommand()

virtual void BaseServer::processCommand ( int  clientSocket,
int  command,
Json::Value  jsonData 
)
pure virtual

Обработка команды от клиента

Parameters
clientSocketfd клиента
commandкод команды
jsonDataданные json

Implemented in TrajectoryFindingServer, PathFindingServer, and PathOptimisingServer.

◆ processRequests()

void BaseServer::processRequests ( int  clientSocket)

Обработка запроса клиента

Parameters
clientSocketfd клиента

◆ stop()

void BaseServer::stop ( )
inline

Остановить сервер

Member Data Documentation

◆ _sem

sem_t BaseServer::_sem
protected

Семафор, синхронизирующий доступ


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