label/LabelMap.hpp

Go to the documentation of this file.
00001 //============================================================================
00002 // Author      : Alessandro Pinto <apinto@eecs.berkeley.edu>
00003 //               University of California, Berkeley
00004 //               545 Cory Hall, Berkeley, CA 94720
00005 // Copyright   : See COPYING file that comes with this distribution
00006 //============================================================================
00007 
00008 
00009 #ifndef LABELMAP_H_
00010 #define LABELMAP_H_
00011 
00012 #include <map>
00013 #include <set>
00014 #include <string>
00015 #include "../core/IdGraph.h"
00016 
00017 using namespace std;
00018 namespace cosi {
00019 
00035 template<class T2> class LabelMap {
00036 public:
00037 
00039         LabelMap() {
00040         }
00041         ;
00042 
00046         ~LabelMap() {
00047                 mV.clear();
00048                 mE.clear();
00049         }
00050         ;
00051 
00054         void Set(Vertex V, T2 pD) {
00055                 mV[V] = pD;
00056         }
00057         ;
00058 
00059         void Set(Edge E, T2 pD) {
00060                 mE[E] = pD;
00061         }
00062         ;
00063 
00064         void Erase(Vertex V) {
00065                 mV.erase(V);
00066         }
00067         ;
00068 
00069         void Erase(Edge E) {
00070                 mE.erase(E);
00071         }
00072         ;
00073 
00081         T2& Get(Vertex V) {
00082                 if (mV.find(V) != mV.end() )
00083                         return mV[V];
00084                 else {
00085                         mV[V] = T2() ;
00086                         return mV[V];
00087                 }
00088         }
00089         ;
00090 
00091         T2& Get(Edge E) {
00092                 if (mE.find(E) != mE.end() )
00093                         return mE[E];
00094                 else {
00095                         mE[E] = T2() ;
00096                         return mE[E] ;
00097                 }
00098         }
00099         ;
00100 
00107         bool Assigned(Vertex V) {
00108                 if (mV.find(V) != mV.end() )
00109                         return false;
00110                 else
00111                         return true;
00112         }
00113         ;
00114 
00115         bool Assigned(Edge E) {
00116                 if (mE.find(E) != mE.end() )
00117                         return false;
00118                 else
00119                         return true;
00120         }
00121         ;
00122 
00123         multiset<string> GetQuantityNames() {
00124                 T2 Dummy;
00125                 return Dummy.GetQuantityNames() ;
00126         }
00127 
00128 private:
00129 
00131         map<Vertex,T2> mV;
00132         map<Edge,T2> mE;
00133 
00134 };
00135 
00136 }
00137 
00138 #endif /*LABELMAP_H_*/
00139 

Generated on Sun Sep 7 18:37:42 2008 for COSI by  doxygen 1.5.4
Contact 
©2002-2018 U.C. Regents