| Name | Modified | Size | Downloads / 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.