cl-store

API Reference

cl-store

Serialization package

CL-STORE

  • Generic-Function SERIALIZABLE-SLOTS (object)
    Return a list of slot-definitions to serialize. The default is to call serializable-slots-using-class with the object and the objects class
  • Method SERIALIZABLE-SLOTS ((object condition))
  • Method SERIALIZABLE-SLOTS ((object condition))
  • Method SERIALIZABLE-SLOTS ((object condition))
  • Method SERIALIZABLE-SLOTS ((object structure-object))
  • Method SERIALIZABLE-SLOTS ((object structure-object))
  • Method SERIALIZABLE-SLOTS ((object structure-object))
  • Method SERIALIZABLE-SLOTS ((object standard-object))
  • Method SERIALIZABLE-SLOTS ((object standard-object))
  • Method SERIALIZABLE-SLOTS ((object standard-object))
  • Generic-Function SERIALIZABLE-SLOTS-USING-CLASS (object class)
    Return a list of slot-definitions to serialize. The default calls compute slots with class
  • Method SERIALIZABLE-SLOTS-USING-CLASS ((object t) (class condition-class))
  • Method SERIALIZABLE-SLOTS-USING-CLASS ((object t) (class condition-class))
  • Method SERIALIZABLE-SLOTS-USING-CLASS ((object t) (class condition-class))
  • Method SERIALIZABLE-SLOTS-USING-CLASS ((object t) (class structure-class))
  • Method SERIALIZABLE-SLOTS-USING-CLASS ((object t) (class structure-class))
  • Method SERIALIZABLE-SLOTS-USING-CLASS ((object t) (class structure-class))
  • Method SERIALIZABLE-SLOTS-USING-CLASS ((object t) (class standard-class))
  • Method SERIALIZABLE-SLOTS-USING-CLASS ((object t) (class standard-class))
  • Method SERIALIZABLE-SLOTS-USING-CLASS ((object t) (class standard-class))
  • Generic-Function GET-SLOT-DETAILS (slot-definition)
    Return a list of slot details which can be used as an argument to ensure-class
  • Method GET-SLOT-DETAILS ((slot-definition slot-definition))
  • Method GET-SLOT-DETAILS ((slot-definition slot-definition))
  • Method GET-SLOT-DETAILS ((slot-definition slot-definition))
  • Function FLOAT-TYPE (float)
  • Function GET-FLOAT-TYPE (num)
  • Function STORE-32-BIT (obj stream)
    Write OBJ down STREAM as a 32 bit integer.
  • Function READ-32-BIT (buf &optional (signed t))
    Read a signed or unsigned byte off STREAM.
  • Class BACKEND
    Core class which custom backends must extend
    NAME   Accessor: NAME
    MAGIC-NUMBER   Accessor: MAGIC-NUMBER
    COMPATIBLE-MAGIC-NUMBERS   Accessor: COMPATIBLE-MAGIC-NUMBERS
    OLD-MAGIC-NUMBERS   Accessor: OLD-MAGIC-NUMBERS
    STREAM-TYPE   Accessor: STREAM-TYPE
  • Function FIND-BACKEND (name &optional errorp)
  • Function ALIAS-BACKEND (old alias)
  • Macro DEFBACKEND (name &key (stream-type ''(unsigned-byte 8)) (magic-number nil) fields (extends '(backend)) (old-magic-numbers nil) (compatible-magic-numbers nil))
    Defines a new backend called NAME. Stream type must be either 'char or 'binary. FIELDS is a list of legal slots for defclass. MAGIC-NUMBER, when supplied, will be written down stream as verification and checked on restoration. EXTENDS is a class to extend, which must be backend or a class which extends backend
  • Macro WITH-BACKEND (backend &body body)
    Run BODY with *default-backend* bound to BACKEND
  • Variable *STORE-USED-PACKAGES*
    nil
    If non-nil will serialize each used package otherwise will only store the package name
  • Variable *NUKE-EXISTING-PACKAGES*
    nil
    Whether or not to overwrite existing packages on restoration.
  • Variable *NUKE-EXISTING-CLASSES*
    nil
    Do we overwrite existing class definitions on restoration.
  • Variable *STORE-CLASS-SUPERCLASSES*
    nil
    Whether or not to store the superclasses of a stored class.
  • Variable *STORE-CLASS-SLOTS*
    t
    Whether or not to serialize slots which are class allocated.
  • Variable *DEFAULT-BACKEND*
  • Variable *CURRENT-BACKEND*
  • Condition CL-STORE-ERROR  (ERROR)
    Root cl-store condition
  • Condition STORE-ERROR  (CL-STORE-ERROR)
    Error thrown when storing an object fails.
  • Condition RESTORE-ERROR  (CL-STORE-ERROR)
    Error thrown when restoring an object fails.
  • Function STORE-ERROR (format-string &rest args)
  • Function RESTORE-ERROR (format-string &rest args)
  • Generic-Function STORE (obj place &optional designator)
    Store OBJ into Stream PLACE using backend BACKEND.
  • Method STORE ((obj t) (place t) &optional (designator *default-backend*))
    Store OBJ into Stream PLACE using backend BACKEND.
  • Method STORE ((obj t) (place t) &optional (designator *default-backend*))
    Store OBJ into Stream PLACE using backend BACKEND.
  • Method STORE ((obj t) (place t) &optional (designator *default-backend*))
    Store OBJ into Stream PLACE using backend BACKEND.
  • Generic-Function BACKEND-STORE (backend place obj)
    Method wrapped by store, override this method for custom behaviour (see circularities.lisp).
  • Method BACKEND-STORE ((backend backend) (place pathname) (obj t))
    Store OBJ into file designator PLACE.
  • Method BACKEND-STORE ((backend backend) (place pathname) (obj t))
    Store OBJ into file designator PLACE.
  • Method BACKEND-STORE ((backend backend) (place pathname) (obj t))
    Store OBJ into file designator PLACE.
  • Method BACKEND-STORE ((backend backend) (place string) (obj t))
    Store OBJ into file designator PLACE.
  • Method BACKEND-STORE ((backend backend) (place string) (obj t))
    Store OBJ into file designator PLACE.
  • Method BACKEND-STORE ((backend backend) (place string) (obj t))
    Store OBJ into file designator PLACE.
  • Method BACKEND-STORE ((backend backend) (place stream) (obj t))
    The default. Checks the streams element-type, stores the backend code and calls store-object.
  • Method BACKEND-STORE ((backend backend) (place stream) (obj t))
    The default. Checks the streams element-type, stores the backend code and calls store-object.
  • Method BACKEND-STORE ((backend backend) (place stream) (obj t))
    The default. Checks the streams element-type, stores the backend code and calls store-object.
  • Generic-Function STORE-BACKEND-CODE (backend stream)
    Store magic-number of BACKEND, when present, into STREAM.
  • Method STORE-BACKEND-CODE ((backend backend) (stream t))
  • Method STORE-BACKEND-CODE ((backend backend) (stream t))
  • Method STORE-BACKEND-CODE ((backend backend) (stream t))
  • Function STORE-OBJECT (obj stream &optional (backend *current-backend*))
    Store OBJ into STREAM. Not meant to be overridden, use backend-store-object instead
  • Generic-Function BACKEND-STORE-OBJECT (backend obj stream)
    Wrapped by store-object, override this to do custom storing (see circularities.lisp for an example).
  • Method BACKEND-STORE-OBJECT ((backend backend) (obj t) (stream t))
    The default, just calls internal-store-object.
  • Method BACKEND-STORE-OBJECT ((backend backend) (obj t) (stream t))
    The default, just calls internal-store-object.
  • Method BACKEND-STORE-OBJECT ((backend backend) (obj t) (stream t))
    The default, just calls internal-store-object.
  • Generic-Function INTERNAL-STORE-OBJECT (backend obj place)
    Method which is specialized by defstore-? macros.
  • Method INTERNAL-STORE-OBJECT ((backend backend) (obj t) (place t))
    If call falls back here then OBJ cannot be serialized with BACKEND.
  • Method INTERNAL-STORE-OBJECT ((backend backend) (obj t) (place t))
    If call falls back here then OBJ cannot be serialized with BACKEND.
  • Method INTERNAL-STORE-OBJECT ((backend backend) (obj t) (place t))
    If call falls back here then OBJ cannot be serialized with BACKEND.
  • Generic-Function RESTORE (place &optional backend)
    Restore and object FROM PLACE using BACKEND. Not meant to be overridden, use backend-restore instead
  • Method RESTORE (place &optional (designator *default-backend*))
    Entry point for restoring objects (setfable).
  • Method RESTORE (place &optional (designator *default-backend*))
    Entry point for restoring objects (setfable).
  • Method RESTORE (place &optional (designator *default-backend*))
    Entry point for restoring objects (setfable).
  • Generic-Function BACKEND-RESTORE (backend place)
    Wrapped by restore. Override this to do custom restoration
  • Method BACKEND-RESTORE ((backend backend) (place pathname))
    Restore the object found in file designator PLACE using backend BACKEND.
  • Method BACKEND-RESTORE ((backend backend) (place pathname))
    Restore the object found in file designator PLACE using backend BACKEND.
  • Method BACKEND-RESTORE ((backend backend) (place pathname))
    Restore the object found in file designator PLACE using backend BACKEND.
  • Method BACKEND-RESTORE ((backend backend) (place string))
    Restore the object found in file designator PLACE using backend BACKEND.
  • Method BACKEND-RESTORE ((backend backend) (place string))
    Restore the object found in file designator PLACE using backend BACKEND.
  • Method BACKEND-RESTORE ((backend backend) (place string))
    Restore the object found in file designator PLACE using backend BACKEND.
  • Method BACKEND-RESTORE ((backend backend) (place stream))
    Restore the object found in stream PLACE using backend BACKEND. Checks the magic-number and invokes backend-restore-object
  • Method BACKEND-RESTORE ((backend backend) (place stream))
    Restore the object found in stream PLACE using backend BACKEND. Checks the magic-number and invokes backend-restore-object
  • Method BACKEND-RESTORE ((backend backend) (place stream))
    Restore the object found in stream PLACE using backend BACKEND. Checks the magic-number and invokes backend-restore-object
  • Function (setf RESTORE) (new-val place &optional (backend *default-backend*))
  • Generic-Function CHECK-MAGIC-NUMBER (backend stream)
    Check to see if STREAM actually contains a stored object for BACKEND.
  • Method CHECK-MAGIC-NUMBER ((backend backend) (stream t))
  • Method CHECK-MAGIC-NUMBER ((backend backend) (stream t))
  • Method CHECK-MAGIC-NUMBER ((backend backend) (stream t))
  • Generic-Function GET-NEXT-READER (backend place)
    Method which must be specialized for BACKEND to return the next function to restore an object from PLACE. If no reader is found return a second value which will be included in the error.
  • Method GET-NEXT-READER ((backend backend) (place t))
    The default, throw an error.
  • Method GET-NEXT-READER ((backend backend) (place t))
    The default, throw an error.
  • Method GET-NEXT-READER ((backend backend) (place t))
    The default, throw an error.
  • Function RESTORE-OBJECT (place &optional (backend *current-backend*))
    Restore the object in PLACE using BACKEND
  • Generic-Function BACKEND-RESTORE-OBJECT (backend place)
    Find the next function to call with BACKEND and invoke it with PLACE.
  • Method BACKEND-RESTORE-OBJECT ((backend backend) (place t))
    The default
  • Method BACKEND-RESTORE-OBJECT ((backend backend) (place t))
    The default
  • Method BACKEND-RESTORE-OBJECT ((backend backend) (place t))
    The default
  • Variable *CHECK-FOR-CIRCS*
    t
  • Macro SETTING (place get)
    Resolve the possible referring object retrieved by GET and set it into PLACE. Only usable within a resolving-object form.
  • Macro SETTING-HASH (getting-key getting-value)
    Insert the value retrieved by GETTING-VALUE with the key retrieved by GETTING-KEY, resolving possible circularities. Only usable within a resolving-object form.
  • Macro RESOLVING-OBJECT ((var create) &body body)
    Execute body attempting to resolve circularities found in form CREATE.
  • Function MAKE-REFERRER (&key ((val val) nil))
  • Class RESOLVING-BACKEND  (BACKEND)
    A backend which does the setup for resolving circularities.
    No slots.
  • Variable *STORE-HASH-SIZE*
    50
  • Variable *RESTORE-HASH-SIZE*
    50
  • Function CREATE-SERIALIZE-HASH (&key (size *store-hash-size*))
  • Macro WITH-SERIALIZATION-UNIT ((&key store-hash restore-hash) &body body)
    Executes body in a single serialization unit allowing various internal data structures to be reused. The keys store-hash and restore-hash are expected to be either nil or hash-tables as produced by the function create-serialize-hash.
  • Method BACKEND-STORE ((backend resolving-backend) (place t) (obj t))
  • Method BACKEND-STORE ((backend resolving-backend) (place stream) (obj t))
    Store OBJ into PLACE. Does the setup for counters and seen values.
  • Generic-Function STORE-REFERRER (backend obj place)
    Store the number OBJ into PLACE as a referrer for BACKEND.
  • Method STORE-REFERRER ((backend resolving-backend) (obj t) (place t))
  • Method STORE-REFERRER ((backend resolving-backend) (obj t) (place t))
  • Method STORE-REFERRER ((backend resolving-backend) (obj t) (place t))
  • Method BACKEND-STORE-OBJECT ((backend resolving-backend) (obj t) (place t))
    Store object if we have not seen this object before, otherwise retrieve the referrer object for it and store that using store-referrer.
  • Variable *RESTORE-COUNTER*
  • Variable *NEED-TO-FIX*
  • Variable *RESTORED-VALUES*
  • Method BACKEND-RESTORE ((backend resolving-backend) (place stream))
    Restore an object from PLACE using BACKEND. Does the setup for various variables used by resolving-object.
  • Generic-Function REFERRERP (backend reader)
  • Method REFERRERP ((backend t) (reader t))
  • Method REFERRERP ((backend t) (reader t))
  • Method REFERRERP ((backend t) (reader t))
  • Method BACKEND-RESTORE-OBJECT ((backend resolving-backend) (place t))
    Retrieve a object from PLACE, does housekeeping for circularity fixing.
  • Generic-Function INT-OR-CHAR-P (backend fn)
  • Method INT-OR-CHAR-P ((backend backend) (fn symbol))
    Is function FN registered to restore an integer or character in BACKEND.
  • Method INT-OR-CHAR-P ((backend backend) (fn symbol))
    Is function FN registered to restore an integer or character in BACKEND.
  • Method INT-OR-CHAR-P ((backend backend) (fn symbol))
    Is function FN registered to restore an integer or character in BACKEND.
  • Class CL-STORE  (RESOLVING-BACKEND)
    Autogenerated cl-store class for backend cl-store.
    RESTORERS   Accessor: RESTORERS
  • Macro DEFSTORE-CL-STORE ((var type stream &optional qualifier) &body body)
  • Macro DEFRESTORE-CL-STORE ((type place &optional qualifier) &body body)
  • Function REGISTER-CODE (code name &optional (errorp nil))
  • Function OUTPUT-TYPE-CODE (code stream)
  • Method REFERRERP ((backend cl-store) (reader t))
  • Method GET-NEXT-READER ((backend cl-store) (stream stream))
  • Method STORE-REFERRER ((backend cl-store) (ref t) (stream t))
  • Method INTERNAL-STORE-OBJECT ((g173 cl-store) (obj (eql t)) stream)
    Definition for storing an object of type (EQL T) with backend CL-STORE
  • Method INTERNAL-STORE-OBJECT ((g192 cl-store) (obj (eql nil)) stream)
    Definition for storing an object of type (EQL NIL) with backend CL-STORE
  • Method INT-OR-CHAR-P ((backend cl-store) (type symbol))
  • Method INTERNAL-STORE-OBJECT ((g274 cl-store) (obj integer) stream)
    Definition for storing an object of type INTEGER with backend CL-STORE
  • Method INTERNAL-STORE-OBJECT ((g406 cl-store) (obj float) stream)
    Definition for storing an object of type FLOAT with backend CL-STORE
  • Method INTERNAL-STORE-OBJECT ((g543 cl-store) (obj ratio) stream)
    Definition for storing an object of type RATIO with backend CL-STORE
  • Method INTERNAL-STORE-OBJECT ((g594 cl-store) (obj character) stream)
    Definition for storing an object of type CHARACTER with backend CL-STORE
  • Method INTERNAL-STORE-OBJECT ((g638 cl-store) (obj complex) stream)
    Definition for storing an object of type COMPLEX with backend CL-STORE
  • Method INTERNAL-STORE-OBJECT ((g681 cl-store) (obj symbol) stream)
    Definition for storing an object of type SYMBOL with backend CL-STORE
  • Variable *PRECISE-LIST-STORAGE*
    nil
    When bound to true the precise list serializer will be used which will ensure that all shared structure in a list will be serialized and deserialized correctly. This method of storing lists, while more correct than the default, will NOT work with large lists as it will blow the stack. Binding this variable to true only affects storing and makes no difference when restoring lists.
  • Method INTERNAL-STORE-OBJECT ((g876 cl-store) (list cons) stream)
    Definition for storing an object of type CONS with backend CL-STORE
  • Method INTERNAL-STORE-OBJECT ((g957 cl-store) (obj pathname) stream)
    Definition for storing an object of type PATHNAME with backend CL-STORE
  • Method INTERNAL-STORE-OBJECT ((g1001 cl-store) (obj hash-table) stream)
    Definition for storing an object of type HASH-TABLE with backend CL-STORE
  • Method INTERNAL-STORE-OBJECT ((g1119 cl-store) (obj standard-object) stream)
    Definition for storing an object of type STANDARD-OBJECT with backend CL-STORE
  • Method INTERNAL-STORE-OBJECT ((g1141 cl-store) (obj condition) stream)
    Definition for storing an object of type CONDITION with backend CL-STORE
  • Method INTERNAL-STORE-OBJECT ((g1228 cl-store) (obj standard-class) stream)
    Definition for storing an object of type STANDARD-CLASS with backend CL-STORE
  • Method INTERNAL-STORE-OBJECT ((g1299 cl-store) (obj built-in-class) stream)
    Definition for storing an object of type BUILT-IN-CLASS with backend CL-STORE
  • Method INTERNAL-STORE-OBJECT ((backend cl-store) (obj (eql (find-class 'hash-table))) stream)
  • Method INTERNAL-STORE-OBJECT ((g1360 cl-store) (obj array) stream)
    Definition for storing an object of type ARRAY with backend CL-STORE
  • Method INTERNAL-STORE-OBJECT ((g1858 cl-store) (obj package) stream)
    Definition for storing an object of type PACKAGE with backend CL-STORE
  • Method INTERNAL-STORE-OBJECT ((g2146 cl-store) (obj function) stream)
    Definition for storing an object of type FUNCTION with backend CL-STORE
  • Method INTERNAL-STORE-OBJECT ((g2186 cl-store) (obj generic-function) stream)
    Definition for storing an object of type GENERIC-FUNCTION with backend CL-STORE
  • Method INTERNAL-STORE-OBJECT ((g34 cl-store) (obj structure-object) stream)
    Definition for storing an object of type STRUCTURE-OBJECT with backend CL-STORE