CMS 3D CMS Logo

Public Member Functions | Private Types | Static Private Member Functions | Private Attributes

TagName Class Reference

#include <TagName.h>

List of all members.

Public Member Functions

std::string operator() () const
bool operator< (const TagName &n) const
bool sameName (const TagName &tn) const
const std::string & str () const
 TagName ()
 TagName (const std::string &name)

Private Types

typedef unsigned int count_type
typedef std::map< std::string,
unsigned int > 
Registry

Static Private Member Functions

static count_type count ()
static Registry::iterator regName (const std::string &s)

Private Attributes

count_type id_
Registry::iterator name_

Detailed Description

Definition at line 9 of file TagName.h.


Member Typedef Documentation

typedef unsigned int TagName::count_type [private]

Definition at line 33 of file TagName.h.

typedef std::map<std::string,unsigned int> TagName::Registry [private]

Definition at line 32 of file TagName.h.


Constructor & Destructor Documentation

TagName::TagName ( ) [inline]

Definition at line 13 of file TagName.h.

{}
TagName::TagName ( const std::string &  name) [inline, explicit]

Definition at line 15 of file TagName.h.

    : name_(regName(name)), id_(count()) 
    { };

Member Function Documentation

static count_type TagName::count ( void  ) [inline, static, private]

Definition at line 52 of file TagName.h.

References i.

                             {
    static count_type i=0;
    ++i;
    return i;
   } 
std::string TagName::operator() ( ) const [inline]

Definition at line 21 of file TagName.h.

References name_.

{ return name_->first; }
bool TagName::operator< ( const TagName n) const [inline]

Definition at line 27 of file TagName.h.

References id_.

                                          {
    return (id_ < n.id_);
  }
static Registry::iterator TagName::regName ( const std::string &  s) [inline, static, private]

Definition at line 38 of file TagName.h.

                                                       {
    static Registry reg;
    Registry::size_type sz = reg.size();
    Registry::value_type val(s, sz);
    /*
    std::pair<Registry::iterator, bool> insert = reg.insert(val);
    if (!insert.second) {  
      sz = insert.first->second;
    }  
    return insert.first;
    */
    return reg.insert(val).first;
  }
bool TagName::sameName ( const TagName tn) const [inline]

Definition at line 23 of file TagName.h.

References name_.

Referenced by TinyDomTest::allNodes().

                                          {
    return (name_ == tn.name_);
  }
const std::string& TagName::str ( ) const [inline]

Definition at line 19 of file TagName.h.

References name_.

{ return name_->first; }

Member Data Documentation

Definition at line 36 of file TagName.h.

Referenced by operator<().

Registry::iterator TagName::name_ [private]

Definition at line 35 of file TagName.h.

Referenced by operator()(), sameName(), and str().