9.50 - Released 12/31/2024
- Added the IncrementalHashCalculator class and related utility
functions, in util/IncrementalHashCalculator.{cpp,h}. - Added an optional (withSpaces) argument to the HexBytesToString()
and ByteBuffer::ToHexString() methods. - Added Base64Encode() and Base64Decode() functions to
MiscUtilityFunctions.{cpp,h}, based on John Walker's Base64 code. - Added WebSocketDataIOGateway.{cpp,h} to the iogateways folder.
- Added optional (runUntil) and (optRetNextPulseTime) arguments to
ReflectServer::ServerProcessLoop(), to facilitate periodically
pumping the event loop manually from a higher-level event-loop. - Added a dummy/no-op implementation to the SocketMultiplexer class.
Specify -DMUSCLE_USE_DUMMYNOP on the compile line to use it. - Added an EmscriptenReflectServer class to the platform/emscripten
folder, to support driving an event loop from async callbacks. - Added an EmscriptenWebSocketDataIO class to the platform/emscripten
folder, to support network I/O via the Emscripten WebSocket API. - Added an EmscriptenAsyncCallback class to the platform/emscripten folder,
to manage Emscripten's non-cancellable async callbacks. - Added an EmscriptenCallbackMechanism to the platform/emscripten folder.
- Split the StringMatcher constructor in two, so that implicit
construction of a StringMatcher from a String argument can happen. - Renamed ParseHexBytes() to HexBytesFromString(), and updated it
to also handle hex-strings without spaces (e.g. "015A2B66"). - The Thread class now automatically disables its messaging-sockets
option when compiling with Emscripten, since WebAssembly doesn't
currently support socket-pair signalling anyway. - Fixed a bug in HashtableIterator's move-operator that could cause
a moved-into HashtableIterator not to point to the expected content. - Fixed CMakeLists.txt not to include minizip.c and miniunz.c in
the compiled muscle library. - ParseFile() was incorrectly returning B_BAD_ARGUMENT when an
empty String was passed to it. Fixed.