1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2026-01-12 23:31:01 +00:00
serenity/Userland/Libraries
sin-ack 19e13117ad LibCore: Implement the Serenity Stream API classes
The Serenity Stream API is the name for the new set of classes intended
to replace IODevice and its descendants. It provides more flexibility
for subclasses by allowing each subclass to override all the possible
functionalities according to their wishes.

Stream is the base class which implements majority of the functionality
expected from a readable and writable stream. SeekableStream adds
seeking on top, and provides a couple utility methods which derive from
seek. Socket adds a couple of BSD socket utility functions such as
checking whether there is data available to read and checking the
pending bytes on the socket.

As for the concrete classes, there is File which is a SeekableStream and
is intended to operate on file-like objects; and TCPSocket, UDPSocket
and LocalSocket, which handle TCP, UDP and UNIX sockets respectively.

The concrete classes do not do buffering by default. For buffering
functionality, a set of augmentative classes named BufferedSeekable and
BufferedSocket have been implemented, intended to wrap a SeekableStream
and a Socket, respectively.
2021-12-16 22:21:35 +03:30
..
LibArchive LibArchive: Limit all Tar header fields to their buffer length 2021-11-24 19:09:00 +02:00
LibAudio LibAudio: Optimize sample moves in FlacLoader 2021-11-28 13:33:51 -08:00
LibC Kernel+LibC: Move errno definitions to Kernel/API/POSIX 2021-12-16 22:21:35 +03:30
LibCards AK: Convert AK::Format formatting helpers to returning ErrorOr<void> 2021-11-17 00:21:13 +01:00
LibChess Everywhere: Fix -Winconsistent-missing-override warnings from Clang 2021-12-11 13:14:15 -08:00
LibCompress Everywhere: Pass AK::ReadonlyBytes by value 2021-11-11 01:27:46 +01:00
LibConfig LibConfig: Add list methods for groups and keys 2021-11-18 09:08:51 +01:00
LibCore LibCore: Implement the Serenity Stream API classes 2021-12-16 22:21:35 +03:30
LibCoredump LibCore+AK: Move MappedFile from AK to LibCore 2021-11-23 11:33:36 +01:00
LibCpp LibCpp: Cast unused smart-pointer return values to void 2021-12-05 15:31:03 +01:00
LibCrypt Everywhere: Use my cool new @serenityos.org email address 2021-09-01 11:37:25 +04:30
LibCrypto Everywhere: Fix -Winconsistent-missing-override warnings from Clang 2021-12-11 13:14:15 -08:00
LibDebug LibDebug: Handle DWARF 4 address ranges 2021-12-15 10:27:12 -08:00
LibDesktop LibDesktop: Make allowlist APIs return ErrorOr<void> 2021-11-24 00:25:23 +01:00
LibDeviceTree Libraries: Add LibDeviceTree for manipulating OpenFirmware Device Trees 2021-10-21 19:20:03 -07:00
LibDiff Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
LibDl Toolchain+Userland: Enable TLS for x86_64 2021-07-04 01:07:28 +02:00
LibDSP LibDSP: Cast unused smart-pointer return value to void 2021-12-05 15:31:03 +01:00
LibELF LibELF: Cast unused smart-pointer return value to void 2021-12-05 15:31:03 +01:00
LibFileSystemAccessClient Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
LibGemini LibGemini: Avoid implicitly copying ByteBuffer 2021-12-08 09:46:13 -08:00
LibGfx LibGfx: Handle malformed Platform ID during TTF parsing 2021-12-16 18:50:02 +01:00
LibGL LibGL: Simplify Texture2D reading; add support for RGB565 2021-12-12 21:51:08 +01:00
LibGUI LibGUI: Add EngineType to EditingEngine classes 2021-12-09 21:31:06 +01:00
LibHTTP LibHTTP: Avoid implicitly copying ByteBuffer 2021-12-08 09:46:13 -08:00
LibImageDecoderClient Everywhere: Pass AK::ReadonlyBytes by value 2021-11-11 01:27:46 +01:00
LibIMAP Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
LibIPC LibIPC: Add IPC::take_over_accepted_client_from_system_server<Client>() 2021-12-06 19:22:16 +01:00
LibJS LibJS: Add ArrayBuffer::create() for ByteBuffer passed by value 2021-12-14 09:01:06 +01:00
LibKeyboard AK: Make JSON parser return ErrorOr<JsonValue> (instead of Optional) 2021-11-17 00:21:10 +01:00
LibLine LibLine: Switch all files to use east-const 2021-12-16 03:26:59 +03:30
LibM Libraries: Fix typos 2021-10-01 01:06:40 +01:00
LibMain LibMain: Rename .arguments to .strings :^) 2021-11-22 22:13:22 +01:00
LibMarkdown Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
LibPCIDB LibCore+AK: Move MappedFile from AK to LibCore 2021-11-23 11:33:36 +01:00
LibPDF AK: Convert AK::Format formatting helpers to returning ErrorOr<void> 2021-11-17 00:21:13 +01:00
LibProtocol RequestServer+LibProtocol: Add an 'EnsureConnection' IPC endpoint 2021-09-28 22:32:31 +02:00
LibPthread LibPthread: Initialize conditions with realtime clock 2021-11-24 19:44:57 +01:00
LibRegex LibRegex: Merge alternations based on blocks and not instructions 2021-12-15 19:36:45 +03:30
LibSanitizer LibSanitizer: Log UBSAN errors in red text to the debug console 2021-12-15 10:30:32 -08:00
LibSQL Everywhere: Fix -Winconsistent-missing-override warnings from Clang 2021-12-11 13:14:15 -08:00
LibSymbolication LibCore+AK: Move MappedFile from AK to LibCore 2021-11-23 11:33:36 +01:00
LibSyntax LibWeb: Implement first draft of CSS syntax highlighting :^) 2021-10-23 19:07:44 +02:00
LibSystem LibCore+LibSystem: Move syscall wrappers from LibSystem to LibCore 2021-11-23 11:33:36 +01:00
LibTest AK: Make JSON parser return ErrorOr<JsonValue> (instead of Optional) 2021-11-17 00:21:10 +01:00
LibTextCodec Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
LibThreading LibThreading: Remove redundant method 2021-11-02 11:07:26 +01:00
LibTLS LibTLS: Avoid implicitly copying ByteBuffer 2021-12-08 09:46:13 -08:00
LibUnicode LibUnicode: Compile generated sources optimized for size 2021-12-15 13:26:03 +00:00
LibUSBDB LibCore+AK: Move MappedFile from AK to LibCore 2021-11-23 11:33:36 +01:00
LibVideo LibCore+AK: Move MappedFile from AK to LibCore 2021-11-23 11:33:36 +01:00
LibVT Terminal: Fix broken selection after dbl/trp click 2021-12-16 18:49:46 +01:00
LibWasm AK: Convert AK::Format formatting helpers to returning ErrorOr<void> 2021-11-17 00:21:13 +01:00
LibWeb LibWeb: Use ByteBuffer::copy() instead of a manual copy in SubtleCrypto 2021-12-15 12:54:34 +00:00
LibWebSocket Libraries: Fix visibility of Object-derivative constructors 2021-11-02 22:56:53 +01:00
LibX86 LibX86: Take load base address into consideration during disassembly 2021-10-25 12:14:26 +02:00
CMakeLists.txt LibMain: Add a new library for more ergonomic userspace entry functions 2021-11-22 19:28:31 +01:00