]> asedeno.scripts.mit.edu Git - cl-protobufs.git/blob - proto-pkgdcl.lisp
Add ASDF support for .proto modules.
[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   (:export
20    ;; Model classes
21    "PROTOBUF"
22    "PROTOBUF-OPTION"
23    "PROTOBUF-MESSAGE"
24    "PROTOBUF-ENUM"
25    "PROTOBUF-ENUM"
26    "PROTOBUF-ENUM-VALUE"
27    "PROTOBUF-FIELD"
28    "PROTOBUF-EXTENSION"
29    "PROTOBUF-SERVICE"
30    "PROTOBUF-RPC"
31    "FIND-PROTOBUF"
32
33    ;; Printing
34    "WRITE-PROTOBUF"
35
36    ;; Parsing
37    "PARSE-PROTOBUF-FROM-FILE"
38    "PARSE-PROTOBUF-FROM-STREAM"
39
40    ;; Protobuf defining macros
41    "DEFINE-PROTO"
42    "DEFINE-ENUM"
43    "DEFINE-MESSAGE"
44    "DEFINE-SERVICE"
45    
46    ;; Upgradability testing
47    "PROTOBUF-UPGRADABLE"
48
49    ;; CLOS to Protobufs transformer
50    "WRITE-PROTOBUF-SCHEMA-FOR-CLASSES"
51
52    ;; Serialization
53    "SERIALIZE-OBJECT-TO-STREAM"
54    "SERIALIZE-OBJECT"
55    "DESERIALIZE-OBJECT-FROM-STREAM"
56    "DESERIALIZE-OBJECT"
57    "OBJECT-SIZE"
58
59    ;; Text printing
60    "PRINT-TEXT-FORMAT"))
61
62 (defpackage protobufs-implementation
63   (:nicknames :proto-impl)
64   (:use :common-lisp :quux :protobufs)
65
66   (:export
67    ;; Model class protocol
68    "ABSTRACT-PROTOBUF"
69    "BASE-PROTOBUF"
70    "PROTO-CLASS"
71    "PROTO-DEFAULT"
72    "PROTO-DOCUMENTATION"
73    "PROTO-ENUM-NAME"
74    "PROTO-ENUMS"
75    "PROTO-EXTENSION-FROM"
76    "PROTO-EXTENSION-TO"
77    "PROTO-EXTENSIONS"
78    "PROTO-FIELDS"
79    "PROTO-IMPORTS"
80    "PROTO-INDEX"
81    "PROTO-INPUT-TYPE"
82    "PROTO-MESSAGES"
83    "PROTO-NAME"  
84    "PROTO-OPTIONS"
85    "PROTO-OUTPUT-TYPE"
86    "PROTO-PACKAGE"
87    "PROTO-PACKED"
88    "PROTO-REQUIRED"
89    "PROTO-RPCS"
90    "PROTO-SERVICES"
91    "PROTO-SYNTAX"
92    "PROTO-TYPE"
93    "PROTO-VALUE"
94    "PROTO-VALUES"
95    "FIND-MESSAGE-FOR-CLASS"
96    "FIND-ENUM-FOR-TYPE"
97
98    ;; Printing
99    "WRITE-PROTOBUF-AS"
100
101    ;; CLOS to Protobufs transformer
102    "CLASS-TO-PROTOBUF-MESSAGE"
103    "SLOT-TO-PROTOBUF-FIELD"
104    "CLOS-TYPE-TO-PROTOBUF-TYPE"
105    "CLOS-TYPE-TO-PROTOBUF-REQUIRED"
106    "CLOS-INIT-TO-PROTOBUF-DEFAULT"
107
108    ;; Serialization
109    "SERIALIZE-PRIM"
110    "SERIALIZE-PACKED"
111    "SERIALIZE-ENUM"
112    "DESERIALIZE-PRIM"
113    "DESERIALIZE-PACKED"
114    "DESERIALIZE-ENUM"
115    "PRIM-SIZE"
116    "PACKED-SIZE"
117    "ENUM-SIZE"
118
119    ;; Raw encoding and decoding
120    "ENCODE-UINT32"
121    "ENCODE-UINT64"
122    "ENCODE-SINGLE"
123    "ENCODE-DOUBLE"
124    "ENCODE-OCTETS"
125    "ZIG-ZAG-ENCODE32"
126    "ZIG-ZAG-ENCODE64"
127    "DECODE-UINT32"
128    "DECODE-UINT64"
129    "DECODE-SINGLE"
130    "DECODE-DOUBLE"
131    "DECODE-OCTETS"
132    "ZIG-ZAG-DECODE32"
133    "ZIG-ZAG-DECODE64"
134    "LENGTH32"
135    "LENGTH64"
136
137    ;; Utilities
138    "CLASS-NAME->PROTO"
139    "ENUM-NAME->PROTO"
140    "SLOT-NAME->PROTO"
141    "PROTO->CLASS-NAME"
142    "PROTO->ENUM-NAME"
143    "PROTO->SLOT-NAME"))