diff -r 000000000000 -r 8267d5c429c4 BLIP/BLIP_Internal.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/BLIP/BLIP_Internal.h	Sat May 24 13:26:02 2008 -0700
@@ -0,0 +1,86 @@
+//
+//  BLIP_Internal.h
+//  MYNetwork
+//
+//  Created by Jens Alfke on 5/10/08.
+//  Copyright 2008 Jens Alfke. All rights reserved.
+//
+
+#import "BLIPConnection.h"
+#import "BLIPRequest.h"
+#import "BLIPProperties.h"
+@class BLIPWriter;
+
+
+/* Private declarations and APIs for BLIP implementation. Not for use by clients! */
+
+
+/* BLIP message types; encoded in each frame's header. */
+typedef enum {
+    kBLIP_MSG,                      // initiating message
+    kBLIP_RPY,                      // response to a MSG
+    kBLIP_ERR                       // error response to a MSG
+} BLIPMessageType;
+
+/* Flag bits in a BLIP frame header */
+enum {
+    kBLIP_TypeMask  = 0x000F,       // bits reserved for storing message type
+    kBLIP_Compressed= 0x0010,       // data is gzipped
+    kBLIP_Urgent    = 0x0020,       // please send sooner/faster
+    kBLIP_NoReply   = 0x0040,       // no RPY needed
+    kBLIP_MoreComing= 0x0080,       // More frames coming (Applies only to individual frame)
+};
+typedef UInt16 BLIPMessageFlags;
+
+
+/** Header of a BLIP frame as sent across the wire. All fields are big-endian. */
+typedef struct {
+    UInt32           magic;         // magic number (kBLIPFrameHeaderMagicNumber)
+    UInt32           number;        // serial number of MSG
+    BLIPMessageFlags flags;         // encodes frame type, "more" flag, and other delivery options
+    UInt16           size;          // total size of frame, _including_ this header
+} BLIPFrameHeader;
+
+#define kBLIPFrameHeaderMagicNumber 0x9B34F205
+
+
+NSError *BLIPMakeError( int errorCode, NSString *message, ... ) __attribute__ ((format (__NSString__, 2, 3)));
+
+
+@interface BLIPConnection ()
+- (void) _dispatchRequest: (BLIPRequest*)request;
+- (void) _dispatchResponse: (BLIPResponse*)response;
+@end
+
+
+@interface BLIPMessage ()
+@property BOOL sent, propertiesAvailable, complete;
+- (void) _setFlag: (BLIPMessageFlags)flag value: (BOOL)value;
+- (void) _encode;
+@end
+
+
+@interface BLIPMessage ()
+- (id) _initWithConnection: (BLIPConnection*)connection
+                    isMine: (BOOL)isMine
+                     flags: (BLIPMessageFlags)flags
+                    number: (UInt32)msgNo
+                      body: (NSData*)body;
+- (BOOL) _writeFrameTo: (BLIPWriter*)writer maxSize: (UInt16)maxSize;
+@property (readonly) SInt32 _bytesWritten;
+- (void) _assignedNumber: (UInt32)number;
+- (BOOL) _receivedFrameWithHeader: (const BLIPFrameHeader*)header body: (NSData*)body;
+- (void) _connectionClosed;
+@end
+
+
+@interface BLIPRequest ()
+- (id) _initWithConnection: (BLIPConnection*)connection
+                      body: (NSData*)body 
+                properties: (NSDictionary*)properties;
+@end
+
+
+@interface BLIPResponse ()
+- (id) _initWithRequest: (BLIPRequest*)request;
+@end