3065 some functions in the tcp module can be static
[unleashed.git] / usr / src / cmd / man / src / util / nsgmls.src / include / XcharMap.h
blob96c705de000a8e98630bd69bdd2f53e3e129d76a
1 // Copyright (c) 1994 James Clark
2 // See the file COPYING for copying permission.
3 #pragma ident "%Z%%M% %I% %E% SMI"
5 #ifndef XcharMap_INCLUDED
6 #define XcharMap_INCLUDED 1
8 #include "types.h"
9 #include "Resource.h"
10 #include "Ptr.h"
11 #include "constant.h"
13 #ifdef SP_NAMESPACE
14 namespace SP_NAMESPACE {
15 #endif
17 template<class T>
18 class SharedXcharMap : public Resource {
19 public:
20 SharedXcharMap();
21 SharedXcharMap(T defaultValue);
22 T *ptr() { return v + 1; }
23 private:
24 T v[2 + charMax];
27 template<class T>
28 class XcharMap {
29 public:
30 XcharMap();
31 XcharMap(T defaultValue);
32 T operator[](Xchar c) const { return ptr_[c]; }
33 void setRange(Char min, Char max, T val);
34 void setChar(Char c, T val) { ptr_[c] = val; }
35 void setEe(T val) { ptr_[-1] = val; }
36 void clear() { ptr_ = 0; sharedMap_.clear(); }
37 private:
38 T *ptr_;
39 Ptr<SharedXcharMap<T> > sharedMap_;
42 #ifdef SP_NAMESPACE
44 #endif
46 #endif /* not XcharMap_INCLUDED */
48 #ifdef SP_DEFINE_TEMPLATES
49 #include "XcharMap.cxx"
50 #endif