M4S Home Page

The MetaKit Library

Version 1.1
April, 1996

|| Description || Features || Installation || Roadmap || Portability || Registration || Distribution ||


Description

The MetaKit Library is a software development library for data storage and easy manipulation of structured objects and collections in C++. If you need bulky, powerful database functions look elsewhere, but if you need a small self-contained library to store structured data, read on.

This software is distributed as shareware. Full source code is available. Please read the disclaimer, which is in the file "include\m4kit.h".

For the latest news about MetaKit, point your Internet browser to:

http://www.meta4.com/meta4/metakit.htm


Features

MAKE YOUR STRUCTURED DATA PERSISTENT GET THE ADVANTAGES OF A DATABASE IN C++ TRANSPORT YOUR DATA ANYWHERE RUN-TIME DATA STRUCTURES HIGH PERFORMANCE NO INCONVENIENT COMPROMISES EASY TO READ, EASY TO USE YOU STAY IN CONTROL ONE SIZE FITS ALL SOLID AND SUPPORTED

Installation

To install this library and sample code, unpack the ZIP archive to a new directory (such as "C:\M4KIT"). Make sure to keep the original directory structure, with 'Use Directory Names' in WinZip or 'pkunzip -d' in MS-DOS.

Please read the "WHATSNEW.TXT" file for the last-minute release details.

The main introduction is in the file "M4KIT.HTM", which is in HTML format. A copy of this is in "M4KIT.WRI", for use with Write/WordPad/QuickView. The file "M4KITAPI.HLP" is the reference guide for this library (Winhelp).

A simple disk-catalog program is included to illustrate many features. Emphasis is on data-manipulation, this example uses a rudimentary UI. The source code is in "examples\discat", the 16-bit Windows executable is called "bin\discat16.exe", the 32-bit version is "bin\discat.exe".

Note: You will need Microsoft's MFC250.DLL to run the 16-bit version, or the two files MFC40.DLL & MSVCRT40.DLL to run the 32-bit version. If you do not have them, you may not be able to do much with the current MFC-only version of this software library, unfortunately.

The "dump.exe" utility dumps the contents of datafiles, the "struct.exe" program shows their data structure, full source code for both is included. The "catsend.exe" and "catrecv.exe" sample applications demonstrate the exchange of MetaKit data over TCP/IP. The "ftpcat.exe" 32-bit console application creates catalogs of remote FTP server directories (which are compatible with "discat").

The CatFish disk catalog browser executable is available separately (see the MetaKit home page), the source code and makefile for a DLL version of this program are included in this distribution.


Roadmap

Several header files and libraries have the digit four in their name to avoid potential name conflicts with other files on your system.

DIRECTORIES

The shareware distribution has the following directory structure:
    bin\        Executables of the examples
    examples\   Source code examples
    include\    Header files
    lib\        Libraries needed to build applications
These directories contain everything you need to build applications for 32-bit and 16-bit Windows, as well as for MS-DOS (large-model).

In addition, the source code version includes these directories:
    src\        C++ source files and private headers
    msvc152\    Microsoft Visual C++ 1.52 build areas
    msvc40\     Microsoft Visual C++ 4.0 build areas

HEADER FILES

The MetaKit library software is highly modular (loosely coupled). As a consequence, the headers you need to look at are quite small. The following headers are provided in the shareware version:
    include\m4kit.h     The single header you'll need to include.
This is a wrapper for the following files:
    include\k4conf.h    Compatibility and common definitions
    include\k4view.h    Definition of views, cursors, and rows
The remaining include files contain some less essential details:
    include\k4table.h   Persistent storage details (low-level)
    include\k4field.h   Structured field details (low-level)
    include\k4viewx.h   Additional view classes, used internally
    include\k4*.inl     Inline function definitions
These files define all capabilities of the library, no more, no less. The core functionality is provided by the View and Storage classes.

SOURCE CODE EXAMPLES

These programs illustrate different aspects of the MetaKit library: The CATSEND/CATRECV programs work together to demonstrate streaming, generic file access (CATSEND knows nothing about the DISCAT format), and use without data files (CATRECV only captures and displays data). You need WINSOCK and TCP/IP, but you can run them on a single machine. The FTPCAT utility creates files compatible with CATSEND and CATRECV. Finally, CATFISH is a full-scale utility application, with source.


Portability

The first release has been tested with Microsoft Visual C++ 4.0 (Win 32), 1.52 (Win 16 and MSDOS), Borland C++ 5.0 (Win 32), Symantec C++ 7.2 (Win 32), and Watcom C++ 10.5 (Win 32) and uses files / strings / containers of MFC (Microsoft Foundation Classes framework). Only MFC-based development is currently supported. The library can be linked statically, as user DLL, or as an extension DLL.

Some newer C++ features such as templates and RTTI are not required for this release (exceptions are used, using MFC macros for 16-bit MSVC 1.52). The generic data types can be implemented surprisingly well without them, although templates (and STL) will be used once they are widely supported.

All C++ identifiers with global scope include the digit four. Namespace support will be added when this addition to C++ becomes more widespread.

Support for other compilers, frameworks, hardware platforms, and operating systems will be included in upcoming 1996 releases. But... in which order? Borland OWL, Mac/CodeWarrior, STL, Unix, anything else? Help! Let me know!


Registration

The MetaKit Library is not free, you must register for US$ 25 if you use this code in your own software after an evaluation period of 30 days. When used commercially, you must register and purchase the source code license for another US$ 65 to obtain the right to incorporate this library code.

Payment of the US$ 25 registration fee entitles you to: By purchasing the source code license for an additional US$ 65, you get: How to register your copy or purchase the source code version:
CREDIT CARD, CASH, CHECK, OR MONEY ORDERS:
You can use the enclosed REGISTER.EXE program to send your order to the KAGI shareware registration service, using email, fax, or regular mail.

COMPUSERVE:
GO SWREG, select reg# 10351 (10352 for source code), and enter all details. Confirmation and any further information will then be sent to you by email within two business days.

PHONE ORDERS:
You can call PsL at 800-2424-PsL or 713-524-6394 and give them a MC, Visa, Amex, or Discover card number. Specify item #14522 and whether you want source code. To insure that you will receive the latest registered version, PsL will notify us the day of your order and additional information will be sent to you within two business days.
NOTE: THE ABOVE PHONE NUMBERS ARE FOR CREDIT CARD ORDERS ONLY.
THE AUTHOR OF THIS LIBRARY CANNOT BE REACHED AT THESE NUMBERS.

Any questions about the status of the shipment of the order, refunds, registration options, product details, tech support, volume discounts, site licenses, etc, must be directed to the email/fax addresses below.


Distribution

The MetaKit Library software package is copyright Meta Four Software, NL. You may not distribute this information, nor any portions thereof, as part of a general database- or object-persistence software library or utility.

You may distribute this shareware release for any other purpose, provided that all files are included without change, including this description.


Contact Information

    Jean-Claude Wippler          mailto:jcw@meta4.nl

    Meta Four Software             http://www.meta4.com/meta4
    Meekrap oord 6
    3991 VE, Houten                 fax:+31 30 635 2337
    The Netherlands