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