Add _DynamicStructBuilder.to_bytes() and <struct module>.read_from_memory

to_bytes is not very efficient (it makes one necessary copy and one
unnecessary copy), but it will simplify a lot of use cases.

read_from_memory should be maximally efficient for most input types
(including mmap).
This commit is contained in:
Andy Lutomirski
2013-09-03 11:54:45 -07:00
parent b3264a7292
commit cd0fe97710
3 changed files with 69 additions and 2 deletions

View File

@@ -5,6 +5,7 @@
from libc.stdint cimport *
from capnp_cpp cimport DynamicOrphan
cimport capnp_cpp
ctypedef unsigned int uint
ctypedef uint8_t UInt8
ctypedef uint16_t UInt16
@@ -695,11 +696,17 @@ cdef extern from "capnp/serialize.h" namespace " ::capnp":
StreamFdMessageReader(int)
StreamFdMessageReader(int, ReaderOptions)
cdef cppclass FlatArrayMessageReader(MessageReader):
FlatArrayMessageReader(capnp_cpp.WordArrayPtr array)
FlatArrayMessageReader(capnp_cpp.WordArrayPtr array, ReaderOptions)
void writeMessageToFd(int, MessageBuilder&)
capnp_cpp.WordArray messageToFlatArray(MessageBuilder &)
cdef extern from "capnp/serialize-packed.h" namespace " ::capnp":
cdef cppclass PackedFdMessageReader(MessageReader):
PackedFdMessageReader(int)
StreamFdMessageReader(int, ReaderOptions)
void writePackedMessageToFd(int, MessageBuilder&)
void writePackedMessageToFd(int, MessageBuilder&)