<?php
namespace google\protobuf;

// @@protoc_insertion_point(namespace:.google.protobuf.MessageOptions)

/**
 * Generated by the protocol buffer compiler.  DO NOT EDIT!
 * source: google/protobuf/descriptor.proto
 *
 * -*- magic methods -*-
 *
 * @method bool getMessageSetWireFormat()
 * @method void setMessageSetWireFormat(bool $value)
 * @method bool getNoStandardDescriptorAccessor()
 * @method void setNoStandardDescriptorAccessor(bool $value)
 * @method array getUninterpretedOption()
 * @method void appendUninterpretedOption(\google\protobuf\UninterpretedOption $value)
 */
class MessageOptions extends \ProtocolBuffers\Message
{
  // @@protoc_insertion_point(traits:.google.protobuf.MessageOptions)
  
  /**
   * Set true to use the old proto1 MessageSet wire format for extensions.
   * This is provided for backwards-compatibility with the MessageSet wire
   * format.  You should not use this for any other reason:  It's less
   * efficient, has fewer features, and is more complicated.
   * 
   * The message must be defined exactly as follows:
   *   message Foo {
   *     option message_set_wire_format = true;
   *     extensions 4 to max;
   *   }
   * Note that the message cannot have any defined fields; MessageSets only
   * have extensions.
   * 
   * All extensions of your type must be singular messages; e.g. they cannot
   * be int32s, enums, or repeated messages.
   * 
   * Because this is an option, the above two restrictions are not enforced by
   * the protocol compiler.
   *
   * @var bool $message_set_wire_format
   * @tag 1
   * @label optional
   * @type \ProtocolBuffers::TYPE_BOOL
   **/
  protected $message_set_wire_format;
  
  /**
   * Disables the generation of the standard "descriptor()" accessor, which can
   * conflict with a field of the same name.  This is meant to make migration
   * from proto1 easier; new code should avoid fields named "descriptor".
   *
   * @var bool $no_standard_descriptor_accessor
   * @tag 2
   * @label optional
   * @type \ProtocolBuffers::TYPE_BOOL
   **/
  protected $no_standard_descriptor_accessor;
  
  /**
   * The parser stores options it doesn't recognize here. See above.
   *
   * @var array $uninterpreted_option
   * @tag 999
   * @label optional
   * @type \ProtocolBuffers::TYPE_MESSAGE
   * @see \google\protobuf\UninterpretedOption
   **/
  protected $uninterpreted_option;
  
  
  // @@protoc_insertion_point(properties_scope:.google.protobuf.MessageOptions)

  // @@protoc_insertion_point(class_scope:.google.protobuf.MessageOptions)

  /**
   * get descriptor for protocol buffers
   * 
   * @return \ProtocolBuffersDescriptor
   */
  public static function getDescriptor()
  {
    static $descriptor;
    
    if (!isset($descriptor)) {
      $desc = new \ProtocolBuffers\DescriptorBuilder();
      $desc->addField(1, new \ProtocolBuffers\FieldDescriptor(array(
        "type"     => \ProtocolBuffers::TYPE_BOOL,
        "name"     => "message_set_wire_format",
        "required" => false,
        "optional" => true,
        "repeated" => false,
        "packable" => false,
        "default"  => false,
      )));
      $desc->addField(2, new \ProtocolBuffers\FieldDescriptor(array(
        "type"     => \ProtocolBuffers::TYPE_BOOL,
        "name"     => "no_standard_descriptor_accessor",
        "required" => false,
        "optional" => true,
        "repeated" => false,
        "packable" => false,
        "default"  => false,
      )));
      $desc->addField(999, new \ProtocolBuffers\FieldDescriptor(array(
        "type"     => \ProtocolBuffers::TYPE_MESSAGE,
        "name"     => "uninterpreted_option",
        "required" => false,
        "optional" => false,
        "repeated" => true,
        "packable" => false,
        "default"  => null,
        "message" => '\google\protobuf\UninterpretedOption',
      )));
      // @@protoc_insertion_point(builder_scope:.google.protobuf.MessageOptions)

      $descriptor = $desc->build();
    }
    return $descriptor;
  }

}
