Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

Package Class Reference

#include <cmt_use.h>

Collaboration diagram for Package:

Collaboration graph
[legend]
List of all members.

Public Types

typedef cmt_map< cmt_string,
Package
PackageMap
typedef cmt_vector< PackagePackageVector

Public Member Functions

 Package ()
 ~Package ()
const cmt_stringget_name () const
void add_use (Use *use)
void remove_use (Use *use)
Use::UsePtrVectorget_uses ()
bool is_cmt ()

Static Public Member Functions

Packagefind (const cmt_string &name)
Packageadd (const cmt_string &name)
PackageVectorpackages ()
PackageMappackage_map ()
void clear_all ()

Private Attributes

bool m_is_cmt
cmt_string m_name
Use::UsePtrVector m_uses

Member Typedef Documentation

typedef cmt_map<cmt_string, Package> Package::PackageMap
 

Definition at line 209 of file cmt_use.h.

Referenced by add(), find(), package_map(), and Database::package_map().

typedef cmt_vector<Package> Package::PackageVector
 

Definition at line 210 of file cmt_use.h.

Referenced by add(), clear_all(), packages(), Database::packages(), and show_packages().


Constructor & Destructor Documentation

Package::Package  ) 
 

Definition at line 4235 of file cmt_use.cxx.

References Cmt::get_debug().

04235                   : m_is_cmt (false)
04236 {
04237   if (Cmt::get_debug ())
04238     {
04239       cout << "Package::Package" << endl;
04240     }
04241 }

Package::~Package  ) 
 

Definition at line 4243 of file cmt_use.cxx.

References m_name.

04244 {
04245   m_name = "";
04246 }


Member Function Documentation

Package * Package::add const cmt_string name  )  [static]
 

Definition at line 4176 of file cmt_use.cxx.

References cmt_map< K, T >::add(), Cmt::get_debug(), m_is_cmt, m_name, package_map(), PackageMap, packages(), and PackageVector.

Referenced by Use::create(), Use::set(), and Use::set_package_name().

04177 {
04178   static PackageVector& Packages = packages ();
04179   static PackageMap& PackageMap = package_map ();
04180 
04181   {
04182     Package* package;
04183 
04184     package = find (name);
04185     if (package != 0) return (package);
04186   }
04187 
04188   Package& package = Packages.add ();
04189   PackageMap.add (name, package);
04190 
04191   package.m_name = name;
04192 
04193   if (name == "CMT")
04194     {
04195       package.m_is_cmt = true;
04196     }
04197   else if (name == "methods")
04198     {
04199       package.m_is_cmt = true;
04200     }
04201 
04202   if (Cmt::get_debug ())
04203     {
04204       cout << "Package::add (" << name << ")" << endl;
04205     }
04206 
04207   return (&package);
04208 }

void Package::add_use Use use  ) 
 

Definition at line 4253 of file cmt_use.cxx.

References m_uses, cmt_vector< T >::push_back(), and cmt_vector< T >::size().

Referenced by Use::set(), and Use::set_package_name().

04254 {
04255   for (int i = 0; i < m_uses.size (); i++)
04256     {
04257       Use* u = m_uses[i];
04258       if (u == use) return;
04259     }
04260 
04261   m_uses.push_back (use);
04262 }

void Package::clear_all  )  [static]
 

Definition at line 4226 of file cmt_use.cxx.

References cmt_vector< T >::clear(), cmt_map< K, T >::clear(), package_map(), packages(), and PackageVector.

Referenced by Database::clear().

04227 {
04228   static PackageVector& Packages = packages ();
04229   static PackageMap& PackageMap = package_map ();
04230 
04231   PackageMap.clear ();
04232   Packages.clear ();
04233 }

Package * Package::find const cmt_string name  )  [static]
 

Definition at line 4165 of file cmt_use.cxx.

References cmt_map< K, T >::find(), package_map(), and PackageMap.

Referenced by Use::find().

04166 {
04167   static PackageMap& PackageMap = package_map ();
04168 
04169   Package* result = 0;
04170 
04171   result = PackageMap.find (name);
04172 
04173   return (result);
04174 }

const cmt_string & Package::get_name  )  const
 

Definition at line 4248 of file cmt_use.cxx.

References m_name.

Referenced by StandardMacroBuilder::fill_for_all_constituents(), Use::get_package_name(), and show_packages().

04249 {
04250   return (m_name);
04251 }

Use::UsePtrVector & Package::get_uses  ) 
 

Definition at line 4289 of file cmt_use.cxx.

References m_uses, and Use::UsePtrVector.

Referenced by Use::create(), Use::find(), Use::get_selected_version(), and show_packages().

04290 {
04291   return (m_uses);
04292 }

bool Package::is_cmt  ) 
 

Definition at line 4294 of file cmt_use.cxx.

References m_is_cmt.

Referenced by Script::all_print(), Script::all_print_clean(), DependencyGenerator::build(), ReadmeGenerator::build(), StandardMacroBuilder::fill_for_all_constituents(), StandardMacroBuilder::fill_for_use_includes(), StandardMacroBuilder::fill_for_use_libraries(), StandardMacroBuilder::fill_for_use_stamps(), Use::fill_macro_all(), Include::print_all(), and Cmt::print_clean().

04295 {
04296   return (m_is_cmt);
04297 }

Package::PackageMap & Package::package_map  )  [static]
 

Definition at line 4218 of file cmt_use.cxx.

References Database::instance(), Database::package_map(), and PackageMap.

Referenced by add(), clear_all(), and find().

04219 {
04220   static Database& db = Database::instance ();
04221   static PackageMap& PackageMap = db.package_map ();
04222 
04223   return (PackageMap);
04224 }

Package::PackageVector & Package::packages  )  [static]
 

Definition at line 4210 of file cmt_use.cxx.

References Database::instance(), Database::packages(), and PackageVector.

Referenced by add(), clear_all(), and show_packages().

04211 {
04212   static Database& db = Database::instance ();
04213   static PackageVector& Packages = db.packages ();
04214 
04215   return (Packages);
04216 }

void Package::remove_use Use use  ) 
 

Definition at line 4264 of file cmt_use.cxx.

References cmt_vector< T >::clear(), Cmt::get_debug(), Use::get_package_name(), m_name, m_uses, cmt_vector< T >::push_back(), cmt_vector< T >::size(), and Use::UsePtrVector.

Referenced by Use::clear().

04265 {
04266   if (Cmt::get_debug ())
04267     {
04268       cout << "Package::remove_use (" << use->get_package_name () << ")" << endl;
04269       cout << "  name=" << m_name
04270            << " uses=" << m_uses.size () << endl;
04271     }
04272 
04273   Use::UsePtrVector temp;
04274 
04275   temp = m_uses;
04276 
04277   m_uses.clear ();
04278 
04279   for (int i = 0; i < temp.size (); i++)
04280     {
04281       Use* u = temp[i];
04282       if (u != use)
04283         {
04284           m_uses.push_back (u);
04285         }
04286     }
04287 }


Member Data Documentation

bool Package::m_is_cmt [private]
 

Definition at line 233 of file cmt_use.h.

Referenced by add(), and is_cmt().

cmt_string Package::m_name [private]
 

Definition at line 235 of file cmt_use.h.

Referenced by add(), get_name(), remove_use(), and ~Package().

Use::UsePtrVector Package::m_uses [private]
 

Definition at line 236 of file cmt_use.h.

Referenced by add_use(), get_uses(), and remove_use().


The documentation for this class was generated from the following files:
Generated on Mon May 2 10:25:54 2005 for CMT by doxygen 1.3.5