fixed: auto_ptr -> unique_ptr
[opensg.git] / Source / System / FileIO / ScanParseSkel / OSGScanParseFieldTypeMapper.inl
blob4d6a10d287507f1fff1b3cdd55e99ac57d6e27b4
1 /*---------------------------------------------------------------------------*\
2  *                                OpenSG                                     *
3  *                                                                           *
4  *                                                                           *
5  *             Copyright (C) 2000-2002 by the OpenSG Forum                   *
6  *                                                                           *
7  *                            www.opensg.org                                 *
8  *                                                                           *
9  *   contact: dirk@opensg.org, gerrit.voss@vossg.org, jbehr@zgdv.de          *
10  *                                                                           *
11 \*---------------------------------------------------------------------------*/
12 /*---------------------------------------------------------------------------*\
13  *                                License                                    *
14  *                                                                           *
15  * This library is free software; you can redistribute it and/or modify it   *
16  * under the terms of the GNU Library General Public License as published    *
17  * by the Free Software Foundation, version 2.                               *
18  *                                                                           *
19  * This library is distributed in the hope that it will be useful, but       *
20  * WITHOUT ANY WARRANTY; without even the implied warranty of                *
21  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU         *
22  * Library General Public License for more details.                          *
23  *                                                                           *
24  * You should have received a copy of the GNU Library General Public         *
25  * License along with this library; if not, write to the Free Software       *
26  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.                 *
27  *                                                                           *
28 \*---------------------------------------------------------------------------*/
29 /*---------------------------------------------------------------------------*\
30  *                                Changes                                    *
31  *                                                                           *
32  *                                                                           *
33  *                                                                           *
34  *                                                                           *
35  *                                                                           *
36  *                                                                           *
37 \*---------------------------------------------------------------------------*/
39 OSG_BEGIN_NAMESPACE
41 /*-------------------------------------------------------------------------*/
42 /*                            Constructors                                 */
44 template <class BaseT> inline
45 ScanParseFieldTypeMapper<BaseT>::ScanParseFieldTypeMapper(void) :
46     Inherited(),
47     _mIntExt (),
48     _mExtInt ()
51     Inherited::setMapTypeIds(true);
54 /*-------------------------------------------------------------------------*/
55 /*                             Destructor                                  */
57 template <class BaseT> inline
58 ScanParseFieldTypeMapper<BaseT>::~ScanParseFieldTypeMapper(void)
62 /*-------------------------------------------------------------------------*/
63 /*                                Set                                      */
65 template <class BaseT> inline
66 void ScanParseFieldTypeMapper<BaseT>::setIntExtMapping(
67     UInt32            uiMappedType,
68     BuildInFieldTypes eBuildInType)
70     _mExtInt[uiMappedType] = eBuildInType;
73 template <class BaseT> inline
74 void ScanParseFieldTypeMapper<BaseT>::setExtIntMapping(
75     BuildInFieldTypes eBuildInType,
76     UInt32            uiMappedType)
78     _mIntExt[eBuildInType] = uiMappedType;
81 /*-------------------------------------------------------------------------*/
82 /*                                Map                                      */
84 template <class BaseT> inline
85 Int32 ScanParseFieldTypeMapper<BaseT>::mapExtIntFieldType(
86     const Char8 *,
87     const Int32  iFieldTypeId)
89     typename ExtIntMap::iterator gMIt = _mExtInt.find(iFieldTypeId);
91     if(gMIt != _mExtInt.end())
92     {
93         return gMIt->second;
94     }
95     else
96     {
97         return -iFieldTypeId;
98     }
101 template <class BaseT> inline
102 Int32 ScanParseFieldTypeMapper<BaseT>::mapIntExtFieldType(
103     const Char8 *,
104     const Int32  iFieldTypeId)
106     typename IntExtMap::iterator gMIt = _mIntExt.find(
107         BuildInFieldTypes(iFieldTypeId));
109     if(gMIt != _mIntExt.end())
110     {
111         return gMIt->second;
112     }
113     else
114     {
115         return -iFieldTypeId;
116     }
119 OSG_END_NAMESPACE