lpw
2021-04-20 ed8a75165efbcd79f5f9b1ab6f4ec10eed6f16a1
commit | author | age
454098 1 /*
L 2  * Copyright 2017 Google
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 #import <Foundation/Foundation.h>
18
19 /// A mutable dictionary that provides atomic accessor and mutators.
20 @interface GULMutableDictionary : NSObject
21
22 /// Returns an object given a key in the dictionary or nil if not found.
23 - (id)objectForKey:(id)key;
24
25 /// Updates the object given its key or adds it to the dictionary if it is not in the dictionary.
26 - (void)setObject:(id)object forKey:(id<NSCopying>)key;
27
28 /// Removes the object given its session ID from the dictionary.
29 - (void)removeObjectForKey:(id)key;
30
31 /// Removes all objects.
32 - (void)removeAllObjects;
33
34 /// Returns the number of current objects in the dictionary.
35 - (NSUInteger)count;
36
37 /// Returns an object given a key in the dictionary or nil if not found.
38 - (id)objectForKeyedSubscript:(id<NSCopying>)key;
39
40 /// Updates the object given its key or adds it to the dictionary if it is not in the dictionary.
41 - (void)setObject:(id)obj forKeyedSubscript:(id<NSCopying>)key;
42
43 /// Returns the immutable dictionary.
44 - (NSDictionary *)dictionary;
45
46 @end