Commit Graph
49 Commits
Author SHA1 Message Date
Patrick Pelissier 8b3a4a802c Happy new year! 2019-01-02 18:12:07 +01:00
Patrick Pelissier d3934dccb9 Add missing const in prototypes. 2018-11-24 11:46:28 +01:00
Patrick Pelissier a8b5c3ff4e Improve assertions 2018-11-10 17:54:13 +01:00
Patrick Pelissier 74aa514903 Add missing const 2018-11-01 16:11:12 +01:00
Patrick Pelissier 618e37b07c Remove pop operator as there is no method for it. 2018-10-29 16:51:17 +01:00
Patrick Pelissier 02d4bf0e09 Export method _empty_p for operator TEST_EMPTY for all containers. 2018-10-29 11:06:54 +01:00
Patrick Pelissier 08d2af22db Add KEY_OPLIST & VALUE_OPLIST operators 2018-10-28 10:38:41 +01:00
Patrick Pelissier 70179bb1d7 Add VALUE_TYPE operator 2018-10-28 10:33:25 +01:00
Patrick Pelissier 83226c5ce8 Add KEY_TYPE operator 2018-10-28 10:03:47 +01:00
Patrick Pelissier 3d6b737c46 Export *KEY operators in OPLIST for array, dict, B+tree 2018-10-27 23:37:06 +02:00
Patrick Pelissier adbafc0b02 Fix usage of pop_at after later change. 2018-10-27 22:59:19 +02:00
Patrick Pelissier 4e6dad939a API Compatibility change: rename _remove for DICT & B+TREE into _erase for API uniformization. 2018-10-27 22:56:00 +02:00
Patrick Pelissier e0c456490a Fix definition of oplist for containers:
if no argument is given, it shall behave as if it was defined with
a standard C type.
2018-09-15 17:59:50 +02:00
Patrick Pelissier 2e3b312fab Fix issue of recursive usage of M_GLOBAL_OPLIST_OR_DEF
Update the way to use the macro to avoid being limited by the
preprocessor limitation.
2018-09-14 20:57:55 +02:00
Patrick Pelissier bb8de993b6 Start porting to M_CALL infrastructure, enabling support for
API transformation.
2018-09-08 22:49:12 +02:00
Patrick Pelissier 3b0e940284 Add missing _ptr & _srcptr alias. 2018-08-19 17:58:23 +02:00
Patrick Pelissier 4ef1b079cb Can omit optlist in B+TREE definition 2018-08-05 11:08:18 +02:00
Patrick Pelissier 09e117cd57 Update comments.
Update _new_node: it shall never return NULL.
2018-07-24 00:34:35 +02:00
Patrick Pelissier 96202aa78f Do not use reserved identifiers of the C standard (See 7.1.3 Reserved identifiers) 2018-07-14 14:35:14 +02:00
Patrick Pelissier 2167931e3f Remove _pop method from OPLIST as it doesn't follow _pop
convention.
2018-06-27 07:17:09 +02:00
Patrick Pelissier 2d18171914 Rename _pop method into _pop_at methods
as the provided function follow the prototype of a _pop_at method
rather than a _pop method.
2018-06-27 07:13:10 +02:00
Patrick Pelissier 91090d20de Remove non defined operators from the oplist. 2018-06-06 00:00:08 +02:00
Patrick Pelissier 4b1ed25ef3 Rewrite inner loop. should be a little bit faster. 2018-05-11 22:41:00 +02:00
Patrick Pelissier a5ac43e5f3 Fix issue with oplist of set. 2018-05-11 17:57:33 +02:00
Patrick Pelissier 0557527bfe Update format of serialisation for B+TREE:
as the tree is ordered, a '[]' has to be used.
2018-05-11 17:32:32 +02:00
Patrick Pelissier 951a9d7989 Fix issue in parse. 2018-05-07 23:08:01 +02:00
Patrick Pelissier fafce60f9e Add method _parse_str
NOTE: _in_str, _out_str, _get_str & _parse_str remain to be tested.
2018-05-03 18:06:11 +02:00
Patrick Pelissier 131da660c8 Fix bug in _clean. 2018-04-20 19:30:01 +02:00
Patrick Pelissier 085d5b411c Add oplist for B*TREE 2018-04-13 20:16:23 +02:00
Patrick Pelissier 353d2d4cc9 Fix issue in copy of B*TREE:
the _next field wasn't properly set for the deepest nodes.
2018-04-10 23:23:36 +02:00
Patrick Pelissier b38d84419a Add methods hash, eqal_p, out_str, in_str & get_str
Format of serialisation needs to be properly uniformised between:
dictionnary,
red-black tree,
set,
b+tree with key,value,
b+tree with only key.
2018-04-09 18:42:34 +02:00
Patrick Pelissier f3b2b6b41e Add methods _swap, _move & _init_move 2018-04-09 18:06:48 +02:00
Patrick Pelissier 10f900ea3e Rewrite code to avoid warning if optimisations are turned on. 2018-04-08 20:27:37 +02:00
Patrick Pelissier e6a6eb9be5 Fix issue in it_from for B+TREE 2018-04-08 11:13:48 +02:00
Patrick Pelissier b005ec1845 Fix function max for B+TREE 2018-04-08 10:48:02 +02:00
Patrick Pelissier a166620a6d Add method _from, _to_p, _min & _max for B+TREE 2018-04-08 10:39:27 +02:00
Patrick Pelissier 67af80c772 Fix issue in it_end for B+TREE 2018-04-08 07:22:34 +02:00
Patrick Pelissier 73354a04d5 Add method _init_set & _set for B+tree 2018-04-07 12:10:19 +02:00
Patrick Pelissier 44209ed93e Add more tests 2018-04-07 11:19:58 +02:00
Patrick Pelissier d2f5698397 iMake oplist optional for BPTREE_DEF 2018-04-07 11:10:13 +02:00
Patrick Pelissier 91db494898 Add basic iterator for B+tree
I can't match the exact interface of a dictionary of the key and the value are in separate place in the structure
(so I can't return a pair of (key,value)). Instead I return a pair of pointer (key_ptr, value_ptr).
I don't see any other way which doesn't evolve copy of the key/value.
For the RBtree interface, no such problem occurs.
2018-04-05 22:44:36 +02:00
Patrick Pelissier 75217d4914 Rewrite / cleanup 2018-04-04 22:57:47 +02:00
Patrick Pelissier ceaf004719 Remove wrong comment 2018-04-04 22:55:19 +02:00
Patrick Pelissier 27b7380433 B+TREE: Add _size operator 2018-04-04 22:54:39 +02:00
Patrick Pelissier 7ca254ade9 B+TREE: Add _pop function. 2018-04-04 22:39:46 +02:00
Patrick Pelissier c91864c2a7 B+TREE: _remove returns a boolean indicating if the item
removed was present or not
2018-04-04 22:35:47 +02:00
Patrick Pelissier 8e335535cc Add new container without a value. 2018-04-03 20:01:04 +02:00
Patrick Pelissier 2f53d98806 Fix issue with kind_s being redefined if the macro is used again.
Fix issue of not using proper method for type.
Render usage of value optional so that we can create B+TREE with only keys.
2018-04-03 18:29:28 +02:00
Patrick Pelissier 6127371920 Add B+TREE container.
Fix #4
2018-04-03 12:40:29 +02:00