diff options
Diffstat (limited to 'vdr_network.h')
-rw-r--r-- | vdr_network.h | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/vdr_network.h b/vdr_network.h new file mode 100644 index 0000000..182fa23 --- /dev/null +++ b/vdr_network.h @@ -0,0 +1,45 @@ +/* + * Adapted from + * MP3/MPlayer plugin to VDR (C++) + * (C) 2001,2002 Stefan Huelswitt <huels@iname.com> + */ + +#ifndef ___NETWORK_H +#define ___NETWORK_H + +#include <thread.h> +#include <ringbuffer.h> +#include <config.h> + +class cRingBufferLinear; + +// ---------------------------------------------------------------- + +class mgNet : public cRingBufferLinear, cThread +{ +private: + int m_fd; + bool m_connected, m_netup; + int m_deferedErrno; + int m_rwTimeout, m_conTimeout; + unsigned char m_lineBuff[4096]; + int m_count; + // + void close(void); + int ringRead(unsigned char *dest, int len); + void copyFromBuff(unsigned char *dest, int n); +protected: + virtual void action(void); +public: + mgNet(int size, int ConTimeoutMs, int RwTimeoutMs); + ~mgNet(); + bool connect(const char *hostname, const int port); + void disconnect(void); + bool connected(void) { return m_connected; } + int gets(char *dest, int len); + int puts(char *dest); + int read(unsigned char *dest, int len); + int write(unsigned char *dest, int len); +}; + +#endif //___NETWORK_H |