Samond Classes Library 1.2.3-RELEASE build 192
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 
113 @property (nonatomic, readonly, assign) id firstObject;
114 
117 #pragma mark -
118 #pragma mark Creating Queues
119 + (instancetype)queueWithCoder:(NSCoder *)coder;
120 + (instancetype)queueWithContentsOfSerializedFile:(NSString *)path;
121 + (instancetype)queueWithDataDictionary:(NSDictionary *)dictionary;
122 + (instancetype)queueWithDataDictionaryFromFile:(NSString *)path;
123 + (instancetype)queueWithStream:(SCStream *)stream;
124 + (instancetype)queueWithFileStream:(NSString *)path;
125 + (instancetype)queueWithData:(NSData *)data;
126 + (instancetype)queueWithContentsOfFile:(NSString *)path;
127 + (instancetype)queueWithContentsOfURL:(NSURL *)url;
128 + (instancetype)queueWithContentsOfURLString:(NSString *)urlString;
129 
130 + (instancetype)queueWithName:(NSString *)name;
131 + (instancetype)queueWithObject:(id<SCCollectioning>)object;
132 + (instancetype)queueWithObjects:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
133 + (instancetype)queueWithCollection:(id<SCCollection>)collection;
134 + (instancetype)queueWithArray:(SCArray *)array;
135 + (instancetype)queueWithQueue:(SCQueue *)queue;
136 + (instancetype)queue;
137 
138 #pragma mark -
139 #pragma mark Initializing Queues
140 - (instancetype)initWithName:(NSString *)name;
141 - (instancetype)initWithObject:(id<SCCollectioning>)object;
142 - (instancetype)initWithObjects:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
143 - (instancetype)initWithCollection:(id<SCCollection>)collection;
144 - (instancetype)initWithArray:(SCArray *)array;
145 - (instancetype)initWithQueue:(SCQueue *)queue;
146 - (instancetype)init;
147 
148 #pragma mark -
149 #pragma mark Copying Queues
150 - (void)setQueue:(SCQueue *)queue;
151 
152 #pragma mark -
153 #pragma mark Comparing Queues
154 - (BOOL)isEqualToQueue:(SCQueue *)queue;
155 
156 #pragma mark -
157 #pragma mark Deriving New Queues
158 - (SCQueue *)queueByAddingObject:(id<SCCollectioning>)object;
159 - (SCQueue *)queueByAddingObjects:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
160 - (SCQueue *)queueByAddingCollection:(id<SCCollection>)collection;
161 - (SCQueue *)queueByAddingObjectsFromArray:(SCArray *)array;
162 - (SCQueue *)queueByAddingArray:(SCArray *)array;
163 - (SCQueue *)queueByAddingObjectsFromQueue:(SCQueue *)queue;
164 - (SCQueue *)queueByAddingQueue:(SCQueue *)queue;
165 
166 #pragma mark -
167 #pragma mark Adding Objects
168 - (void)addObjectsFromArray:(SCArray *)array;
169 - (void)addArray:(SCArray *)array;
170 - (void)addObjectsFromQueue:(SCQueue *)queue;
171 - (void)addQueue:(SCQueue *)queue;
172 
173 #pragma mark -
174 #pragma mark Getting Objects
175 - (id)getObject;
176 
177 #pragma mark -
178 #pragma mark Removing Objects
179 - (void)removeFirstObject;
180 - (void)removeLastObject;
181 
182 #pragma mark -
183 #pragma mark Copying Objects
184 - (void)duplicateFirstObject;
185 - (void)duplicateLastObject;
186 
187 @end
Collections communications protocol.
Definition: SCCollectioning.h:78
Abstract collections class.
Definition: SCCollection.h:97
Class SCCollection header file.
Queue of objects class.
Definition: SCQueue.h:80
Array class.
Definition: SCArray.h:81
Abstract parent class of the stream classes hierarchy.
Definition: SCStream.h:238