Introduction to SourcePro® C++ : Chapter 3 SourcePro Core
Chapter 3 SourcePro Core
Definition
SourcePro Core contains an extensive set of fundamental C++ components capable of supporting a wide range of application development. SourcePro Core consists of five modules:
The Essential Tools Module
The Threads Module
The Advanced Tools Module
The XML Streams Module
The Internationalization Module
The Essential Tools Module
The Essential Tools Module is an internationalized set of C++ classes that provide the basic building blocks for most C++ applications. This module is the foundation for all Rogue Wave products. Because all SourcePro C++ products depend on the Essential Tools Module, SourcePro Core is included with each SourcePro C++ product.
The Essential Tools Module provides broad functionality. To aid navigation, the Essential Tools Module can be divided into the following class groups:
Date and Time Classes
String Processing Classes
Virtual Stream Classes
RWCollectable Classes
Traditional Collection Classes
STL-based Collection Classes
STL Extension-based Collection Classes
Internationalization Classes
File System Classes
Miscellaneous Classes
These class groups are accessible through the Modules tab of the SourcePro C++ API Reference Guide.
For more information on building the Essential Tools Module, see Installing and Building Your SourcePro C++ Products. For an example using the Essential Tools Module and the C++ Standard Library, see “An Example Using the Essential Tools Module and the C++ Standard Library”. For examples using the Essential Tools Module with other SourcePro C++ products, see “Example Using Modules from SourcePro Core, SourcePro DB, and SourcePro Net” and “An Example Using the Linear Algebra and Essential Tools Modules”.
The Threads Module
The Threads Module in SourcePro Core contains Rogue Wave C++ classes for writing multithreaded applications. The principle role of this module is to provide the mechanisms necessary for the creation and synchronization of threads across a variety of operating systems and platforms.
The Threads Module can be used to create new multithreaded applications, or to add multithreading to existing applications. For code examples using the Threads Module with other SourcePro C++ products, please see “An Example Using the Internationalization Module with the Threads Module and the C++ Standard Library”, “An Example Using the Threads Module and the DB Interface Module” and “Example Using Modules from SourcePro Core, SourcePro DB, and SourcePro Net”.
The classes of the Threads Module are divided into the following packages:
Threading Package
Synchronization Package
Interthread Communication Package
Smart Pointer Package
Functor Package
Execution Tracing Package
Thread-compatible Exception Package
These class groups are accessible through the Modules tab of the SourcePro C++ API Reference Guide.
The Advanced Tools Module
The Advanced Tools Module in SourcePro Core provides mechanisms for complex stream transformations and object serializations. The stream abstractions provide more ways to move data into and out of your application, and can optionally interoperate with the virtual stream mechanism in the Essential Tools Module. The serialization mechanism enables you to flatten and transport objects across communication boundaries and to store the contents of these objects to disk. The Types package provides a single class for manipulating string-based symbols.
In line with this functionality, the classes of the Advanced Tools Module are divided into three packages:
Streams Package
Serialization Package
Types Package
These class groups are accessible through the Modules tab of the SourcePro C++ API Reference Guide.
The XML Streams Module
The XML Streams Module in SourcePro Core allows you to serialize an object and write it as a stream of XML data. The serialized object can later be streamed in and restored, either by the process that streamed the object or by another process equipped to handle XML streams. The XML Streams Module works directly with the data streams and object serialization classes of the Advanced Tools Module.
The XML Streams Module consists of a single package, the XML Streams Package.
This class group is accessible through the Modules tab of the SourcePro C++ API Reference Guide.
The Internationalization Module
The Internationalization Module in SourcePro Core provides classes for:
representing, collating, normalizing, and parsing Unicode strings
conversion between Unicode and hundreds of other character encodings
storing and accessing locale-dependent data, such as message strings
Collectively, these classes provide a framework for internationalization and localization, enabling rapid development of applications targeted for global markets.
The Internationalization Module is built on the International Components for Unicode (ICU), the industry standard for Unicode processing. ICU is an open source library written in C and C++, and developed and maintained by IBM. Unicode is the universal character encoding scheme for written characters and text. It is the industry standard for writing internationalized applications. This is especially true for any environment that requires a wide character encoding (16-bits or greater), such as some Chinese and Japanese character encodings. Using Unicode in your applications, you can represent all major written languages, and most minor ones.
You can build your applications with or without the Internationalization Module. In general, SourcePro Core does not assume that characters are in any particular encoding, and in particular can handle single-byte and multibyte encodings. However, the Internationalization Module offers additional functionality based upon extensive databases of character and locale information.
For a code example using the Internationalization Module with the C++ Standard Library and the Threads Module, see “An Example Using the Internationalization Module with the Threads Module and the C++ Standard Library”.
The classes in the Internationalization Module can be divided into the following functional groups:
Unicode String Processing Classes
Character Encoding Scheme Conversion Classes
Localization Classes
Error Handling Classes
These class groups are accessible through the Modules tab of the SourcePro C++ API Reference Guide.