parameters: (cls, name, bases, dictionary)
docstring: Here we perform the majority of our work on the class.
      We add enum getters, an __init__ method, implementations
      of all Message methods, and properties for all fields
      in the protocol type.
  
      Args:
        name: Name of the class (ignored, but required by the
          metaclass protocol).
        bases: Base classes of the class we're constructing.
          (Should be message.Message).  We ignore this field, but
          it's required by the metaclass protocol
        dictionary: The class dictionary of the class we're
          constructing.  dictionary[_DESCRIPTOR_KEY] must contain
          a Descriptor object describing this protocol message
          type.
docstring_summary: Here we perform the majority of our work on the class.
      We add enum getters, an __init__ method, implementations
      of all Message methods, and properties for all fields
      in the protocol type.
docstring_tokens: Here we perform the majority of our work on the class . We add enum getters an __init__ method implementations of all Message methods and properties for all fields in the protocol type .
function: def __init__(cls, name, bases, dictionary):
      """Here we perform the majority of our work on the class.
      We add enum getters, an __init__ method, implementations
      of all Message methods, and properties for all fields
      in the protocol type.
  
      Args:
        name: Name of the class (ignored, but required by the
          metaclass protocol).
        bases: Base classes of the class we're constructing.
          (Should be message.Message).  We ignore this field, but
          it's required by the metaclass protocol
        dictionary: The class dictionary of the class we're
          constructing.  dictionary[_DESCRIPTOR_KEY] must contain
          a Descriptor object describing this protocol message
          type.
      """
      descriptor = dictionary[GeneratedProtocolMessageType._DESCRIPTOR_KEY]
      # We act as a "friend" class of the descriptor, setting
      # its _concrete_class attribute the first time we use a
      # given descriptor to initialize a concrete protocol message
      # class.
      concrete_class_attr_name = '_concrete_class'
      if not hasattr(descriptor, concrete_class_attr_name):
        setattr(descriptor, concrete_class_attr_name, cls)
      cls._known_extensions = []
      _AddEnumValues(descriptor, cls)
      _AddInitMethod(descriptor, cls)
      _AddPropertiesForFields(descriptor, cls)
      _AddPropertiesForExtensions(descriptor, cls)
      _AddStaticMethods(cls)
      _AddMessageMethods(descriptor, cls)
      _AddPrivateHelperMethods(cls)
      superclass = super(GeneratedProtocolMessageType, cls)
      superclass.__init__(name, bases, dictionary)
function_tokens: def __init__ ( cls , name , bases , dictionary ) : descriptor = dictionary [ GeneratedProtocolMessageType . _DESCRIPTOR_KEY ] # We act as a "friend" class of the descriptor, setting # its _concrete_class attribute the first time we use a # given descriptor to initialize a concrete protocol message # class. concrete_class_attr_name = '_concrete_class' if not hasattr ( descriptor , concrete_class_attr_name ) : setattr ( descriptor , concrete_class_attr_name , cls ) cls . _known_extensions = [ ] _AddEnumValues ( descriptor , cls ) _AddInitMethod ( descriptor , cls ) _AddPropertiesForFields ( descriptor , cls ) _AddPropertiesForExtensions ( descriptor , cls ) _AddStaticMethods ( cls ) _AddMessageMethods ( descriptor , cls ) _AddPrivateHelperMethods ( cls ) superclass = super ( GeneratedProtocolMessageType , cls ) superclass . __init__ ( name , bases , dictionary )