The protobuf Reference Manual

Next: , Previous: , Up: (dir)   [Contents][Index]

The protobuf Reference Manual

This is the protobuf Reference Manual, version 0.9.3, generated automatically by Declt version 4.0 beta 2 "William Riker" on Thu Sep 15 05:55:48 2022 GMT+0.

Table of Contents


1 Introduction

Protobuf

Protobuf is a Common Lisp implementation of Google's protocol buffers, version 2. The repository contains a compiler from protocol buffer source code (.proto files) to Lisp and also run-time support needed by the generated Lisp code.

Protobuf passes all but a couple of the required proto2 tests in Google's conformance test suite. It implements neither the JSON nor text encoding formats.

Protobuf has been tested with ABCL, CCL, CLISP, Lispworks, and SBCL. In the past it has also worked with Allegro Common Lisp, but I have not tested it recently.

Installation

The Common Lisp protocol buffer compiler is implemented as a plugin to Google's protocol buffer compiler, so you must first build and install Google's compiler, which is called protoc. The code and instructions here assume you are using release 3.19.4.

The steps for installing protoc from source are approximately:

cd /tmp
git clone https://github.com/protocolbuffers/protobuf.git google-protobuf
cd google-protobuf
git checkout v3.19.4
./autogen.sh
./configure --prefix=~/local/software/package/google-protobuf-3.19.4
make
make check
make install

You can also install protoc by downloading a tar or zip archive for a specific release from here.

After you have installed protoc, clone this Git repository to create a local copy and compile protoc-gen-lisp, the Common Lisp protocol buffer plugin. The required steps for Linux are approximately:

cd /tmp
git clone git://github.com/brown/protobuf.git

cd protobuf/protoc/lisp

# Change INSTALL_ROOT and PROTOC_ROOT in Makefile.  INSTALL_ROOT indicates
# where protoc-gen-lisp should be installed.  PROTOC_ROOT indicates where
# you installed Google's protobuf compiler, when you compiled it in step 1.

# Compile and install the Lisp protoc plugin.
make install

Once both protoc and protoc-gen-lisp are installed, download and install the Common Lisp packages that Protobuf depends on. First, you'll need ASDF, but it comes pre-installed in most Common Lisp distributions. You'll also need the com.google.base package, which is available via Quicklisp. To run all the tests, you'll need the Stefil testing package and its dependencies: hu.dwim.stefil, hu.dwim.asdf, alexandria. All of these can easily be downloaded using Quicklisp.

If you're not using Allegro, CLISP, or SBCL, you may need trivial-utf8, again available via Quicklisp.

Once you have acquired all Protobuf's dependencies, make them available to ASDF. There are several ways to do this and you should consult the ASDF documentation to determine what will work best for you. If you've downloaded dependencies using Quicklisp, then ASDF automatically knows about them.

ASDF and its manual are available here.

On my system, I tell ASDF where to find Protobuf's system files by creating a file called source-registry.conf in directory /home/brown/.config/common-lisp with the following contents:

(:source-registry
 (:tree "/home/brown/src/protobuf/")
 :inherit-configuration)

Make sure ASDF can execute Google's protocol buffer compiler and the Common Lisp plugin. Both protoc and protoc-gen-lisp must be installed in directories that appear in your shell's PATH environment variable.

Compile and load all the protobuf code:

