mirror of https://github.com/oxen-io/session-ios
				
				
				
			
			You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			78 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Objective-C
		
	
			
		
		
	
	
			78 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Objective-C
		
	
| // Copyright 2008 Cyrus Najmabadi
 | |
| //
 | |
| // Licensed under the Apache License, Version 2.0 (the "License");
 | |
| // you may not use this file except in compliance with the License.
 | |
| // You may obtain a copy of the License at
 | |
| //
 | |
| //     http://www.apache.org/licenses/LICENSE-2.0
 | |
| //
 | |
| // Unless required by applicable law or agreed to in writing, software
 | |
| // distributed under the License is distributed on an "AS IS" BASIS,
 | |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | |
| // See the License for the specific language governing permissions and
 | |
| // limitations under the License.
 | |
| 
 | |
| #import "GeneratedMessage.h"
 | |
| @protocol PBExtensionField;
 | |
| 
 | |
| /**
 | |
|  * Generated message classes for message types that contain extension ranges
 | |
|  * subclass this.
 | |
|  *
 | |
|  * <p>This class implements type-safe accessors for extensions.  They
 | |
|  * implement all the same operations that you can do with normal fields --
 | |
|  * e.g. "has", "get", and "getCount" -- but for extensions.  The extensions
 | |
|  * are identified using instances of the class {@link GeneratedExtension};
 | |
|  * the protocol compiler generates a static instance of this class for every
 | |
|  * extension in its input.  Through the magic of generics, all is made
 | |
|  * type-safe.
 | |
|  *
 | |
|  * <p>For example, imagine you have the {@code .proto} file:
 | |
|  *
 | |
|  * <pre>
 | |
|  * option java_class = "MyProto";
 | |
|  *
 | |
|  * message Foo {
 | |
|  *   extensions 1000 to max;
 | |
|  * }
 | |
|  *
 | |
|  * extend Foo {
 | |
|  *   optional int32 bar;
 | |
|  * }
 | |
|  * </pre>
 | |
|  *
 | |
|  * <p>Then you might write code like:
 | |
|  *
 | |
|  * <pre>
 | |
|  * MyProto.Foo foo = getFoo();
 | |
|  * int i = foo.getExtension(MyProto.bar);
 | |
|  * </pre>
 | |
|  *
 | |
|  * <p>See also {@link ExtendableBuilder}.
 | |
|  */
 | |
| @interface PBExtendableMessage : PBGeneratedMessage {
 | |
| @private
 | |
|   NSMutableDictionary* extensionMap;
 | |
|   NSMutableDictionary* extensionRegistry;
 | |
| }
 | |
| 
 | |
| @property (retain) NSMutableDictionary* extensionMap;
 | |
| @property (retain) NSMutableDictionary* extensionRegistry;
 | |
| 
 | |
| - (BOOL) hasExtension:(id<PBExtensionField>) extension;
 | |
| - (id) getExtension:(id<PBExtensionField>) extension;
 | |
| 
 | |
| //@protected
 | |
| - (BOOL) extensionsAreInitialized;
 | |
| - (int32_t) extensionsSerializedSize;
 | |
| - (void) writeExtensionsToCodedOutputStream:(PBCodedOutputStream*) output
 | |
|                                        from:(int32_t) startInclusive
 | |
|                                          to:(int32_t) endExclusive;
 | |
| 
 | |
| 
 | |
| 
 | |
| /* @internal */
 | |
| - (void) ensureExtensionIsRegistered:(id<PBExtensionField>) extension;
 | |
| 
 | |
| @end
 |