#include <vector>
#include <string>
-#include <dpl/exception.h>
+#include <sys/types.h>
+#include <dpl/exception.h>
#include <generic-event.h>
+#include <dpl/raw-buffer.h>
+#include <ckm/ckm-type.h>
extern "C" {
struct msghdr;
} // extern "C"
-namespace CentralKeyManager {
+namespace CKM {
typedef int InterfaceID;
+struct Credentials {
+ Credentials() : clientUid(0) {}
+ Credentials(uid_t socketUid, const Label & socketLabel)
+ : clientUid(socketUid), smackLabel(socketLabel) {}
+ uid_t clientUid;
+ Label smackLabel;
+};
+
struct ConnectionID {
int sock; // This is decriptor used for connection
int counter; // Unique handler per socket
}
};
-typedef std::vector<unsigned char> RawBuffer;
-
struct GenericSocketManager;
struct GenericSocketService {
- typedef std::string SmackLabel;
typedef std::string ServiceHandlerPath;
struct ServiceDescription {
ServiceDescription(const char *path,
, useSendMsg(useSendMsg)
{}
- SmackLabel smackLabel; // Smack label for socket
+ Label smackLabel; // Smack label for socket
InterfaceID interfaceID; // All data from serviceHandlerPath will be marked with this interfaceHandler
ServiceHandlerPath serviceHandlerPath; // Path to file
bool useSendMsg;
struct AcceptEvent : public GenericEvent {
ConnectionID connectionID;
InterfaceID interfaceID;
+ Credentials credentials;
};
struct WriteEvent : public GenericEvent {
virtual void Event(const ReadEvent &event) = 0;
virtual void Event(const CloseEvent &event) = 0;
+ virtual void Start() = 0;
+ virtual void Stop() = 0;
+
GenericSocketService() : m_serviceManager(NULL) {}
virtual ~GenericSocketService(){}
protected:
virtual ~GenericSocketManager(){}
};
-} // namespace CentralKeyManager
+} // namespace CKM
#endif // _CENT_KEY_MNG_GENERIC_SERVICE_MANAGER_