openATV enigma2
openATV is an open source SetTopBox Graphical user interface.
socket.h
Go to the documentation of this file.
1 #ifndef __socket_h
2 #define __socket_h
3 
4 #include <stdio.h>
5 #include <sys/types.h>
6 #include <sys/socket.h>
7 #include <netinet/in.h>
8 #include <sys/un.h>
9 #include <netdb.h>
10 #include <fcntl.h>
11 
12 #include <lib/base/ebase.h>
13 #include <lib/base/eerror.h>
14 #include <lib/base/estring.h>
15 #include <libsig_comp.h>
16 #include <lib/base/buffer.h>
17 
18 class eSocket: public sigc::trackable
19 {
20 private:
21  int issocket;
22  int last_break;
23  eIOBuffer readbuffer;
24  eIOBuffer writebuffer;
25  int writebusy;
26 protected:
28  int mystate;
31  virtual void notifier(int);
32 public:
33  eSocket(eMainloop *ml, int domain = AF_INET);
34  eSocket(int socket, int issocket, eMainloop *ml);
35  virtual ~eSocket();
36  int connectToHost(std::string hostname, int port);
37  int getDescriptor();
38  int writeBlock(const char *data, unsigned int len);
39  int setSocket(int socketfd, int issocket, eMainloop *ml);
40  int bytesToWrite();
41  int readBlock(char *data, unsigned int maxlen);
42  int bytesAvailable();
43  bool canReadLine();
44  std::string readLine();
45  void close();
46  // flow control: start/stop data delivery into read buffer.
47  void enableRead();
48  void disableRead();
49 
50  void inject(const char *data, int len);
51 
54  int state();
55 
56  sigc::signal0<void> connectionClosed_;
57  sigc::signal0<void> connected_;
58  sigc::signal0<void> readyRead_;
59  sigc::signal0<void> hangup;
60  sigc::signal1<void,int> bytesWritten_;
61  sigc::signal1<void,int> error_;
62 };
63 
65 {
66 public:
68  eUnixDomainSocket(int socket, int issocket, eMainloop *ml);
70  int connectToPath(std::string path);
71 };
72 
73 #endif /* __socket_h */
Definition: buffer.h:11
Definition: ebase.h:187
Definition: socket.h:19
int setSocket(int socketfd, int issocket, eMainloop *ml)
Definition: socket.cpp:85
void enableRead()
Definition: socket.cpp:29
sigc::signal1< void, int > bytesWritten_
Definition: socket.h:60
State
Definition: socket.h:52
@ Invalid
Definition: socket.h:52
@ Closing
Definition: socket.h:53
@ Listening
Definition: socket.h:53
@ HostLookup
Definition: socket.h:52
@ Connection
Definition: socket.h:53
@ Idle
Definition: socket.h:52
@ Connecting
Definition: socket.h:52
void close()
Definition: socket.cpp:8
void disableRead()
Definition: socket.cpp:35
int writeBlock(const char *data, unsigned int len)
Definition: socket.cpp:201
void inject(const char *data, int len)
Definition: socket.cpp:41
sigc::signal0< void > connectionClosed_
Definition: socket.h:56
ePtr< eSocketNotifier > rsn
Definition: socket.h:29
sigc::signal0< void > connected_
Definition: socket.h:57
sigc::signal1< void, int > error_
Definition: socket.h:61
int connectToHost(std::string hostname, int port)
Definition: socket.cpp:230
bool canReadLine()
Definition: socket.cpp:60
virtual ~eSocket()
Definition: socket.cpp:297
int state()
Definition: socket.cpp:80
int getDescriptor()
Definition: socket.cpp:225
sigc::signal0< void > hangup
Definition: socket.h:59
int mystate
Definition: socket.h:28
sigc::signal0< void > readyRead_
Definition: socket.h:58
int readBlock(char *data, unsigned int maxlen)
Definition: socket.cpp:70
int bytesToWrite()
Definition: socket.cpp:75
int socketdesc
Definition: socket.h:27
eMainloop * mainloop
Definition: socket.h:30
int bytesAvailable()
Definition: socket.cpp:65
std::string readLine()
Definition: socket.cpp:48
virtual void notifier(int)
Definition: socket.cpp:100
eSocket(eMainloop *ml, int domain=AF_INET)
Definition: socket.cpp:281
Definition: socket.h:65
~eUnixDomainSocket()
Definition: socket.cpp:313
eUnixDomainSocket(eMainloop *ml)
Definition: socket.cpp:305
int connectToPath(std::string path)
Definition: socket.cpp:317
unsigned char data[256]
Definition: hdmi_cec.h:2
int socket(int domain, int type, int protocol)
Definition: libopen.c:165
domain
Definition: CCcamInfo.py:252
port
Definition: CCcamInfo.py:253
string path
Definition: FindPicon.py:11