Samond Classes Library 1.2.6-STABLE build 219
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 - 2018 by Samond Development Corporation. All rights reserved.
7 //
8 
22 #import <Foundation/Foundation.h>
23 #import <scl/NSArray+SCArray.h>
25 #import <scl/SCCollection.h>
26 
27 #pragma mark -
28 #pragma mark Class Constants
29 
38 #define SCQueueClass @"SCQueue"
39 
40 
83 @interface SCQueue : SCCollection {
84  NSMutableArray *_queue; // Internal data storage
85 }
86 
116 @property (nonatomic, readonly, assign) id firstObject;
117 
120 #pragma mark -
121 #pragma mark Creating Queues
122 + (instancetype)queueWithCoder:(NSCoder *)coder;
123 + (instancetype)queueWithContentsOfSerializedFile:(NSString *)path;
124 + (instancetype)queueWithDataDictionary:(NSDictionary *)dictionary;
125 + (instancetype)queueWithDataDictionaryFromFile:(NSString *)path;
126 + (instancetype)queueWithStream:(SCStream *)stream;
127 + (instancetype)queueWithFileStream:(NSString *)path;
128 + (instancetype)queueWithData:(NSData *)data;
129 + (instancetype)queueWithContentsOfFile:(NSString *)path;
130 + (instancetype)queueWithContentsOfURL:(NSURL *)url;
131 + (instancetype)queueWithContentsOfURLString:(NSString *)urlString;
132 
133 + (instancetype)queueWithName:(NSString *)name;
134 + (instancetype)queueWithObject:(id<SCCollectioning>)object;
135 + (instancetype)queueWithObjects:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
136 + (instancetype)queueWithCollection:(id<SCCollection>)collection;
137 + (instancetype)queueWithArray:(SCArray *)array;
138 + (instancetype)queueWithQueue:(SCQueue *)queue;
139 + (instancetype)queue;
140 
141 #pragma mark -
142 #pragma mark Initializing Queues
143 - (instancetype)initWithName:(NSString *)name;
144 - (instancetype)initWithObject:(id<SCCollectioning>)object;
145 - (instancetype)initWithObjects:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
146 - (instancetype)initWithCollection:(id<SCCollection>)collection;
147 - (instancetype)initWithArray:(SCArray *)array;
148 - (instancetype)initWithQueue:(SCQueue *)queue;
149 - (instancetype)init;
150 
151 #pragma mark -
152 #pragma mark Copying Queues
153 - (void)setQueue:(SCQueue *)queue;
154 
155 #pragma mark -
156 #pragma mark Comparing Queues
157 - (BOOL)isEqualToQueue:(SCQueue *)queue;
158 
159 #pragma mark -
160 #pragma mark Deriving New Queues
161 - (SCQueue *)queueByAddingObject:(id<SCCollectioning>)object;
162 - (SCQueue *)queueByAddingObjects:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
163 - (SCQueue *)queueByAddingCollection:(id<SCCollection>)collection;
164 - (SCQueue *)queueByAddingObjectsFromArray:(SCArray *)array;
165 - (SCQueue *)queueByAddingArray:(SCArray *)array;
166 - (SCQueue *)queueByAddingObjectsFromQueue:(SCQueue *)queue;
167 - (SCQueue *)queueByAddingQueue:(SCQueue *)queue;
168 
169 #pragma mark -
170 #pragma mark Adding Objects
171 - (void)addObjectsFromArray:(SCArray *)array;
172 - (void)addArray:(SCArray *)array;
173 - (void)addObjectsFromQueue:(SCQueue *)queue;
174 - (void)addQueue:(SCQueue *)queue;
175 
176 #pragma mark -
177 #pragma mark Getting Objects
178 - (id)getObject;
179 
180 #pragma mark -
181 #pragma mark Removing Objects
182 - (void)removeFirstObject;
183 - (void)removeLastObject;
184 
185 #pragma mark -
186 #pragma mark Copying Objects
187 - (void)duplicateFirstObject;
188 - (void)duplicateLastObject;
189 
190 @end
Caregory NSArray(SCArray) header file.
Collections communications protocol.
Definition: SCCollectioning.h:79
Category NSDictionary(SCDictionary) header file.
Abstract collections class.
Definition: SCCollection.h:98
Class SCCollection header file.
Queue of objects class.
Definition: SCQueue.h:83
Array class.
Definition: SCArray.h:84
Abstract parent class of the stream classes hierarchy.
Definition: SCStream.h:224