jccl Namespace Reference


Classes

class  ConfigDefinition
 Definition of a single configuration element "type". More...
class  ConfigDefinitionReader
 This object knows how to deserialize all versions of a configuration definition from a stream. More...
class  ConfigDefinitionRepository
 Stores a set of configuration definitions that can be retrieved by name. More...
struct  NamePred
 This is a helper type for use with cppdom::Node::getChildPred(). More...
class  ConfigElement
 A unit of configuration information. More...
struct  ElementNamePred
 This is a helper for use with std::find_if() for comparing element names. More...
class  Configuration
 List of jccl::ConfigElement objects. More...
class  ElementFactory
 Factory for elements and a place holder for some other system-wide factory functions. More...
class  ParseUtil
 Utility functions for handling the parsing of input files. More...
class  PropertyDefinition
 Describes properties. More...
class  ConfigElementHandler
 Abstract base class for all classes that can handle ConfigElement objects. More...
class  ConfigManager
 Dynamic reconfiguration management for JCCL. More...
class  DepChecker
 Base class for dependency checkers. More...
class  DependencyManager
 A dependency checker for dynamically added components. More...
class  RemoteReconfig
 Remote reconfiguration plug-in interface. More...

Namespaces

namespace  types_tokens
namespace  definition_tokens
namespace  configuration_tokens

Typedefs

typedef boost::shared_ptr<
ConfigDefinition
ConfigDefinitionPtr
typedef boost::shared_ptr<
ConfigElement
ConfigElementPtr

Enumerations

enum  VarType {
  T_INT, T_FLOAT, T_BOOL, T_STRING,
  T_ELEMENT_PTR, T_CHILD_ELEMENT, VJ_T_INVALID
}
enum  PendItemResult { SUCCESS, FAILED, NEED_DEPS }

