libFAUDES

Sections

Index

diag_attrlabelset.cpp

Go 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.16b --- 2010-9-8 --- c++ source docu by doxygen 1.6.3