add05ef478
core: iterator: added inline definition of is_valid()
2026-02-03 14:32:15 +00:00
68ab79fe2a
core: hash: add support for hashing the contents of ropes
2026-02-03 14:31:35 +00:00
ce9195c130
core: queue: implement moving queue entries
...
this works exactly the same as moving btree nodes.
2026-02-03 14:30:53 +00:00
837a42e249
core: btree: implement moving btree nodes
...
moving a btree node is similar to simply using memmove() or memcpy(), with the added
bonus of updating the pointers in the wider data structure to the new node memory
and zeroing the old node memory so that it isn't used accidentally after the move
is complete.
2026-02-03 14:28:58 +00:00
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
144c3a4c68
core: error: clean up includes and formatting
2025-10-29 14:32:19 +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
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
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
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
4ab524a66b
core: hash: rename b_hash_string to avoid conflict with b_string
2025-09-22 10:31:30 +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
ed8e51ed5e
core: bitop: add atomic compare-exchange
2025-08-09 19:48:01 +01:00
67392d12e6
core: stream: replaced cached cursor counter with a tell() function callback
2025-07-31 11:13:40 +01:00
2f874ff11a
core: ringbuffer: make open_read_buffer pointer parameter const-correct
2025-07-30 18:24:45 +01:00
b5c07c2390
core: stream: make b_stream_write_bytes buffer pointer const
2025-07-30 18:23:33 +01:00
514b9f1c5f
core: stream: add function to open a b_stream from a FILE pointer
2025-07-30 17:49:56 +01:00
f94cff5eef
core: add error reporting api
2025-07-28 22:16:26 +01:00
3f96be28ed
core: add format with va_list function to stringstream
2025-07-28 22:14:34 +01:00
5bac4db7ed
core: add ringbuffer data structure
2025-07-28 22:13:41 +01:00
722a22a0e0
core: stringstream: update stringstream to support b_stream
2025-06-27 21:42:53 +01:00
49310eff2c
core: add b_stream interface
...
b_stream represents a character-based I/O stream. it is an abstract interface
that can be implemented by any other object, allowing the object to be
interacted with via the b_stream api.
2025-06-27 21:41:07 +01:00
d5191c49c1
core: status: add permission denied status code
2025-06-27 21:40:44 +01:00