Blame nsgmls/StringSet.h

Packit 8a864e
// Copyright (c) 1994 James Clark
Packit 8a864e
// See the file COPYING for copying permission.
Packit 8a864e
Packit 8a864e
#ifndef StringSet_INCLUDED
Packit 8a864e
#define StringSet_INCLUDED 1
Packit 8a864e
Packit 8a864e
#include "StringC.h"
Packit 8a864e
#include "Hash.h"
Packit 8a864e
#include "Boolean.h"
Packit 8a864e
#include "OwnerTable.h"
Packit 8a864e
Packit 8a864e
#ifdef SP_NAMESPACE
Packit 8a864e
namespace SP_NAMESPACE {
Packit 8a864e
#endif
Packit 8a864e
Packit 8a864e
class StringSetKey {
Packit 8a864e
public:
Packit 8a864e
  static inline const StringC &key(const StringC &str) { return str; }
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
class StringSet {
Packit 8a864e
public:
Packit 8a864e
  StringSet();
Packit 8a864e
  Boolean add(const StringC &);	// return 1 if already there
Packit 8a864e
  void swap(StringSet &);
Packit 8a864e
  void clear();
Packit 8a864e
private:
Packit 8a864e
  StringSet(const StringSet &);	// undefined
Packit 8a864e
  void operator=(const StringSet &); // undefined
Packit 8a864e
  OwnerTable<StringC, StringC, Hash, StringSetKey> table_;
Packit 8a864e
};
Packit 8a864e
Packit 8a864e
inline
Packit 8a864e
void StringSet::clear()
Packit 8a864e
{
Packit 8a864e
  table_.clear();
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
#ifdef SP_NAMESPACE
Packit 8a864e
}
Packit 8a864e
#endif
Packit 8a864e
Packit 8a864e
#endif /* not StringSet_INCLUDED */