Download Latest Version PipeLib-CPP.zip (1.6 MB) Google Add to Preferred Sources
Home
Name Modified Size InfoDownloads / Week
PipeLib-CPP.zip 2011-01-15 1.6 MB
HOWITWORKS.txt 2011-01-15 2.4 kB
README.txt 2011-01-15 3.6 kB
Totals: 3 Items   1.6 MB 0
This is the initial release of a non .NET version of PC-Pipes.
It is written in CPP and mirrors the .NET version in program logic
and structure. Except for the Dispatcher and the interface between
the OS shell evnironment and the PipeLib library, the same source
code is used for both Windows and Linux. With typedefs and defines
used to mask OS differences.

With this initial release the Windows version will compile and run.
Only a limited number of stages have been converted from the .Net
version. Just enough to do some basic testing of the CPP version.
The include the following stages: Literal, Specs, Var, Console, Buffer
Structure, Shell and Pick.

With this release the LINUX version will now compile, but the link fails.
There are two missing modules, the RxShell stage and the PipeWait module.
I have a good feel for how to fix the RxShell stage but the PipeWait is
matter. The purpose of PipeWait is to perform a wait on multiple data
streams. It waits for the first stream to have data available or for
all streams to have data available. Under Linux waiting for multiple
events is not directly provided for. There two ways to solve this,
code a PipeWait for Linux or change the logic of the few stages that use
PipeWait.

When the zip file in unpacked you will have the following
directory structure:

          Classes
          ClassLib
          CocoR
          PipeLib
          Pipes
          RPN
          RpnParser
          RxPipe

 DIR         Contents
Classes    This contains the source code for the support classes
           used by the PipeLib library. This code is used to create
		   the ClassLib library.

ClassLib   This holds both a Visual Studio and a MonoDevelop project
           used to create the ClassLib library on Windows and Linux.
		   The Visual Studio project is in ClassLib-VS.
		   The MonoDelevlop project is in ClassLib-MD.
		   
CocoR      This contains the code needed to generate the CocoR parser.
           This parser is used to parse the parameter strings passed to
           the stages of a pipeline.
 
           To generate the parser do the following:
           1) cd to the CocoR directory
		   2) Run the rexx script BuiltATG.rex
		   
PipeLib    This holds both a Visual Studio and a MonoDevelop project
           used to create the PipeLib library.
		   
Pipes      The contains the source code for the PipeLib library.
           It contains the following sub directories:
		     Builtin   - Holds the built in stages
             Messages  - Holds the XML code that defines the message table
             PipeAPI   - Holds the interface between PipeLib and user code.
             Rexx      - Holds the Rexx functions used by the Specs stage.
             RunTime   - Holds the code used to execute the pipeline.
             Session   - Holds the interface between PipeLib and the executing
                         environment, ie REXX.			 
             Structure - Holds the code that for Structures.

RPN        The holds the source code for the expression parser.

RpnParser  This holds both a Visual Studio and a MonoDevelop project
           used to create the RpnLib library.

RxPipe     The holds the source code for the interface between Object Rexx
           and the PipeLib.

		   
The Garbage Collector.

The PipeLib library uses its own garabage collector. I am using
an external package to provide that function.
This package can be found here:

       http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/
	   
I am using the the gc-7.2alpha4.tar.gz package.

 
Source: README.txt, updated 2011-01-15