--------------------------------------------------------------------- CLASS: CmrReader --trp PUBLIC METHODS: setInFile Define the input CMR file. setCallBackFunctions() Define the application callback functions. USAGE NOTES: cmrparse Initiate the CMR file read. The name "cmrparse" comes from the use of flex/bison. Please note that the cmrparse member function is bison(yacc) generated, and will not be found in the cmrReader.C file. See the Makefile "sed" line for file names. I've compiled and run this example. Assuming the flex, bison, rogue wave, cmr.a, and archive library files are available for linking, and you have a syntax valid file specified in the constructor (e.g. "tree.txt"), you should have no trouble running this. Here is how I built my file, called "foo.C": g++ -D_INCLUDE__STDC__ -I../devs -I.. -I../devsTest -D_INCLUDE__STDC__ -DNSR_VERIFY -DMSTEST -D_HP_ALIASES_ -c foo.C g++ -o foo foo.o cmr.a msLib.o acptlib.o -ly -lfl -lrwtool #include "cmr.h" int trace =0; // Required by the archive library. void *myStartDir (void *parent, char *dirName, Attributes& attr){ printf ("dir %s\n", dirName); // Simple example, doesn't care about directory parents. return NULL; } void myEndDir (void *parent) {printf ("end of some dir\n");} void myFile (char *fileName, Attributes& attr, ExtentList& elist){ printf ("file %s\n", fileName); } void mySymlink (char *symLinkName, Attributes& attr, PathElementList& plist){ printf ("file %s\n", symLinkName); } main () { CmrReader myReader ("tree.txt", myStartDir, myEndDir, myFile, mySymlink); myReader.cmrparse(); } ---------------------------------------------------------------------- --------------------------------------------------------------------- METHOD: CmrReader::setCallBackFunctions --trp Means (other than one of the constructors) to define app callback functions. ARGS: StartDirFunc userStartDir IN app code func to be called with dir start info EndDirFunc userEndDir IN app code func to be called with dir end info FileFunc userFile IN app code func to be called with file info SymlinkFun userSymlink IN app code func to be called with symlink info RETURNS: void PRE-CONDITIONS: POST-CONDITIONS: The app function pointers are saved. ERRORS: NOTES: ---------------------------------------------------------------------- void CmrReader::setCallBackFunctions( StartDirFunc userStartDir, EndDirFunc userEndDir, FileFunc userFile, SymlinkFunc userSymlink)