1 // Copyright (c) 1994 James Clark
2 // See the file COPYING for copying permission.
3 #pragma ident	"%Z%%M%	%I%	%E% SMI"
4 
5 #ifndef XcharMap_DEF_INCLUDED
6 #define XcharMap_DEF_INCLUDED 1
7 
8 #include <stddef.h>
9 
10 #ifdef SP_NAMESPACE
11 namespace SP_NAMESPACE {
12 #endif
13 
14 template<class T>
SharedXcharMap()15 SharedXcharMap<T>::SharedXcharMap()
16 {
17 }
18 
19 template<class T>
SharedXcharMap(T defaultValue)20 SharedXcharMap<T>::SharedXcharMap(T defaultValue)
21 {
22   for (size_t i = 0; i < sizeof(v)/sizeof(v[0]); i++)
23     v[i] = defaultValue;
24 }
25 
26 template<class T>
XcharMap()27 XcharMap<T>::XcharMap()
28 : ptr_(0)
29 {
30 }
31 
32 template<class T>
XcharMap(T defaultValue)33 XcharMap<T>::XcharMap(T defaultValue)
34 : sharedMap_(new SharedXcharMap<T>(defaultValue))
35 {
36   ptr_ = sharedMap_->ptr();
37 }
38 
39 template<class T>
setRange(Char min,Char max,T val)40 void XcharMap<T>::setRange(Char min, Char max, T val)
41 {
42   if (min <= max) {
43     do {
44       ptr_[min] = val;
45     } while (min++ != max);
46   }
47 }
48 
49 #ifdef SP_NAMESPACE
50 }
51 #endif
52 
53 #endif /* not XcharMap_DEF_INCLUDED */
54