hiroya taura / Mbed 2 deprecated LAURUS_program

Dependencies:   ConfigFile SDFileSystem mbed

Fork of LAURUS_program by LAURUS

Committer:
onaka
Date:
Fri Jun 12 04:00:23 2015 +0000
Revision:
6:2b68f85a984a
logger update

Who changed what in which revision?

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