]> asedeno.scripts.mit.edu Git - cl-protobufs.git/blobdiff - pkgdcl.lisp
asdf-support: simplify do-process-import calling
[cl-protobufs.git] / pkgdcl.lisp
index cc624cdc2de7b8c4645fc8e7a00e1ec8a0bd9f63..bbdceee8670845359bc10585d9fda989f473a280 100644 (file)
@@ -1,8 +1,8 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;;                                                                  ;;;
-;;; Confidential and proprietary information of ITA Software, Inc.   ;;;
+;;; Free Software published under an MIT-like license. See LICENSE   ;;;
 ;;;                                                                  ;;;
-;;; Copyright (c) 2012 ITA Software, Inc.  All rights reserved.      ;;;
+;;; Copyright (c) 2012 Google, Inc.  All rights reserved.            ;;;
 ;;;                                                                  ;;;
 ;;; Original author: Scott McKay                                     ;;;
 ;;;                                                                  ;;;
@@ -15,6 +15,7 @@
 
 (defpackage protobufs
   (:nicknames :proto)
+  (:use)
 
   ;; Some types useful for defining messages
   (:export
    "FIXED64"
    "SFIXED32"
    "SFIXED64"
+   "LIST-OF"
+   "VECTOR-OF"
    "BYTE-VECTOR"
-   "LIST-OF")
+   "MAKE-BYTE-VECTOR")
 
-  ;; ASDF module type
-  (:export
-   "PROTO-FILE")
-  
   ;; The Protobufs API
   (:export
    ;; Model classes
    "PROTOBUF-EXTENSION"
    "PROTOBUF-SERVICE"
    "PROTOBUF-METHOD"
+   "PROTOBUF-TYPE-ALIAS"        ;Lisp-only extension
+
+   ;; Conditions
+   "UNDEFINED-FIELD-TYPE"
+   "UNDEFINED-INPUT-TYPE"
+   "UNDEFINED-OUTPUT-TYPE"
+   "UNDEFINED-STREAM-TYPE"
+   "ERROR-TYPE-NAME"
+   "ERROR-FIELD"
+   "ERROR-METHOD"
+
+   ;; Object lookup
+   "FIND-MESSAGE"
+   "FIND-MESSAGE-FOR-CLASS"
+   "FIND-SCHEMA"
+   "FIND-SERVICE"
 
    ;; .proto parsing and printing
    "PARSE-SCHEMA-FROM-FILE"
@@ -61,6 +76,7 @@
    "DEFINE-EXTENSION"
    "DEFINE-GROUP"
    "DEFINE-SERVICE"
+   "DEFINE-TYPE-ALIAS"          ;Lisp-only extension
 
    ;; Upgradability and equality testing
    "SCHEMA-UPGRADABLE"
    ;; Serialization and deserialization (wire format)
    "SERIALIZE-OBJECT-TO-FILE"
    "SERIALIZE-OBJECT-TO-STREAM"
+   "SERIALIZE-OBJECT-TO-BYTES"
    "SERIALIZE-OBJECT"
    "DESERIALIZE-OBJECT-FROM-FILE"
    "DESERIALIZE-OBJECT-FROM-STREAM"
+   "DESERIALIZE-OBJECT-FROM-BYTES"
    "DESERIALIZE-OBJECT"
    "OBJECT-SIZE"
 
    "PARSE-TEXT-FORMAT"
    "PRINT-TEXT-FORMAT")
 
