Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members Related Pages
Stone Three Foundation Classes Documentation
Version 1.1.1
Overview
Stone Three Foundation Classes (S3FC) is a software library that facilitates the rapid development of high-performance distributed computing applications. It is implemented as a number of C++ classes and functions that includes the following:
- an efficient multi-threading framework built on top of POSIX threads (s3_thread_base),
- numerous efficient and light-weight queues,
- local (intraprocess) and network tranports that provide object replication,
- secure network communications (s3_txport_tcp, s3_socket_tcp, s3_socket_tcp_ssl) via OpenSSL,
- synchronisation via mutexes (s3_mutex), semaphores (s3_semaphore), or condition variables (s3_condition),
- periodic notification (s3_periodic_notifier),
- an extensible and modular marshalling (serialisation) system (s3_streamable),
- a message passing system (s3_post_office, s3_post_office_switch, s3_message_box, s3_message),
- an event dispatching and handling framework (s3_event_dispatcher, s3_event_handler),
- local and remote event logging (s3_filelogger, s3_msgb_logger, s3_logger, s3_syslogger),
- an XML interface with a tree based DOM (s3_xml_config).
It provides the application programmer with a number of light-weight abstractions. During design, emphasis was placed on a simple, efficient and easy-to-use architecture. The library is used in several high performance commercial applications and has proved to be very reliable.
The XML interface (s3_xml_config.h, s3_xml_config.cc) is not currently being built with the rest of the library. The XML interface makes use of deprecated functions of the Xerces-C++ XML parser. This code should probably be updated to the latest release of Xerces-C++, or modified to work with libxml2, which is more widely available.
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.