Руслан Бредун / Mbed 2 deprecated Santec

Dependencies:   mbed Watchdog

Committer:
ruslanbredun
Date:
Tue Nov 02 11:28:01 2021 +0000
Revision:
0:858059db6068
New FirmWare for MC_node;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ruslanbredun 0:858059db6068 1
ruslanbredun 0:858059db6068 2 /**
ruslanbredun 0:858059db6068 3 * @file Buffer.cpp
ruslanbredun 0:858059db6068 4 * @brief Software Buffer - Templated Ring Buffer for most data types
ruslanbredun 0:858059db6068 5 * @author sam grove
ruslanbredun 0:858059db6068 6 * @version 1.0
ruslanbredun 0:858059db6068 7 * @see
ruslanbredun 0:858059db6068 8 *
ruslanbredun 0:858059db6068 9 * Copyright (c) 2013
ruslanbredun 0:858059db6068 10 *
ruslanbredun 0:858059db6068 11 * Licensed under the Apache License, Version 2.0 (the "License");
ruslanbredun 0:858059db6068 12 * you may not use this file except in compliance with the License.
ruslanbredun 0:858059db6068 13 * You may obtain a copy of the License at
ruslanbredun 0:858059db6068 14 *
ruslanbredun 0:858059db6068 15 * http://www.apache.org/licenses/LICENSE-2.0
ruslanbredun 0:858059db6068 16 *
ruslanbredun 0:858059db6068 17 * Unless required by applicable law or agreed to in writing, software
ruslanbredun 0:858059db6068 18 * distributed under the License is distributed on an "AS IS" BASIS,
ruslanbredun 0:858059db6068 19 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
ruslanbredun 0:858059db6068 20 * See the License for the specific language governing permissions and
ruslanbredun 0:858059db6068 21 * limitations under the License.
ruslanbredun 0:858059db6068 22 */
ruslanbredun 0:858059db6068 23
ruslanbredun 0:858059db6068 24 #include "MyBuffer.h"
ruslanbredun 0:858059db6068 25
ruslanbredun 0:858059db6068 26 template <class T>
ruslanbredun 0:858059db6068 27 MyBuffer<T>::MyBuffer(uint32_t size)
ruslanbredun 0:858059db6068 28 {
ruslanbredun 0:858059db6068 29 _buf = new T [size];
ruslanbredun 0:858059db6068 30 _size = size;
ruslanbredun 0:858059db6068 31 clear();
ruslanbredun 0:858059db6068 32
ruslanbredun 0:858059db6068 33 return;
ruslanbredun 0:858059db6068 34 }
ruslanbredun 0:858059db6068 35
ruslanbredun 0:858059db6068 36 template <class T>
ruslanbredun 0:858059db6068 37 MyBuffer<T>::~MyBuffer()
ruslanbredun 0:858059db6068 38 {
ruslanbredun 0:858059db6068 39 delete [] _buf;
ruslanbredun 0:858059db6068 40
ruslanbredun 0:858059db6068 41 return;
ruslanbredun 0:858059db6068 42 }
ruslanbredun 0:858059db6068 43
ruslanbredun 0:858059db6068 44 template <class T>
ruslanbredun 0:858059db6068 45 uint32_t MyBuffer<T>::getSize()
ruslanbredun 0:858059db6068 46 {
ruslanbredun 0:858059db6068 47 return this->_size;
ruslanbredun 0:858059db6068 48 }
ruslanbredun 0:858059db6068 49
ruslanbredun 0:858059db6068 50 template <class T>
ruslanbredun 0:858059db6068 51 void MyBuffer<T>::clear(void)
ruslanbredun 0:858059db6068 52 {
ruslanbredun 0:858059db6068 53 _wloc = 0;
ruslanbredun 0:858059db6068 54 _rloc = 0;
ruslanbredun 0:858059db6068 55 memset(_buf, 0, _size);
ruslanbredun 0:858059db6068 56
ruslanbredun 0:858059db6068 57 return;
ruslanbredun 0:858059db6068 58 }
ruslanbredun 0:858059db6068 59
ruslanbredun 0:858059db6068 60 template <class T>
ruslanbredun 0:858059db6068 61 uint32_t MyBuffer<T>::peek(char c)
ruslanbredun 0:858059db6068 62 {
ruslanbredun 0:858059db6068 63 return 1;
ruslanbredun 0:858059db6068 64 }
ruslanbredun 0:858059db6068 65
ruslanbredun 0:858059db6068 66 // make the linker aware of some possible types
ruslanbredun 0:858059db6068 67 template class MyBuffer<uint8_t>;
ruslanbredun 0:858059db6068 68 template class MyBuffer<int8_t>;
ruslanbredun 0:858059db6068 69 template class MyBuffer<uint16_t>;
ruslanbredun 0:858059db6068 70 template class MyBuffer<int16_t>;
ruslanbredun 0:858059db6068 71 template class MyBuffer<uint32_t>;
ruslanbredun 0:858059db6068 72 template class MyBuffer<int32_t>;
ruslanbredun 0:858059db6068 73 template class MyBuffer<uint64_t>;
ruslanbredun 0:858059db6068 74 template class MyBuffer<int64_t>;
ruslanbredun 0:858059db6068 75 template class MyBuffer<char>;
ruslanbredun 0:858059db6068 76 template class MyBuffer<wchar_t>;