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.
		
		
		
		
		
			
		
			
				
	
	
		
			76 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Objective-C
		
	
			
		
		
	
	
			76 lines
		
	
	
		
			2.5 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_Builder.h"
 | |
| 
 | |
| @protocol PBExtensionField;
 | |
| @class PBExtendableMessage_Builder;
 | |
| @class PBExtendableMessage;
 | |
| 
 | |
| /**
 | |
|  * Generated message builders 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. "get", "set", and "add" -- 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 =
 | |
|  *   MyProto.Foo.newBuilder()
 | |
|  *     .setExtension(MyProto.bar, 123)
 | |
|  *     .build();
 | |
|  * </pre>
 | |
|  *
 | |
|  * <p>See also {@link ExtendableMessage}.
 | |
|  */
 | |
| @interface PBExtendableMessage_Builder : PBGeneratedMessage_Builder {
 | |
| }
 | |
| 
 | |
| - (id) getExtension:(id<PBExtensionField>) extension;
 | |
| - (BOOL) hasExtension:(id<PBExtensionField>) extension;
 | |
| - (PBExtendableMessage_Builder*) setExtension:(id<PBExtensionField>) extension
 | |
|                                         value:(id) value;
 | |
| - (PBExtendableMessage_Builder*) addExtension:(id<PBExtensionField>) extension
 | |
|                                         value:(id) value;
 | |
| - (PBExtendableMessage_Builder*) setExtension:(id<PBExtensionField>) extension
 | |
|                                         index:(int32_t) index
 | |
|                                         value:(id) value;
 | |
| - (PBExtendableMessage_Builder*) clearExtension:(id<PBExtensionField>) extension;
 | |
| 
 | |
| /* @protected */
 | |
| - (void) mergeExtensionFields:(PBExtendableMessage*) other;
 | |
| 
 | |
| @end
 |