(asdf:load-system 'protobuf)

Optionally, load and run all the tests:

(asdf:test-system 'varint)
(asdf:test-system 'protobuf)

Compile and run the example code, which shows how to incorporate protocol buffer definition files into your own projects:

(asdf:load-system 'protobuf-example)

(in-package address-book)
(add-person :id 100
            :name "Robert Brown"
            :email-address "brown@foo.com"
            :phone-numbers '((home . "718-555-1212")
                             (work . "212-589-1212")
                             (mobile . "917-555-1212")))
(list-people)

Bugs

Please report bugs and send suggestions on GitHub or contact me directly. My email is robert.brown at the mail hosting site gmail.com.


2 Systems

The main system appears first, followed by any subsystem dependency.


Next: , Previous: , Up: Systems   [Contents][Index]

2.1 protobuf

Protocol buffer code

Author

Robert Brown <robert.brown@gmail.com>

License

See file COPYING and the copyright messages in individual files.

Long Description

A Common Lisp implementation of Google’s protocol buffer serialization libraries.

Version

0.9.3

Defsystem Dependency

com.google.base (system).

Dependencies
  • com.google.base (system).
  • varint (system).
Source

protobuf.asd.

Child Components

Previous: , Up: Systems   [Contents][Index]

2.2 varint

Variable-size encoding and decoding of integers.

Author

Robert Brown <robert.brown@gmail.com>

License

New BSD license. See the copyright messages in individual files.

Version

0.1

Defsystem Dependency

com.google.base (system).

Dependencies
  • com.google.base (system).
  • nibbles (system).
Source

varint.asd.

Child Components

3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


Next: , Previous: , Up: Files   [Contents][Index]

3.1 Lisp


Next: , Previous: , Up: Lisp   [Contents][Index]

3.1.1 protobuf/protobuf.asd

Source

protobuf.asd.

Parent Component

protobuf (system).

ASDF Systems

protobuf.

Packages
Public Interface
Internals

3.1.2 varint/varint.asd

Source

varint.asd.

Parent Component

varint (system).

ASDF Systems

varint.


3.1.3 protobuf/package.lisp

Source

protobuf.asd.

Parent Component

protobuf (system).

Packages

3.1.4 protobuf/protocol-buffer.lisp

Dependency

package.lisp (file).

Source

protobuf.asd.

Parent Component

protobuf (system).

Public Interface
Internals

3.1.5 protobuf/wire-format.lisp

Dependency

package.lisp (file).

Source

protobuf.asd.

Parent Component

protobuf (system).

Public Interface

3.1.6 varint/package.lisp

Source

varint.asd.

Parent Component

varint (system).

Packages

varint.


Previous: , Up: Lisp   [Contents][Index]

3.1.7 varint/varint.lisp

Dependency

package.lisp (file).

Source

varint.asd.

Parent Component

varint (system).

Public Interface

Previous: , Up: Files   [Contents][Index]

3.2 Static


Next: , Previous: , Up: Static   [Contents][Index]

3.2.1 protobuf/COPYING

Source

protobuf.asd.

Parent Component

protobuf (system).


Next: , Previous: , Up: Static   [Contents][Index]

3.2.2 protobuf/README.md

Source

protobuf.asd.

Parent Component

protobuf (system).


Previous: , Up: Static   [Contents][Index]

3.2.3 protobuf/TODO

Source

protobuf.asd.

Parent Component

protobuf (system).


4 Packages

Packages are listed by definition order.


Next: , Previous: , Up: Packages   [Contents][Index]

4.1 protocol-buffer

Machine generated protocol buffers.

Source

package.lisp.

Nickname

pb

Public Interface
Internals

Next: , Previous: , Up: Packages   [Contents][Index]

4.2 varint

Variable-size encoding and decoding of integers

Source

package.lisp.

Use List
  • com.google.base.
  • common-lisp.
Public Interface

Next: , Previous: , Up: Packages   [Contents][Index]

4.3 protobuf-system

System definitions for protocol buffer code.

Source

protobuf.asd.

Use List
Internals

Next: , Previous: , Up: Packages   [Contents][Index]

4.4 wire-format

Wire format for protocol buffers.

Source

package.lisp.

Use List
  • com.google.base.
  • common-lisp.
Public Interface

Previous: , Up: Packages   [Contents][Index]

4.5 protobuf-config

Configuration information for PROTOBUF.

Source

protobuf.asd.

Use List

common-lisp.

Used By List

protobuf-system.

Public Interface

*protoc-relative-path* (special variable).


5 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


Next: , Previous: , Up: Definitions   [Contents][Index]

5.1 Public Interface


5.1.1 Constants

Constant: +end-group+

Wire type marking the end of a group. Deprecated.

Package

wire-format.

Source

wire-format.lisp.

Constant: +fixed32+

Wire type used for 4-byte integers or single precision floats.

Package

wire-format.

Source

wire-format.lisp.

Constant: +fixed64+

Wire type used for 8-byte integers or double precision floats.

Package

wire-format.

Source

wire-format.lisp.

Constant: +length-delimited+

Wire type used for length-delimited values, such as strings, bytes, embedded messages, and packed repeated fields.

Package

wire-format.

Source

wire-format.lisp.

Constant: +max-octets-32+

Maximum number of octets needed to encode a 32-bit integer.

Package

varint.

Source

varint.lisp.

Constant: +max-octets-64+

Maximum number of octets needed to encode a 64-bit integer.

Package

varint.

Source

varint.lisp.

Constant: +start-group+

Wire type marking the start of a group. Deprecated.

Package

wire-format.

Source

wire-format.lisp.

Constant: +varint+

Wire type used for variable length integers, booleans, and enums.

Package

wire-format.

Source

wire-format.lisp.


5.1.2 Special variables

Special Variable: *protoc-relative-path*

Supply relative proto file paths to protoc, the protobuf compiler?

Package

protobuf-config.

Source

protobuf.asd.


5.1.3 Ordinary functions

Function: encode-uint32 (buffer index v)

Encode V, an unsigned 32-bit integer, into BUFFER at INDEX.

Package

varint.

Source

varint.lisp.

Function: encode-uint32-carefully (buffer index limit v)

Encode V, an unsigned 32-bit integer, into BUFFER at INDEX, taking care to never write past position LIMIT. If writing past LIMIT is required to encode V, then raise ENCODE-OVERFLOW.

Package

varint.

Source

varint.lisp.

Function: encode-uint64 (buffer index v)

Encode V, an unsigned 64-bit integer, into BUFFER at INDEX.

Package

varint.

Source

varint.lisp.

Function: encode-uint64-carefully (buffer index limit v)

Encode V, an unsigned 64-bit integer, into BUFFER at INDEX, taking care to never write past position LIMIT. If writing past LIMIT is required to encode V, then raise BUFFER-OVERFLOW.

Package

varint.

Source

varint.lisp.

Function: length-int32 (v)
Package

varint.

Source

varint.lisp.

Function: length-uint32 (v)
Package

varint.

Source

varint.lisp.

Function: length-uint64 (v)
Package

varint.

Source

varint.lisp.

Function: parse-int32-carefully (buffer index limit)
Package

varint.

Source

varint.lisp.

Function: parse-int64-carefully (buffer index limit)
Package

varint.

Source

varint.lisp.

Function: parse-tag (buffer index limit)

Parse the varint protobuf tag at position INDEX of BUFFER, being careful to only read positions below LIMIT. When successful, return three integers: the field number, the encoding wire type, and the position in BUFFER where the field value is stored.

PARSE-TAG signals DATA-EXHAUSTED when parsing the tag requires reading beyond LIMIT and signals VALUE-OUT-OF-RANGE when the field number is zero or the encoded tag is too large.

Package

wire-format.

Source

wire-format.lisp.

Function: parse-uint31-carefully (buffer index limit)
Package

varint.

Source

varint.lisp.

Function: parse-uint32 (buffer index)
Package

varint.

Source

varint.lisp.

Function: parse-uint32-carefully (buffer index limit)
Package

varint.

Source

varint.lisp.

Function: parse-uint64 (buffer index)
Package

varint.

Source

varint.lisp.

Function: parse-uint64-carefully (buffer index limit)
Package

varint.

Source

varint.lisp.

Function: parse32-backward (buffer index base)
Package

varint.

Source

varint.lisp.

Function: parse32-backward-slow (buffer index base)
Package

varint.

Source

varint.lisp.

Function: parse64-backward (buffer index base)
Package

varint.

Source

varint.lisp.

Function: parse64-backward-slow (buffer index base)
Package

varint.

Source

varint.lisp.

Function: read-boolean-carefully (buffer index limit)
Package

wire-format.

Source

wire-format.lisp.

Function: read-double-float-carefully (buffer index limit)

Read a DOUBLE-FLOAT from BUFFER starting at INDEX. The float is stored in BUFFER as an 8-octet little-endian IEEE double precision value. Both the float and the index of the first octet following it are returned. If reading the float would require octets beyond LIMIT, then signal DATA-EXHAUSTED.

Package

wire-format.

Source

wire-format.lisp.

Function: read-int32-carefully (buffer index limit)
Package

wire-format.

Source

wire-format.lisp.

Function: read-int64-carefully (buffer index limit)
Package

wire-format.

Source

wire-format.lisp.

Function: read-octets-carefully (buffer index limit)
Package

wire-format.

Source

wire-format.lisp.

Function: read-single-float-carefully (buffer index limit)

Read a SINGLE-FLOAT from BUFFER starting at INDEX. The float is stored in BUFFER as a 4-octet little-endian IEEE single precision value. Both the float and the index of the first octet following it are returned. If reading the float would require octets beyond LIMIT, then signal DATA-EXHAUSTED.

Package

wire-format.

Source

wire-format.lisp.

Function: read-uint32-carefully (buffer index limit)
Package

wire-format.

Source

wire-format.lisp.

Function: read-uint64-carefully (buffer index limit)
Package

wire-format.

Source

wire-format.lisp.

Function: skip-field (field-number wire-type buffer index limit)
Package

wire-format.

Source

wire-format.lisp.

Function: skip32-backward (buffer index base)
Package

varint.

Source

varint.lisp.

Function: skip32-backward-slow (buffer index base)
Package

varint.

Source

varint.lisp.

Function: skip32-carefully (buffer index limit)
Package

varint.

Source

varint.lisp.

Function: skip64-backward (buffer index base)
Package

varint.

Source

varint.lisp.

Function: skip64-backward-slow (buffer index base)
Package

varint.

Source

varint.lisp.

Function: skip64-carefully (buffer index limit)
Package

varint.

Source

varint.lisp.

Function: string-field (value)

Returns a new %SF% instance initialized to hold VALUE, which much be either a Lisp string or a vector of UTF-8 encoded octets.

Package

protocol-buffer.

Source

protocol-buffer.lisp.

Function: string-value (string-field)

Returns STRING-FIELD’s value as a Lisp string.

Package

protocol-buffer.

Source

protocol-buffer.lisp.

Function: utf8-string-value (string-field)

Returns STRING-FIELD’s value as a UTF-8 encoded vector of octets.

Package

protocol-buffer.

Source

protocol-buffer.lisp.

Function: write-boolean-carefully (buffer index limit value)
Package

wire-format.

Source

wire-format.lisp.

Function: write-double-float-carefully (buffer index limit float)

Write the little-endian IEEE binary representation of single precision FLOAT to BUFFER starting at INDEX. Return the index value of the first octet following FLOAT. If encoding FLOAT requires space in BUFFER past LIMIT, then signal BUFFER-OVERFLOW.

Package

wire-format.

Source

wire-format.lisp.

Function: write-int32-carefully (buffer index limit value)
Package

wire-format.

Source

wire-format.lisp.

Function: write-int64-carefully (buffer index limit value)
Package

wire-format.

Source

wire-format.lisp.

Function: write-octets-carefully (buffer index limit octets)
Package

wire-format.

Source

wire-format.lisp.

Function: write-single-float-carefully (buffer index limit float)

Write the little-endian IEEE binary representation of double precision FLOAT to BUFFER starting at INDEX. Return the index value of the first octet following FLOAT. If encoding FLOAT requires space in BUFFER past LIMIT, then signal BUFFER-OVERFLOW.

Package

wire-format.

Source

wire-format.lisp.

Function: write-uint32-carefully (buffer index limit value)
Package

wire-format.

Source

wire-format.lisp.

Function: write-uint64-carefully (buffer index limit value)
Package

wire-format.

Source

wire-format.lisp.

Function: zig-zag-decode32 (v)
Package

wire-format.

Source

wire-format.lisp.

Function: zig-zag-decode64 (v)
Package

wire-format.

Source

wire-format.lisp.

Function: zig-zag-encode32 (v)
Package

wire-format.

Source

wire-format.lisp.

Function: zig-zag-encode64 (v)
Package

wire-format.

Source

wire-format.lisp.


5.1.4 Generic functions

Generic Function: clear (protocol-buffer)

Sets the slots of PROTOCOL-BUFFER to their default values.

Package

protocol-buffer.

Source

protocol-buffer.lisp.

Generic Function: is-initialized (protocol-buffer)

Are all the slots of PROTOCOL-BUFFER initialized?

Package

protocol-buffer.

Source

protocol-buffer.lisp.

Generic Function: merge-from-array (protocol-buffer buffer start limit)

Merges the contents of the encoded protocol buffer stored in BUFFER into PROTOCOL-BUFFER. When reading from BUFFER, begins at position START and does not read from position LIMIT or higher. If deserialization demands reading beyond LIMIT, then signals PROTOCOL-BUFFER-READ-ERROR.

Package

protocol-buffer.

Source

protocol-buffer.lisp.

Generic Function: merge-from-message (protocol-buffer source-protocol-buffer)

Merges the contents of SOURCE-PROTOCOL-BUFFER into PROTOCOL-BUFFER.

Package

protocol-buffer.

Source

protocol-buffer.lisp.

Generic Function: octet-size (protocol-buffer)

Returns the number of octets required to represent PROTOCOL-BUFFER when it is encoded.

Package

protocol-buffer.

Source

protocol-buffer.lisp.

Generic Function: serialize (protocol-buffer buffer index limit)

Serializes PROTOCOL-BUFFER into BUFFER. Starts writing at position INDEX of BUFFER, but does not write into position LIMIT or higher. If serialization demands writing past LIMIT, then signals PROTOCOL-BUFFER-WRITE-ERROR.

OCTET-SIZE must be called immediately before SERIALIZE because PROTOCOL-BUFFER instances cache size information.

Package

protocol-buffer.

Source

protocol-buffer.lisp.


5.1.5 Standalone methods

Method: component-depends-on ((operation load-op) (component protobuf-source-file))

Loading a protocol buffer file depends on generating Lisp source code for the protobuf, but also on loading package definitions and in-line function definitions that the machine-generated protobuf Lisp code uses.

Package

asdf/action.

Source

protobuf.asd.

Method: component-depends-on ((operation compile-op) (component protobuf-source-file))

Compiling a protocol buffer file depends on generating Lisp source code for the protobuf, but also on loading package definitions and in-line function definitions that the machine-generated protobuf Lisp code uses.

Package

asdf/action.

Source

protobuf.asd.

Method: input-files ((operation proto-to-lisp) (component protobuf-source-file))
Package

asdf/action.

Source

protobuf.asd.

Method: input-files ((operation compile-op) (c protobuf-source-file))
Package

asdf/action.

Source

protobuf.asd.

Method: output-files ((operation proto-to-lisp) (component protobuf-source-file))

Arranges for the Lisp output file of PROTO-TO-LISP operations to be stored where fasl files are located.

Package

asdf/action.

Source

protobuf.asd.

Method: perform ((operation proto-to-lisp) (component protobuf-source-file))
Package

asdf/action.

Source

protobuf.asd.

Method: perform :before ((operation proto-to-lisp) (component protobuf-source-file))
Package

asdf/action.

Source

protobuf.asd.

Method: print-object ((string-field %sf%) stream)
Source

protocol-buffer.lisp.

Reader Method: proto-pathname ((protobuf-source-file protobuf-source-file))

Relative pathname that specifies the location of a .proto file.

Package

asdf/interface.

Source

protobuf.asd.

Target Slot

relative-proto-pathname.

Reader Method: search-path ((protobuf-source-file protobuf-source-file))

List containing directories where the protocol buffer compiler should search for imported protobuf files. Non-absolute pathnames are treated as relative to the directory containing the DEFSYSTEM form in which they appear.

Package

asdf/interface.

Source

protobuf.asd.

Target Slot

search-path.


5.1.6 Conditions

Condition: alignment

Data buffer does not contain the type of value we have been asked to skip over or parse backwards.

Package

varint.

Source

varint.lisp.

Direct superclasses

parsing-error.

Condition: alignment

Bad data encountered while skipping a field.

Package

wire-format.

Source

wire-format.lisp.

Direct superclasses

parsing-error.

Condition: buffer-overflow

Buffer space exhausted while encoding a value.

Package

varint.

Source

varint.lisp.

Direct superclasses

encoding-error.

Condition: buffer-overflow

Buffer space exhausted while encoding a value.

Package

wire-format.

Source

wire-format.lisp.

Direct superclasses

encoding-error.

Condition: data-exhausted

Decoding a value requires more data than is available.

Package

varint.

Source

varint.lisp.

Direct superclasses

parsing-error.

Condition: data-exhausted

Decoding a value requires more data than is available.

Package

wire-format.

Source

wire-format.lisp.

Direct superclasses

parsing-error.

Condition: encoding-error

Superclass of all VARINT encoding conditions.

Package

varint.

Source

varint.lisp.

Direct superclasses

varint-error.

Direct subclasses

buffer-overflow.

Condition: encoding-error

Superclass of conditions signalled while encoding values.

Package

wire-format.

Source

wire-format.lisp.

Direct superclasses

protocol-error.

Direct subclasses

buffer-overflow.

Condition: parsing-error

Superclass of all VARINT decoding conditions.

Package

varint.

Source

varint.lisp.

Direct superclasses

varint-error.

Direct subclasses
Condition: parsing-error

Superclass of conditions signalled while decoding values.

Package

wire-format.

Source

wire-format.lisp.

Direct superclasses

protocol-error.

Direct subclasses
Condition: protocol-error

Superclass of all PROTOCOL-BUFFER conditions.

Package

wire-format.

Source

wire-format.lisp.

Direct superclasses

error.

Direct subclasses
Condition: value-out-of-range

Value decoded is outside the range of the return type.

Package

varint.

Source

varint.lisp.

Direct superclasses

parsing-error.

Condition: value-out-of-range

Value decoded is outside the range of the return type.

Package

wire-format.

Source

wire-format.lisp.

Direct superclasses

parsing-error.

Condition: varint-error

Superclass of all VARINT conditions.

Package

varint.

Source

varint.lisp.

Direct superclasses

error.

Direct subclasses

Next: , Previous: , Up: Public Interface   [Contents][Index]

5.1.7 Classes

Class: protobuf-source-file

A protocol buffer definition file.

Package

asdf/interface.

Source

protobuf.asd.

Direct superclasses

cl-source-file.

Direct methods
Direct slots
Slot: relative-proto-pathname

Relative pathname that specifies the location of a .proto file.

Initargs

:proto-pathname

Readers

proto-pathname.

Writers

This slot is read-only.

Slot: search-path

List containing directories where the protocol buffer compiler should search for imported protobuf files. Non-absolute pathnames are treated as relative to the directory containing the DEFSYSTEM form in which they appear.

Initargs

:proto-search-path

Readers

search-path.

Writers

This slot is read-only.

Class: protocol-buffer

Superclass of all protocol buffer classes.

Package

protocol-buffer.

Source

protocol-buffer.lisp.


Previous: , Up: Public Interface   [Contents][Index]

5.1.8 Types

Type: field-number ()

Protocol buffer field number.

Package

wire-format.

Source

wire-format.lisp.

Type: wire-type ()

Integer representing how a protobuf field value is serialized.

Package

wire-format.

Source

wire-format.lisp.


5.2 Internals


Next: , Previous: , Up: Internals   [Contents][Index]

5.2.1 Symbol macros

Symbol Macro: +double-float-nan+
Package

protocol-buffer.

Source

protocol-buffer.lisp.

Symbol Macro: +double-float-negative-infinity+
Package

protocol-buffer.

Source

protocol-buffer.lisp.

Symbol Macro: +double-float-positive-infinity+
Package

protocol-buffer.

Source

protocol-buffer.lisp.

Symbol Macro: +single-float-nan+
Package

protocol-buffer.

Source

protocol-buffer.lisp.

Symbol Macro: +single-float-negative-infinity+
Package

protocol-buffer.

Source

protocol-buffer.lisp.

Symbol Macro: +single-float-positive-infinity+
Package

protocol-buffer.

Source

protocol-buffer.lisp.


5.2.2 Ordinary functions

Function: %utf8-string-length% (string-field)

Returns the length in octets of STRING-FIELD’s value.

Package

protocol-buffer.

Source

protocol-buffer.lisp.

Function: proto-input (protobuf-source-file)

Returns the pathname of the protocol buffer definition file that must be translated into Lisp source code for this PROTO-FILE component.

Package

protobuf-system.

Source

protobuf.asd.

Function: resolve-relative-pathname (path parent-path)

When PATH doesn’t have an absolute directory component, treat it as relative to PARENT-PATH.

Package

protobuf-system.

Source

protobuf.asd.

Function: resolve-search-path (protobuf-source-file)
Package

protobuf-system.

Source

protobuf.asd.


5.2.3 Generic functions

Generic Reader: %octets% (object)
Generic Writer: (setf %octets%) (object)
Package

protocol-buffer.

Methods
Reader Method: %octets% ((%sf% %sf%))
Writer Method: (setf %octets%) ((%sf% %sf%))

Octet vector that holds the string field’s value.

Source

protocol-buffer.lisp.

Target Slot

%octets%.


Next: , Previous: , Up: Internals   [Contents][Index]

5.2.4 Standalone methods

Method: component-self-dependencies :around ((op load-op) (c protobuf-source-file))

Removes PROTO-TO-LISP operations from self dependencies. Otherwise, the Lisp output files of PROTO-TO-LISP are considered to be input files for LOAD-OP, which means ASDF loads both the .lisp file and the .fasl file.

Package

asdf/interface.

Source

protobuf.asd.


Next: , Previous: , Up: Internals   [Contents][Index]

5.2.5 Conditions

Condition: protobuf-compile-failed

Condition signalled when translating a .proto file into Lisp code fails.

Package

protobuf-system.

Source

protobuf.asd.

Direct superclasses

compile-failed-error.


Previous: , Up: Internals   [Contents][Index]

5.2.6 Classes

Class: %sf%

A protocol buffer string field.

Package

protocol-buffer.

Source

protocol-buffer.lisp.

Direct methods
Direct slots
Slot: %octets%

Octet vector that holds the string field’s value.

Type

com.google.base:octet-vector

Initform

(make-array 0 :element-type (quote (unsigned-byte 8)))

Initargs

:octets

Readers

%octets%.

Writers

(setf %octets%).

Class: proto-to-lisp

An ASDF operation that compiles a .proto file containing protocol buffer definitions into a Lisp source file.

Package

protobuf-system.

Source

protobuf.asd.

Direct superclasses
  • downward-operation.
  • selfward-operation.
Direct methods
Direct slots
Slot: selfward-operation
Package

asdf/action.

Allocation

:class

Initform

(quote asdf/lisp-action:prepare-op)


Appendix A Indexes


Next: , Previous: , Up: Indexes   [Contents][Index]

A.1 Concepts


Next: , Previous: , Up: Indexes   [Contents][Index]

A.2 Functions

Jump to:   %   (  
C   E   F   G   I   L   M   O   P   R   S   U   W   Z  
Index Entry  Section

%
%octets%: Private generic functions
%octets%: Private generic functions
%utf8-string-length%: Private ordinary functions

(
(setf %octets%): Private generic functions
(setf %octets%): Private generic functions

C
clear: Public generic functions
component-depends-on: Public standalone methods
component-depends-on: Public standalone methods
component-self-dependencies: Private standalone methods

E
encode-uint32: Public ordinary functions
encode-uint32-carefully: Public ordinary functions
encode-uint64: Public ordinary functions
encode-uint64-carefully: Public ordinary functions

F
Function, %utf8-string-length%: Private ordinary functions
Function, encode-uint32: Public ordinary functions
Function, encode-uint32-carefully: Public ordinary functions
Function, encode-uint64: Public ordinary functions
Function, encode-uint64-carefully: Public ordinary functions
Function, length-int32: Public ordinary functions
Function, length-uint32: Public ordinary functions
Function, length-uint64: Public ordinary functions
Function, parse-int32-carefully: Public ordinary functions
Function, parse-int64-carefully: Public ordinary functions
Function, parse-tag: Public ordinary functions
Function, parse-uint31-carefully: Public ordinary functions
Function, parse-uint32: Public ordinary functions
Function, parse-uint32-carefully: Public ordinary functions
Function, parse-uint64: Public ordinary functions
Function, parse-uint64-carefully: Public ordinary functions
Function, parse32-backward: Public ordinary functions
Function, parse32-backward-slow: Public ordinary functions
Function, parse64-backward: Public ordinary functions
Function, parse64-backward-slow: Public ordinary functions
Function, proto-input: Private ordinary functions
Function, read-boolean-carefully: Public ordinary functions
Function, read-double-float-carefully: Public ordinary functions
Function, read-int32-carefully: Public ordinary functions
Function, read-int64-carefully: Public ordinary functions
Function, read-octets-carefully: Public ordinary functions
Function, read-single-float-carefully: Public ordinary functions
Function, read-uint32-carefully: Public ordinary functions
Function, read-uint64-carefully: Public ordinary functions
Function, resolve-relative-pathname: Private ordinary functions
Function, resolve-search-path: Private ordinary functions
Function, skip-field: Public ordinary functions
Function, skip32-backward: Public ordinary functions
Function, skip32-backward-slow: Public ordinary functions
Function, skip32-carefully: Public ordinary functions
Function, skip64-backward: Public ordinary functions
Function, skip64-backward-slow: Public ordinary functions
Function, skip64-carefully: Public ordinary functions
Function, string-field: Public ordinary functions
Function, string-value: Public ordinary functions
Function, utf8-string-value: Public ordinary functions
Function, write-boolean-carefully: Public ordinary functions
Function, write-double-float-carefully: Public ordinary functions
Function, write-int32-carefully: Public ordinary functions
Function, write-int64-carefully: Public ordinary functions
Function, write-octets-carefully: Public ordinary functions
Function, write-single-float-carefully: Public ordinary functions
Function, write-uint32-carefully: Public ordinary functions
Function, write-uint64-carefully: Public ordinary functions
Function, zig-zag-decode32: Public ordinary functions
Function, zig-zag-decode64: Public ordinary functions
Function, zig-zag-encode32: Public ordinary functions
Function, zig-zag-encode64: Public ordinary functions

G
Generic Function, %octets%: Private generic functions
Generic Function, (setf %octets%): Private generic functions
Generic Function, clear: Public generic functions
Generic Function, is-initialized: Public generic functions
Generic Function, merge-from-array: Public generic functions
Generic Function, merge-from-message: Public generic functions
Generic Function, octet-size: Public generic functions
Generic Function, serialize: Public generic functions

I
input-files: Public standalone methods
input-files: Public standalone methods
is-initialized: Public generic functions

L
length-int32: Public ordinary functions
length-uint32: Public ordinary functions
length-uint64: Public ordinary functions

M
merge-from-array: Public generic functions
merge-from-message: Public generic functions
Method, %octets%: Private generic functions
Method, (setf %octets%): Private generic functions
Method, component-depends-on: Public standalone methods
Method, component-depends-on: Public standalone methods
Method, component-self-dependencies: Private standalone methods
Method, input-files: Public standalone methods
Method, input-files: Public standalone methods
Method, output-files: Public standalone methods
Method, perform: Public standalone methods
Method, perform: Public standalone methods
Method, print-object: Public standalone methods
Method, proto-pathname: Public standalone methods
Method, search-path: Public standalone methods

O
octet-size: Public generic functions
output-files: Public standalone methods

P
parse-int32-carefully: Public ordinary functions
parse-int64-carefully: Public ordinary functions
parse-tag: Public ordinary functions
parse-uint31-carefully: Public ordinary functions
parse-uint32: Public ordinary functions
parse-uint32-carefully: Public ordinary functions
parse-uint64: Public ordinary functions
parse-uint64-carefully: Public ordinary functions
parse32-backward: Public ordinary functions
parse32-backward-slow: Public ordinary functions
parse64-backward: Public ordinary functions
parse64-backward-slow: Public ordinary functions
perform: Public standalone methods
perform: Public standalone methods
print-object: Public standalone methods
proto-input: Private ordinary functions
proto-pathname: Public standalone methods

R
read-boolean-carefully: Public ordinary functions
read-double-float-carefully: Public ordinary functions
read-int32-carefully: Public ordinary functions
read-int64-carefully: Public ordinary functions
read-octets-carefully: Public ordinary functions
read-single-float-carefully: Public ordinary functions
read-uint32-carefully: Public ordinary functions
read-uint64-carefully: Public ordinary functions
resolve-relative-pathname: Private ordinary functions
resolve-search-path: Private ordinary functions

S
search-path: Public standalone methods
serialize: Public generic functions
skip-field: Public ordinary functions
skip32-backward: Public ordinary functions
skip32-backward-slow: Public ordinary functions
skip32-carefully: Public ordinary functions
skip64-backward: Public ordinary functions
skip64-backward-slow: Public ordinary functions
skip64-carefully: Public ordinary functions
string-field: Public ordinary functions
string-value: Public ordinary functions

U
utf8-string-value: Public ordinary functions

W
write-boolean-carefully: Public ordinary functions
write-double-float-carefully: Public ordinary functions
write-int32-carefully: Public ordinary functions
write-int64-carefully: Public ordinary functions
write-octets-carefully: Public ordinary functions
write-single-float-carefully: Public ordinary functions
write-uint32-carefully: Public ordinary functions
write-uint64-carefully: Public ordinary functions

Z
zig-zag-decode32: Public ordinary functions
zig-zag-decode64: Public ordinary functions
zig-zag-encode32: Public ordinary functions
zig-zag-encode64: Public ordinary functions

Jump to:   %   (  
C   E   F   G   I   L   M   O   P   R   S   U   W   Z  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.3 Variables

Jump to:   %   *   +  
C   R   S  
Index Entry  Section

%
%octets%: Private classes

*
*protoc-relative-path*: Public special variables

+
+double-float-nan+: Private symbol macros
+double-float-negative-infinity+: Private symbol macros
+double-float-positive-infinity+: Private symbol macros
+end-group+: Public constants
+fixed32+: Public constants
+fixed64+: Public constants
+length-delimited+: Public constants
+max-octets-32+: Public constants
+max-octets-64+: Public constants
+single-float-nan+: Private symbol macros
+single-float-negative-infinity+: Private symbol macros
+single-float-positive-infinity+: Private symbol macros
+start-group+: Public constants
+varint+: Public constants

C
Constant, +end-group+: Public constants
Constant, +fixed32+: Public constants
Constant, +fixed64+: Public constants
Constant, +length-delimited+: Public constants
Constant, +max-octets-32+: Public constants
Constant, +max-octets-64+: Public constants
Constant, +start-group+: Public constants
Constant, +varint+: Public constants

R
relative-proto-pathname: Public classes

S
search-path: Public classes
selfward-operation: Private classes
Slot, %octets%: Private classes
Slot, relative-proto-pathname: Public classes
Slot, search-path: Public classes
Slot, selfward-operation: Private classes
Special Variable, *protoc-relative-path*: Public special variables
Symbol Macro, +double-float-nan+: Private symbol macros
Symbol Macro, +double-float-negative-infinity+: Private symbol macros
Symbol Macro, +double-float-positive-infinity+: Private symbol macros
Symbol Macro, +single-float-nan+: Private symbol macros
Symbol Macro, +single-float-negative-infinity+: Private symbol macros
Symbol Macro, +single-float-positive-infinity+: Private symbol macros

Jump to:   %   *   +  
C   R   S  

Previous: , Up: Indexes   [Contents][Index]

A.4 Data types

Jump to:   %  
A   B   C   D   E   F   P   R   S   T   V   W  
Index Entry  Section

%
%sf%: Private classes

A
alignment: Public conditions
alignment: Public conditions

B
buffer-overflow: Public conditions
buffer-overflow: Public conditions

C
Class, %sf%: Private classes
Class, proto-to-lisp: Private classes
Class, protobuf-source-file: Public classes
Class, protocol-buffer: Public classes
Condition, alignment: Public conditions
Condition, alignment: Public conditions
Condition, buffer-overflow: Public conditions
Condition, buffer-overflow: Public conditions
Condition, data-exhausted: Public conditions
Condition, data-exhausted: Public conditions
Condition, encoding-error: Public conditions
Condition, encoding-error: Public conditions
Condition, parsing-error: Public conditions
Condition, parsing-error: Public conditions
Condition, protobuf-compile-failed: Private conditions
Condition, protocol-error: Public conditions
Condition, value-out-of-range: Public conditions
Condition, value-out-of-range: Public conditions
Condition, varint-error: Public conditions
copying: The protobuf/copying file

D
data-exhausted: Public conditions
data-exhausted: Public conditions

E
encoding-error: Public conditions
encoding-error: Public conditions

F
field-number: Public types
File, copying: The protobuf/copying file
File, package.lisp: The protobuf/package․lisp file
File, package.lisp: The varint/package․lisp file
File, protobuf.asd: The protobuf/protobuf․asd file
File, protocol-buffer.lisp: The protobuf/protocol-buffer․lisp file
File, readme.md: The protobuf/readme․md file
File, todo: The protobuf/todo file
File, varint.asd: The varint/varint․asd file
File, varint.lisp: The varint/varint․lisp file
File, wire-format.lisp: The protobuf/wire-format․lisp file

P
Package, protobuf-config: The protobuf-config package
Package, protobuf-system: The protobuf-system package
Package, protocol-buffer: The protocol-buffer package
Package, varint: The varint package
Package, wire-format: The wire-format package
package.lisp: The protobuf/package․lisp file
package.lisp: The varint/package․lisp file
parsing-error: Public conditions
parsing-error: Public conditions
proto-to-lisp: Private classes
protobuf: The protobuf system
protobuf-compile-failed: Private conditions
protobuf-config: The protobuf-config package
protobuf-source-file: Public classes
protobuf-system: The protobuf-system package
protobuf.asd: The protobuf/protobuf․asd file
protocol-buffer: The protocol-buffer package
protocol-buffer: Public classes
protocol-buffer.lisp: The protobuf/protocol-buffer․lisp file
protocol-error: Public conditions

R
readme.md: The protobuf/readme․md file

S
System, protobuf: The protobuf system
System, varint: The varint system

T
todo: The protobuf/todo file
Type, field-number: Public types
Type, wire-type: Public types

V
value-out-of-range: Public conditions
value-out-of-range: Public conditions
varint: The varint system
varint: The varint package
varint-error: Public conditions
varint.asd: The varint/varint․asd file
varint.lisp: The varint/varint․lisp file

W
wire-format: The wire-format package
wire-format.lisp: The protobuf/wire-format․lisp file
wire-type: Public types

Jump to:   %  
A   B   C   D   E   F   P   R   S   T   V   W