// // NSData-BytePacking.h // // Created by Philippe Hausler on 9/10/08. // Copyright 2008 Philippe Hausler. All rights reserved. // #import <Foundation/Foundation.h> enum { NSLittleEndian = -1, NSSameEndian = 0, NSBigEndian = 1 }; typedef NSInteger NSByteEndian; NSByteEndian NSHostEndian(void); @interface NSString (BytePacking) + (id)stringWithData:(NSData *)data encoding:(NSStringEncoding)encoding; @end @interface NSData (BytePacking) - (NSString *)stringUsingEncoding:(NSStringEncoding)encoding; - (BOOL)hasPrefix:(NSData *)data; - (BOOL)hasSuffix:(NSData *)data; - (BOOL)hasUTF8Prefix:(NSString *)prefix; - (BOOL)hasUTF8Suffix:(NSString *)suffix; + (NSData *)dataWithUTF8String:(NSString *)aString; - (unsigned char)byteAtIndex:(NSUInteger)index; - (unsigned int)uintAtIndex:(NSUInteger)index; - (NSData *)dataUntilTermination:(NSData *)terminator; + (id)dataWithByte:(unsigned char)byte; @end @interface NSMutableData (BytePacking) - (void)pad:(NSData *)pad count:(NSUInteger)count; - (void)appendString:(NSString *)aString encoding:(NSStringEncoding)encoding; - (void)appendByte:(unsigned char)byte; - (void)appendShort:(short)number; - (void)appendUShort:(unsigned short)number; - (void)appendInt:(int)number; - (void)appendUInt:(unsigned int)number; - (void)appendLong:(long)number; - (void)appendULong:(unsigned long)number; - (void)appendDouble:(double)number; - (void)appendLongLong:(long long)number; - (void)appendULongLong:(unsigned long long)number; - (void)appendShort:(short)number ordered:(NSByteEndian)endian; - (void)appendUShort:(unsigned short)number ordered:(NSByteEndian)endian; - (void)appendInt:(int)number ordered:(NSByteEndian)endian; - (void)appendUInt:(unsigned int)number ordered:(NSByteEndian)endian; - (void)appendLong:(long)number ordered:(NSByteEndian)endian; - (void)appendULong:(unsigned long)number ordered:(NSByteEndian)endian; - (void)appendDouble:(double)number ordered:(NSByteEndian)endian; - (void)appendLongLong:(long long)number ordered:(NSByteEndian)endian; - (void)appendULongLong:(unsigned long long)number ordered:(NSByteEndian)endian; @end