diff -r 000000000000 -r 044383f39525 sbsv2/raptor/util/talon/buffer.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sbsv2/raptor/util/talon/buffer.h Tue Oct 27 16:36:35 2009 +0000 @@ -0,0 +1,48 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* buffer.c +* Resizable buffer for output from subprocesses. +* +*/ + + + + +#ifndef _TALON_BUFFER_H_ +#define _TALON_BUFFER_H_ + + +typedef struct { + unsigned int size, fill; + /* This struct will be followed by the number of bytes in "size" */ + char byte0; +} byteblock; + +typedef struct { + byteblock **blocks; + int maxblocks; + int lastblock; + unsigned int size; +} buffer; + +buffer *buffer_new(void); +char *buffer_append(buffer *b, char *bytes, unsigned int size); +char *buffer_prepend(buffer *b, char *bytes, unsigned int size); +char *buffer_makespace(buffer *b, unsigned int size); +void buffer_usespace(buffer *b, unsigned int nbytes); +byteblock *buffer_getbytes(buffer *b, int *iterator); +void buffer_free(buffer **b); + +#endif