diff options
Diffstat (limited to 'third_party/protobuf/3.2.0/objectivec/GPBMessage_PackagePrivate.h')
-rw-r--r-- | third_party/protobuf/3.2.0/objectivec/GPBMessage_PackagePrivate.h | 142 |
1 files changed, 0 insertions, 142 deletions
diff --git a/third_party/protobuf/3.2.0/objectivec/GPBMessage_PackagePrivate.h b/third_party/protobuf/3.2.0/objectivec/GPBMessage_PackagePrivate.h deleted file mode 100644 index 02d0e16e7a..0000000000 --- a/third_party/protobuf/3.2.0/objectivec/GPBMessage_PackagePrivate.h +++ /dev/null @@ -1,142 +0,0 @@ -// Protocol Buffers - Google's data interchange format -// Copyright 2008 Google Inc. All rights reserved. -// https://developers.google.com/protocol-buffers/ -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -// This header is private to the ProtobolBuffers library and must NOT be -// included by any sources outside this library. The contents of this file are -// subject to change at any time without notice. - -#import "GPBMessage.h" - -#import <libkern/OSAtomic.h> - -#import "GPBBootstrap.h" - -typedef struct GPBMessage_Storage { - uint32_t _has_storage_[0]; -} GPBMessage_Storage; - -typedef struct GPBMessage_Storage *GPBMessage_StoragePtr; - -@interface GPBMessage () { - @package - // NOTE: Because of the +allocWithZone code using NSAllocateObject(), - // this structure should ideally always be kept pointer aligned where the - // real storage starts is also pointer aligned. The compiler/runtime already - // do this, but it may not be documented. - - // A pointer to the actual fields of the subclasses. The actual structure - // pointed to by this pointer will depend on the subclass. - // All of the actual structures will start the same as - // GPBMessage_Storage with _has_storage__ as the first field. - // Kept public because static functions need to access it. - GPBMessage_StoragePtr messageStorage_; - - // A lock to provide mutual exclusion from internal data that can be modified - // by *read* operations such as getters (autocreation of message fields and - // message extensions, not setting of values). Used to guarantee thread safety - // for concurrent reads on the message. - // NOTE: OSSpinLock may seem like a good fit here but Apple engineers have - // pointed out that they are vulnerable to live locking on iOS in cases of - // priority inversion: - // http://mjtsai.com/blog/2015/12/16/osspinlock-is-unsafe/ - // https://lists.swift.org/pipermail/swift-dev/Week-of-Mon-20151214/000372.html - // Use of readOnlySemaphore_ must be prefaced by a call to - // GPBPrepareReadOnlySemaphore to ensure it has been created. This allows - // readOnlySemaphore_ to be only created when actually needed. - dispatch_once_t readOnlySemaphoreCreationOnce_; - dispatch_semaphore_t readOnlySemaphore_; -} - -// Gets an extension value without autocreating the result if not found. (i.e. -// returns nil if the extension is not set) -- (id)getExistingExtension:(GPBExtensionDescriptor *)extension; - -// Parses a message of this type from the input and merges it with this -// message. -// -// Warning: This does not verify that all required fields are present in -// the input message. -// Note: The caller should call -// -[CodedInputStream checkLastTagWas:] after calling this to -// verify that the last tag seen was the appropriate end-group tag, -// or zero for EOF. -// NOTE: This will throw if there is an error while parsing. -- (void)mergeFromCodedInputStream:(GPBCodedInputStream *)input - extensionRegistry:(GPBExtensionRegistry *)extensionRegistry; - -// Parses the next delimited message of this type from the input and merges it -// with this message. -- (void)mergeDelimitedFromCodedInputStream:(GPBCodedInputStream *)input - extensionRegistry: - (GPBExtensionRegistry *)extensionRegistry; - -- (void)addUnknownMapEntry:(int32_t)fieldNum value:(NSData *)data; - -@end - -CF_EXTERN_C_BEGIN - - -// Call this before using the readOnlySemaphore_. This ensures it is created only once. -NS_INLINE void GPBPrepareReadOnlySemaphore(GPBMessage *self) { -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdirect-ivar-access" - dispatch_once(&self->readOnlySemaphoreCreationOnce_, ^{ - self->readOnlySemaphore_ = dispatch_semaphore_create(1); - }); -#pragma clang diagnostic pop -} - -// Returns a new instance that was automatically created by |autocreator| for -// its field |field|. -GPBMessage *GPBCreateMessageWithAutocreator(Class msgClass, - GPBMessage *autocreator, - GPBFieldDescriptor *field) - __attribute__((ns_returns_retained)); - -// Returns whether |message| autocreated this message. This is NO if the message -// was not autocreated by |message| or if it has been mutated since -// autocreation. -BOOL GPBWasMessageAutocreatedBy(GPBMessage *message, GPBMessage *parent); - -// Call this when you mutate a message. It will cause the message to become -// visible to its autocreator. -void GPBBecomeVisibleToAutocreator(GPBMessage *self); - -// Call this when an array/dictionary is mutated so the parent message that -// autocreated it can react. -void GPBAutocreatedArrayModified(GPBMessage *self, id array); -void GPBAutocreatedDictionaryModified(GPBMessage *self, id dictionary); - -// Clear the autocreator, if any. Asserts if the autocreator still has an -// autocreated reference to this message. -void GPBClearMessageAutocreator(GPBMessage *self); - -CF_EXTERN_C_END |