blob: f543f4a4a3a1474bb7879e7c622e59cc77fc3138 [file] [log] [blame] [edit]
#import <Foundation/Foundation.h>
@interface RingBuffer : NSObject {
NSMutableData *buffer;
SInt32 position;
SInt32 tail;
}
@property (nonatomic, readonly) UInt32 freeSpace;
- (id)initWithData:(NSMutableData*)data;
// Returns false if there is not enough free space in buffer
- (BOOL)appendByte:(uint8_t)byte;
// Returns number of bytes written
- (SInt32)appendData:(const NSData*)value offset:(SInt32)offset length:(SInt32)length;
// Returns number of bytes written
- (SInt32)flushToOutputStream:(NSOutputStream*)stream;
@end