X-Git-Url: http://gitweb.hachti.de/?a=blobdiff_plain;f=pc-tools%2Fldc2%2Fdoc%2Fimpl_spec.tex;fp=pc-tools%2Fldc2%2Fdoc%2Fimpl_spec.tex;h=fd98db212782884a6ee00e5fad943ca3b9e76ef8;hb=ea78fc91fca804d41e7caf94025a4616e4f2daad;hp=466e78b8a55be80cccdb7e1a624255babbf08d1c;hpb=d65ad4d76066646927175a9896fe348bc0691e68;p=h316.git diff --git a/pc-tools/ldc2/doc/impl_spec.tex b/pc-tools/ldc2/doc/impl_spec.tex index 466e78b..fd98db2 100644 --- a/pc-tools/ldc2/doc/impl_spec.tex +++ b/pc-tools/ldc2/doc/impl_spec.tex @@ -11,7 +11,7 @@ most of the actual processing of the data after reading in is done by the routines contained in \verb|main.cpp|, \verb|config.cpp| and \verb|tool.cpp|. -Program configuration is capsuled into the class \verb|configuration_manager|, +Program configuration is encapsulated into the class \verb|configuration_manager|, used by the routines in \verb|config.cpp|. \subsubsection{Program flow} @@ -19,29 +19,27 @@ The \verb|main()| routine sets up the working environment using the \verb|do_con subroutine contained in \verb|config.cpp|. This contains parsing the command line, reading a configuration file, and setting the global \verb|cfg_*| flags. The input and output file descriptors \verb|in_fd| and \verb|out_fd| are assigned to 0 and 1 respective -files as stated in the configuration (command line option or configuration file). -The \verb|configuration_manager| is able to dynamically generate help output for all -options. +open files as determined by the configuration (command line option or configuration file).\\ The next call is \verb|read_tape()|, the data input routine. In \verb|read_tape()|, the static factory method \verb|tape_block::gen_from_fd()| is used to create and check blocks, taking data directly from the global file descriptor \verb|in_fd|.\\ At the end of \verb|read_tape()|, the vector \verb|tape| has been filled with -pointers to instances of \verb|tape_block|. +pointers to instances of \verb|tape_block|.\\ In the next step, the routine \verb|process_tape()| is called, in which integrity checks on object level and splitting to files (if desired) are accomplished. Every valid and complete object consist of either one single \verb|eot_block| or a series of \verb|data_block|s, while the last block -of each object must be one of the types which mark the end of an object. +of each object must be one of the types which mark the end of an object.\\ After all that, \verb|process_symbols()| is called. This routine generates three vectors containing symbol names: \verb|exported|, \verb|called|, and \verb|unsatisfied|. The latter is the difference of \verb|called| and \verb|exported|.\\ If desired, those vectors are written out to \verb|out_fd|, one symbol per line. -\subsubsection{Block factory} -The software makes use of C++ virtual methods allowing for convinient processing of +\subsubsection{Block factory} +The software makes use of C++ virtual methods allowing for convenient processing of multiple kinds of blocks without knowing much about the block type currently worked on.\\ The block factory consists of the static factory method \verb|tape_block::gen_from_fd()|