Files
pycapnp/docs/capnp.rst
Rowan Reeve a5c29a74d2 Schema loading from the wire
Cap'n Proto provides a schema loader, which can be used to dynamically
load schemas during runtime. To port this functionality to pycapnp,
a new class is provided `C_SchemaLoader`, which exposes the Cap'n
Proto C++ interface, and `SchemaLoader`, which is part of the pycapnp
library.

The specific use case for this is when a capnp message contains
a Node.Reader: The schema for a yet unseen message can be loaded
dynamically, allowing the future message to be properly processed.

If the message is a struct containing other structs, all the schemas for
every struct must be loaded to correctly parse the message. See
https://github.com/DaneSlattery/capnp_generic_poc for a
proof-of-concept.

Add docs and cleanup

Add more docs

Reduce changes

Fix flake8 formatting

Fix get datatype
2023-06-12 14:10:13 +02:00

197 lines
3.3 KiB
ReStructuredText

.. _api:
API Reference
=============
.. automodule:: capnp
.. currentmodule:: capnp
Classes
-------
RPC
~~~
Promise
#######
.. autoclass:: Promise
:members:
:undoc-members:
:inherited-members:
Promise may be one of:
* :meth:`capnp.lib.capnp._Promise`
* :meth:`capnp.lib.capnp._RemotePromise`
* :meth:`capnp.lib.capnp._VoidPromise`
.. autoclass:: capnp.lib.capnp._Promise
:members:
:undoc-members:
:inherited-members:
.. autoclass:: capnp.lib.capnp._RemotePromise
:members:
:undoc-members:
:inherited-members:
.. autoclass:: capnp.lib.capnp._VoidPromise
:members:
:undoc-members:
:inherited-members:
Communication
#############
.. autoclass:: TwoPartyClient
:members:
:undoc-members:
:inherited-members:
.. autoclass:: TwoPartyServer
:members:
:undoc-members:
:inherited-members:
Capability
##########
.. autoclass:: capnp.lib.capnp._DynamicCapabilityClient
:members:
:undoc-members:
:inherited-members:
Response
########
.. autoclass:: capnp.lib.capnp._Response
:members:
:undoc-members:
:inherited-members:
Miscellaneous
~~~~~~~~~~~~~
.. autoclass:: KjException
:members:
:undoc-members:
:inherited-members:
.. autoclass:: SchemaParser
:members:
:undoc-members:
:inherited-members:
.. autoclass:: SchemaLoader
:members:
:undoc-members:
:inherited-members:
Functions
---------
.. autofunction:: add_import_hook
.. autofunction:: cleanup_global_schema_parser
.. autofunction:: create_event_loop
.. autofunction:: getTimer
.. autofunction:: join_promises
.. autofunction:: load
.. autofunction:: poll_once
.. autofunction:: remove_event_loop
.. autofunction:: remove_import_hook
.. autofunction:: reset_event_loop
.. autofunction:: wait_forever
Internal Classes
----------------
These classes are internal to the library. You will never need to allocate
one yourself, but you may end up using some of their member methods.
Modules
~~~~~~~
These are classes that are made for you when you import a Cap'n Proto file::
import capnp
import addressbook_capnp
print type(addressbook_capnp.Person) # capnp.capnp._StructModule
.. autoclass:: _InterfaceModule
:members:
:undoc-members:
:inherited-members:
.. autoclass:: _StructModule
:members:
:undoc-members:
:inherited-members:
Readers
~~~~~~~
.. autoclass:: _DynamicListReader
:members:
:undoc-members:
:inherited-members:
.. autoclass:: _DynamicStructReader
:members:
:undoc-members:
:inherited-members:
.. autoclass:: _PackedFdMessageReader
:members:
:undoc-members:
:inherited-members:
.. autoclass:: _StreamFdMessageReader
:members:
:undoc-members:
:inherited-members:
Builders
~~~~~~~~
.. autoclass:: _DynamicResizableListBuilder
:members:
:undoc-members:
:inherited-members:
.. autoclass:: _DynamicListBuilder
:members:
:undoc-members:
:inherited-members:
.. autoclass:: _DynamicStructBuilder
:members:
:undoc-members:
:inherited-members:
.. autoclass:: _MallocMessageBuilder
:members:
:undoc-members:
:inherited-members:
RPC
~~~
.. autoclass:: _CapabilityClient
:members:
:undoc-members:
:inherited-members:
.. autoclass:: _DynamicCapabilityClient
:members:
:undoc-members:
:inherited-members:
Miscellaneous
~~~~~~~~~~~~~
.. autoclass:: _DynamicOrphan
:members:
:undoc-members:
:inherited-members: