TDME2  1.9.200
KernelEventMechanism.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <tdme/tdme.h>
8 
12 
13 /**
14  * Interface to kernel event mechanismns
15  * @author Andreas Drewke
16  */
18 public:
19  /**
20  * @brief Public constructor
21  * @throws tdme::os::network::NetworkKEMException
22  */
24 
25  /**
26  * @brief destructor
27  */
29 
30  /**
31  * @brief Initializes the kernel event mechanism
32  * @param maxSockets supported max sockets
33  * @throws tdme::os::network::NetworkKEMException
34  */
35  void initKernelEventMechanism(const unsigned int maxSockets) ;
36 
37  /**
38  * @brief Shutdowns the kernel event mechanism
39  */
41 
42  /**
43  * @brief Do the kernel event mechanism
44  * @return number of events
45  * @throws tdme::os::network::NetworkKEMException
46  */
48 
49  /**
50  * @brief Decodes a kernel event
51  * @param index kernel event index
52  * @param &interest kernel event io interest
53  * @param cookie kernel event cookie
54  * @throws tdme::os::network::NetworkKEMException
55  */
56  void decodeKernelEvent(const unsigned int index, NIOInterest &interest, void*& cookie);
57 
58  /**
59  * @brief Sets a non blocked socket io interest
60  * @param socket socket
61  * @param lastInterest last nio interest
62  * @param interest nio interest
63  * @param cookie cookie
64  * @throws tdme::os::network::NetworkKEMException
65  */
66  void setSocketInterest(NetworkSocket* socket, const NIOInterest lastInterest, const NIOInterest interest, const void* cookie);
67 
68  /**
69  * @brief Removes a socket
70  * @param socket socket
71  * @throws tdme::os::network::NetworkKEMException
72  */
73  void removeSocket(NetworkSocket* socket);
74 
75 private:
76  //
78 
79  // platform specific data
80  void* _psd;
81 };
Interface to kernel event mechanismns.
void shutdownKernelEventMechanism()
Shutdowns the kernel event mechanism.
void removeSocket(NetworkSocket *socket)
Removes a socket.
void setSocketInterest(NetworkSocket *socket, const NIOInterest lastInterest, const NIOInterest interest, const void *cookie)
Sets a non blocked socket io interest.
int doKernelEventMechanism()
Do the kernel event mechanism.
void initKernelEventMechanism(const unsigned int maxSockets)
Initializes the kernel event mechanism.
void decodeKernelEvent(const unsigned int index, NIOInterest &interest, void *&cookie)
Decodes a kernel event.
Kernel event mechanism exception class.
Base class of network sockets.
Definition: NetworkSocket.h:17
uint8_t NIOInterest
type definition for network IO interest
Definition: NIOInterest.h:10