Belle II Software  release-05-02-19
RSocketLib.h
1 #ifndef RSOCKETLIB_H
2 #define RSOCKETLIB_H
3 //+
4 // File : socketlib.h
5 // Description : Class to handle a socket
6 //
7 // Author : Ryosuke Itoh, IPNS, KEK
8 // Date : 18 - Aug - 2000
9 //-
10 
11 #include <netinet/in.h>
12 
13 #define D2_SOCKBUF_SIZE 8000000
14 
15 #include "daq/dataflow/SocketLib.h"
16 
17 typedef unsigned short u_short;
18 
19 namespace Belle2 {
25  class RSocketSend : public SocketIO {
26  public:
27  RSocketSend(u_short port);
28  ~RSocketSend();
29 
30  int examine();
31  int accept();
32  int close();
33 
34  int sock() const;
35  int sender() const;
36  void sock(int sockid);
37  int port() const;
38 
39  int get(char* data, int len);
40  int read(char* data, int len);
41  int put(char* data, int len);
42  int put_wordbuf(int* data, int len);
43  int write(char* data, int len);
44 
45  int err() const;
46  void interrupt();
47 
48  private:
49  SocketIO m_io;
50  int m_sock;
51  int m_port;
52  int m_sender;
53  int m_errno;
54  int m_int;
55 
56  };
57 
58  class RSocketRecv : public SocketIO {
59  public:
60  RSocketRecv(const char* node, u_short prt);
61  ~RSocketRecv();
62 
63  int reconnect(int ntry);
64 
65  int put(char* data, int len);
66  int write(char* data, int len);
67  int get(char* data, int len);
68  int get_wordbuf(int* data, int len);
69  int read(char* data, int len);
70 
71  char* node(void);
72  int port(void);
73  int sock(void);
74  void sock(int sockid);
75 
76  int err(void);
77 
78  private:
79  SocketIO m_io;
80  struct hostent* m_hp;
81  struct sockaddr_in m_sa;
82  int m_sock;
83  int m_port;
84  char m_node[128];
85  int m_errno;
86 
87  };
88 
90 }
91 #endif
92 
93 
94 
95 
96 
97 
Belle2::RSocketRecv
Definition: RSocketLib.h:58
Belle2::SocketIO
Definition: SocketLib.h:25
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::RSocketSend
Definition: RSocketLib.h:25