cfg_RMLibrary Class Reference
[Parser for config files; validation]

#include <cfg_rm.h>

Inheritance diagram for cfg_RMLibrary:

Inheritance graph
[legend]
Collaboration diagram for cfg_RMLibrary:

Collaboration graph
[legend]

List of all members.


Detailed Description

cfg_RMLibrary is derived from val_Base to handle configuration of the IVD Resource Manager Configuration for Drive.

See also:
parser

val_Base

val_Value

pf_File

Definition at line 85 of file cfg_rm.h.


Public Member Functions

 cfg_RMLibrary ()
 cfg_RMLibrary (const pf_File &a_parsedFile)
void Refresh (const pf_File &a_parsedFile)
virtual ~cfg_RMLibrary ()

Public Attributes

string name
ivd_LibraryType_e libType
string host
string controlDevice
vector< val_Element< string > > capabilities
vector< val_Element< string > > options
ivd_MediaFamily_e mediaFamily
vector< val_Element< string > > slotList
vector< val_Element< string > > mailSlots
UInt32_t auditTime
UInt32_t mediaAccessTime
UInt32_t mediaExchangeTime

Private Attributes

 log_CLASSID_m

Constructor & Destructor Documentation

cfg_RMLibrary::cfg_RMLibrary (  )  [inline]

Definition at line 87 of file cfg_rm.h.

00087 {};

cfg_RMLibrary::cfg_RMLibrary ( const pf_File a_parsedFile  ) 

Definition at line 46 of file cfg_rmlib.cpp.

References log_FUNC_m, and Refresh().

00046                                                        :
00047     libType(lt_UNKNOWN),
00048     mediaFamily(mf_UNKNOWN),
00049     auditTime(0),
00050     mediaAccessTime(0),
00051     mediaExchangeTime(0)
00052 {
00053     log_FUNC_m(cfg_RMLibrary);
00054     Refresh(a_parsedFile);
00055 }

Here is the call graph for this function:

virtual cfg_RMLibrary::~cfg_RMLibrary (  )  [inline, virtual]

Definition at line 92 of file cfg_rm.h.

00092 {};


Member Function Documentation

void cfg_RMLibrary::Refresh ( const pf_File a_parsedFile  ) 

Definition at line 58 of file cfg_rmlib.cpp.

References val_RuleVec::Add(), capabilities, cfg_MAX_CAPABILITIES_NAME, cfg_MAX_CTRLDEVICE, cfg_MAX_HOSTNAME, cfg_MAX_LIBRARY_NAME, cfg_MAX_LIBRARY_TYPE, cfg_MAX_MAILSLOTS_NAME, cfg_MAX_MEDIAFAMILY_NAME, cfg_MAX_OPTION_NAME, cfg_MAX_SLOTS_NAME, cfg_MIN_CAPABILITIES_NAME, cfg_MIN_CTRLDEVICE, cfg_MIN_HOSTNAME, cfg_MIN_LIBRARY_NAME, cfg_MIN_LIBRARY_TYPE, cfg_MIN_MAILSLOTS_NAME, cfg_MIN_MEDIAFAMILY_NAME, cfg_MIN_OPTION_NAME, cfg_MIN_SLOTS_NAME, cfg_Base::CheckMandatory(), controlDevice, cfg_Base::Convert(), cfg_Base::ConvertFileHeader(), host, libType, log_FUNC_m, pf_File::m_common, pf_File::m_sections, pf_SectionList::m_vec, mailSlots, mediaFamily, name, options, pf_SectionList::size(), and slotList.

Referenced by cfg_RMLibrary().

