Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members

Tag.h

Go to the documentation of this file.
00001 #ifndef TAGCOLL_TAG_H
00002 #define TAGCOLL_TAG_H
00003 
00004 #pragma interface
00005 
00006 #include <string>
00007 
00008 namespace Tagcoll
00009 {
00010 
00011 class Facet;
00012 class FacetImpl;
00013 class TagImpl;
00014 class TagSet;
00015 class FacetSet;
00016 
00035 class Tag
00036 {
00037 protected:
00038     TagImpl* impl;
00039 
00040     Tag(FacetImpl* facet, const std::string& name) throw ();
00041 
00042 public:
00043     Tag() throw ();
00044     Tag(const Tag& f) throw ();
00045     ~Tag() throw ();
00046     Tag& operator=(const Tag& f) throw ();
00047 
00048     bool operator==(const Tag& f) const throw ();
00049     bool operator<(const Tag& f) const throw ();
00050 
00051     operator bool() const throw ();
00052 
00053     Facet facet() const throw ();
00054 
00055     const std::string& name() const throw ();
00056     std::string fullname() const throw ();
00057 
00058     const std::string& sdesc() const throw ();
00059     const std::string& ldesc() const throw ();
00060     const std::string& fulldata() const throw ();
00061 
00062     void sdesc(const std::string& desc) throw ();
00063     void ldesc(const std::string& desc) throw ();
00064     void fulldata(const std::string& desc) throw ();
00065 
00066     friend class FacetImpl;
00067     friend class TagSet;
00068 };
00069 
00070 class Facet
00071 {
00072 protected:
00073     FacetImpl* impl;
00074 
00075     Facet(FacetImpl* impl) throw ();
00076 
00077 public:
00078     explicit Facet(const std::string& name) throw ();
00079     Facet() throw ();
00080     Facet(const Facet& f) throw ();
00081     ~Facet() throw ();
00082     Facet& operator=(const Facet& f) throw ();
00083 
00084     bool operator==(const Facet& f) const throw ();
00085     bool operator<(const Facet& f) const throw ();
00086 
00087     operator bool() const throw ();
00088 
00089     const std::string& name() const throw ();
00090 
00091     const std::string& sdesc() const throw ();
00092     const std::string& ldesc() const throw ();
00093     const std::string& fulldata() const throw ();
00094 
00095     void sdesc(const std::string& desc) throw ();
00096     void ldesc(const std::string& desc) throw ();
00097     void fulldata(const std::string& desc) throw ();
00098 
00099     Tag obtainTag(const std::string& name) throw ();
00100 
00101     bool hasTag(const std::string& name) const throw ();
00102     Tag getTag(const std::string& name) const throw ();
00103     const TagSet& tags() const throw ();
00104 
00105     friend class Tag;
00106     friend class FacetSet;
00107 };
00108 
00109 };
00110 
00111 // vim:set ts=3 sw=3:
00112 #endif

Generated on Sun Jan 23 02:09:10 2005 for libtagcoll by  doxygen 1.4.0