#ifndef VIRTUALENDPOINT_H #define VIRTUALENDPOINT_H namespace icinga { struct I2_ICINGA_API NewRequestEventArgs : public EventArgs { typedef shared_ptr Ptr; typedef weak_ptr WeakPtr; Endpoint::Ptr Sender; JsonRpcRequest Request; }; class I2_ICINGA_API VirtualEndpoint : public Endpoint { private: map< string, Event > m_MethodHandlers; public: typedef shared_ptr Ptr; typedef weak_ptr WeakPtr; void RegisterMethodHandler(string method, function callback); void UnregisterMethodHandler(string method, function callback); virtual bool IsLocal(void) const; virtual void ProcessRequest(Endpoint::Ptr sender, const JsonRpcRequest& message); virtual void ProcessResponse(Endpoint::Ptr sender, const JsonRpcResponse& message); }; } #endif /* VIRTUALENDPOINT_H */