Available C++ Libraries FAQ

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 matter:
  • 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 system.
  • 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 differences.
  • 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 server.
  • 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.

Operating Systems

  • PC Windows


  • Visual C++

Added : 2012-04-25 Amended: 2012-04-25 Licensing : Commercial

    Vettrasoft Z Directory - General-purpose library of c++ objects
  • Home page
  • Submitted by:Gorth Durak
Add a comment
Our ads
Buy gold
Beat the credit crunch - buy gold online - quickly, safely and at low prices
Trumphurst Home Page
C++ Usenet Newsgroup
A Web form for submissions to this list
Contact the author for permission to distribute

Copyright (c) 2017 Nikki Locke, Trumphurst Ltd.
Permission is granted to distribute over the Internet without charge. The author's permission is required (and usually given) to distribute in any other way, including on CD.