FARGOS/VISTA Object Management Environment Core  ..
FARGOS/VISTA Object Management Environment Core Table of Contents
HTTPembeddedServer< ACCEPT_CLASS, USER_CLASS > Class Template Reference

Templatized embedded HTTP server interface; realizes a complete implementation of HTTPembeddedServerBase. More...

#include <HTTPembeddedServer.hpp>

+ Inheritance diagram for HTTPembeddedServer< ACCEPT_CLASS, USER_CLASS >:

Public Member Functions

 HTTPembeddedServer (uint16_t port, USER_CLASS *extraData=0, const char *useServerName=0, uint32_t useBfrSize=0, uint16_t maxEventLen=0)
 
virtual ~HTTPembeddedServer ()
 
virtual HTTP_SessionRecordacceptNewConnection (IO_Processor *io, CircularBufferManager *mgr, const GenericSocketAddress *from, void *extraData)
 
USER_CLASS * getUserData () const
 Returns the user-specific data as a typed value. More...
 
- Public Member Functions inherited from HTTPembeddedServerBase
 HTTPembeddedServerBase (uint16_t port, void *extraData=nullptr, const char *useServerName=nullptr, uint32_t useBfrSize=0, uint16_t maxEventLength=0)
 Configures the HTTP server for listening on the indicated port. More...
 
virtual ~HTTPembeddedServerBase ()
 
void setBufferSize (uint32_t bfrSize)
 Alter buffer size used for new accepted client connections. More...
 
void setHTTPeventLength (uint32_t maxLen)
 Alter maximum length of an HTTP event used for new accepted connections. More...
 
const char * getServerName () const
 Returns the name associated with the HTTP server. More...
 
int startHTTPlisten ()
 Start the HTTP server. More...
 
int stopHTTPlisten (const char *reason)
 Stop the HTTP server. More...
 
int waitForHTTPstop ()
 Wait for server to cease operations. More...
 

Additional Inherited Members

- Public Attributes inherited from HTTPembeddedServerBase
void * userData
 
OS_SOCKET_TYPE listenDescriptor
 
uint32_t bufferSize
 
uint16_t maxHTTPeventLength
 
uint16_t listenPort
 
bool stopAccepting
 
bool listenActive
 
- Static Protected Member Functions inherited from HTTPembeddedServerBase
static int readHTTPstream (SharedBufferAllocRecord *rec, IO_Processor *controller)
 
static void * startHTTPacceptThread (void *arg)
 
- Protected Attributes inherited from HTTPembeddedServerBase
char serverName [64]
 
pthread_t acceptThreadID
 

Detailed Description

template<typename ACCEPT_CLASS = HTTP_SessionRecord, typename USER_CLASS = void>
class HTTPembeddedServer< ACCEPT_CLASS, USER_CLASS >

Templatized embedded HTTP server interface; realizes a complete implementation of HTTPembeddedServerBase.

ACCEPT_CLASS must be a subclass of HTTP_SessionRecord USER_CLASS is the type of any optional data to be provided to the new session.

Constructor & Destructor Documentation

◆ HTTPembeddedServer()

template<typename ACCEPT_CLASS = HTTP_SessionRecord, typename USER_CLASS = void>
HTTPembeddedServer< ACCEPT_CLASS, USER_CLASS >::HTTPembeddedServer ( uint16_t  port,
USER_CLASS *  extraData = 0,
const char *  useServerName = 0,
uint32_t  useBfrSize = 0,
uint16_t  maxEventLen = 0 
)
inline

◆ ~HTTPembeddedServer()

template<typename ACCEPT_CLASS = HTTP_SessionRecord, typename USER_CLASS = void>
virtual HTTPembeddedServer< ACCEPT_CLASS, USER_CLASS >::~HTTPembeddedServer ( )
inlinevirtual

Member Function Documentation

◆ acceptNewConnection()

template<typename ACCEPT_CLASS = HTTP_SessionRecord, typename USER_CLASS = void>
virtual HTTP_SessionRecord* HTTPembeddedServer< ACCEPT_CLASS, USER_CLASS >::acceptNewConnection ( IO_Processor io,
CircularBufferManager mgr,
const GenericSocketAddress from,
void *  extraData 
)
inlinevirtual

After the HTTP server has accepted an incoming connection, a new session object is created via a call to acceptNewConnection().

NOTE: this is an abstract function which must be implemented by the subclass realizing the server implementation.

Implements HTTPembeddedServerBase.

References io().

◆ getUserData()

template<typename ACCEPT_CLASS = HTTP_SessionRecord, typename USER_CLASS = void>
USER_CLASS* HTTPembeddedServer< ACCEPT_CLASS, USER_CLASS >::getUserData ( ) const
inline

Returns the user-specific data as a typed value.

References HTTPembeddedServerBase::userData.


The documentation for this class was generated from the following file:
Generated: Tue Jul 28 2020 16:03:27
Support Information