Functions

 JCCL_IMPLEMENT (std::string) getVersionString()
 JCCL_IMPLEMENT (vpr::Uint32) getVersionNumber()
 JCCL_API (std::string) getVersionString()
 Retruns the "human-readable" JCCL version string.
 JCCL_API (vpr::Uint32) getVersionNumber()
 Returns the 9-digit JCCL version integer.
 JCCL_IMPLEMENT (std::ostream &) operator<< (std
std::ostream & operator<< (std::ostream &out, const ConfigElement &self)
template<>
std::string ConfigElement::getProperty< std::string > (const std::string &prop, int ind) const
const std::string EMBEDDED_SEPARATOR ("/")
std::ostream & operator<< (std::ostream &out, const Configuration &self)
std::istream & operator>> (std::istream &in, Configuration &self)
 vprSingletonImp (ElementFactory)
std::ostream & operator<< (std::ostream &out, const PropertyDefinition &self)
static void outputPendingItemState (int debugLevel, const std::string &elementName, const std::string &elementType, PendItemResult result)
 vprSingletonImp (ConfigManager)
 vprSingletonImp (DependencyManager)

Variables

static const int pending_repeat_limit = 3


Typedef Documentation

typedef boost::shared_ptr<ConfigDefinition> jccl::ConfigDefinitionPtr

Definition at line 48 of file ConfigDefinitionPtr.h.

typedef boost::shared_ptr<ConfigElement> jccl::ConfigElementPtr

Definition at line 48 of file ConfigElementPtr.h.


Enumeration Type Documentation

enum jccl::VarType

Enumerator:
T_INT 
T_FLOAT 
T_BOOL 
T_STRING 
T_ELEMENT_PTR 
T_CHILD_ELEMENT 
VJ_T_INVALID 

Definition at line 42 of file ConfigTokens.h.

00043    {
00044       T_INT,
00045       T_FLOAT,
00046       T_BOOL,
00047       T_STRING,
00048       T_ELEMENT_PTR,
00049       T_CHILD_ELEMENT,
00050       VJ_T_INVALID
00051    } VarType;

enum jccl::PendItemResult

Enumerator:
SUCCESS 
FAILED 
NEED_DEPS 

Definition at line 46 of file ConfigElementHandler.cpp.

00047 { SUCCESS, FAILED, NEED_DEPS };


Function Documentation

jccl::JCCL_IMPLEMENT ( std::string   ) 

Definition at line 42 of file Version.cpp.

00043 {
00044    return std::string(JCCL_VERSION);
00045 }

jccl::JCCL_IMPLEMENT ( vpr::Uint32   ) 

Definition at line 47 of file Version.cpp.

00048 {
00049    return __JCCL_version;
00050 }

jccl::JCCL_API ( std::string   ) 

Retruns the "human-readable" JCCL version string.

The full form includes the version number (major.minor.patch-build), the canonical name of the release, the threading subsystem, and the build date. The major version number is updated when major architectural changes are made; the minor when there are minor API changes; and the patch when there are bug fixes. The build number is usually representative of the nightly build process relative to a given version x.y.z.

See also:
jccl::JCCL_VERSION

jccl::JCCL_API ( vpr::Uint32   ) 

Returns the 9-digit JCCL version integer.

This form provides three digits for each of the major, minor, and patch numbers with no leading zeros.

Note:
The number returned is the value at run time. For a compile-time version identifier, use __JCCL_version. The value is the same as what is returned by this function.

jccl::JCCL_IMPLEMENT ( std::ostream &   ) 

Definition at line 274 of file ConfigDefinition.cpp.

00276 {
00277    self.mNode->save(out);
00278    return out;
00279 }

std::ostream& jccl::operator<< ( std::ostream &  out,
const ConfigElement &  self 
)

Definition at line 446 of file ConfigElement.cpp.

00447 {
00448    self.mNode->save(out);
00449    return out;
00450 }

template<>
std::string jccl::ConfigElement::getProperty< std::string > ( const std::string &  prop,
int  ind 
) const [inline]

const std::string jccl::EMBEDDED_SEPARATOR ( "/"   ) 

Referenced by jccl::ConfigElement::getFullName().

std::ostream& jccl::operator<< ( std::ostream &  out,
const Configuration &  self 
)

Definition at line 120 of file Configuration.cpp.

References jccl::configuration_tokens::CFG_VERSION(), jccl::configuration_tokens::CFG_VERSION_ATTR(), and jccl::configuration_tokens::SETTINGS_INSTRUCTION().

00121 {
00122    cppdom::NodePtr cfg_node;
00123 
00124    // TODO: Find a better way of doing this, the java side seems to be able to
00125    // do it just fine.
00126    out << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
00127    out << "<?" << tokens::SETTINGS_INSTRUCTION << " "
00128        << tokens::CFG_VERSION_ATTR << "=\"" << tokens::CFG_VERSION << "\"?>";
00129 
00130    self.createConfigurationNode(cfg_node);
00131    cfg_node->save(out);
00132    return out;
00133 }

std::istream& jccl::operator>> ( std::istream &  in,
Configuration &  self 
)

Definition at line 135 of file Configuration.cpp.

References jccl::configuration_tokens::CONFIGURATION(), jccl::configuration_tokens::DEFINITION_PATH(), jccl::configuration_tokens::ELEMENTS(), jccl::configuration_tokens::INCLUDE(), and jcclDBG_CONFIG().

00136 {
00137    // Create a new XML document
00138    cppdom::DocumentPtr cfg_doc(ElementFactory::instance()->createXMLDocument());
00139    cppdom::ContextPtr context_ptr = cfg_doc->getContext();
00140 
00141    // Load the document from the input stream.
00142    cfg_doc->load(in, context_ptr);
00143 
00144    // Get the configuration node.
00145    cppdom::NodePtr cfg_node(cfg_doc->getChild(tokens::CONFIGURATION));
00146    self.setConfigurationNode(cfg_node);
00147 
00148    // Load in the elements from the confiruration node.
00149    self.loadFromElementNode(cfg_node->getChild(tokens::ELEMENTS));
00150 
00151    cppdom::NodePtr def_path_node(cfg_node->getChild(tokens::DEFINITION_PATH));
00152    if ( def_path_node.get() != NULL )
00153    {
00154       self.setDefinitionPath(def_path_node);
00155    }
00156 
00157    // Go through the <include> XML elements.
00158    cppdom::NodeList inc_list = cfg_node->getChildren(tokens::INCLUDE);
00159    for ( cppdom::NodeList::iterator itr = inc_list.begin();
00160          itr != inc_list.end();
00161          ++itr )
00162    {
00163       std::string cfg_filename = (*itr)->getCdata();
00164       vprDEBUG(jcclDBG_CONFIG, vprDBG_CONFIG_LVL)
00165          << "Including " << cfg_filename << std::endl
00166          << vprDEBUG_FLUSH;
00167 
00168       // Load the file.
00169       // NOTE: Loading from a stream means that we have no parent file name to
00170       // provide to jccl::Configuration::load().
00171       self.load(cfg_filename);
00172    }
00173 
00174    return in;
00175 }

jccl::vprSingletonImp ( ElementFactory   ) 

std::ostream& jccl::operator<< ( std::ostream &  out,
const PropertyDefinition &  self 
)

Definition at line 160 of file PropertyDefinition.cpp.

00161 {
00162    self.mNode->save(out);
00163    return out;
00164 }

void jccl::outputPendingItemState ( int  debugLevel,
const std::string &  elementName,
const std::string &  elementType,
PendItemResult  result 
) [static]

Definition at line 185 of file ConfigElementHandler.cpp.

References FAILED, NEED_DEPS, and SUCCESS.

Referenced by jccl::ConfigElementHandler::configProcessPending().

00188 {
00189    const int item_width(39);
00190    const int type_width(20);
00191 
00192    vprDEBUG(vprDBG_ALL,debugLevel)
00193       << "Type: " << std::setiosflags(std::ios::right)
00194       << std::setfill(' ') << std::setw(type_width) << elementType
00195       << std::setiosflags(std::ios::right)
00196       << std::setfill(' ') << std::setw(item_width) << elementName
00197       << std::resetiosflags(std::ios::right) << "  ";
00198 
00199    /*
00200    const int prefix_len = name_prefix.length() + type_prefix.length();
00201    int item_and_type_len = elementName.length() + elementType.length() + prefix_len;
00202    const int state_offset(60);
00203 
00204    for(int c=0;c<(state_offset-item_and_type_len);c++)
00205    {
00206       vprDEBUG_CONTnl(vprDBG_ALL,debugLevel) << " ";
00207    }
00208    */
00209 
00210    switch(result)
00211    {
00212    case SUCCESS:
00213       vprDEBUG_CONTnl(vprDBG_ALL,debugLevel) << "[ " << clrSetNORM(clrGREEN) << "OK" << clrRESET << " ]";
00214       break;
00215    case FAILED:
00216       vprDEBUG_CONTnl(vprDBG_ALL,debugLevel) << "[ " << clrSetNORM(clrRED) << "FAILED" << clrRESET << " ]";
00217       break;
00218    case NEED_DEPS:
00219       vprDEBUG_CONTnl(vprDBG_ALL,debugLevel) << "[ " << clrSetNORM(clrYELLOW) << "NEED DEPS" << clrRESET << " ]";
00220       break;
00221    }
00222 
00223    vprDEBUG_CONTnl(vprDBG_ALL,debugLevel) << std::endl << vprDEBUG_FLUSH;
00224 }

jccl::vprSingletonImp ( ConfigManager   ) 

jccl::vprSingletonImp ( DependencyManager   ) 


Variable Documentation

const int jccl::pending_repeat_limit = 3 [static]

Definition at line 300 of file ConfigManager.cpp.

Referenced by jccl::ConfigManager::isPendingStale(), and jccl::ConfigManager::shouldCheckPending().


Generated on Thu Jan 4 10:49:53 2007 for JCCL: Juggler Configuration and Control Library by  doxygen 1.5.1