Submit a comment to an "Available C++ Libraries FAQ" entry
Commercial libraries (O-Z)
Vettrasoft Z Directory - General-purpose library of c++ objects
The Z Directory (as of 2010) currently deals with the following subject
object - database storage. You can store and retrieve
objects, so their state can extend beyond the lifetime of
a program's run. This is not the same as an o-o database.
The Z Directory provides a simple mechanism for writing
objects to a database, but it does not supply the database.
data representation. "Data bags" are a way to store data
in text stings. The data may be put into lists or a matrix and can
recurse. The format is defined by a meta-data schema. This may sound
suspiciously like XML. Once again, the data bag concept pre-dated
XML, having existed in the early- to mid-1990's. Whereas XML focuses
on HTML and web applications, data bags are to be used by programs
written in C++.
message transport. The problem of moving a block of bytes
from one place to another is a major topic in software engineering
usually assigned to the category of networks. the Z Directory has
code to do it with the following defining characteristics: (1)
an address class set is provided to address the topic of defining
a location. There are many types of addresses: internet, web,
computer memory, e-mail, postal, etc. (2) the interface for moving
a block of data over a circuit (a path between an originating and
destination address) has no reference to the implementation.
Typically the mechanism is sockets, but with the Z Directory, this
can also be via shared memory (if within the same host computer),
TLI (if within a system V unix environment), or other transport
containers. The Z Directory provides template-based
containers to store your data: linked lists, arrays, stacks,
and [coming soon] trees. You will probably immediately think STL.
the Z Directory's container interface is a bit different, and you
might find, simpler. The same member function names are used
irregardless of the implementation. Peering into your data in
a debugger is much easier than with STL. There are other
string and text processing.
One common complaint opponents of C++ use is the lack of tools for
managing strings. The Z Directory attacks and destroys this argument.
String operations include regular expression searches; extracting
words, sentences, and quoted text sub-strings; trimming lines;
string to type conversion; monetary formatting; concatenation;
white-space processing; and much more.
encryption. There are a number of encryption and decryption
algorithms available for encrypting your data, including
Chambers-Rantgen, DES, and Blowfish.
postal addresses. Strings containing addresses can be
easily parsed. Currently only American addresses are fully
handled. We expect to grow this to encompass all addressing
formats used world-wide.
mathematics. Several math functions are provided, including
factoring, modulus, GLB and LUB, summation of a series, random
number generation, linear regresion, mean averages, standard
deviations, angle math and conversion (degree - radian), etc.
time and date. If you ever need to get the current time/date,
and then add or subtract a span of time to/from it, the Z Directory
provides unparalled ease for that. You can add say 1 week 3 days and
15 hours to any given date and get the result with only a couple
lines of code.
threads and semaphores. In a Microsoft environment,
you would need to use functions such as CreateMutex(),
WaitForSingleObject(), and ReleaseMutex().
In some unix environments, the corresponding calls would be
pthread_mutex_init(), pthread_mutex_lock(), and
pthread_mutex_unlock(). Or, you can use the Z Directory
and use a single function call, instead of learning the
specifics for each operating system to intend to port to.
clients and servers. There are a set of classes dealing
providing client-server architecture. A dispatch mechanism forwards
a message to your message processing code when it arrives to a
error processing, logging, tracing and debugging.
An elaborate but general-purpose group of classes help you manage
what to do in case of an error, above and beyond the simple mechanics
embedded in c++. You can create event logs and control when a message
is to be generated. You can control when a message is created, and to
where it is to go.
Files and directories. In Microsoft, directories are
called folders. Once again, by using the Z Directory you need not
concern yourself with the specifics of any particular operating system.
How to read the contents or traverse them is handled by a simple set
of classes and routines in the Z Directory. Creating, removing,
renaming, opening and closing a file or directory are handled in a
portable fashion. You can do things like add text to a file, get a
line of text or a specific number of characters.
more, including: e-mail management;
exam questions and answers; money operations; packetization;
HTML operations; and classes for worldy items such as people,
businesses, and telephones.
One fact: Z Directory is devoid of graphics utilities. Writing tools for
GUI programming is a specialized, big, never-ending work sink. We have
decided to focus on more 'framework' issues. Also, there are plenty of
libraries out there dealing with GUIs and graphics.
Licensing : Commercial
Do not expect an immediate response - the contents of this form
will be added to a queue, which I process manually
about once a week. If you don't fill in
your email address correctly, you will not (obviously) get any reply at
all. Other invalid information may result in a mailed request for
Enter your comment in the areas provided below. Be sure to
include your name and email address.
Please don't bother trying to post spam or links to dodgy web sites - everything
you post here is reviewed by a human being before being released for public