Samond Classes Library 1.2.2-RELEASE build 188
SCStack.h
Go to the documentation of this file.
1 //
2 // SCStack.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 SCStackClass @"SCStack"
36 
74 @interface SCStack : SCCollection {
75  NSMutableArray *fStack; // Internal data storage
76 }
77 
105 @property (nonatomic, readonly, assign) id topObject;
106 
109 #pragma mark -
110 #pragma mark Creating Stacks
111 + (instancetype)stackWithCoder:(NSCoder *)coder;
112 + (instancetype)stackWithContentsOfSerializedFile:(NSString *)path;
113 + (instancetype)stackWithDataDictionary:(NSDictionary *)dictionary;
114 + (instancetype)stackWithDataDictionaryFromFile:(NSString *)path;
115 + (instancetype)stackWithStream:(SCStream *)stream;
116 + (instancetype)stackWithFileStream:(NSString *)path;
117 
118 + (instancetype)stackWithName:(NSString *)name;
119 + (instancetype)stackWithObject:(id<SCCollectioning>)object;
120 + (instancetype)stackWithObjects:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
121 + (instancetype)stackWithCollection:(id<SCCollection>)collection;
122 + (instancetype)stackWithStack:(SCStack *)stack;
123 + (instancetype)stack;
124 
125 #pragma mark -
126 #pragma mark Initializing Stacks
127 - (instancetype)initWithName:(NSString *)name;
128 - (instancetype)initWithObject:(id<SCCollectioning>)object;
129 - (instancetype)initWithObjects:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
130 - (instancetype)initWithCollection:(id<SCCollection>)collection;
131 - (instancetype)initWithStack:(SCStack *)stack;
132 - (instancetype)init;
133 
134 #pragma mark -
135 #pragma mark Copying Stacks
136 - (void)setStack:(SCStack *)stack;
137 
138 #pragma mark -
139 #pragma mark Comparing Stacks
140 - (BOOL)isEqualToStack:(SCStack *)stack;
141 
142 #pragma mark -
143 #pragma mark Pushing Objects
144 - (void)pushObject:(id<SCCollectioning>)object;
145 - (void)pushObjects:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
146 - (void)pushCollection:(id<SCCollection>)collection;
147 
148 #pragma mark -
149 #pragma mark Poping Objects
150 - (void)pop;
151 - (id)popObject;
152 
153 #pragma mark -
154 #pragma mark Removing Objects
155 - (void)removeTopObject;
156 
157 #pragma mark -
158 #pragma mark Copying Objects
159 - (void)duplicateTopObject;
160 
161 @end
Collections communications protocol.
Definition: SCCollectioning.h:78
Abstract collections class.
Definition: SCCollection.h:101
Class SCCollection header file.
Stack of objects class.
Definition: SCStack.h:74
Abstract parent class of the stream classes hierarchy.
Definition: SCStream.h:226