Can I read multiple frame files.
Yes! The data accessor (Dacc) class used by the DMT environments allows you to specify a single wild-card character ('*') in the file name (but not in any directory name). Note that if you specify the wild-card in the command line you must prefix the '*' with a '\' or enclose the file name in quotes to prevent your shell from expanding the file specification before it is passed to the monitor. For example, the following would work:
MyMonitor -infile "/home/user/frames/*.gwf"
Why can't I read my frame file? My DMT monitor gives the following error
message:
Error constructing TOCReader. End of file reached
Unable to open reader on file: XXXXXXX
This message results when a frame file doesn't have a table of contents (TOC). To fix this you can either write a TOC on the frame file(s) that you can't read, or modify your program to tell the Dacc object that it shouldn't try to use the TOC. To tell the Dacc to ignore TOCs you can
getDacc().setTOCMode(false); // in DatEnv
In.setTOCMode(false); // in root
This should be done as soon as possible in your program but certainly before trying to read frame data. Of course if you ignore the TOCs, the Dacc object must read in the entire frame which can take considerable time. You are much better off from a execution time standpoint if you can contrive to use frames that have a TOC.
To add tables of contents to a frame file you can use either the LDAS frtoc utility, i.e.
frtoc infile outfile
(frtoc is built with FrameCPP) or the DMT FrWrite utility
FrWrite -ofile 'Filetype-%s-1.gwf' -infile <input-frames> +toc -repeat 0
FrWrite will write multiple frames and name them according to the "-ofile" argument. The +toc argument tells it to write a table of contents with each frame file. You can also give it a list of channels to copy and/or a number of frames to combine in a single file.
How can I get a copy of the C development environment distribution?
The C environment is part of the DMT C++ library, and is available from
the DMT download page.
Why do I need C++ to run the C environment?
The C online-environment is based on the C++ environment and uses
many common functions and data structures (represented as classes in the
C++ version). It is expected that the functions developed in the C environment
will be wrapped and run under C++ in the production version. Note that
reasonably modern versions of the C++ compiler (e.g.
gcc-2.95.3) and the
standard template library are needed to compile the C++ components.