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 Protoubfs
40 ;; .proto parsing and printing
41 "PARSE-PROTOBUF-FROM-FILE"
42 "PARSE-PROTOBUF-FROM-STREAM"
45 ;; Protobuf defining macros
54 ;; Upgradability testing
57 ;; CLOS to Protobufs transformer
58 "WRITE-PROTOBUF-SCHEMA-FOR-CLASSES"
59 "GENERATE-PROTOBUF-SCHEMA-FOR-CLASSES"
61 ;; Serialization and deserialization (wire format)
62 "SERIALIZE-OBJECT-TO-FILE"
63 "SERIALIZE-OBJECT-TO-STREAM"
65 "DESERIALIZE-OBJECT-FROM-FILE"
66 "DESERIALIZE-OBJECT-FROM-STREAM"
70 ;; Serialization and deserialization (text format)
74 ;; The "compatibility" API, whose names are taken from the Python API
81 "MERGE-FROM-MESSAGE"))
83 (defpackage protobufs-implementation
84 (:nicknames :proto-impl)
85 (:use :common-lisp #+quux :quux :protobufs)
88 (:shadowing-import-from :protobufs
91 (:shadow "DECLARE-LIST-OF" "%DECLARE-LIST-OF")
94 (:import-from :closer-mop
97 "CLASS-PRECEDENCE-LIST"
98 "SLOT-DEFINITION-NAME"
99 "SLOT-DEFINITION-TYPE"
100 "SLOT-DEFINITION-INITFORM"
101 "SLOT-DEFINITION-READERS")
104 ;; Model class protocol
110 "PROTO-DOCUMENTATION"
112 "PROTO-EXTENSION-FROM"
142 "FIND-MESSAGE-FOR-CLASS"
150 ;; Protobuf defining macros
151 "ENSURE-ALL-PROTOBUFS"
154 ;; CLOS to Protobufs transformer
155 "*ALIAS-EXISTING-CLASSES*"
156 "CLASS-TO-PROTOBUF-MESSAGE"
157 "SLOT-TO-PROTOBUF-FIELD"
158 "CLOS-TYPE-TO-PROTOBUF-TYPE"
159 "CLOS-TYPE-TO-PROTOBUF-REQUIRED"
160 "CLOS-INIT-TO-PROTOBUF-DEFAULT"
161 "PROTOBUF-DEFAULT-TO-CLOS-INIT"
173 "GENERATE-SERIALIZER"
174 "GENERATE-DESERIALIZER"
175 "GENERATE-OBJECT-SIZE"
177 ;; Raw encoding and decoding
181 "$WIRE-TYPE-START-GROUP"
182 "$WIRE-TYPE-END-GROUP"