mirror of
https://github.com/Icinga/icinga2.git
synced 2026-05-04 17:10:26 -04:00
39 lines
1.1 KiB
C++
39 lines
1.1 KiB
C++
#ifndef CONNECTIONMANAGER_H
|
|
#define CONNECTIONMANAGER_H
|
|
|
|
namespace icinga
|
|
{
|
|
|
|
class ConnectionManager : public Object
|
|
{
|
|
list<JsonRpcServer::Ptr> m_Servers;
|
|
list<JsonRpcClient::Ptr> m_Clients;
|
|
map< string, event<NewMessageEventArgs::Ptr> > m_Methods;
|
|
list<Timer::Ptr> m_ReconnectTimers;
|
|
|
|
int NewClientHandler(NewClientEventArgs::Ptr ncea);
|
|
int CloseClientHandler(EventArgs::Ptr ea);
|
|
int ReconnectClientHandler(TimerEventArgs::Ptr ea);
|
|
int NewMessageHandler(NewMessageEventArgs::Ptr nmea);
|
|
|
|
void RegisterClient(JsonRpcClient::Ptr server);
|
|
void UnregisterClient(JsonRpcClient::Ptr server);
|
|
|
|
void RegisterServer(JsonRpcServer::Ptr server);
|
|
void UnregisterServer(JsonRpcServer::Ptr server);
|
|
public:
|
|
typedef shared_ptr<ConnectionManager> Ptr;
|
|
typedef weak_ptr<ConnectionManager> WeakPtr;
|
|
|
|
void AddListener(unsigned short port);
|
|
void AddConnection(string host, short port);
|
|
|
|
void RegisterMethod(string method, function<int (NewMessageEventArgs::Ptr)> callback);
|
|
void UnregisterMethod(string method, function<int (NewMessageEventArgs::Ptr)> callback);
|
|
|
|
void SendMessage(JsonRpcMessage::Ptr message);
|
|
};
|
|
|
|
}
|
|
|
|
#endif /* CONNECTIONMANAGER_H */
|