1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3 ;;; Confidential and proprietary information of ITA Software, Inc. ;;;
5 ;;; Copyright (c) 2012 ITA Software, 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"
75 "DESERIALIZE-OBJECT-FROM-FILE"
76 "DESERIALIZE-OBJECT-FROM-STREAM"
80 ;; Serialization and deserialization (text format)
91 ;; The Python "compatibility" API
100 "MERGE-FROM-MESSAGE")
104 "OBJECT-INITIALIZED-P"
106 "REINITIALIZE-OBJECT"
108 "REINITIALIZE-SLOT"))
111 (defpackage protobufs-implementation
112 (:nicknames :proto-impl)
113 (:use :common-lisp :protobufs)
117 (:import-from :closer-mop
120 "CLASS-PRECEDENCE-LIST"
121 "SLOT-DEFINITION-NAME"
122 "SLOT-DEFINITION-TYPE"
123 "SLOT-DEFINITION-INITFORM"
124 "SLOT-DEFINITION-INITFUNCTION"
125 "SLOT-DEFINITION-READERS"
126 "SLOT-DEFINITION-WRITERS")
129 ;; Model class protocol
135 "PROTO-DOCUMENTATION"
137 "PROTO-EXTENSION-FROM"
139 "PROTO-EXTENDED-FIELDS"
144 "PROTO-IMPORTED-SCHEMAS"
176 "FIND-MESSAGE-FOR-CLASS"
177 "FIND-METHOD" ;if you ":use proto-impl", watch for name clash
186 ;; Protobuf defining macros
190 ;; CLOS to Protobufs transformer
191 "*ALIAS-EXISTING-CLASSES*"
192 "CLASS-TO-PROTOBUF-MESSAGE"
193 "SLOT-TO-PROTOBUF-FIELD"
194 "CLOS-TYPE-TO-PROTOBUF-TYPE"
195 "CLOS-TYPE-TO-PROTOBUF-REQUIRED"
196 "CLOS-INIT-TO-PROTOBUF-DEFAULT"
197 "PROTOBUF-DEFAULT-TO-CLOS-INIT"
203 "SERIALIZE-PACKED-ENUM"
207 "DESERIALIZE-PACKED-ENUM"
212 "GENERATE-SERIALIZER"
213 "GENERATE-DESERIALIZER"
214 "GENERATE-OBJECT-SIZE"
216 ;; Raw encoding and decoding
220 "$WIRE-TYPE-START-GROUP"
221 "$WIRE-TYPE-END-GROUP"
265 "PARSE-PROTOBUF-FILE"