proj home

Files   Classes   Functions   Hierarchy  

projfiles< CFC > Class Template Reference

Holds the source files. More...

#include <projfiles.h>

Collaboration diagram for projfiles< CFC >:

List of all members.

Public Member Functions

void construct (stringc &driver_="main")
 Read proj subdirectories for unique .h .cpp files.
stringc drivercpp () const
 e.g.
stringc driverh () const
 e.g.
stringc drivero () const
 e.g.
void print ()
 ~projfiles ()
 Delete files.

Public Attributes

CFC files
 CFC Implements interface,.
string driver
 Driver program name.


Detailed Description

template<typename CFC>
class projfiles< CFC >

Holds the source files.

Definition at line 18 of file projfiles.h.


Constructor & Destructor Documentation

template<typename CFC >
projfiles< CFC >::~projfiles (  )  [inline]

Delete files.

Definition at line 120 of file projfiles.h.

References projfiles< CFC >::files.

00121 {
00122   for (files.reset(); !files; ++files)
00123     delete files();
00124 }


Member Function Documentation

template<typename CFC >
void projfiles< CFC >::construct ( stringc driver_ = "main"  )  [inline]

Read proj subdirectories for unique .h .cpp files.

Definition at line 71 of file projfiles.h.

References projfiles< CFC >::driver, projfiles< CFC >::drivercpp(), projfiles< CFC >::driverh(), systemcalls::eval(), projfiles< CFC >::files, systemcalls::lines, and makefilebtglobals::tempheaders.

Referenced by projfilestest::test01(), and projfilestest::test02().

00072 {
00073   driver = driver_;
00074   files.construct(2000);
00075 
00076   systemcalls sys01
00077   (
00078     "find .. -iname \"*.h\"",
00079 //    "tempheaders.txt"
00080     makefilebtglobals::tempheaders
00081   );
00082   sys01.eval();
00083 
00084   systemcalls sys02
00085   (
00086     "find .. -iname \"*.cpp\" | grep -v " + drivercpp(),
00087     "tempcpp.txt"
00088   );
00089   sys02.eval();
00090 
00091   uint linesize;
00092   linesize = sys01.lines.size();
00093   for (uint i=0; i<linesize; ++i)
00094     files.add( new compilationfile(sys01.lines[i]) );
00095   linesize = sys02.lines.size();
00096   for (uint i=0; i<linesize; ++i)
00097     files.add( new compilationfile(sys02.lines[i]) );
00098 
00099   files.add( new compilationfile("./",drivercpp().c_str()) );
00100   // While this file does not exist, it simplifies the logic:
00101   //   rather than treating this cpp file as an exception.
00102   files.add( new compilationfile("./",driverh().c_str()) );
00103 }

template<typename CFC>
stringc projfiles< CFC >::drivercpp (  )  const [inline]

e.g.

main.cpp

Definition at line 51 of file projfiles.h.

References projfiles< CFC >::driver.

Referenced by projfiles< CFC >::construct().

00052     { return driver + ".cpp"; }

template<typename CFC>
stringc projfiles< CFC >::driverh (  )  const [inline]

e.g.

main.h

Definition at line 54 of file projfiles.h.

References projfiles< CFC >::driver.

Referenced by projfiles< CFC >::construct().

00055     { return driver + ".h"; }

template<typename CFC>
stringc projfiles< CFC >::drivero (  )  const [inline]

e.g.

main.o

Definition at line 57 of file projfiles.h.

References projfiles< CFC >::driver.

00058     { return driver + ".o"; }

template<typename CFC >
void projfiles< CFC >::print (  )  [inline]

Definition at line 106 of file projfiles.h.

References compilationfile::filename, projfiles< CFC >::files, and compilationfile::path.

Referenced by projfilestest::test01(), and projfilestest::test02().

00107 {
00108   files.reset();
00109 
00110   compilationfile* x;
00111   for ( ; !files; ++files)
00112   {
00113     x = files();
00114     assert(x);
00115     cout << x->filename << "  " << x->path << endl;
00116   }
00117 }


Member Data Documentation

template<typename CFC>
string projfiles< CFC >::driver

Driver program name.

Generally main

Definition at line 48 of file projfiles.h.

Referenced by projfiles< CFC >::construct(), projfiles< CFC >::drivercpp(), projfiles< CFC >::driverh(), and projfiles< CFC >::drivero().

template<typename CFC>
CFC projfiles< CFC >::files

CFC Implements interface,.

  // Resize the container.
  void construct(uintc size);
  // Search.   
  compilationfile* operator [stringc & filename] const;
  // Looks before adding the compilation file. 
  boolc add(compilationfile* cf);
  // If found, sets the pointer to zero. 
  boolc remove(stringc & filename);
  // Reset the iterator.
  void reset();
  // Are there more elements? 
  boolc operator ! () const;
  // Increment.
  void operator ++ ();
  // Access the current iterator element. 
  compilationfile* operator() () const;

Definition at line 42 of file projfiles.h.

Referenced by projfiles< CFC >::construct(), projfiles< CFC >::print(), and projfiles< CFC >::~projfiles().


The documentation for this class was generated from the following file:

Generated on Fri Mar 4 00:50:11 2011 for Chelton Evans Source by  doxygen 1.5.8