Message-class | R Documentation |
R representation of protocol buffer messages. This is a thin wrapper
around the Message
c++ class that holds the actual message
as an external pointer.
Objects are typically created by the new
function invoked
on a Descriptor object.
pointer
:external pointer to the c++ Message
object
type
:fully qualified name of the message type
signature(x = "Message")
: returns the debug string of the message.
This is built from a call to the DebugString
method of the Message
object
signature(x = "Message")
: same as as.character
signature(x = "Message")
: returns the TextFormat of the message.
This is built from a call to TextFormat::PrintToString
with the Message
object
signature(x = "Message")
: same as as.character
signature(x = "Message")
: returns the JSON representation of the message.
This is built from a call to the
google::protobuf::util::MessageToJsonString
method and
accepts two arguments preserve_proto_field_names
- if FALSE (the default) convert field names to camelCase
always_print_primitive_fields
- whether to return the default
value for missing primitive fields (default false)
signature(x = "Message")
: set the value of a field of the message.
signature(x = "Message")
: gets the value of a field.
Primitive types are brought back to R as R objects of the closest matching R type.
Messages are brought back as instances of the Message
class.
signature(x = "Message")
: extracts a field identified by its name or declared tag number
signature(x = "Message")
: replace the value of a field identified by its name or declared tag number
signature(object = "Message")
: serialize a message. If the
"connection" argument is NULL
, the payload of the message is returned as a raw vector,
if the "connection" argument is a binary writable connection, the payload is written into the
connection. If "connection" is a character vector, the message is sent to
the file (in binary format).
signature(object = "Message")
: displays a short text about the message
signature(object = "Message")
: set several fields of the message at once
signature(x = "Message")
: The number of fields actually contained in the message.
A field counts in these two situations: the field is repeated and the field size is greater than 0,
the field is not repeated and the message has the field.
signature(object = "Message")
: set an
extension field of the Message.
signature(object = "Message")
: get the
value of an extension field of the Message.
signature(object = "Message")
: displays the structure of the message
signature(x = "Message", y = "Message")
: Test if two messages are exactly identical
signature(e1 = "Message", e2 = "Message")
: Same as identical
signature(e1 = "Message", e2 = "Message")
: Negation of identical
signature(e1 = "Message", e2 = "Message")
: Test near equality
signature(x = "Message")
: extracts the names of the message.
Romain Francois <francoisromain@free.fr>
The Message
class from the C++ proto library.
https://developers.google.com/protocol-buffers/docs/reference/cpp/google.protobuf.message?csw=1
P
creates objects of class Descriptor that
can be used to create messages.
## Not run: # example proto file supplied with this package proto.file <- system.file( "proto", "addressbook.proto", package = "RProtoBuf" ) # reading a proto file and creating the descriptor Person <- P( "tutorial.Person", file = proto.file ) ## End(Not run) PhoneNumber <- P( "tutorial.Person.PhoneNumber" ) # creating a prototype message from the descriptor p <- new( Person ) p$email # not set, returns default value p$id # not set, returns default value as.character( p ) # empty has( p, "email" ) # is the "email" field set has( p, "phone" ) # is the "email" field set length( p ) # number of fields actually set # update several fields at once romain <- update( new( Person ), email = "francoisromain@free.fr", id = 1, name = "Romain Francois", phone = new( PhoneNumber , number = "+33(0)...", type = "MOBILE" ) ) # supply parameters to the constructor dirk <- new( Person, email = "edd@debian.org", id = 2, name = "Dirk Eddelbuettel" ) # update the phone repeated field with a list of PhoneNumber messages dirk$phone <- list( new( PhoneNumber , number = "+01...", type = "MOBILE" ), new( PhoneNumber , number = "+01...", type = "HOME" ) ) # with/within style saptarshi <- within( new(Person), { id <- 3 name <- "Saptarshi Guha" email <- "saptarshi.guha@gmail.com" } ) # make an addressbook book <- new( tutorial.AddressBook, person = list( romain, dirk, saptarshi ) ) # serialize the message to a file tf <- tempfile( ) serialize( book, tf ) # the payload of the message serialize( book, NULL ) # read the file into a new message m <- tutorial.AddressBook$read( tf ) writeLines( as.character( m ) ) sapply( m$person, function(p) p$name )
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.