MBDyn-1.7.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
SocketBasicIO Class Reference
Inheritance diagram for SocketBasicIO:
Collaboration diagram for SocketBasicIO:

Public Member Functions

int ReadMeasures (s2s_t &s2s)
 
int SendControls (s2s_t &s2s)
 
- Public Member Functions inherited from BasicIO
virtual ~BasicIO (void)
 

Detailed Description

Definition at line 70 of file trim.cc.

Member Function Documentation

int SocketBasicIO::ReadMeasures ( s2s_t s2s)
virtual

Implements BasicIO.

Definition at line 87 of file trim.cc.

References s2s_t::buf, s2s_t::dbuf, s2s_t::nChannels, and s2s_t::sock.

88 {
89  int len = recv(s2s.sock, (char *)&s2s.dbuf[0], sizeof(double)*s2s.nChannels, 0);
90 
91  switch (len) {
92  case -1: {
93  int save_errno = errno;
94  const char *err_msg = strerror(save_errno);
95 
96  silent_cerr("recv(" << s2s.sock << ",\"" << s2s.buf << "\") "
97  "failed (" << save_errno << ": " << err_msg << ")"
98  << std::endl);
99  return -1;
100  }
101 
102  case 0:
103  return 0;
104 
105  default:
106  if ((unsigned)len < sizeof(double)*s2s.nChannels) {
107  silent_cerr("recv(" << s2s.sock << " \"" << s2s.buf << "\") "
108  "returned only partial results"
109  << std::endl);
110  return -1;
111  }
112  return 1;
113  }
114 }
std::string buf
Definition: s2s.h:68
int nChannels
Definition: s2s.h:56
std::vector< double > dbuf
Definition: s2s.h:69
int sock
Definition: s2s.h:66
int SocketBasicIO::SendControls ( s2s_t s2s)
virtual

Implements BasicIO.

Definition at line 117 of file trim.cc.

References s2s_t::dbuf, s2s_t::nChannels, and s2s_t::sock.

118 {
119  int len;
120 
121  len = send(s2s.sock, (char *)&s2s.dbuf[0], sizeof(double)*s2s.nChannels, 0);
122 
123  if ( len < 0 ) {
124  return len;
125  }
126 
127  return len/sizeof(double);
128 }
int nChannels
Definition: s2s.h:56
std::vector< double > dbuf
Definition: s2s.h:69
int sock
Definition: s2s.h:66

The documentation for this class was generated from the following file: