예제 #1
0
파일: buffer.hpp 프로젝트: dawnbreaks/arch
				inline int Write(const void *data_in, size_t datlen)
				{
					if (!EnsureWritableBytes(datlen))
					{
						return -1;
					}
					memcpy(m_buffer + m_write_idx, data_in, datlen);
					m_write_idx += datlen;
					return datlen;
				}
예제 #2
0
	size_t NetMessage::Write(const void *user_data, size_t size)
	{
		EnsureWritableBytes(size);
		if (!IsDynamic())
		{
			memcpy(static_data_.data() + writer_pos_, user_data, size);
		}
		else
		{
			dynamic_data_->insert(dynamic_data_->begin() + writer_pos_,
				reinterpret_cast<ConstPointer>(user_data),
				reinterpret_cast<ConstPointer>(user_data) + size);
		}
		HasWritten(size);
		return size;
	}
예제 #3
0
	NetMessage::NetMessage(size_t size)
		: reader_pos_(0)
		, writer_pos_(0)
	{
		EnsureWritableBytes(size);
	}
예제 #4
0
파일: buffer.hpp 프로젝트: dawnbreaks/arch
				inline Buffer(size_t size) :
						m_buffer(NULL), m_buffer_len(0), m_write_idx(0), m_read_idx(
								0)
				{
					EnsureWritableBytes(size);
				}
예제 #5
0
파일: buffer.hpp 프로젝트: dawnbreaks/arch
				inline bool Reserve(size_t len)
				{
					return EnsureWritableBytes(len);
				}