forked from booyah/protobuf-objc
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add required #imports and forward declarations for "independent" builds.
This allows me to just import this library directly into my project to avoid complicated build steps. Signed-off-by: Jon Parise <[email protected]>
- Loading branch information
Evan Jones
authored and
Jon Parise
committed
Dec 6, 2011
1 parent
7764bd4
commit d088378
Showing
18 changed files
with
187 additions
and
1 deletion.
There are no files selected for viewing
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,135 @@ | ||
// Protocol Buffers for Objective C | ||
// | ||
// Copyright 2010 Booyah Inc. | ||
// 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 <Foundation/NSObject.h> | ||
|
||
#import "Message.h" | ||
|
||
/** | ||
* Abstract interface implemented by Protocol Message builders. | ||
*/ | ||
@protocol PBMessage_Builder<NSObject> | ||
/** Resets all fields to their default values. */ | ||
- (id<PBMessage_Builder>) clear; | ||
|
||
/** | ||
* Construct the final message. Once this is called, the Builder is no | ||
* longer valid, and calling any other method may throw a | ||
* NullPointerException. If you need to continue working with the builder | ||
* after calling {@code build()}, {@code clone()} it first. | ||
* @throws UninitializedMessageException The message is missing one or more | ||
* required fields (i.e. {@link #isInitialized()} returns false). | ||
* Use {@link #buildPartial()} to bypass this check. | ||
*/ | ||
- (id<PBMessage>) build; | ||
|
||
/** | ||
* Like {@link #build()}, but does not throw an exception if the message | ||
* is missing required fields. Instead, a partial message is returned. | ||
*/ | ||
- (id<PBMessage>) buildPartial; | ||
- (id<PBMessage_Builder>) clone; | ||
|
||
/** | ||
* Returns true if all required fields in the message and all embedded | ||
* messages are set, false otherwise. | ||
*/ | ||
- (BOOL) isInitialized; | ||
|
||
/** | ||
* Get the message's type's default instance. | ||
* See {@link Message#getDefaultInstanceForType()}. | ||
*/ | ||
- (id<PBMessage>) defaultInstance; | ||
|
||
- (PBUnknownFieldSet*) unknownFields; | ||
- (id<PBMessage_Builder>) setUnknownFields:(PBUnknownFieldSet*) unknownFields; | ||
|
||
/** | ||
* Merge some unknown fields into the {@link UnknownFieldSet} for this | ||
* message. | ||
*/ | ||
- (id<PBMessage_Builder>) mergeUnknownFields:(PBUnknownFieldSet*) unknownFields; | ||
|
||
/** | ||
* Parses a message of this type from the input and merges it with this | ||
* message, as if using {@link Builder#mergeFrom(Message)}. | ||
* | ||
* <p>Warning: This does not verify that all required fields are present in | ||
* the input message. If you call {@link #build()} without setting all | ||
* required fields, it will throw an {@link UninitializedMessageException}, | ||
* which is a {@code RuntimeException} and thus might not be caught. There | ||
* are a few good ways to deal with this: | ||
* <ul> | ||
* <li>Call {@link #isInitialized()} to verify that all required fields | ||
* are set before building. | ||
* <li>Parse the message separately using one of the static | ||
* {@code parseFrom} methods, then use {@link #mergeFrom(Message)} | ||
* to merge it with this one. {@code parseFrom} will throw an | ||
* {@link InvalidProtocolBufferException} (an {@code IOException}) | ||
* if some required fields are missing. | ||
* <li>Use {@code buildPartial()} to build, which ignores missing | ||
* required fields. | ||
* </ul> | ||
* | ||
* <p>Note: The caller should call | ||
* {@link CodedInputStream#checkLastTagWas(int)} after calling this to | ||
* verify that the last tag seen was the appropriate end-group tag, | ||
* or zero for EOF. | ||
*/ | ||
- (id<PBMessage_Builder>) mergeFromCodedInputStream:(PBCodedInputStream*) input; | ||
|
||
/** | ||
* Like {@link Builder#mergeFrom(CodedInputStream)}, but also | ||
* parses extensions. The extensions that you want to be able to parse | ||
* must be registered in {@code extensionRegistry}. Extensions not in | ||
* the registry will be treated as unknown fields. | ||
*/ | ||
- (id<PBMessage_Builder>) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; | ||
|
||
/** | ||
* Parse {@code data} as a message of this type and merge it with the | ||
* message being built. This is just a small wrapper around | ||
* {@link #mergeFrom(CodedInputStream)}. | ||
*/ | ||
- (id<PBMessage_Builder>) mergeFromData:(NSData*) data; | ||
|
||
/** | ||
* Parse {@code data} as a message of this type and merge it with the | ||
* message being built. This is just a small wrapper around | ||
* {@link #mergeFrom(CodedInputStream,ExtensionRegistry)}. | ||
*/ | ||
- (id<PBMessage_Builder>) mergeFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry; | ||
|
||
/** | ||
* Parse a message of this type from {@code input} and merge it with the | ||
* message being built. This is just a small wrapper around | ||
* {@link #mergeFrom(CodedInputStream)}. Note that this method always | ||
* reads the <i>entire</i> input (unless it throws an exception). If you | ||
* want it to stop earlier, you will need to wrap your input in some | ||
* wrapper stream that limits reading. Despite usually reading the entire | ||
* input, this does not close the stream. | ||
*/ | ||
- (id<PBMessage_Builder>) mergeFromInputStream:(NSInputStream*) input; | ||
|
||
/** | ||
* Parse a message of this type from {@code input} and merge it with the | ||
* message being built. This is just a small wrapper around | ||
* {@link #mergeFrom(CodedInputStream,ExtensionRegistry)}. | ||
*/ | ||
- (id<PBMessage_Builder>) mergeFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry; | ||
@end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters