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
51 "FIND-MESSAGE-FOR-CLASS"
55 ;; .proto parsing and printing
56 "PARSE-SCHEMA-FROM-FILE"
57 "PARSE-SCHEMA-FROM-STREAM"
60 ;; Protobuf defining macros
69 ;; Upgradability and equality testing
73 ;; CLOS to Protobufs transformer
74 "WRITE-SCHEMA-FOR-CLASSES"
75 "GENERATE-SCHEMA-FOR-CLASSES"
77 ;; Serialization and deserialization (wire format)
78 "SERIALIZE-OBJECT-TO-FILE"
79 "SERIALIZE-OBJECT-TO-STREAM"
80 "SERIALIZE-OBJECT-TO-BYTES"
82 "DESERIALIZE-OBJECT-FROM-FILE"
83 "DESERIALIZE-OBJECT-FROM-STREAM"
84 "DESERIALIZE-OBJECT-FROM-BYTES"
88 ;; Serialization and deserialization (text format)
99 ;; The Python "compatibility" API
108 "MERGE-FROM-MESSAGE")
112 "OBJECT-INITIALIZED-P"
114 "REINITIALIZE-OBJECT"
116 "REINITIALIZE-SLOT"))
119 (defpackage protobufs-implementation
120 (:nicknames :proto-impl)
121 (:use :common-lisp :protobufs)
125 (:import-from :closer-mop
128 "CLASS-PRECEDENCE-LIST"
130 "FINALIZE-INHERITANCE"
131 "SLOT-DEFINITION-NAME"
132 "SLOT-DEFINITION-TYPE"
133 "SLOT-DEFINITION-INITFORM"
134 "SLOT-DEFINITION-INITFUNCTION"
135 "SLOT-DEFINITION-READERS"
136 "SLOT-DEFINITION-WRITERS")
139 ;; Model class protocol
147 "PROTO-DOCUMENTATION"
149 "PROTO-EXTENSION-FROM"
151 "PROTO-EXTENDED-FIELDS"
155 "PROTO-IMPORTED-SCHEMAS"
171 "PROTO-QUALIFIED-NAME"
177 "PROTO-SOURCE-LOCATION"
187 "*PROTOBUF-CONC-NAME*"
188 "*PROTOBUF-PATHNAME*"
189 "*PROTOBUF-SEARCH-PATH*"
190 "*PROTOBUF-OUTPUT-PATH*"
197 "FIND-METHOD" ;if you ":use proto-impl", watch for name clash
204 ;; Protobuf defining macros
208 ;; CLOS to Protobufs transformer
209 "*ALIAS-EXISTING-CLASSES*"
210 "CLASS-TO-PROTOBUF-MESSAGE"
211 "SLOT-TO-PROTOBUF-FIELD"
212 "CLOS-TYPE-TO-PROTOBUF-TYPE"
213 "CLOS-TYPE-TO-PROTOBUF-REQUIRED"
214 "CLOS-INIT-TO-PROTOBUF-DEFAULT"
215 "PROTOBUF-DEFAULT-TO-CLOS-INIT"
221 "SERIALIZE-PACKED-ENUM"
225 "DESERIALIZE-PACKED-ENUM"
230 "GENERATE-SERIALIZER"
231 "GENERATE-DESERIALIZER"
232 "GENERATE-OBJECT-SIZE"
234 ;; Raw encoding and decoding
238 "$WIRE-TYPE-START-GROUP"
239 "$WIRE-TYPE-END-GROUP"
283 "PARSE-PROTOBUF-FILE"
286 ;; Stuff for RPC stubs
288 "*RPC-CALL-FUNCTION*"))