Samond Classes Library 1.2.6-STABLE build 219
SCStream.h
Go to the documentation of this file.
1 //
2 // SCStream.h
3 // scl
4 //
5 // Created by Viacheslav Smolensky on 02.03.12.
6 // Copyright (c) 2007 - 2018 by Samond Development Corporation. All rights reserved.
7 //
8 
24 #import <Foundation/Foundation.h>
25 #import <scl/SCObject.h>
27 
28 #pragma mark -
29 #pragma mark Class Constants
30 
39 #define SCStreamClass @"SCStream"
40 
45 #define SC_STREAM_MAX_STRING_LENGTH 4096
46 
47 #pragma mark -
48 #pragma mark Stream Support Types
49 
58 typedef enum {
64 
70 
77 
82 typedef enum {
88 
94 
100 
106 
112 
118 
124 
130 
136 
142 
148 
155 
161 
162 
163 @protocol SCStreamDelegate;
164 @class SCStreamException;
165 
166 #pragma mark -
167 
224 @interface SCStream : SCObject {
225  SCStreamErrorHandling _errorHandling; // Errors handling mode
226  SCStreamStatus _status; // Stream status
227  NSString *_name; // Stream name
228  BOOL _opened; // Stream opening flag
229  id _object; // Pointer to the current loaded object
230  SCStreamException *_streamException; // Last detected stream error
231  SCSystemException *_systemException; // Last detected system error
232  id<SCStreamDelegate> _delegate; // Stream delegate object
233  SCULong _totalRead; // Number of the totally readed characters
234  SCULong _totalWrite; // Number of the totally writed characters
235  SCULong _lastRead; // Number of the characters that were readed during last operation
236  SCULong _lastWrite; // Number of the characters that were writed during last operation
237 }
238 #pragma mark -
239 #pragma mark Свойства экземпляра класса
240 
251 @property (nonatomic, readwrite, assign) SCStreamErrorHandling errorHandling;
252 
257 @property (nonatomic, readonly, assign) SCStreamStatus status;
258 
263 @property (nonatomic, readonly, retain) NSString *name;
264 
269 @property (nonatomic, readonly, assign) BOOL opened;
270 
275 @property (nonatomic, readonly, assign) BOOL readable;
276 
281 @property (nonatomic, readonly, assign) BOOL writable;
282 
287 @property (nonatomic, readonly, assign) BOOL readOnly;
288 
293 @property (nonatomic, readonly, assign) BOOL writeOnly;
294 
299 @property (nonatomic, readonly, assign) BOOL readWrite;
300 
305 @property (nonatomic, readonly, assign) id object;
306 
311 @property (nonatomic, readonly, retain) SCStreamException *streamException;
312 
317 @property (nonatomic, readonly, retain) SCSystemException *systemException;
318 
323 @property (nonatomic, readwrite, retain) id<SCStreamDelegate> delegate;
324 
344 @property (nonatomic, readonly, assign) BOOL eof;
345 
357 @property (nonatomic, readonly, assign) SCULong totalRead;
358 
363 @property (nonatomic, readonly, assign) SCULong totalWrite;
364 
369 @property (nonatomic, readonly, assign) SCULong lastRead;
370 
375 @property (nonatomic, readonly, assign) SCULong lastWrite;
376 
379 #pragma mark -
380 #pragma mark Initializing Streams
381 - (instancetype)init;
382 
383 #pragma mark -
384 #pragma mark Data Reading
385 - (SCSize)readBytes:(SCSize)count toBuffer:(void *)buffer;
386 - (id)readObject;
387 - (SCByte)readByte;
388 - (SCUByte)readUByte;
389 - (SCShort)readShort;
390 - (SCUShort)readUShort;
391 - (SCInteger)readInteger;
392 - (SCUInteger)readUInteger;
393 - (SCLong)readLong;
394 - (SCULong)readULong;
395 - (char)readChar;
396 - (unichar)readUnichar;
397 - (const char *)readCharString;
398 - (BOOL)readBool;
399 - (SCFloat)readFloat;
400 - (SCDouble)readDouble;
401 - (NSInteger)readNSInteger;
402 - (NSUInteger)readNSUInteger;
403 - (SCSize)readToByte:(SCByte *)buffer;
404 - (SCSize)readToUByte:(SCUByte *)buffer;
405 - (SCSize)readToShort:(SCShort *)buffer;
406 - (SCSize)readToUShort:(SCUShort *)buffer;
407 - (SCSize)readToInteger:(SCInteger *)buffer;
408 - (SCSize)readToUInteger:(SCUInteger *)buffer;
409 - (SCSize)readToLong:(SCULong *)buffer;
410 - (SCSize)readToULong:(SCULong *)buffer;
411 - (SCSize)readToChar:(char *)buffer;
412 - (SCSize)readToUnichar:(unichar *)buffer;
413 - (SCSize)readToCharString:(char *)buffer max:(SCSize)max;
414 - (SCSize)readToBool:(BOOL *)buffer;
415 - (SCSize)readToFloat:(SCFloat *)buffer;
416 - (SCSize)readToDouble:(SCDouble *)buffer;
417 - (SCSize)readToNSInteger:(NSInteger *)buffer;
418 - (SCSize)readToNSUInteger:(NSUInteger *)buffer;
419 
420 #pragma mark -
421 #pragma mark Data Writing
422 - (SCSize)writeBytes:(SCSize)count fromBuffer:(const void *)buffer;
423 - (void)writeObject:(id<SCStreaming>)object;
424 - (void)writeByte:(SCByte)variable;
425 - (void)writeUByte:(SCUByte)variable;
426 - (void)writeShort:(SCShort)variable;
427 - (void)writeUShort:(SCUShort)variable;
428 - (void)writeInteger:(SCInteger)variable;
429 - (void)writeUInteger:(SCUInteger)variable;
430 - (void)writeLong:(SCLong)variable;
431 - (void)writeULong:(SCULong)variable;
432 - (void)writeChar:(char)variable;
433 - (void)writeUnichar:(unichar)variable;
434 - (void)writeCharString:(const char *)variable;
435 - (void)writeBool:(BOOL)variable;
436 - (void)writeFloat:(SCFloat)variable;
437 - (void)writeDouble:(SCDouble)variable;
438 - (void)writeNSInteger:(NSInteger)variable;
439 - (void)writeNSUInteger:(NSUInteger)variable;
440 
441 #pragma mark -
442 #pragma mark Text Files Support
443 - (NSString *)readStringWithEncoding:(NSStringEncoding)encoding max:(SCInteger)max;
444 - (NSString *)readStringWithEncoding:(NSStringEncoding)encoding;
445 - (NSString *)readStringWithMax:(SCInteger)max;
446 - (NSString *)readString;
447 - (void)writeString:(NSString *)string encoding:(NSStringEncoding)encoding;
448 - (void)writeString:(NSString *)string;
449 
450 #pragma mark -
451 #pragma mark Statistic Methods
452 - (void)resetStats;
453 
454 @end
uint64_t SCULong
Definition: SCTypes.h:94
int16_t SCShort
Definition: SCTypes.h:189
Definition: SCStream.h:99
Definition: SCStream.h:117
int64_t SCLong
Definition: SCTypes.h:176
Definition: SCStream.h:87
int32_t SCInteger
Definition: SCTypes.h:149
uint32_t SCUInteger
Definition: SCTypes.h:73
SCStreamStatusCode
Definition: SCStream.h:82
Definition: SCStream.h:105
Class SCObject header file.
Definition: SCStream.h:147
Definition: SCStream.h:69
int8_t SCByte
Definition: SCTypes.h:119
Streams events handling class.
Definition: SCStreamDelegate.h:274
uint16_t SCUShort
Definition: SCTypes.h:101
SCStreamErrorHandling
Definition: SCStream.h:58
Parent class of all library classes.
Definition: SCObject.h:61
uint8_t SCUByte
Definition: SCTypes.h:207
Definition: SCStream.h:129
System error exception class.
Definition: SCSystemException.h:101
Definition: SCStream.h:135
Definition: SCStream.h:93
Exception SCSystemException header file.
Definition: SCStream.h:63
Definition: SCStream.h:153
double SCDouble
Definition: SCTypes.h:131
Streams communications protocol.
Definition: SCStreaming.h:43
Exception class SCStreamException.
Definition: SCStreamException.h:343
SCInteger SCStreamStatus
Definition: SCStream.h:160
float SCFloat
Definition: SCTypes.h:143
Definition: SCStream.h:123
Definition: SCStream.h:75
Definition: SCStream.h:111
Abstract parent class of the stream classes hierarchy.
Definition: SCStream.h:224
size_t SCSize
Definition: SCTypes.h:220
Definition: SCStream.h:141