Package google :: Package protobuf :: Module message :: Class Message
[hide private]
[frames] | no frames]

Class Message

source code

object --+
         |
        Message

Abstract base class for protocol messages.

Protocol message classes are almost always generated by the protocol
compiler.  These generated types subclass Message and implement the methods
shown below.

TODO(robinson): Link to an HTML document here.

TODO(robinson): Document that instances of this class will also
have an Extensions attribute with __getitem__ and __setitem__.
Again, not sure how to best convey this.

TODO(robinson): Document that the class must also have a static
  RegisterExtension(extension_field) method.
  Not sure how to best express at this point.

Instance Methods [hide private]
 
__deepcopy__(self, memo=None) source code
 
__eq__(self, other_msg)
Recursively compares two messages by value and structure.
source code
 
__ne__(self, other_msg) source code
 
__hash__(self)
hash(x)
source code
 
__str__(self)
Outputs a human-readable representation of the message.
source code
 
__unicode__(self)
Outputs a human-readable representation of the message.
source code
 
MergeFrom(self, other_msg)
Merges the contents of the specified message into current message.
source code
 
CopyFrom(self, other_msg)
Copies the content of the specified message into the current message.
source code
 
Clear(self)
Clears all data that was set in the message.
source code
 
SetInParent(self)
Mark this as present in the parent.
source code
 
IsInitialized(self)
Checks if the message is initialized.
source code
 
MergeFromString(self, serialized)
Merges serialized protocol buffer data into this message.
source code
 
ParseFromString(self, serialized)
Parse serialized protocol buffer data into this message.
source code
 
SerializeToString(self, **kwargs)
Serializes the protocol message to a binary string.
source code
 
SerializePartialToString(self, **kwargs)
Serializes the protocol message to a binary string.
source code
 
ListFields(self)
Returns a list of (FieldDescriptor, value) tuples for all fields in the message which are not empty.
source code
 
HasField(self, field_name)
Checks if a certain field is set for the message, or if any field inside a oneof group is set.
source code
 
ClearField(self, field_name)
Clears the contents of a given field, or the field set inside a oneof group.
source code
 
WhichOneof(self, oneof_group)
Returns the name of the field that is set inside a oneof group, or None if no field is set.
source code
 
HasExtension(self, extension_handle) source code
 
ClearExtension(self, extension_handle) source code
 
UnknownFields(self)
Returns the UnknownFieldSet.
source code
 
DiscardUnknownFields(self) source code
 
ByteSize(self)
Returns the serialized size of this message.
source code
 
_SetListener(self, message_listener)
Internal method used by the protocol message implementation.
source code
 
__getstate__(self)
Support the pickle protocol.
source code
 
__setstate__(self, state)
Support the pickle protocol.
source code

Inherited from object: __delattr__, __format__, __getattribute__, __init__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __sizeof__, __subclasshook__

Class Variables [hide private]
  DESCRIPTOR = None
Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

__hash__(self)
(Hashing function)

source code 

hash(x)

Overrides: object.__hash__
(inherited documentation)

__str__(self)
(Informal representation operator)

source code 

Outputs a human-readable representation of the message.

Overrides: object.__str__

MergeFrom(self, other_msg)

source code 
Merges the contents of the specified message into current message.

This method merges the contents of the specified message into the current
message. Singular fields that are set in the specified message overwrite
the corresponding fields in the current message. Repeated fields are
appended. Singular sub-messages and groups are recursively merged.

Args:
  other_msg: Message to merge into the current message.

CopyFrom(self, other_msg)

source code 
Copies the content of the specified message into the current message.

The method clears the current message and then merges the specified
message using MergeFrom.

Args:
  other_msg: Message to copy into the current one.

SetInParent(self)

source code 

Mark this as present in the parent.

This normally happens automatically when you assign a field of a sub-message, but sometimes you want to make the sub-message present while keeping it empty. If you find yourself using this, you may want to reconsider your design.

IsInitialized(self)

source code 
Checks if the message is initialized.

Returns:
  The method returns True if the message is initialized (i.e. all of its
  required fields are set).

MergeFromString(self, serialized)

source code 
Merges serialized protocol buffer data into this message.

When we find a field in |serialized| that is already present
in this message:
  - If it's a "repeated" field, we append to the end of our list.
  - Else, if it's a scalar, we overwrite our field.
  - Else, (it's a nonrepeated composite), we recursively merge
    into the existing composite.

TODO(robinson): Document handling of unknown fields.

Args:
  serialized: Any object that allows us to call buffer(serialized)
    to access a string of bytes using the buffer interface.

TODO(robinson): When we switch to a helper, this will return None.

Returns:
  The number of bytes read from |serialized|.
  For non-group messages, this will always be len(serialized),
  but for messages which are actually groups, this will
  generally be less than len(serialized), since we must
  stop when we reach an END_GROUP tag.  Note that if
  we *do* stop because of an END_GROUP tag, the number
  of bytes returned does not include the bytes
  for the END_GROUP tag information.

Raises:
  message.DecodeError if the input cannot be parsed.

ParseFromString(self, serialized)

source code 

Parse serialized protocol buffer data into this message.

Like MergeFromString(), except we clear the object first.

SerializeToString(self, **kwargs)

source code 
Serializes the protocol message to a binary string.

Arguments:
  **kwargs: Keyword arguments to the serialize method, accepts
    the following keyword args:
    deterministic: If true, requests deterministic serialization of the
      protobuf, with predictable ordering of map keys.

Returns:
  A binary string representation of the message if all of the required
  fields in the message are set (i.e. the message is initialized).

Raises:
  message.EncodeError if the message isn't initialized.

SerializePartialToString(self, **kwargs)

source code 
Serializes the protocol message to a binary string.

This method is similar to SerializeToString but doesn't check if the
message is initialized.

Arguments:
  **kwargs: Keyword arguments to the serialize method, accepts
    the following keyword args:
    deterministic: If true, requests deterministic serialization of the
      protobuf, with predictable ordering of map keys.

Returns:
  A string representation of the partial message.

ListFields(self)

source code 

Returns a list of (FieldDescriptor, value) tuples for all fields in the message which are not empty. A message field is non-empty if HasField() would return true. A singular primitive field is non-empty if HasField() would return true in proto2 or it is non zero in proto3. A repeated field is non-empty if it contains at least one element. The fields are ordered by field number

HasField(self, field_name)

source code 

Checks if a certain field is set for the message, or if any field inside a oneof group is set. Note that if the field_name is not defined in the message descriptor, ValueError will be raised.

ClearField(self, field_name)

source code 

Clears the contents of a given field, or the field set inside a oneof group. If the name neither refers to a defined field or oneof group, ValueError is raised.

WhichOneof(self, oneof_group)

source code 

Returns the name of the field that is set inside a oneof group, or None if no field is set. If no group with the given name exists, ValueError will be raised.

ByteSize(self)

source code 

Returns the serialized size of this message. Recursively calls ByteSize() on all contained messages.

_SetListener(self, message_listener)

source code 

Internal method used by the protocol message implementation. Clients should not call this directly.

Sets a listener that this message will call on certain state transitions.

The purpose of this method is to register back-edges from children to parents at runtime, for the purpose of setting "has" bits and byte-size-dirty bits in the parent and ancestor objects whenever a child or descendant object is modified.

If the client wants to disconnect this Message from the object tree, she explicitly sets callback to None.

If message_listener is None, unregisters any existing listener. Otherwise, message_listener must implement the MessageListener interface in internal/message_listener.py, and we discard any listener registered via a previous _SetListener() call.