embkernel
 All Classes Functions Variables Typedefs Groups Pages
LibStreamOutArray.cpp
1 //------------------------------------------------------------------------------
2 //This file is part of embKernel.
3 //See license.txt for the full license governing this code.
4 //------------------------------------------------------------------------------
5 
6 #include "LibStreamOutArray.hpp"
7 #include <string.h>
8 
9 LibStreamOutArray::LibStreamOutArray(uint8_t* buffer, int size) {
10  mBuffer = buffer;
11  mBufferSize = size;
12  mPosition = 0;
13 }
14 
15 int LibStreamOutArray::getPosition() {
16  return mPosition;
17 }
18 
19 void LibStreamOutArray::setPosition(int position) {
20  mPosition = position;
21 }
22 
23 int LibStreamOutArray::write(const void* buffer, int len, Rtos::TICK timeout) {
24  int left = mBufferSize - mPosition;
25  if (left <= 0) {
26  return 0;
27  }
28  if (len > left) {
29  len = left;
30  }
31  memcpy(&mBuffer[mPosition], buffer, len);
32 
33  mPosition += len;
34  return len;
35 }
36