diff options
author | austriancoder <austriancoder> | 2004-08-05 23:05:21 +0000 |
---|---|---|
committer | austriancoder <austriancoder> | 2004-08-05 23:05:21 +0000 |
commit | c47666d42f7972e1b51f9de61ce0fa27c72f3127 (patch) | |
tree | e34a87e37901b7f892fb6f330ccb15bcba30039b /dxr3unixserversocket.h | |
download | vdr-plugin-dxr3-c47666d42f7972e1b51f9de61ce0fa27c72f3127.tar.gz vdr-plugin-dxr3-c47666d42f7972e1b51f9de61ce0fa27c72f3127.tar.bz2 |
initial import
Diffstat (limited to 'dxr3unixserversocket.h')
-rw-r--r-- | dxr3unixserversocket.h | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/dxr3unixserversocket.h b/dxr3unixserversocket.h new file mode 100644 index 0000000..3233995 --- /dev/null +++ b/dxr3unixserversocket.h @@ -0,0 +1,71 @@ +/* + * dxr3unixserversocket.h: + * + * See the main source file 'dxr3.c' for copyright information and + * how to reach the author. + * + */ + +#ifndef __DXR3_UNIX_SERVER_SOCKET_H +#define __DXR3_UNIX_SERVER_SOCKET_H + +#include <stdint.h> +#include <sys/socket.h> +#include <sys/un.h> + + +#include "dxr3vdrincludes.h" + +class cDxr3UnixServerSocket { +public: + cDxr3UnixServerSocket(const char* pFileName = "/tmp/.dxr3-ux-sock", int backlog = 5); + virtual ~cDxr3UnixServerSocket(); + + bool WaitForConnection(void); + bool GetNextMessage(void); + bool IsConnected(void); +protected: + virtual void ProcessMessage(void) = 0; + + const char* m_pFileName; + bool m_bConnected; + int m_backlog; + int m_fdServerSocket; + int m_fdConnectionSocket; + sockaddr_un m_addr; + enum eDxr3socketMessageSize { MAX_REC_SIZE = 100 }; + uint8_t m_msg[MAX_REC_SIZE]; + uint8_t m_msgSize; + +private: + cDxr3UnixServerSocket(cDxr3UnixServerSocket&); // no copy constructor +}; + + +class cDxr3StartStopSocket : public cDxr3UnixServerSocket { +public: + cDxr3StartStopSocket() : m_bSavedState(false) {}; + virtual ~cDxr3StartStopSocket() {}; +protected: + void ProcessMessage(void); + void SendStatus(void); + + bool m_bSavedState; + +private: + cDxr3StartStopSocket(cDxr3StartStopSocket&); // no copy constructor +}; + + +class cDxr3StartStopThread : public cThread { +public: + cDxr3StartStopThread() {}; + virtual ~cDxr3StartStopThread() {}; +protected: + virtual void Action(void); + +private: + cDxr3StartStopThread(cDxr3StartStopThread&); // no copy constructor +}; + +#endif // __DXR3_UNIX_SERVER_SOCKET_H |