/* * Copyright (C) 2005 by Linus McCabe, * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * */ #include "qbytearrayfifo.h" #include #include TQByteArrayFifo::TQByteArrayFifo( ) { m_size = 0; m_array.resize(0); } TQString TQByteArrayFifo::retrieve( ) { // See if there's a null teminator somewhere TQString str(m_array); size_t size = str.length() + 1; // Decrease size and move bytes to the beginning of the array m_size -= size; for(size_t cnt = 0; cnt < m_size; cnt++) m_array[cnt] = m_array[cnt + size]; // Resize array, needed for find() to work m_array.resize(m_size); return str; } bool TQByteArrayFifo::append(const char * chars, size_t size ) { // Resize the array, fail if not possible if(!m_array.resize(m_size + size )) return false; // Copy the elements for(size_t cnt = 0; cnt < size; cnt++) m_array[cnt + m_size] = chars[cnt]; // Increase size var m_size += size; return true; } long TQByteArrayFifo::find( char character ) { // If size is 0, find() outputs a warning for some reason if(m_size == 0) return -1; return m_array.find(character); } TQString TQByteArrayFifo::base64Encoded() { return KCodecs::base64Encode(m_array); }