1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3 ;;; Free Software published under an MIT-like license. See LICENSE ;;;
5 ;;; Copyright (c) 2012 Google, Inc. All rights reserved. ;;;
7 ;;; Original author: Scott McKay ;;;
9 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
11 (in-package "CL-USER")
14 ;;; Package declaration for Protobufs
19 ;; Some types useful for defining messages
49 ;; .proto parsing and printing
50 "PARSE-SCHEMA-FROM-FILE"
51 "PARSE-SCHEMA-FROM-STREAM"
54 ;; Protobuf defining macros
63 ;; Upgradability and equality testing
67 ;; CLOS to Protobufs transformer
68 "WRITE-SCHEMA-FOR-CLASSES"
69 "GENERATE-SCHEMA-FOR-CLASSES"
71 ;; Serialization and deserialization (wire format)
72 "SERIALIZE-OBJECT-TO-FILE"
73 "SERIALIZE-OBJECT-TO-STREAM"
74 "SERIALIZE-OBJECT-TO-BYTES"
76 "DESERIALIZE-OBJECT-FROM-FILE"
77 "DESERIALIZE-OBJECT-FROM-STREAM"
78 "DESERIALIZE-OBJECT-FROM-BYTES"
82 ;; Serialization and deserialization (text format)
93 ;; The Python "compatibility" API
102 "MERGE-FROM-MESSAGE")
106 "OBJECT-INITIALIZED-P"
108 "REINITIALIZE-OBJECT"
110 "REINITIALIZE-SLOT"))
113 (defpackage protobufs-implementation
114 (:nicknames :proto-impl)
115 (:use :common-lisp :protobufs)
119 (:import-from :closer-mop
122 "CLASS-PRECEDENCE-LIST"
123 "SLOT-DEFINITION-NAME"
124 "SLOT-DEFINITION-TYPE"
125 "SLOT-DEFINITION-INITFORM"
126 "SLOT-DEFINITION-INITFUNCTION"
127 "SLOT-DEFINITION-READERS"
128 "SLOT-DEFINITION-WRITERS")
131 ;; Model class protocol
139 "PROTO-DOCUMENTATION"
141 "PROTO-EXTENSION-FROM"
143 "PROTO-EXTENDED-FIELDS"
147 "PROTO-IMPORTED-SCHEMAS"
163 "PROTO-QUALIFIED-NAME"
178 "*PROTOBUF-CONC-NAME*"
179 "*PROTOBUF-SEARCH-PATH*"
180 "*PROTOBUF-OUTPUT-PATH*"
188 "FIND-MESSAGE-FOR-CLASS"
189 "FIND-METHOD" ;if you ":use proto-impl", watch for name clash
198 ;; Protobuf defining macros
202 ;; CLOS to Protobufs transformer
203 "*ALIAS-EXISTING-CLASSES*"
204 "CLASS-TO-PROTOBUF-MESSAGE"
205 "SLOT-TO-PROTOBUF-FIELD"
206 "CLOS-TYPE-TO-PROTOBUF-TYPE"
207 "CLOS-TYPE-TO-PROTOBUF-REQUIRED"
208 "CLOS-INIT-TO-PROTOBUF-DEFAULT"
209 "PROTOBUF-DEFAULT-TO-CLOS-INIT"
215 "SERIALIZE-PACKED-ENUM"
219 "DESERIALIZE-PACKED-ENUM"
224 "GENERATE-SERIALIZER"
225 "GENERATE-DESERIALIZER"
226 "GENERATE-OBJECT-SIZE"
228 ;; Raw encoding and decoding
232 "$WIRE-TYPE-START-GROUP"
233 "$WIRE-TYPE-END-GROUP"
277 "PARSE-PROTOBUF-FILE"