-  ;; Miscellaneous bits of the API
+  ;; Extensions
   (:export
    "GET-EXTENSION"
    "SET-EXTENSION"
    "HAS-EXTENSION"
-   "CLEAR-EXTENSION"
-   "OBJECT-INITIALIZED-P"
-   "SLOT-INITIALIZED-P"
-   "REINITIALIZE-OBJECT")
+   "CLEAR-EXTENSION")
 
   ;; The Python "compatibility" API
   (:export
+   "IS-INITIALIZED"
    "CLEAR"
    "HAS-FIELD"
-   "IS-INITIALIZED"
+   "CLEAR-FIELD"
    "OCTET-SIZE"
    "SERIALIZE"
    "MERGE-FROM-ARRAY"
-   "MERGE-FROM-MESSAGE"))
+   "MERGE-FROM-MESSAGE")
+
+  ;; Miscellany
+  (:export
+   "OBJECT-INITIALIZED-P"
+   "SLOT-INITIALIZED-P"
+   "REINITIALIZE-OBJECT"
+   "REINITIALIZE-FIELD"
+   "REINITIALIZE-SLOT"))
+
 
 (defpackage protobufs-implementation
   (:nicknames :proto-impl)
   (:use :common-lisp :protobufs)
 
+  (:shadow
+   "FIND-METHOD")
   (:import-from :closer-mop
    "CLASS-SLOTS"
    "CLASS-DIRECT-SLOTS"
    "CLASS-PRECEDENCE-LIST"
+   "CLASS-FINALIZED-P"
+   "FINALIZE-INHERITANCE"
    "SLOT-DEFINITION-NAME"
    "SLOT-DEFINITION-TYPE"
    "SLOT-DEFINITION-INITFORM"
-   "SLOT-DEFINITION-READERS")
+   "SLOT-DEFINITION-INITFUNCTION"
+   "SLOT-DEFINITION-READERS"
+   "SLOT-DEFINITION-WRITERS")
 
   (:export
+   ;; Base class for messages
+   "BASE-PROTOBUF-MESSAGE"
+
    ;; Model class protocol
    "ABSTRACT-PROTOBUF"
    "BASE-PROTOBUF"
    "PROTO-ALIAS-FOR"
    "PROTO-CLASS"
+   "PROTO-CLIENT-STUB"
+   "PROTO-CONC-NAME"
    "PROTO-DEFAULT"
    "PROTO-DOCUMENTATION"
    "PROTO-ENUMS"
    "PROTO-EXTENDERS"
    "PROTO-EXTENSIONS"
    "PROTO-FIELDS"
-   "PROTO-FUNCTION"
    "PROTO-IMPORTED-SCHEMAS"
    "PROTO-IMPORTS"
    "PROTO-INDEX"
    "PROTO-PACKAGE"
    "PROTO-PACKED"
    "PROTO-PARENT"
+   "PROTO-QUALIFIED-NAME"
    "PROTO-READER"
    "PROTO-REQUIRED"
+   "PROTO-SERVER-STUB"
    "PROTO-SERVICES"
+   "PROTO-SLOT"
+   "PROTO-SOURCE-LOCATION"
+   "PROTO-STREAMS-NAME"
+   "PROTO-STREAMS-TYPE"
    "PROTO-SYNTAX"
    "PROTO-TYPE"
    "PROTO-VALUE"
    "PROTO-VALUES"
    "PROTO-WRITER"
 
+   ;; Type aliases, a Lisp-only extension
+   "PROTO-TYPE-ALIASES"
+   "PROTO-LISP-TYPE"
+   "PROTO-PROTO-TYPE"
+   "PROTO-SERIALIZER"
+   "PROTO-DESERIALIZER"
+   "FIND-TYPE-ALIAS"
+
+   ;; Controls
+   "*PROTOBUF*"
+   "*PROTOBUF-PACKAGE*"
+   "*PROTOBUF-CONC-NAME*"
+   "*PROTOBUF-PATHNAME*"
+   "*PROTOBUF-SEARCH-PATH*"
+   "*PROTOBUF-OUTPUT-PATH*"
    ;; Object lookup
    "*ALL-SCHEMAS*"
    "*ALL-MESSAGES*"
-   "FIND-SCHEMA"
-   "FIND-MESSAGE-FOR-CLASS"
-   "FIND-MESSAGE"
    "FIND-ENUM"
    "FIND-FIELD"
+   "FIND-METHOD"                ;if you ":use proto-impl", watch for name clash
+   "MAKE-OPTION"
    "FIND-OPTION"
+   "ADD-OPTION"
    "REMOVE-OPTIONS"
 
    ;; Printing
    "*ALIAS-EXISTING-CLASSES*"
    "CLASS-TO-PROTOBUF-MESSAGE"
    "SLOT-TO-PROTOBUF-FIELD"
+   "LISP-TYPE-TO-PROTOBUF-TYPE"
    "CLOS-TYPE-TO-PROTOBUF-TYPE"
    "CLOS-TYPE-TO-PROTOBUF-REQUIRED"
    "CLOS-INIT-TO-PROTOBUF-DEFAULT"
    "PROTO->ENUM-NAME"
    "PROTO->SLOT-NAME"
    "PROTOBUFS-WARNING"
-   "PROTOBUFS-WARN"))
+   "PROTOBUFS-WARN"
+   "MAKE-QUALIFIED-NAME"
+
+   ;; Stuff for ASDF
+   "PARSE-PROTOBUF-FILE"
+   "PROCESS-IMPORTS"
+   "PROCESS-IMPORTS-FROM-FILE"
+
+   ;; Stuff for RPC stubs
+   "*RPC-PACKAGE*"
+   "*RPC-CALL-FUNCTION*"))