| |
libFAUDES
Sections
Index
|
diag_attrlabelset.cppGo to the documentation of this file.00001 /** @file diag_attrlabelset.cpp 00002 Implements the label representation for state estimates. 00003 */ 00004 00005 #include "diag_attrlabelset.h" 00006 00007 using namespace std; 00008 00009 00010 namespace faudes { 00011 00012 SymbolTable DiagLabelSet::msLabelSymbolTable; 00013 Idx DiagLabelSet::msLabelN = DiagLabelSet::msLabelSymbolTable.InsEntry("N"); 00014 Idx DiagLabelSet::msLabelA = DiagLabelSet::msLabelSymbolTable.InsEntry("A"); 00015 Idx DiagLabelSet::msLabelRelN = DiagLabelSet::msLabelSymbolTable.InsEntry("relN"); 00016 Idx DiagLabelSet::msLabelSpecViolated = DiagLabelSet::msLabelSymbolTable.InsEntry("F"); 00017 00018 // faudes type std 00019 FAUDES_TYPE_IMPLEMENTATION(DiagLabelSet,AttributeFlags,) 00020 00021 // copy my members 00022 DiagLabelSet& DiagLabelSet::DoAssign(const DiagLabelSet& rSrcAttr) { 00023 AttributeFlags::DoAssign(rSrcAttr); 00024 mDiagLabels=rSrcAttr.mDiagLabels; 00025 return *this; 00026 } 00027 00028 // equality 00029 bool DiagLabelSet::DoEqual(const DiagLabelSet& rOtherSet) const { 00030 // call base 00031 if(!AttributeFlags::DoEqual(rOtherSet)) return false; 00032 // test my members 00033 if(mDiagLabels != rOtherSet.mDiagLabels) return false; 00034 // pass 00035 return true; 00036 } 00037 00038 00039 // IsDefault() 00040 bool DiagLabelSet::IsDefault(void) const { 00041 return mDiagLabels.Empty(); 00042 } 00043 00044 // StaticLabelSymbolTablep() 00045 SymbolTable* DiagLabelSet::StaticLabelSymbolTablep(void) { 00046 return &msLabelSymbolTable; 00047 } 00048 00049 // LabelSymbolTablep() 00050 void DiagLabelSet::LabelSymbolTablep(SymbolTable *pSymTab) { 00051 mDiagLabels.SymbolTablep(pSymTab); 00052 } 00053 00054 // Empty() 00055 bool DiagLabelSet::Empty(void) const { 00056 return mDiagLabels.Empty(); 00057 } 00058 00059 // Size() 00060 Idx DiagLabelSet::Size(void) const { 00061 return mDiagLabels.Size(); 00062 } 00063 00064 // Exists() 00065 bool DiagLabelSet::Exists(Idx index) const { 00066 return mDiagLabels.Exists(index); 00067 } 00068 00069 // Insert() 00070 bool DiagLabelSet::Insert(Idx index) { 00071 return mDiagLabels.Insert(index); 00072 } 00073 00074 // InsertSet() 00075 void DiagLabelSet::InsertSet(const DiagLabelSet& rSet) { 00076 mDiagLabels.InsertSet(rSet.mDiagLabels); 00077 } 00078 00079 // Erase() 00080 bool DiagLabelSet::Erase(Idx index) { 00081 return mDiagLabels.Erase(index); 00082 } 00083 00084 // Clear() 00085 void DiagLabelSet::Clear(void) { 00086 return mDiagLabels.Clear(); 00087 } 00088 00089 // IndexOfLabelN() 00090 Idx DiagLabelSet::IndexOfLabelN(void) { 00091 return msLabelN; 00092 } 00093 00094 // IndexOfLabelA() 00095 Idx DiagLabelSet::IndexOfLabelA(void) { 00096 return msLabelA; 00097 } 00098 00099 // IndexOfLabelRelN() 00100 Idx DiagLabelSet::IndexOfLabelRelN(void) { 00101 return msLabelRelN; 00102 } 00103 00104 // IndexOfLabelRelN() 00105 Idx DiagLabelSet::IndexOfLabelSpecViolated(void) { 00106 return msLabelSpecViolated; 00107 } 00108 00109 // Symbol() 00110 string DiagLabelSet::Symbol(Idx index) { 00111 return msLabelSymbolTable.Symbol(index); 00112 } 00113 00114 // PrettyPrintLabelSet() 00115 string DiagLabelSet::Str(void) const { 00116 string str; 00117 NameSet::Iterator it; 00118 for (it = mDiagLabels.Begin(); it != mDiagLabels.End(); it++) { 00119 str += mDiagLabels.SymbolicName(*it); 00120 } 00121 return str; 00122 } 00123 00124 // DoWrite() 00125 void DiagLabelSet::DoWrite(TokenWriter& rTw, const std::string& rLabel, const Type* pContext) const { 00126 if(IsDefault()) return; 00127 mDiagLabels.Write(rTw, "DiagLabels", pContext); 00128 } 00129 00130 // DoRead() 00131 void DiagLabelSet::DoRead(TokenReader &rTr, const std::string &rLabel, const Type *pContext) { 00132 mDiagLabels.Read(rTr, "DiagLabels", pContext); 00133 } 00134 00135 // operator * 00136 DiagLabelSet DiagLabelSet::operator * (const DiagLabelSet& rOtherSet) const { 00137 FD_DC("DiagLabelSet(" << this << ")::operator * (" << &rOtherSet << ")"); 00138 DiagLabelSet res; 00139 res.mDiagLabels = mDiagLabels * rOtherSet.mDiagLabels; 00140 return res; 00141 } 00142 00143 // operator + 00144 DiagLabelSet DiagLabelSet::operator + (const DiagLabelSet& rOtherSet) const { 00145 FD_DC("DiagLabelSet(" << this << ")::operator + (" << &rOtherSet << ")"); 00146 DiagLabelSet res; 00147 res.mDiagLabels = mDiagLabels + rOtherSet.mDiagLabels; 00148 return res; 00149 } 00150 00151 // operator - 00152 DiagLabelSet DiagLabelSet::operator - (const DiagLabelSet& rOtherSet) const { 00153 FD_DC("DiagLabelSet(" << this << ")::operator - (" << &rOtherSet << ")"); 00154 DiagLabelSet res; 00155 res.mDiagLabels = mDiagLabels - rOtherSet.mDiagLabels; 00156 return res; 00157 } 00158 00159 00160 // operator <= 00161 bool DiagLabelSet::operator <= (const DiagLabelSet& rOtherSet) const { 00162 return mDiagLabels.operator <= (rOtherSet.mDiagLabels); 00163 } 00164 00165 // operator >= 00166 bool DiagLabelSet::operator >= (const DiagLabelSet& rOtherSet) const { 00167 return mDiagLabels.operator >= (rOtherSet.mDiagLabels); 00168 } 00169 00170 00171 } // namespace faudes |
libFAUDES 2.14g --- 2009-12-3 --- c++ source docu by doxygen 1.5.6