+ instance->io_bytes_sent= 0;
+ instance->read_buffer_length= (size_t) data_read;
+ instance->read_ptr= instance->read_buffer;
+
+ return MEMCACHED_SUCCESS;
+}
+
+memcached_return_t memcached_io_read(memcached_instance_st* instance,
+ void *buffer, size_t length, ssize_t& nread)
+{
+ assert(memcached_is_udp(instance->root) == false);
+ assert_msg(instance, "Programmer error, memcached_io_read() recieved an invalid Instance"); // Programmer error
+ char *buffer_ptr= static_cast<char *>(buffer);
+
+ if (instance->fd == INVALID_SOCKET)
+ {
+#if 0
+ assert_msg(int(instance->state) <= int(MEMCACHED_SERVER_STATE_ADDRINFO), "Programmer error, invalid socket state");
+#endif
+ return MEMCACHED_CONNECTION_FAILURE;
+ }
+
+ while (length)
+ {
+ if (instance->read_buffer_length == 0)