The nibbles-streams Reference Manual

Next: , Previous: , Up: (dir)   [Contents][Index]

The nibbles-streams Reference Manual

This is the nibbles-streams Reference Manual, version 0.1, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Aug 15 05:27:20 2022 GMT+0.

Table of Contents


1 Introduction

nibbles-streams

CI

Nibbles-streams is a wrapper around nibbles which allows you to create input and output binary streams with changeable element type and endianness.

An example:

(flexi-streams:with-output-to-sequence (stream)
  ;; Open little endian nibbles-stream with underlying stream's element-type
  (let ((output (make-instance 'nibbles-streams:nibbles-output-stream
                               :stream stream)))
    (write-byte 2 output)
    (write-sequence #(1 2 3) output)
    ;; Change element-type and endianness
    (setf (nibbles-streams:nibbles-stream-element-type output)
          '(signed-byte 16)
          (nibbles-streams:nibbles-stream-endianness output)
          :big)
    (write-byte 1000 output)
    (write-sequence #(-1 -2001 300) output)))
=> #(2 1 2 3 3 232 255 255 248 47 1 44)

The package nibble-streams export two types of streams: nibbles-input-stream and nibbles-output-stream, accessors nibbles-stream-element-type and nibbles-stream-endianness and a condition nibbles-stream-error which is signalled when a wrong element type or endianness is specified.

Supported element types

These element types are supported:


2 Systems

The main system appears first, followed by any subsystem dependency.


Previous: , Up: Systems   [Contents][Index]

2.1 nibbles-streams

Proof of concept for lossless audio compressor

Author

Vasily Postnicov <shamaz.mazum@gmail.com>

License

2-clause BSD

Version

0.1

Dependencies
  • trivial-gray-streams (system).
  • nibbles (system).
  • serapeum (system).
Source

nibbles-streams.asd.

Child Components

3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


Previous: , Up: Files   [Contents][Index]

3.1 Lisp


Next: , Previous: , Up: Lisp   [Contents][Index]

3.1.1 nibbles-streams/nibbles-streams.asd

Source

nibbles-streams.asd.

Parent Component

nibbles-streams (system).

ASDF Systems

nibbles-streams.


3.1.2 nibbles-streams/package.lisp

Source

nibbles-streams.asd.

Parent Component

nibbles-streams (system).

Packages

nibbles-streams.


3.1.3 nibbles-streams/signed-octets.lisp

Dependency

package.lisp (file).

Source

nibbles-streams.asd.

Parent Component

nibbles-streams (system).

Internals

3.1.4 nibbles-streams/nibbles-streams.lisp

Dependency

signed-octets.lisp (file).

Source

nibbles-streams.asd.

Parent Component

nibbles-streams (system).

Public Interface
Internals

4 Packages

Packages are listed by definition order.


Previous: , Up: Packages   [Contents][Index]

4.1 nibbles-streams

Source

package.lisp.

Use List

common-lisp.

Public Interface
Internals

5 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


Next: , Previous: , Up: Definitions   [Contents][Index]

5.1 Public Interface


5.1.1 Generic functions

Generic Reader: nibbles-stream-element-type (object)
Package

nibbles-streams.

Methods
Reader Method: nibbles-stream-element-type ((nibbles-stream nibbles-stream))

Element type of nibble-stream. Setfable.

Source

nibbles-streams.lisp.

Target Slot

element-type.

Generic Function: (setf nibbles-stream-element-type) (object)
Package

nibbles-streams.

Methods
Writer Method: (setf nibbles-stream-element-type) :before ((stream nibbles-stream))
Source

nibbles-streams.lisp.

Target Slot

element-type.

Method: (setf nibbles-stream-element-type) ((nibbles-stream nibbles-stream))

Element type of nibble-stream. Setfable.

Source

nibbles-streams.lisp.

Generic Reader: nibbles-stream-endianness (object)
Package

nibbles-streams.

Methods
Reader Method: nibbles-stream-endianness ((nibbles-stream nibbles-stream))

Endianness of the stream. Can be :LITTLE or :BIG

Source

nibbles-streams.lisp.

Target Slot

endianness.

Generic Function: (setf nibbles-stream-endianness) (object)
Package

nibbles-streams.

Methods
Writer Method: (setf nibbles-stream-endianness) :before ((stream nibbles-stream))
Source

nibbles-streams.lisp.

Target Slot

endianness.

Method: (setf nibbles-stream-endianness) ((nibbles-stream nibbles-stream))

Endianness of the stream. Can be :LITTLE or :BIG

Source

nibbles-streams.lisp.


5.1.2 Standalone methods

Method: initialize-instance :after ((nibbles-stream nibbles-stream) &key element-type &allow-other-keys)
Source

nibbles-streams.lisp.

Method: make-load-form ((self db-entry) &optional env)
Source

nibbles-streams.lisp.

Method: print-object ((object db-entry) stream)
Source

nibbles-streams.lisp.

Method: stream-clear-input ((stream nibbles-input-stream))
Package

sb-gray.

Source

nibbles-streams.lisp.

Method: stream-clear-output ((stream nibbles-output-stream))
Package

sb-gray.

Source

nibbles-streams.lisp.

Method: stream-element-type ((stream nibbles-stream))
Source

nibbles-streams.lisp.

Method: stream-finish-output ((stream nibbles-output-stream))
Package

sb-gray.

Source

nibbles-streams.lisp.

Method: stream-force-output ((stream nibbles-output-stream))
Package

sb-gray.

Source

nibbles-streams.lisp.

Method: stream-read-byte ((stream nibbles-input-stream))
Package

sb-gray.

Source

nibbles-streams.lisp.

Method: stream-read-sequence ((stream nibbles-input-stream) sequence start end &key &allow-other-keys)
Package

trivial-gray-streams.

Source

nibbles-streams.lisp.

Method: stream-write-byte ((stream nibbles-output-stream) byte)
Package

sb-gray.

Source

nibbles-streams.lisp.

Method: stream-write-sequence ((stream nibbles-input-stream) sequence start end &key &allow-other-keys)
Package

trivial-gray-streams.

Source

nibbles-streams.lisp.


5.1.3 Conditions

Condition: nibbles-stream-error

Condition class realted to nibbles-stream.

Package

nibbles-streams.

Source

nibbles-streams.lisp.

Direct superclasses

simple-error.


Previous: , Up: Public Interface   [Contents][Index]

5.1.4 Classes

Class: nibbles-input-stream

Input nibbles stream.

Package

nibbles-streams.

Source

nibbles-streams.lisp.

Direct superclasses
Direct methods
Class: nibbles-output-stream

Output nibbles stream.

Package

nibbles-streams.

Source

nibbles-streams.lisp.

Direct superclasses
Direct methods
Class: nibbles-stream

Generic nibbles stream. Not to be instantiated.

Package

nibbles-streams.

Source

nibbles-streams.lisp.

Direct superclasses

fundamental-binary-stream.

Direct subclasses
Direct methods
Direct slots
Slot: element-type

Element type of nibble-stream. Setfable.

Initargs

:element-type

Readers

nibbles-stream-element-type.

Writers

(setf nibbles-stream-element-type).

Slot: endianness

Endianness of the stream. Can be :LITTLE or :BIG

Type

(member :big :little)

Initform

:little

Initargs

:endianness

Readers

nibbles-stream-endianness.

Writers

(setf nibbles-stream-endianness).

Slot: stream

Underlying stream. Must be specified at creation time.

Package

common-lisp.

Type

stream

Initform

(error "specify underlying stream")

Initargs

:stream

Readers

nibbles-stream-stream.

Writers

This slot is read-only.


5.2 Internals


Next: , Previous: , Up: Internals   [Contents][Index]

5.2.1 Special variables

Special Variable: *function-db*
Package

nibbles-streams.

Source

nibbles-streams.lisp.


5.2.2 Ordinary functions

Function: copy-db-entry (db-entry1 &key endianness element-type byte-reader sequence-reader byte-writer sequence-writer)

Copy an instance of DB-ENTRY, optionally overriding some or all of its slots.

Package

nibbles-streams.

Source

nibbles-streams.lisp.

Function: db-entry (endianness element-type byte-reader sequence-reader byte-writer sequence-writer)
Package

nibbles-streams.

Source

nibbles-streams.lisp.

Reader: db-entry-byte-reader (instance)
Package

nibbles-streams.

Source

nibbles-streams.lisp.

Target Slot

byte-reader.

Reader: db-entry-byte-writer (instance)
Package

nibbles-streams.

Source

nibbles-streams.lisp.

Target Slot

byte-writer.

Reader: db-entry-element-type (instance)
Package

nibbles-streams.

Source

nibbles-streams.lisp.

Target Slot

element-type.

Reader: db-entry-endianness (instance)
Package

nibbles-streams.

Source

nibbles-streams.lisp.

Target Slot

endianness.

Reader: db-entry-sequence-reader (instance)
Package

nibbles-streams.

Source

nibbles-streams.lisp.

Target Slot

sequence-reader.

Reader: db-entry-sequence-writer (instance)
Package

nibbles-streams.

Source

nibbles-streams.lisp.

Target Slot

sequence-writer.

Function: find-entry (endianness type)
Package

nibbles-streams.

Source

nibbles-streams.lisp.

Function: nibbles-functions ()
Package

nibbles-streams.

Source

nibbles-streams.lisp.

Function: read-sb8 (stream &optional eof-error-p eof-value)
Package

nibbles-streams.

Source

signed-octets.lisp.

Function: read-sb8-sequence (seq stream &key start end)
Package

nibbles-streams.

Source

signed-octets.lisp.

Function: sb8->ub8 (byte)
Package

nibbles-streams.

Source

signed-octets.lisp.

Function: typesequalp (t1 t2)
Package

nibbles-streams.

Source

nibbles-streams.lisp.

Function: ub8->sb8 (byte)
Package

nibbles-streams.

Source

signed-octets.lisp.

Function: write-sb8 (byte stream)
Package

nibbles-streams.

Source

signed-octets.lisp.

Function: write-sb8-sequence (seq stream &key start end)
Package

nibbles-streams.

Source

signed-octets.lisp.


5.2.3 Generic functions

Generic Reader: nibbles-stream-stream (object)
Package

nibbles-streams.

Methods
Reader Method: nibbles-stream-stream ((nibbles-stream nibbles-stream))

Underlying stream. Must be specified at creation time.

Source

nibbles-streams.lisp.

Target Slot

stream.


Next: , Previous: , Up: Internals   [Contents][Index]

5.2.4 Standalone methods

Method: %constructor= ((o1 db-entry) (o2 db-entry))
Package

serapeum.

Source

nibbles-streams.lisp.

Method: constructor-values/generic ((x db-entry))
Package

serapeum.

Source

nibbles-streams.lisp.

Method: read-only-struct-slot-names append ((self db-entry))
Package

serapeum.

Source

nibbles-streams.lisp.


5.2.5 Structures

Structure: db-entry
Package

nibbles-streams.

Source

nibbles-streams.lisp.

Direct superclasses

%read-only-struct.

Direct methods
Direct slots
Slot: endianness
Type

(member :big :little)

Initform

(alexandria:required-argument (quote nibbles-streams::endianness))

Readers

db-entry-endianness.

Writers

This slot is read-only.

Slot: element-type
Initform

(alexandria:required-argument (quote nibbles-streams::element-type))

Readers

db-entry-element-type.

Writers

This slot is read-only.

Slot: byte-reader
Type

function

Initform

(alexandria:required-argument (quote nibbles-streams::byte-reader))

Readers

db-entry-byte-reader.

Writers

This slot is read-only.

Slot: sequence-reader
Type

function

Initform

(alexandria:required-argument (quote nibbles-streams::sequence-reader))

Readers

db-entry-sequence-reader.

Writers

This slot is read-only.

Slot: byte-writer
Type

function

Initform

(alexandria:required-argument (quote nibbles-streams::byte-writer))

Readers

db-entry-byte-writer.

Writers

This slot is read-only.

Slot: sequence-writer
Type

function

Initform

(alexandria:required-argument (quote nibbles-streams::sequence-writer))

Readers

db-entry-sequence-writer.

Writers

This slot is read-only.


Appendix A Indexes


Next: , Previous: , Up: Indexes   [Contents][Index]

A.1 Concepts


Next: , Previous: , Up: Indexes   [Contents][Index]

A.2 Functions

Jump to:   %   (  
C   D   F   G   I   M   N   P   R   S   T   U   W  
Index Entry  Section

%
%constructor=: Private standalone methods

(
(setf nibbles-stream-element-type): Public generic functions
(setf nibbles-stream-element-type): Public generic functions
(setf nibbles-stream-element-type): Public generic functions
(setf nibbles-stream-endianness): Public generic functions
(setf nibbles-stream-endianness): Public generic functions
(setf nibbles-stream-endianness): Public generic functions

C
constructor-values/generic: Private standalone methods
copy-db-entry: Private ordinary functions

D
db-entry: Private ordinary functions
db-entry-byte-reader: Private ordinary functions
db-entry-byte-writer: Private ordinary functions
db-entry-element-type: Private ordinary functions
db-entry-endianness: Private ordinary functions
db-entry-sequence-reader: Private ordinary functions
db-entry-sequence-writer: Private ordinary functions

F
find-entry: Private ordinary functions
Function, copy-db-entry: Private ordinary functions
Function, db-entry: Private ordinary functions
Function, db-entry-byte-reader: Private ordinary functions
Function, db-entry-byte-writer: Private ordinary functions
Function, db-entry-element-type: Private ordinary functions
Function, db-entry-endianness: Private ordinary functions
Function, db-entry-sequence-reader: Private ordinary functions
Function, db-entry-sequence-writer: Private ordinary functions
Function, find-entry: Private ordinary functions
Function, nibbles-functions: Private ordinary functions
Function, read-sb8: Private ordinary functions
Function, read-sb8-sequence: Private ordinary functions
Function, sb8->ub8: Private ordinary functions
Function, typesequalp: Private ordinary functions
Function, ub8->sb8: Private ordinary functions
Function, write-sb8: Private ordinary functions
Function, write-sb8-sequence: Private ordinary functions

G
Generic Function, (setf nibbles-stream-element-type): Public generic functions
Generic Function, (setf nibbles-stream-endianness): Public generic functions
Generic Function, nibbles-stream-element-type: Public generic functions
Generic Function, nibbles-stream-endianness: Public generic functions
Generic Function, nibbles-stream-stream: Private generic functions

I
initialize-instance: Public standalone methods

M
make-load-form: Public standalone methods
Method, %constructor=: Private standalone methods
Method, (setf nibbles-stream-element-type): Public generic functions
Method, (setf nibbles-stream-element-type): Public generic functions
Method, (setf nibbles-stream-endianness): Public generic functions
Method, (setf nibbles-stream-endianness): Public generic functions
Method, constructor-values/generic: Private standalone methods
Method, initialize-instance: Public standalone methods
Method, make-load-form: Public standalone methods
Method, nibbles-stream-element-type: Public generic functions
Method, nibbles-stream-endianness: Public generic functions
Method, nibbles-stream-stream: Private generic functions
Method, print-object: Public standalone methods
Method, read-only-struct-slot-names: Private standalone methods
Method, stream-clear-input: Public standalone methods
Method, stream-clear-output: Public standalone methods
Method, stream-element-type: Public standalone methods
Method, stream-finish-output: Public standalone methods
Method, stream-force-output: Public standalone methods
Method, stream-read-byte: Public standalone methods
Method, stream-read-sequence: Public standalone methods
Method, stream-write-byte: Public standalone methods
Method, stream-write-sequence: Public standalone methods

N
nibbles-functions: Private ordinary functions
nibbles-stream-element-type: Public generic functions
nibbles-stream-element-type: Public generic functions
nibbles-stream-endianness: Public generic functions
nibbles-stream-endianness: Public generic functions
nibbles-stream-stream: Private generic functions
nibbles-stream-stream: Private generic functions

P
print-object: Public standalone methods

R
read-only-struct-slot-names: Private standalone methods
read-sb8: Private ordinary functions
read-sb8-sequence: Private ordinary functions

S
sb8->ub8: Private ordinary functions
stream-clear-input: Public standalone methods
stream-clear-output: Public standalone methods
stream-element-type: Public standalone methods
stream-finish-output: Public standalone methods
stream-force-output: Public standalone methods
stream-read-byte: Public standalone methods
stream-read-sequence: Public standalone methods
stream-write-byte: Public standalone methods
stream-write-sequence: Public standalone methods

T
typesequalp: Private ordinary functions

U
ub8->sb8: Private ordinary functions

W
write-sb8: Private ordinary functions
write-sb8-sequence: Private ordinary functions

Jump to:   %   (  
C   D   F   G   I   M   N   P   R   S   T   U   W