Loading...
Searching...
No Matches
Files | Classes
Experimental functions and classes

Static library for experimental and work-in progress code. More...

Files

file  MemoryRingIO.h
 Provides the BMemoryRingIO class.
 

Classes

class  BMemoryRingIO
 An implementation of a ring buffer with a BDataIO interface. More...
 

Detailed Description

Static library for experimental and work-in progress code.

The main Haiku libraries (libroot, libbe and others) are provided as shared libraries. This means in most cases, the ABI and API of functions and classes defined therein cannot be changed without breaking existing applications that use them.

This makes it difficult to expose work-in-progress code in these libraries, as any change of interface would require all applications using the old interface to be recompiled.

libshared provides a solution for that. It is provided as a static library, which means applications using it will embed a fixed version of the libsared code that they were compiled against. This way, updates to the library do not affect already compiled binaries, and developers can update to a new version of libshared (and make any needed changes) when they recompile their code.

All functions and classes in libshared are additionally put in the BPrivate namespace. When an API is deemed mature, its final version can be moved to a shared library, and at the same time, moved out of the namespace. This makes sure applications that are still using a version from libshared do not get interferenced by the newly introduced public version.