Playlist Generator
1.0
|
00001 /* 00002 Copyright (c) 2010, Stig Brautaset. 00003 All rights reserved. 00004 00005 Redistribution and use in source and binary forms, with or without 00006 modification, are permitted provided that the following conditions are 00007 met: 00008 00009 Redistributions of source code must retain the above copyright 00010 notice, this list of conditions and the following disclaimer. 00011 00012 Redistributions in binary form must reproduce the above copyright 00013 notice, this list of conditions and the following disclaimer in the 00014 documentation and/or other materials provided with the distribution. 00015 00016 Neither the name of the the author nor the names of its contributors 00017 may be used to endorse or promote products derived from this software 00018 without specific prior written permission. 00019 00020 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS 00021 IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 00022 TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A 00023 PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 00024 HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 00025 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 00026 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 00027 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 00028 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 00029 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 00030 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00031 */ 00032 00033 #import <Foundation/Foundation.h> 00034 00036 @interface NSObject (SBProxyForJson) 00037 00057 - (id)proxyForJson; 00058 00059 @end 00060 00061 @class SBJsonStreamWriter; 00062 00063 @protocol SBJsonStreamWriterDelegate 00064 00065 - (void)writer:(SBJsonStreamWriter*)writer appendBytes:(const void *)bytes length:(NSUInteger)length; 00066 00067 @end 00068 00069 @class SBJsonStreamWriterState; 00070 00085 @interface SBJsonStreamWriter : NSObject { 00086 NSMutableDictionary *cache; 00087 } 00088 00089 @property (nonatomic, unsafe_unretained) SBJsonStreamWriterState *state; // Internal 00090 @property (nonatomic, readonly, strong) NSMutableArray *stateStack; // Internal 00091 00096 @property (unsafe_unretained) id<SBJsonStreamWriterDelegate> delegate; 00097 00105 @property NSUInteger maxDepth; 00106 00115 @property BOOL humanReadable; 00116 00123 @property BOOL sortKeys; 00124 00126 @property (copy) NSString *error; 00127 00132 - (BOOL)writeObject:(NSDictionary*)dict; 00133 00138 - (BOOL)writeArray:(NSArray *)array; 00139 00144 - (BOOL)writeObjectOpen; 00145 00150 - (BOOL)writeObjectClose; 00151 00155 - (BOOL)writeArrayOpen; 00156 00160 - (BOOL)writeArrayClose; 00161 00165 - (BOOL)writeNull; 00166 00170 - (BOOL)writeBool:(BOOL)x; 00171 00175 - (BOOL)writeNumber:(NSNumber*)n; 00176 00180 - (BOOL)writeString:(NSString*)s; 00181 00182 @end 00183 00184 @interface SBJsonStreamWriter (Private) 00185 - (BOOL)writeValue:(id)v; 00186 - (void)appendBytes:(const void *)bytes length:(NSUInteger)length; 00187 @end 00188