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(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