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()15SharedXcharMap<T>::SharedXcharMap() 16 { 17 } 18 19 template<class T> SharedXcharMap(T defaultValue)20SharedXcharMap<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()27XcharMap<T>::XcharMap() 28 : ptr_(0) 29 { 30 } 31 32 template<class T> XcharMap(T defaultValue)33XcharMap<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)40void 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