예제 #1
0
파일: DataIO.cpp 프로젝트: Jeffxz/nodeas
	void DataOutput::WriteByteArray(ByteArray& buffer,
									uint32_t offset,
									uint32_t count)
	{
		if (buffer.GetLength() < offset)
			offset = buffer.GetLength();

		if (count == 0) {
			count = buffer.GetLength()-offset;
		}

		if (count > buffer.GetLength()-offset) {
			ThrowRangeError();
		}
			
		if (count > 0) {
			Write(buffer.GetBuffer()+offset, count);
		}
	}
예제 #2
0
파일: DataIO.cpp 프로젝트: Jeffxz/nodeas
	void DataInput::ReadByteArray(ByteArray& buffer,
								  uint32_t offset,
								  uint32_t count)
	{
		uint32_t available = Available();
		
		if (count == 0) {
			count = available;
		}
		
		if (count > available) {
			ThrowEOFError();
		}

		// Grow the buffer if necessary
		if (offset + count >= buffer.GetLength()) {
			buffer.SetLength(offset + count);
		}

		Read(buffer.GetBuffer() + offset, count);
	}