
This is the first non-beta release of Db::Ctree, a module to access Faircom's
Ctree database from Perl 5.

I created this module because I wanted to use Perl to generate reports from
data stored in a Ctree database.  The bulk of the code at our site is written
in C using the Faircom C library, so I didn't need to create files
and resource records.

I still don't create them, but I do transaction, non-transaction and even batch
changes.

I have even used Perl to access the IOPERF function to monitor the server.

This library is not mean to replace Faircom's development license. That license is still required legally (I think... I'm not a lawyer, nor play one on TV),
morally and without a doubt documentation wise.  If you can use this 
module without that documentation, that's pretty impressive.

In order to do the port, I took the function list and parameters from the
quick reference list and converted the data types.  I needed to remove a few
functions that dealt with some file structures, but most of the routines 
are available.  I have not tested each one, but have yet to find one that
didn't work from perl.

All low level and most ISAM routines seem to work fine.  Functions that need
a C structure are not currently supported.  I'm still trying to figure out
how I want to implement them.  Even though they're not supported, I have 
gotten some of them to work, you just use PACK to manually build a SCALER with 
the structure. 

If you use the ISAM routines, you need to either have a C program create 
resource records so you can use OpenFileWithResource or open it with a 
parameter file.  My Method access routines use the OpenFileWithResource
function.

If your files have DODA information stored in them (again, by a C program),
a Method is available to split a record into a hash!!

As examples, I've included the following utilities that I use all 
the time (They'll probably need some modifications for other sites.)

	ctdump - dumps a table (splits those with DODAs)
	ctload - loads a table with data in the ctdump output format
	ctmod  - allows SUBST changes to a table


Install Instructions:
     This module should build similar to most Perl extensions...
        NOTE: If perl was not built on this system, you may have problems.
              The perl installer stores info about the installation.
              If you copy the binary to a new system, the previous assumptions
              may not be true!!!  Build a new perl on each system...
              it's not hard.

              Step 1.  Edit Makefile.PL and put in your Ctree library path
              Step 1.  perl Makefile.PL   # builds makefile
              Step 2.  make               # builds module 
              Step 3.  make test          # tests module
              Step 4.  make install       # installs module for use
              Step 5.  make clean	  # clean up directory
 
        Windows Note
	     I *HAVE* gotten this version to build with Perl 5.6! ( Both the
             source distribution and ActivePerl binaries!)  The only change
             I needed to make was to remove the following from the CCLFLAGS
             line in Makefile ( after step 1 )
                    -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS

             For those without compilers, I've created a ZIP with all the 
             files in the tree. Unzip WIN-SITE.ZIP and move the tree to your
             Perl Site directory.



If you give this module a shot, please drop me an email so I can let you know
of new versions or just get a warm fuzzy!


Robert Eden
CommTech Corporation
rmeden@yahoo.com          (comments and suggestions always welcome!)

# Copyright 1998,2000 Robert Eden
# All rights reserved.
#
# Automatic licensing for this software is available.  This software
# can be copied and used under the terms of the GNU Public License,
# version 1 or (at your option) any later version, or under the
# terms of the Artistic license.  Both of these can be found with
# the Perl distribution, which this software is intended to augment.
#
# THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.

