Fogotten objects.

This commit is contained in:
Brad Arant 2019-02-16 13:08:24 -08:00
parent 2cb1e3e2f2
commit 8479dfe6a2
4 changed files with 114 additions and 0 deletions

21
Service.cpp Normal file
View File

@ -0,0 +1,21 @@
#include "Service.h"
#include "TCPServerSocket.h"
#include "Exception.h"
namespace core {
Service::Service(TCPServerSocket &server) : server(server) {}
void Service::removeFromSessionList(Session *session) {
std::vector<Session *>::iterator cursor;
for(cursor = sessions.begin(); cursor < sessions.end(); ++cursor)
if(*cursor == session)
sessions.erase(cursor);
}
void Service::sessionErrorHandler(std::string errorString, Session *session) {
throw Exception(errorString);
}
}

60
Service.h Normal file
View File

@ -0,0 +1,60 @@
#ifndef __Service_h__
#define __Service_h__
#include "Object.h"
#include "CommandList.h"
namespace core {
class TCPServerSocket;
///
/// Service
///
/// The Service object is instantiated as a single object upon construction
/// of the parent TCPServerSocket and is provided as a parameter whenever
/// a new Session object is created. It provides server level services to
/// Command handlers.
///
class Service : public Object {
public:
///
/// Use this constructor to create a new Service object.
///
/// @param server A reference to the parent server creating the object.
///
Service(TCPServerSocket &server);
void removeFromSessionList(Session *session);
virtual void sessionErrorHandler(std::string errorString, Session *session);
///
/// The list of sessions that are currently open and being maintained by this object.
///
std::vector<Session *> sessions;
///
/// The server that is associated to this Service object. This provides access to the
/// server values and methods through the Service object which behaves as an interface.
///
TCPServerSocket &server;
///
/// The commands object is a CommandList and is used to store Command objects to be
/// parsed and run as data comes into the session.
///
CommandList commands;
};
}
#endif

12
TLSService.cpp Normal file
View File

@ -0,0 +1,12 @@
#include "TLSService.h"
namespace core {
TLSService::TLSService(TLSServerSocket &server) : Service(server) {
}
}

21
TLSService.h Normal file
View File

@ -0,0 +1,21 @@
#ifndef __TLSService_h__
#define __TLSService_h__
#include "includes"
#include "Service.h"
#include "TLSServerSocket.h"
namespace core {
class TLSService : public Service {
public:
TLSService(TLSServerSocket &server);
SSL_CTX *ctx;
};
}
#endif