@@ -141,96 +141,41 @@ constexpr auto ALL_NETWORKS = std::array{
141
141
class StaticContentsSock : public Sock
142
142
{
143
143
public:
144
- explicit StaticContentsSock (const std::string& contents)
145
- : Sock{INVALID_SOCKET},
146
- m_contents{contents}
147
- {
148
- }
144
+ explicit StaticContentsSock (const std::string& contents);
149
145
150
- ~StaticContentsSock () override { m_socket = INVALID_SOCKET; }
146
+ ~StaticContentsSock () override ;
151
147
152
- StaticContentsSock& operator =(Sock&& other) override
153
- {
154
- assert (false && " Move of Sock into MockSock not allowed." );
155
- return *this ;
156
- }
148
+ StaticContentsSock& operator =(Sock&& other) override ;
157
149
158
- ssize_t Send (const void *, size_t len, int ) const override { return len; }
150
+ ssize_t Send (const void *, size_t len, int ) const override ;
159
151
160
- ssize_t Recv (void * buf, size_t len, int flags) const override
161
- {
162
- const size_t consume_bytes{std::min (len, m_contents.size () - m_consumed)};
163
- std::memcpy (buf, m_contents.data () + m_consumed, consume_bytes);
164
- if ((flags & MSG_PEEK) == 0 ) {
165
- m_consumed += consume_bytes;
166
- }
167
- return consume_bytes;
168
- }
152
+ ssize_t Recv (void * buf, size_t len, int flags) const override ;
169
153
170
- int Connect (const sockaddr*, socklen_t ) const override { return 0 ; }
154
+ int Connect (const sockaddr*, socklen_t ) const override ;
171
155
172
- int Bind (const sockaddr*, socklen_t ) const override { return 0 ; }
156
+ int Bind (const sockaddr*, socklen_t ) const override ;
173
157
174
- int Listen (int ) const override { return 0 ; }
158
+ int Listen (int ) const override ;
175
159
176
- std::unique_ptr<Sock> Accept (sockaddr* addr, socklen_t * addr_len) const override
177
- {
178
- if (addr != nullptr ) {
179
- // Pretend all connections come from 5.5.5.5:6789
180
- memset (addr, 0x00 , *addr_len);
181
- const socklen_t write_len = static_cast <socklen_t >(sizeof (sockaddr_in));
182
- if (*addr_len >= write_len) {
183
- *addr_len = write_len;
184
- sockaddr_in* addr_in = reinterpret_cast <sockaddr_in*>(addr);
185
- addr_in->sin_family = AF_INET;
186
- memset (&addr_in->sin_addr , 0x05 , sizeof (addr_in->sin_addr ));
187
- addr_in->sin_port = htons (6789 );
188
- }
189
- }
190
- return std::make_unique<StaticContentsSock>(" " );
191
- };
160
+ std::unique_ptr<Sock> Accept (sockaddr* addr, socklen_t * addr_len) const override ;
192
161
193
- int GetSockOpt (int level, int opt_name, void * opt_val, socklen_t * opt_len) const override
194
- {
195
- std::memset (opt_val, 0x0 , *opt_len);
196
- return 0 ;
197
- }
162
+ int GetSockOpt (int level, int opt_name, void * opt_val, socklen_t * opt_len) const override ;
198
163
199
- int SetSockOpt (int , int , const void *, socklen_t ) const override { return 0 ; }
164
+ int SetSockOpt (int , int , const void *, socklen_t ) const override ;
200
165
201
- int GetSockName (sockaddr* name, socklen_t * name_len) const override
202
- {
203
- std::memset (name, 0x0 , *name_len);
204
- return 0 ;
205
- }
166
+ int GetSockName (sockaddr* name, socklen_t * name_len) const override ;
206
167
207
- bool SetNonBlocking () const override { return true ; }
168
+ bool SetNonBlocking () const override ;
208
169
209
- bool IsSelectable () const override { return true ; }
170
+ bool IsSelectable () const override ;
210
171
211
172
bool Wait (std::chrono::milliseconds timeout,
212
173
Event requested,
213
- Event* occurred = nullptr ) const override
214
- {
215
- if (occurred != nullptr ) {
216
- *occurred = requested;
217
- }
218
- return true ;
219
- }
174
+ Event* occurred = nullptr ) const override ;
220
175
221
- bool WaitMany (std::chrono::milliseconds timeout, EventsPerSock& events_per_sock) const override
222
- {
223
- for (auto & [sock, events] : events_per_sock) {
224
- (void )sock;
225
- events.occurred = events.requested ;
226
- }
227
- return true ;
228
- }
176
+ bool WaitMany (std::chrono::milliseconds timeout, EventsPerSock& events_per_sock) const override ;
229
177
230
- bool IsConnected (std::string&) const override
231
- {
232
- return true ;
233
- }
178
+ bool IsConnected (std::string&) const override ;
234
179
235
180
private:
236
181
const std::string m_contents;
0 commit comments