]> asedeno.scripts.mit.edu Git - cl-protobufs.git/blob - proto-pkgdcl.lisp
Darn, forgot to save a buffer. Sorry for the build errors.
[cl-protobufs.git] / proto-pkgdcl.lisp
1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2 ;;;                                                                  ;;;
3 ;;; Confidential and proprietary information of ITA Software, Inc.   ;;;
4 ;;;                                                                  ;;;
5 ;;; Copyright (c) 2012 ITA Software, Inc.  All rights reserved.      ;;;
6 ;;;                                                                  ;;;
7 ;;; Original author: Scott McKay                                     ;;;
8 ;;;                                                                  ;;;
9 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
10
11 (in-package "CL-USER")
12
13
14 ;;; Package declaration for Protoubfs
15
16 (defpackage protobufs
17   (:nicknames :proto)
18
19   ;; For repeated slots
20   (:export
21    "LIST-OF")
22
23   ;; ASDF module type
24   (:export
25    "PROTO-FILE")
26   
27   ;; The Protobufs API
28   (:export
29    ;; Model classes
30    "PROTOBUF"
31    "PROTOBUF-OPTION"
32    "PROTOBUF-ENUM"
33    "PROTOBUF-ENUM-VALUE"
34    "PROTOBUF-MESSAGE"
35    "PROTOBUF-FIELD"
36    "PROTOBUF-EXTENSION"
37    "PROTOBUF-SERVICE"
38    "PROTOBUF-METHOD"
39
40    ;; .proto parsing and printing
41    "PARSE-PROTOBUF-FROM-FILE"
42    "PARSE-PROTOBUF-FROM-STREAM"
43    "WRITE-PROTOBUF"
44
45    ;; Protobuf defining macros
46    "DEFINE-PROTO"
47    "DEFINE-ENUM"
48    "DEFINE-MESSAGE"
49    "DEFINE-EXTEND"
50    "DEFINE-EXTENSION"
51    "DEFINE-GROUP"
52    "DEFINE-SERVICE"
53
54    ;; Upgradability testing
55    "PROTOBUF-UPGRADABLE"
56
57    ;; CLOS to Protobufs transformer
58    "WRITE-PROTOBUF-SCHEMA-FOR-CLASSES"
59    "GENERATE-PROTOBUF-SCHEMA-FOR-CLASSES"
60
61    ;; Serialization and deserialization (wire format)
62    "SERIALIZE-OBJECT-TO-FILE"
63    "SERIALIZE-OBJECT-TO-STREAM"
64    "SERIALIZE-OBJECT"
65    "DESERIALIZE-OBJECT-FROM-FILE"
66    "DESERIALIZE-OBJECT-FROM-STREAM"
67    "DESERIALIZE-OBJECT"
68    "OBJECT-SIZE"
69
70    ;; Serialization and deserialization (text format)
71    "PARSE-TEXT-FORMAT"
72    "PRINT-TEXT-FORMAT")
73
74   ;; The "compatibility" API, whose names are taken from the Python API
75   (:export
76    "CLEAR"
77    "IS-INITIALIZED"
78    "OCTET-SIZE"
79    "SERIALIZE"
80    "MERGE-FROM-ARRAY"
81    "MERGE-FROM-MESSAGE"))
82
83 (defpackage protobufs-implementation
84   (:nicknames :proto-impl)
85   (:use :common-lisp #+quux :quux :protobufs)
86
87   #+quux
88   (:shadowing-import-from :protobufs
89    "LIST-OF")
90   #+quux
91   (:shadow "DECLARE-LIST-OF" "%DECLARE-LIST-OF")
92
93   #-quux
94   (:import-from :closer-mop
95    "CLASS-SLOTS"
96    "CLASS-DIRECT-SLOTS"
97    "CLASS-PRECEDENCE-LIST"
98    "SLOT-DEFINITION-NAME"
99    "SLOT-DEFINITION-TYPE"
100    "SLOT-DEFINITION-INITFORM"
101    "SLOT-DEFINITION-READERS")
102
103   (:export
104    ;; Model class protocol
105    "ABSTRACT-PROTOBUF"
106    "BASE-PROTOBUF"
107    "PROTO-ALIAS-FOR"
108    "PROTO-CLASS"
109    "PROTO-DEFAULT"
110    "PROTO-DOCUMENTATION"
111    "PROTO-ENUMS"
112    "PROTO-EXTENSION-FROM"
113    "PROTO-EXTENSION-TO"
114    "PROTO-EXTENDERS"
115    "PROTO-EXTENSIONS"
116    "PROTO-FIELDS"
117    "PROTO-FUNCTION"
118    "PROTO-IMPORTS"
119    "PROTO-INDEX"
120    "PROTO-INPUT-NAME"
121    "PROTO-INPUT-TYPE"
122    "PROTO-LISP-PACKAGE"
123    "PROTO-MESSAGE-TYPE"
124    "PROTO-MESSAGES"
125    "PROTO-METHODS"
126    "PROTO-NAME"
127    "PROTO-OPTIONS"
128    "PROTO-OUTPUT-NAME"
129    "PROTO-OUTPUT-TYPE"
130    "PROTO-PACKAGE"
131    "PROTO-PACKED"
132    "PROTO-PARENT"
133    "PROTO-READER"
134    "PROTO-REQUIRED"
135    "PROTO-SERVICES"
136    "PROTO-SYNTAX"
137    "PROTO-TYPE"
138    "PROTO-VALUE"
139    "PROTO-VALUES"
140    "PROTO-WRITER"
141    "FIND-PROTOBUF"
142    "FIND-MESSAGE-FOR-CLASS"
143    "FIND-MESSAGE"
144    "FIND-ENUM"
145    "FIND-OPTION"
146
147    ;; Printing
148    "WRITE-PROTOBUF-AS"
149
150    ;; Protobuf defining macros
151    "ENSURE-ALL-PROTOBUFS"
152    "ENSURE-PROTOBUF"
153
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"
162
163    ;; Serialization
164    "SERIALIZE-PRIM"
165    "SERIALIZE-PACKED"
166    "SERIALIZE-ENUM"
167    "DESERIALIZE-PRIM"
168    "DESERIALIZE-PACKED"
169    "DESERIALIZE-ENUM"
170    "PRIM-SIZE"
171    "PACKED-SIZE"
172    "ENUM-SIZE"
173    "GENERATE-SERIALIZER"
174    "GENERATE-DESERIALIZER"
175    "GENERATE-OBJECT-SIZE"
176
177    ;; Raw encoding and decoding
178    "$WIRE-TYPE-VARINT"
179    "$WIRE-TYPE-64BIT"
180    "$WIRE-TYPE-STRING"
181    "$WIRE-TYPE-START-GROUP"
182    "$WIRE-TYPE-END-GROUP"
183    "$WIRE-TYPE-32BIT"
184    "MAKE-TAG"
185    "ENCODE-UINT32"
186    "ENCODE-UINT64"
187    "ENCODE-FIXED32"
188    "ENCODE-FIXED64"
189    "ENCODE-SINGLE"
190    "ENCODE-DOUBLE"
191    "ENCODE-STRING"
192    "ENCODE-OCTETS"
193    "ZIG-ZAG-ENCODE32"
194    "ZIG-ZAG-ENCODE64"
195    "DECODE-UINT32"
196    "DECODE-UINT64"
197    "DECODE-FIXED32"
198    "DECODE-FIXED64"
199    "DECODE-SINGLE"
200    "DECODE-DOUBLE"
201    "DECODE-STRING"
202    "DECODE-OCTETS"
203    "ZIG-ZAG-DECODE32"
204    "ZIG-ZAG-DECODE64"
205    "LENGTH32"
206    "LENGTH64"
207    "SKIP-ELEMENT"
208
209    ;; Utilities
210    "CLASS-NAME->PROTO"
211    "ENUM-NAME->PROTO"
212    "SLOT-NAME->PROTO"
213    "PROTO->CLASS-NAME"
214    "PROTO->ENUM-NAME"
215    "PROTO->SLOT-NAME"
216    "PROTOBUFS-WARNING"
217    "PROTOBUFS-WARN"))