BDS Public
Beamlib 3.3.4
This is the Beam C++ class library.
Loading...
Searching...
No Matches
Beamlib
Author
Dr Terry Barnaby
Version
3.0.0
Date
2022-11-22

Introduction

The Beamlib C++ class library provides a system portable base library for developing real-time and other applications with multi-processor and multi-host support. It was initially started in the late 1980?s to add Smalltalk like constructions/components to the emerging C++ language for use within Beam for real-time data processing and embedded system uses. Over the years it has been extended as needed to support wildly differing projects.

The Beamlib system has the following features:

  • Simple Object Orientated development.
  • Simple class library for Strings, Lists, Arrays, Dictionaries, Network access etc.
  • Support for multi-threaded applications with Mutex Objects etc.
  • Usable from C++ and Python with wrapper.
  • IDL based object creation tool allows easy creation of C++ and Python objects from IDL language with RPC access across networks.
  • IDL provides the ability to create SQL database schema automatically.
  • Database access that allows Objects to be stored.
  • BOAP (Beam Object Access Protocol) provides a simple, low overhead protocol, that allows access to remote objects using an RPC mechanism.
  • Database access via a layer that allows simultaineous access to different database systems including MYSQL and BEAM BDEV native object database.
  • Simple HTTP/HTML WEB service support for application embedding.

The Beamlib class library can be installed from the following RPM packages:

  • beamlib-lib: Runtime shared libraries.
  • beamlib-utils: Runtime tools.
  • beamlib-devel: Development include files and shared and static libraries.
  • beamlib-doc: Documentation.

Components

The Beamlib system is split into the following libraries:

  • Base: This is the base class library containing the base 'C++' classes.
  • Http: This provides HTTP/HTML classes
  • Widgets: This provides Qt widgets to be used on top of the standard Qt widgets.
  • Gui1: This provides a simple GUI library for embedded systems.

The Beamlib system uses a few utilitry programs:

  • bidl: This provides an IDL description file to C++ class generator.HTTP/HTML classes
  • boapns: This provides a BOAP name server providing a name top object mapping system
  • boapnsc: This provides a BOAP name server client for testing

For an overview and usage details please see the BeamlibApiManual.

and License

Beam Ltd holds the copyright of the Beamlib library. We provide it under the GNU GPLv3 General Public License version 3.0 open source licence for use by others, see LICENSE_GPLv3.txt. For projects Beam Ltd is involved in with our clients and for commercial use the software is available under other licenses including the LGPL license. Contact Beam Ltd for details.

API Examples

Examples

Some simple client examples are listed below: