|
Products -> Library
This section of the company's product area provides access to the Synesis Software Public Domain Source Code Library, and the latest versions of the Synesis Software base libraries.
Public-domain Source Code Library
The Synesis Software Public-domain Source Code Library is the software foundation upon which higher-level libraries are built. Our binary components and products, along with those of a number of client systems make use of this extensive base library.
The source code in the library performs the following core functionalities:
|
Platform discrimination:
Operating system, architecture and compiler discrimination, language (C & C++) feature support and character encoding (ANSI or UNICODE) are provided by the base headers files (MLBase.h, MLCpp.h and associated files).
Currently supported are: (operating systems) Windows, UNIX and VMS; (architectures) Intel x86, Alpha, Sparc, HP and Power PC; (compilers) Microsoft VC, Dec C, Dec C++, Gnu and Borland.
|
|
Platform-independent constants and limits.
Amongst a host of other consistently defined constants are minimum and maximum values for various integral types, maximum path lengths, path separators, and type sizes.
|
|
Internationalisation-ready, character-encoding scheme- and platform-independent C library string and file manipulation functions.
Provides independence from compiler and C runtime implementations, and copes with ANSI and/or Unicode compilations. A number of functions over and above those found in the ISO/ANSI C-runtime libraries, e.g. StrNAlloc (a function to calculate the size - in bytes - of a string up to a certain length), SafeStrCmp (a string comparison function that can handle NULL pointers), and many more.
|
|
Platform-independent synchronisation and thread-safe integral operation functions and classes.
Functions for atomic increments/decrements of integers; critical section classes for managing access to resources; scoping classes for providing automatic locking and unlocking of synchronised objects within execution scopes; ...
|
|
STL-compatible utility classes and algorithms.
char_traits, mem_traits, and a variety of algorithms for enhancing the standard library.
|
|
Platform-independent and platform-specific, C-compatible, interface-based memory allocator classes and adaptors.
The Synesis Software allocators are based around the SynesisStd::IAllocator interface, and a number of implementating classes are defined which wrap common memory allocation interfacesl, including the C-runtime (malloc, realloc, free), the Windows Global (GlobalAlloc, GlobalReAlloc, GlobalFree) and the COM task allocator (IMalloc / CoTaskMemAlloc, CoTaskMemRealloc, CoTaskMemFree).
Adapter classes are provided to map between SynesisStd::IAllocator and STL's allocator.
|
|
Platform-independent interfaces for reference-counting, synchronisation, exceptions and strings.
|
Downloads
Available here are the downloaded archives of the source-code library releases. In the table below are listed the release label (a name used to uniquely identify the release), the date of release, the release notes (a html file available on this site, but which is also included in the archive) and the release archive (a zip file containing all the library source files, and the release notes).
Previous releases will remain available for existing client support and reference.
Base Library Binaries
[This section of the site is not yet complete, but will be so shortly. Please call back soon.]
|