@@ -141,96 +141,41 @@ constexpr auto ALL_NETWORKS = std::array{
141141class StaticContentsSock : public Sock
142142{
143143public:
144- explicit StaticContentsSock (const std::string& contents)
145- : Sock{INVALID_SOCKET},
146- m_contents{contents}
147- {
148- }
144+ explicit StaticContentsSock (const std::string& contents);
149145
150- ~StaticContentsSock () override { m_socket = INVALID_SOCKET; }
146+ ~StaticContentsSock () override ;
151147
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 ;
157149
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 ;
159151
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 ;
169153
170- int Connect (const sockaddr*, socklen_t ) const override { return 0 ; }
154+ int Connect (const sockaddr*, socklen_t ) const override ;
171155
172- int Bind (const sockaddr*, socklen_t ) const override { return 0 ; }
156+ int Bind (const sockaddr*, socklen_t ) const override ;
173157
174- int Listen (int ) const override { return 0 ; }
158+ int Listen (int ) const override ;
175159
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 ;
192161
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 ;
198163
199- int SetSockOpt (int , int , const void *, socklen_t ) const override { return 0 ; }
164+ int SetSockOpt (int , int , const void *, socklen_t ) const override ;
200165
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 ;
206167
207- bool SetNonBlocking () const override { return true ; }
168+ bool SetNonBlocking () const override ;
208169
209- bool IsSelectable () const override { return true ; }
170+ bool IsSelectable () const override ;
210171
211172 bool Wait (std::chrono::milliseconds timeout,
212173 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 ;
220175
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 ;
229177
230- bool IsConnected (std::string&) const override
231- {
232- return true ;
233- }
178+ bool IsConnected (std::string&) const override ;
234179
235180private:
236181 const std::string m_contents;
0 commit comments