ElCel Technology Home|Company|Software|Services|MyAccount|Shopping Cart
XML Tools
User Comments

OpenTop C++
Core Services
Secure Sockets
Web Services
Release Notes

OpenTop Features: Core Services

Core services are provided by the OpenTop ot namespace, which contains C++ framework classes that provide a stable and predictable runtime environment upon which all other OpenTop functions are built.

Object Management

OpenTop is an extensive object-oriented library. Object-oriented designs are generally more effective when objects can be shared and manipulated freely, without the programmer having to continually worry about object ownership, lifetime or resource management issues.

OpenTop shares and manages objects using reference-counting, which is a simple yet effective technique for sharing the ownership (and responsibility) for an object between multiple clients. When the last client releases its reference, the object is automatically destroyed.

OpenTop also manages the lifetime of long-lived objects such as class factories and other singletons, ensuring they are correctly deleted during program termination.

Threads and Synchronization

The OpenTop Thread implementation uses the native facilities of the underlying operating system, but exposes a simple interface which is common to all platforms. By creating a common wrapper around both WIN32 and POSIX threads, and exposing an interface modelled on the popular Java abstractions, OpenTop greatly simplifies the task of writing high-performance, multi-threaded programs in C++.

Threads which share data, state or some other common resource with other concurrent threads must be synchronized. OpenTop provides mutexes, condition variables and a Java-style synchronization technique where classes may derive from either the SynchronizedObject or Monitor base classes.

Platform Abstraction

OpenTop is available on a wide variety of platforms, with each operating system providing differing levels of support for threads, file systems and other core features.

To simplify cross-platform development, OpenTop abstracts away differences in the underlying operating system by exposing a uniform interface (API) and common behaviour on all platforms.


OpenTop contains support for multilingual messages. Error messages produced by the library, in addition to those produced by application code, can be routed through a messaging framework which may be configured at runtime to produce messages in the language of your choice.

Tracing and Instrumentation

OpenTop contains an efficient tracing mechanism which is used to record significant events. Tracing, which is controlled by the Tracer class, is disabled by default, but it can be dynamically enabled and finely controlled at runtime to produce exactly the level of diagnostic output desired.

The Tracer uses virtually no overhead when disabled, so we have incorporated it in both debug and release builds of the library. Furthermore, tracing is not restricted to reporting OpenTop events; applications are encouraged to use it also, thereby producing a detailed log of all application activity.