Commit Graph

84 Commits

Author SHA1 Message Date
6b65727535 core: error: rename b_error_release to b_error_discard 2025-11-04 10:03:10 +00:00
493b9ec4a4 core: iterator: implement const iterators 2025-11-01 09:58:18 +00:00
0cbab62391 core: type: fix interface type components not being initialised properly 2025-11-01 09:57:32 +00:00
abf1d45602 core: class: validate magic number in class header 2025-11-01 09:56:52 +00:00
360428c8e8 core: object: validate magic number in object header 2025-11-01 09:56:22 +00:00
144c3a4c68 core: error: clean up includes and formatting 2025-10-29 14:32:19 +00:00
2ee2f8c115 core: object: remove legacy iterator interface usage 2025-10-29 14:31:09 +00:00
1e4b5bc4e6 core: btree: replace legacy iterator interface 2025-10-29 14:30:33 +00:00
c2b894ef22 core: queue: replace legacy iterator interface 2025-10-29 14:29:05 +00:00
009b6c6292 core: iterator: re-design b_iterator as a b_object interface 2025-10-29 13:52:27 +00:00
b58015baff core: type: check if a class tries to implement an interface it doesn't extend or inherit 2025-10-28 15:17:50 +00:00
e8eee9ca0d core: type: make get_type static 2025-10-28 15:16:07 +00:00
5b090c72c7 core: stream: change read/write buffer type from unsigned char* to void* 2025-10-28 15:14:57 +00:00
2687477cb2 core: ringbuffer: update from simple struct to a b_object type 2025-10-28 15:14:09 +00:00
5f2bbc7151 core: class: add functions to get a registered class, and get the name of a class 2025-10-28 15:11:54 +00:00
75e9291da3 core: error: update header include guard 2025-10-25 19:36:25 +01:00
a429e76721 core: stream: add utf-8 awareness to b_stream interface
b_stream can now read/write utf-8 encoded data, and will do so unless
the stream is in binary mode.

b_stream will also report an error it encounters invalid utf-8 data
(unless binary mode is enabled).
2025-10-25 00:02:33 +01:00
f6f49faf97 core: encoding: add utf-8 functions from b_string to b_wchar interface 2025-10-25 00:02:15 +01:00
3e82d12476 core: hash: fix hash backends erasing ctx function pointers 2025-10-25 00:01:16 +01:00
7c9a753007 core: object: add nullptr checks to data retrieval functions 2025-10-25 00:00:37 +01:00
1d9549c0c2 core: error: update b_stringstream usage to use b_stream interface 2025-10-24 12:33:23 +01:00
a5762e537b core: stringstream: convert to a b_object type inheriting from b_stream 2025-10-24 12:32:54 +01:00
fd4f60e37f core: stream: convert to a b_object interface and base class 2025-10-24 12:32:16 +01:00
8840971d83 core: object: add more virtual function dispatch macros 2025-10-24 12:31:51 +01:00
ed105307c7 core: type: fix registration of types that extend something other than b_object 2025-10-24 12:29:24 +01:00
36b624849c core: object: add functions to retrieve multiple parts of an object at once 2025-10-24 12:28:50 +01:00
ab1c2b370d core: object: implement rvalue object support 2025-10-19 20:58:32 +01:00
2cc1a541c2 core: object: implement b_object_is_type() 2025-10-19 13:46:44 +01:00
ff2ff6f136 core: stream: update generic pointer usage for stdio streams 2025-10-19 11:26:04 +01:00
d5bd8fa32a core: stream: add a second generic pointer to b_stream 2025-10-19 10:22:35 +01:00
c389e32dc6 core: add B_NPOS definition 2025-10-19 10:22:11 +01:00
379bd048b2 core: object: make interface query functions const; remove type parameters 2025-10-19 10:21:43 +01:00
e1e4544b67 core: macros: fix bad return type on unref() function template 2025-10-18 21:54:34 +01:00
4044961478 core: rename b_retain/b_release to b_object_ref/b_object_unref 2025-10-18 21:51:51 +01:00
503dc56328 core: add macros for performing non-virtual class method dispatch 2025-10-18 21:41:40 +01:00
a0b7b5b85b core: remove type parameter from object interface query functions 2025-10-18 21:06:20 +01:00
06add543bf Merge branch 'main' into feature/new-object-system 2025-10-15 11:13:00 +01:00
9d2ebfce2e core: move new object system to core module
this will allow a wider range of data structures (e.g. b_error, b_stream, b_stringstream) to make use
of the new object system, and other modules and library users can use the object system without
depending on the blue-object or blue-ds modules.

blue-ds will become a simple library of data structures (string, hashmap, etc), built on top of the
core object system.
2025-10-15 10:38:18 +01:00
cbaeb002f8 core: stream: b_stream_read_line_s now includes linefeed in output and correctly reports EOF condition 2025-09-22 10:32:37 +01:00
bc5986150c core: stream: fix buffer overflow in stream indentation stack 2025-09-22 10:31:53 +01:00
4ab524a66b core: hash: rename b_hash_string to avoid conflict with b_string 2025-09-22 10:31:30 +01:00
d52992c8ba core: printf: switch to an enhanced version of embedded printf 2025-09-22 10:30:40 +01:00
072903f896 core: error: fix b_error_caused_by_code calling an undefined function 2025-09-22 10:29:48 +01:00
0a2a1c695a core: error: add function to test if an error has a particular vendor/code 2025-09-22 10:29:01 +01:00
db3d1e3183 core: add a type to store unicode characters, as well as functions to query them 2025-09-22 10:28:03 +01:00
3f2558cac3 core: add B_BTREE_INIT macro 2025-08-16 16:00:33 +01:00
2c15d5cd45 core: add new object related status codes 2025-08-16 16:00:04 +01:00
a5e3e06306 core: add basic mutex and per-thread data support 2025-08-09 19:49:06 +01:00
ee2611c678 core: error: fix double free of errors released with b_error_release 2025-08-09 19:48:40 +01:00
ed8e51ed5e core: bitop: add atomic compare-exchange 2025-08-09 19:48:01 +01:00