Files
Client/Server/RylServerProject/BaseLibrary/Stream/Buffer/Buffer.cpp
LGram16 dd97ddec92 Restructure repository to include all source folders
Move git root from Client/ to src/ to track all source code:
- Client: Game client source (moved to Client/Client/)
- Server: Game server source
- GameTools: Development tools
- CryptoSource: Encryption utilities
- database: Database scripts
- Script: Game scripts
- rylCoder_16.02.2008_src: Legacy coder tools
- GMFont, Game: Additional resources

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 20:17:20 +09:00

52 lines
934 B
C++

#include "stdafx.h"
#include "Buffer.h"
#include "BufferFactory.h"
CBuffer::CBuffer(CBufferFactory& bufferfactory)
: internal_buffer_(0), rd_ptr_(0), wr_ptr_(0), buffer_size_(0),
bufferfactory_(bufferfactory), next_(0), prev_(0)
{
}
CBuffer::~CBuffer()
{
}
void CBuffer::init(char* internal_buffer, unsigned long buffer_size)
{
rd_ptr_ = wr_ptr_ = internal_buffer_ = internal_buffer;
buffer_size_ = buffer_size;
next_ = 0;
prev_ = 0;
address_.clear();
}
bool CBuffer::push(const void* ptr, size_t n)
{
if(NULL != wr_ptr_ && n <= capacity() - length())
{
memcpy(wr_ptr_, ptr, n);
wr_ptr_ += n;
return true;
}
return false;
}
void CBuffer::pop_read_data()
{
if(NULL != internal_buffer_)
{
size_t n = length();
memmove(internal_buffer_, rd_ptr_, n);
wr_ptr_ = internal_buffer_ + n;
rd_ptr_ = internal_buffer_;
}
}