00058                                                        {
00059     log_FUNC_m(Refresh);
00060 
00061     static const string c_name              ("Name");
00062     static const string c_libType           ("Libtype");
00063     static const string c_host              ("Host");
00064     static const string c_controlDevice     ("ControlDevice");
00065     static const string c_capabilities      ("Capabilities");
00066     static const string c_options           ("Options");
00067     static const string c_mediaFamily       ("MediaFamily");
00068 
00069     static const string c_slots             ("Slots");
00070     static const string c_mailSlots         ("MailSlots");
00071 
00072     static const string c_auditTime         ("AuditTime");
00073     static const string c_mediaAccessTime   ("MediaAccessTime");
00074     static const string c_mediaExchangeTime ("MediaExchangeTime");
00075 
00076 
00077 
00078     ConvertFileHeader(a_parsedFile);
00079     val_RuleVec  rules;
00080 
00081     //common section
00082     rules.Add(
00083         new val_ObjectName(     c_name,
00084                             val_Limit(cfg_MIN_LIBRARY_NAME, cfg_MAX_LIBRARY_NAME),
00085                             1,
00086                             1),
00087         this->name);
00088     rules.Add(
00089         new val_LibType(    c_libType,
00090                             val_Limit(cfg_MIN_LIBRARY_TYPE, cfg_MAX_LIBRARY_TYPE),
00091                             1,
00092                             1),
00093         this->libType);
00094 
00095     rules.Add(
00096         new val_Hostname(   c_host,
00097                             val_Limit(cfg_MIN_HOSTNAME, cfg_MAX_HOSTNAME),
00098                             1,
00099                             1),
00100         this->host);
00101 
00102     rules.Add(
00103         new val_StrictString(     c_controlDevice,
00104                             val_Limit(cfg_MIN_CTRLDEVICE, cfg_MAX_CTRLDEVICE),
00105                             1,
00106                             1),
00107         this->controlDevice);
00108 
00109     rules.Add(
00110         new val_StrictStringList( c_capabilities,
00111                             val_Limit(cfg_MIN_CAPABILITIES_NAME, cfg_MAX_CAPABILITIES_NAME),
00112                             0,
00113                             1),
00114         this->capabilities);
00115 
00116     rules.Add(
00117         new val_StrictStringList( c_options,
00118                             val_Limit(cfg_MIN_OPTION_NAME, cfg_MAX_OPTION_NAME),
00119                             0,
00120                             1),
00121         this->options);
00122 
00123     rules.Add(
00124         new val_MediaFamilyType(
00125                             c_mediaFamily,
00126                             val_Limit(cfg_MIN_MEDIAFAMILY_NAME, cfg_MAX_MEDIAFAMILY_NAME),
00127                             1,
00128                             1),
00129         this->mediaFamily);
00130 
00131     rules.Add(
00132         new val_SlotList(   c_slots,
00133                             val_Limit(cfg_MIN_SLOTS_NAME, cfg_MAX_SLOTS_NAME),
00134                             1,
00135                             1),
00136         this->slotList);
00137 
00138     rules.Add(
00139         new val_SlotList(   c_mailSlots,
00140                             val_Limit(cfg_MIN_MAILSLOTS_NAME, cfg_MAX_MAILSLOTS_NAME),
00141                             0,
00142                             1),
00143         this->mailSlots);
00144 
00145     //Connectivity
00146 //     rules.Add(
00147 //         new val_Integer(    c_auditTime,
00148 //                             val_Limit(cfg_MIN_AUDITTIME, cfg_MAX_AUDITTIME)),
00149 //         this->auditTime);
00150 //     rules.Add(
00151 //         new val_Integer(    c_mediaAccessTime,
00152 //                             val_Limit(cfg_MIN_MEDACCESSTIME, cfg_MAX_MEDACCESSTIME)),
00153 //         this->mediaAccessTime);
00154 //     rules.Add(
00155 //         new val_Integer(    c_mediaExchangeTime,
00156 //                             val_Limit(cfg_MIN_MEDEXCHTIME, cfg_MAX_MEDEXCHTIME)),
00157 //         this->mediaExchangeTime);
00158 
00159     //Validate and convert common section
00160     Convert(a_parsedFile.m_common, rules);
00161 
00162     //Validate and convert other sections
00163 
00164     for (unsigned int i = 0; i < a_parsedFile.m_sections.size(); i++) {
00165         // if section name is needed here it is: i->first
00166         Convert(a_parsedFile.m_sections.m_vec[i] , rules);
00167     };
00168     CheckMandatory(rules);
00169 
00170 /* TODO
00171     Use wrapper for slots to expand slots after they are validated
00172 */
00173 }

Here is the call graph for this function:

Here is the caller graph for this function:


Member Data Documentation

Definition at line 101 of file cfg_rm.h.

Referenced by Refresh().

Definition at line 102 of file cfg_rm.h.

Referenced by Refresh().

Reimplemented from cfg_Base.

Definition at line 117 of file cfg_rm.h.


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

Generated on Mon Feb 27 19:04:09 2012 for OPENARCHIVE by  doxygen 1.5.6