Added #imports of utility headers, so source files will compile without requiring a custom prefix (MYUtilities.pch.)
5 // Created by Jens Alfke on 5/10/08.
6 // Copyright 2008 Jens Alfke. All rights reserved.
9 #import "BLIPConnection.h"
10 #import "BLIPRequest.h"
11 #import "BLIPProperties.h"
15 /* Private declarations and APIs for BLIP implementation. Not for use by clients! */
18 /* BLIP message types; encoded in each frame's header. */
20 kBLIP_MSG, // initiating message
21 kBLIP_RPY, // response to a MSG
22 kBLIP_ERR // error response to a MSG
25 /* Flag bits in a BLIP frame header */
27 kBLIP_TypeMask = 0x000F, // bits reserved for storing message type
28 kBLIP_Compressed= 0x0010, // data is gzipped
29 kBLIP_Urgent = 0x0020, // please send sooner/faster
30 kBLIP_NoReply = 0x0040, // no RPY needed
31 kBLIP_MoreComing= 0x0080, // More frames coming (Applies only to individual frame)
33 typedef UInt16 BLIPMessageFlags;
36 /** Header of a BLIP frame as sent across the wire. All fields are big-endian. */
38 UInt32 magic; // magic number (kBLIPFrameHeaderMagicNumber)
39 UInt32 number; // serial number of MSG
40 BLIPMessageFlags flags; // encodes frame type, "more" flag, and other delivery options
41 UInt16 size; // total size of frame, _including_ this header
44 #define kBLIPFrameHeaderMagicNumber 0x9B34F205
47 NSError *BLIPMakeError( int errorCode, NSString *message, ... ) __attribute__ ((format (__NSString__, 2, 3)));
50 @interface BLIPConnection ()
51 - (void) _dispatchRequest: (BLIPRequest*)request;
52 - (void) _dispatchResponse: (BLIPResponse*)response;
56 @interface BLIPMessage ()
57 @property BOOL sent, propertiesAvailable, complete;
58 - (void) _setFlag: (BLIPMessageFlags)flag value: (BOOL)value;
63 @interface BLIPMessage ()
64 - (id) _initWithConnection: (BLIPConnection*)connection
66 flags: (BLIPMessageFlags)flags
69 - (BOOL) _writeFrameTo: (BLIPWriter*)writer maxSize: (UInt16)maxSize;
70 @property (readonly) SInt32 _bytesWritten;
71 - (void) _assignedNumber: (UInt32)number;
72 - (BOOL) _receivedFrameWithHeader: (const BLIPFrameHeader*)header body: (NSData*)body;
73 - (void) _connectionClosed;
77 @interface BLIPRequest ()
78 - (id) _initWithConnection: (BLIPConnection*)connection
80 properties: (NSDictionary*)properties;
84 @interface BLIPResponse ()
85 - (id) _initWithRequest: (BLIPRequest*)request;