Samond Classes Library 1.2.2-RELEASE build 188
SCQueue.h
Go to the documentation of this file.
1 //
2 // SCQueue.h
3 // scl
4 //
5 // Created by Viacheslav Smolensky on 13.04.12.
6 // Copyright (c) 2007 - 2017 by Samond Development Corporation. All rights reserved.
7 //
8 
22 #import <scl/SCCollection.h>
23 
24 #pragma mark -
25 #pragma mark Class Constants
26 
35 #define SCQueueClass @"SCQueue"
36 
37 
80 @interface SCQueue : SCCollection {
81  NSMutableArray *fQueue; // Internal data storage
82 }
83 
109 @property (nonatomic, readonly, assign) id firstObject;
110 
113 #pragma mark -
114 #pragma mark Creating Queues
115 + (instancetype)queueWithCoder:(NSCoder *)coder;
116 + (instancetype)queueWithContentsOfSerializedFile:(NSString *)path;
117 + (instancetype)queueWithDataDictionary:(NSDictionary *)dictionary;
118 + (instancetype)queueWithDataDictionaryFromFile:(NSString *)path;
119 + (instancetype)queueWithStream:(SCStream *)stream;
120 + (instancetype)queueWithFileStream:(NSString *)path;
121 
122 + (instancetype)queueWithName:(NSString *)name;
123 + (instancetype)queueWithObject:(id<SCCollectioning>)object;
124 + (instancetype)queueWithObjects:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
125 + (instancetype)queueWithCollection:(id<SCCollection>)collection;
126 + (instancetype)queueWithQueue:(SCQueue *)queue;
127 + (instancetype)queue;
128 
129 #pragma mark -
130 #pragma mark Initializing Queues
131 - (instancetype)initWithName:(NSString *)name;
132 - (instancetype)initWithObject:(id<SCCollectioning>)object;
133 - (instancetype)initWithObjects:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
134 - (instancetype)initWithCollection:(id<SCCollection>)collection;
135 - (instancetype)initWithQueue:(SCQueue *)queue;
136 - (instancetype)init;
137 
138 #pragma mark -
139 #pragma mark Copying Queues
140 - (void)setQueue:(SCQueue *)queue;
141 
142 #pragma mark -
143 #pragma mark Comparing Queues
144 - (BOOL)isEqualToQueue:(SCQueue *)queue;
145 
146 #pragma mark -
147 #pragma mark Getting Objects
148 - (id)getObject;
149 
150 #pragma mark -
151 #pragma mark Removing Objects
152 - (void)removeFirstObject;
153 - (void)removeLastObject;
154 
155 #pragma mark -
156 #pragma mark Copying Objects
157 - (void)duplicateFirstObject;
158 - (void)duplicateLastObject;
159 
160 @end
Collections communications protocol.
Definition: SCCollectioning.h:78
Abstract collections class.
Definition: SCCollection.h:101
Class SCCollection header file.
Queue of objects class.
Definition: SCQueue.h:80
Abstract parent class of the stream classes hierarchy.
Definition: SCStream.h:226