Lines Matching refs:len
70 ssize_t RingBuffer::Read(const int fd, const std::size_t len)
75 if (len == 0) {
82 while (len >= FreeSize()) {
93 if (tail_ + len < bufSize_) {
95 destBufs[0].iov_len = len;
96 destBufs[1].iov_base = buffer_ + tail_ + len;
102 destBufs[1].iov_len = len + tail_ - bufSize_;
115 ssize_t RingBuffer::Write(const int fd, std::size_t len)
124 if (dataSize < len) {
125 len = dataSize;
127 if (len == 0) {
133 // now we are sure there is at least 'len' bytes data in the buffer
135 if (head_ + len > bufSize_) {
139 srcBufs[1].iov_len = len + head_- bufSize_;
142 srcBufs[0].iov_len = len;
143 srcBufs[1].iov_base = buffer_ + head_ + len;
157 std::size_t RingBuffer::Get(char* dest, const std::size_t len)
162 if (len == 0) {
167 if (len > dataSize) {
173 if (head_ + len > bufSize_) {
175 if (memcpy_s(dest, len, buffer_ + head_, bufSize_ - head_) != EOK) {
178 if (memcpy_s(dest + bufSize_ - head_, len + head_ - bufSize_, buffer_, len + head_ - bufSize_) != EOK) {
182 if (memcpy_s(dest, len, buffer_ + head_, len) != EOK) {
187 head_ += len;
191 return len;
194 int RingBuffer::Put(const char* str, const std::size_t len)
199 if (len == 0) {
204 while (len >= FreeSize()) {
213 if (tail_ + len < bufSize_) {
215 if (memcpy_s(buffer_ + tail_, bufSize_ - tail_, str, len) != EOK) {
223 if (memcpy_s(buffer_, bufSize_, str + bufSize_ - tail_, len + tail_ - bufSize_) != EOK) {
228 tail_ += len;
232 return len;
240 std::size_t len = str.length();
241 if (len == 0) {
246 while (len >= FreeSize()) {
255 if (tail_ + len < bufSize_) {
257 if (memcpy_s(buffer_ + tail_, bufSize_ - tail_, str.c_str(), len) != EOK) {
265 if (memcpy_s(buffer_, bufSize_, str.c_str() + bufSize_ - tail_, len + tail_ - bufSize_) != EOK) {
270 tail_ += len;
274 return len;