src.dualinventive.com/dinet/sec-multi-proxy/include/SecureMultiProxy.h

53 lines
1.5 KiB
C++

#ifndef INCLUDE_SECUREMULTIPROXY_H_
#define INCLUDE_SECUREMULTIPROXY_H_
#include <memory>
#include <atomic>
#include <di/Application.h>
class DeviceFacade;
class LogInterface;
class SubscribeInterface;
class ReqRepInterface;
class TCPConnectionDirector;
class Server;
class SecureMultiProxy : public Di::Application {
public:
void loadDefaultConfig(void);
/** Configure SecureMultiProxy instance */
int init(void);
/**
* get the application name
* @return string with application name
*/
std::string getApplicationName(void);
/**
* get the application version
* @return string with application version
*/
std::string getApplicationVersion(void);
/**
* Run the proxy instance
*/
int run(void);
/** Control running state of proxy */
void stop(void);
private:
std::shared_ptr<DeviceFacade> __deviceFacade; //<! pointer to device facade object
std::shared_ptr<LogInterface> __logInterface; //<! pointer to log interface object
std::shared_ptr<SubscribeInterface> __subscribeInterface; //<! pointer to subscribe interface object
std::shared_ptr<ReqRepInterface> __reqRepInterface; //<! pointer to req rep interface object
std::shared_ptr<TCPConnectionDirector> __tcpConnectionDirector; //<! pointer to TCP connection director object
std::shared_ptr<TcpServer> __tcpServer; //<! pointer to tcp server object
std::shared_ptr<UdpServer> __udpServer; //<! pointer to udp server object
std::atomic_bool __running; //<! boolean to see if the program is running
};
#endif // INCLUDE_SECUREMULTIPROXY_H_