summaryrefslogtreecommitdiff
path: root/dxr3unixserversocket.h
diff options
context:
space:
mode:
authoraustriancoder <austriancoder>2004-08-05 23:05:21 +0000
committeraustriancoder <austriancoder>2004-08-05 23:05:21 +0000
commitc47666d42f7972e1b51f9de61ce0fa27c72f3127 (patch)
treee34a87e37901b7f892fb6f330ccb15bcba30039b /dxr3unixserversocket.h
downloadvdr-plugin-dxr3-c47666d42f7972e1b51f9de61ce0fa27c72f3127.tar.gz
vdr-plugin-dxr3-c47666d42f7972e1b51f9de61ce0fa27c72f3127.tar.bz2
initial import
Diffstat (limited to 'dxr3unixserversocket.h')
-rw-r--r--dxr3unixserversocket.h71
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