Paul Sokolovsky
3eb532e974
extmod/modbtree: Implement __contains__ operation.
2016-08-02 00:24:59 +03:00
Paul Sokolovsky
99061d1dcb
extmod/modbtree: Switch to accepting stream object instead of filename.
...
Requires "embedded" BerkeleyDB BTree implementation.
2016-07-31 00:40:35 +03:00
Paul Sokolovsky
4f1b0292db
py/stream: Add adapter methods with POSIX-compatible signatures.
...
Previoussly such read() and write() methods were used by modussl_axtls,
move to py/stream for reuse.
2016-07-30 00:25:06 +03:00
Paul Sokolovsky
25df419c67
extmod/modbtree: Check __bt_open() return value for error.
2016-07-24 00:29:32 +03:00
Paul Sokolovsky
2dd21d9a68
extmod/modwebrepl: Use mp_stream_close() method.
2016-07-23 00:52:35 +03:00
Paul Sokolovsky
a53e0e59f3
extmod/modussl_axtls: Use mp_stream_close() method.
2016-07-23 00:38:56 +03:00
Paul Sokolovsky
0a6f599cf2
extmod/vfs_fat: Implement rmdir() method.
...
Shares the code with remove() method due to the same underlying f_unlink()
FatFs operation.
2016-07-16 03:46:42 +03:00
Paul Sokolovsky
780114e398
extmod/modussl_axtls: Add dummy setblocking() method.
...
Accepts only value of True.
2016-07-15 01:05:06 +03:00
Paul Sokolovsky
20283aec10
extmod/modussl_axtls: Further changes to allow alternative SSL modules.
...
Make variable MICROPY_SSL_AXTLS=1 should be defined to activate modussl_axtls
and link with -laxtls.
2016-07-13 01:49:38 +03:00
Paul Sokolovsky
e32d1e17bb
extmod/modussl: Rename to modussl_axtls.c, to allow impl using other SSL libs.
2016-07-13 01:35:59 +03:00
Paul Sokolovsky
a4c8a1ffe8
extmod/moduos_dupterm: Reuse dupterm_arr_obj for write operations.
...
Instead of allocating new array object header again and again, causing
memory fragmentation.
2016-07-07 02:16:24 +03:00
Paul Sokolovsky
426112ce88
extmod/moduos_dupterm: Reserve buffer bytearray object for dupterm.
...
Allocating it for each read/write operation is a memory fragmentation
hazard.
2016-07-04 13:32:30 +03:00
Paul Sokolovsky
417dc0c05d
extmod/modbtree: Fixes for nanbox build.
2016-07-02 15:58:13 +03:00
Paul Sokolovsky
b09cd0e1ec
extmod/modbtree: Fix unused argument warning.
2016-07-02 15:21:54 +03:00
Paul Sokolovsky
c880f91ac0
extmod/modwebrepl: Add readinto() method.
2016-07-02 14:05:37 +03:00
Paul Sokolovsky
03b0279c6d
extmod/modwebsocket: Add readinto() method.
2016-07-02 14:03:49 +03:00
Paul Sokolovsky
2f7ebf16de
extmod/modbtree: Cleverly implement "for key in btree:" syntax.
...
I.e. make it work like btree.keys(), while still not using a separate
iterator type.
2016-06-23 20:08:37 +03:00
Paul Sokolovsky
6b088a671a
extmod/modbtree: Implement keys(), values(), items() iterators.
...
Each takes optional args of starting key, ending key, and flags (ending
key inclusive, reverse order).
2016-06-20 15:50:31 +03:00
Paul Sokolovsky
5071ceea07
extmod/modlwip: Store a chain of incoming pbufs, instead of only one.
...
Storing a chain of pbuf was an original design of @pfalcon's lwIP socket
module. The problem with storing just one, like modlwip does is that
"peer closed connection" notification is completely asynchronous and out of
band. So, there may be following sequence of actions:
1. pbuf #1 arrives, and stored in a socket.
2. pbuf #2 arrives, and rejected, which causes lwIP to put it into a
queue to re-deliver later.
3. "Peer closed connection" is signaled, and socket is set at such status.
4. pbuf #1 is processed.
5. There's no stored pbufs in teh socket, and socket status is "peer closed
connection", so EOF is returned to a client.
6. pbuf #2 gets redelivered.
Apparently, there's no easy workaround for this, except to queue all
incoming pbufs in a socket. This may lead to increased memory pressure,
as number of pending packets would be regulated only by TCP/IP flow
control, whereas with previous setup lwIP had a global overlook of number
packets waiting for redelivery and could regulate them centrally.
2016-06-19 19:15:20 +03:00
Paul Sokolovsky
efee577318
extmod/machine_pinbase: Fix nanbox build.
...
MP_ROM_PTR() is only for data structures initialization, code should use
MP_OBJ_FROM_PTR().
2016-06-19 00:26:57 +03:00
Paul Sokolovsky
3fecbb2462
extmod/machine_pinbase: Implementation of PinBase class.
...
Allows to translate C-level pin API to Python-level pin API. In other
words, allows to implement a pin class and Python which will be usable
for efficient C-coded algorithms, like bitbanging SPI/I2C, time_pulse,
etc.
2016-06-18 23:40:28 +03:00
Paul Sokolovsky
07209f8592
all: Rename mp_obj_type_t::stream_p to protocol.
...
It's now used for more than just stream protocol (e.g. pin protocol), so
don't use false names.
2016-06-18 18:44:57 +03:00
Paul Sokolovsky
080137961d
extmod/modbtree: open(): Support "in-memory" database with filename=None.
...
It's not really in-memory though, just uses anonymous temporary file on
disk.
2016-06-18 01:31:57 +03:00
Paul Sokolovsky
e9739e3315
extmod/modbtree: __getitem__() should raise KeyError for non-existing key.
2016-06-18 01:30:49 +03:00
Paul Sokolovsky
e6e7e0e9c5
extmod/modbtree: items(): Implement DESC flag.
2016-06-18 00:47:26 +03:00