fixed: auto_ptr -> unique_ptr
[opensg.git] / Source / System / FileIO / OpenFlight / OSGOFRecords.inl
blobc697107dbb207e1bcfaeb8de829e8e8833e57d92
1 /*---------------------------------------------------------------------------*\
2  *                                OpenSG                                     *
3  *                                                                           *
4  *                                                                           *
5  *                Copyright (C) 2011 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 \*---------------------------------------------------------------------------*/
30 OSG_BEGIN_NAMESPACE
32 inline
33 void OFRecord::readChar8(std::istream &is, Char8  *cVal, UInt32 iSize)
35     is.read(cVal, iSize);
38 template<class ValueT> inline
39 UInt32 OFRecord::readVal(std::istream &is, ValueT &val)
41     is.read(reinterpret_cast<char *>(&val), sizeof(ValueT));
43     val = osgNetToHost<ValueT>(val);
45     return sizeof(ValueT);
48 template<> inline
49 UInt32 OFRecord::readVal<Int8>(std::istream &is, Int8 &val)
51     is.read(reinterpret_cast<char *>(&val), sizeof(Int8));
53     return sizeof(Int8);
56 template<> inline
57 UInt32 OFRecord::readVal<UInt8>(std::istream &is, UInt8 &val)
59     is.read(reinterpret_cast<char *>(&val), sizeof(UInt8));
61     return sizeof(UInt8);
64 template <> inline
65 UInt32 OFRecord::readVal<Real32>(std::istream &is, Real32 &val)
67     UInt32 v;
68     is.read(reinterpret_cast<char *>(&v), sizeof(UInt32));
70     val = osgNetToHostFP(v);
72     return sizeof(Real32);
75 template <> inline
76 UInt32 OFRecord::readVal<Real64>(std::istream &is, Real64 &val)
78     UInt64 v;
79     is.read(reinterpret_cast<char *>(&v), sizeof(UInt64));
81     val = osgNetToHostFP(v);
83     return sizeof(Real64);
86 OSG_END_NAMESPACE