Integration of OCCT 6.5.0 from SVN
[occt.git] / src / BinTools / BinTools.cxx
1 // File:        BinTools.cxx
2 // Created:     Tue May 18 17:00:25 2004
3 // Author:      Sergey ZARITCHNY <szy@opencascade.com>
4 // Copyright:   Open CasCade S.A. 2004
5
6 #include <BinTools.ixx>
7 #include <FSD_FileHeader.hxx>
8 #include <Storage_StreamTypeMismatchError.hxx>
9
10 //=======================================================================
11 //function : PutBool
12 //purpose  : 
13 //=======================================================================
14
15 Standard_OStream& BinTools::PutBool(Standard_OStream& OS, const Standard_Boolean aValue)
16 {
17   OS.put((Standard_Byte)aValue);
18   return OS;
19 }
20
21
22 //=======================================================================
23 //function : PutInteger
24 //purpose  : 
25 //=======================================================================
26
27 Standard_OStream& BinTools::PutInteger(Standard_OStream& OS, const Standard_Integer aValue)
28 {
29   Standard_Integer anIntValue = aValue;
30 #if DO_INVERSE
31       anIntValue = InverseInt (aValue);
32 #endif
33   OS.write((char*)&anIntValue, sizeof(Standard_Integer));  
34   return OS;
35 }
36
37
38 //=======================================================================
39 //function : PutReal
40 //purpose  : 
41 //=======================================================================
42
43 Standard_OStream& BinTools::PutReal(Standard_OStream& OS, const Standard_Real aValue)
44 {
45   Standard_Real aRValue = aValue;
46 #if DO_INVERSE
47       aRValue = InverseReal (aValue);
48 #endif
49   OS.write((char*)&aRValue, sizeof(Standard_Real));  
50   return OS;
51 }
52
53 //=======================================================================
54 //function : PutExtChar
55 //purpose  : 
56 //=======================================================================
57
58 Standard_OStream& BinTools::PutExtChar(Standard_OStream& OS, const Standard_ExtCharacter aValue)
59 {
60   Standard_ExtCharacter aSValue = aValue;
61 #if DO_INVERSE
62       aSValue = InverseExtChar (aValue);
63 #endif
64   OS.write((char*)&aSValue, sizeof(Standard_ExtCharacter));  
65   return OS;
66 }
67 //=======================================================================
68 //function : GetReal
69 //purpose  : 
70 //=======================================================================
71
72 Standard_IStream& BinTools::GetReal(Standard_IStream& IS, Standard_Real& aValue)
73 {
74   if(!IS.read ((char*)&aValue, sizeof(Standard_Real)))
75     Storage_StreamTypeMismatchError::Raise();
76 #if DO_INVERSE
77   aValue = InverseReal (aValue);
78 #endif
79   return IS;
80 }
81
82 //=======================================================================
83 //function : GetInteger
84 //purpose  : 
85 //=======================================================================
86
87 Standard_IStream& BinTools::GetInteger(Standard_IStream& IS, Standard_Integer& aValue)
88 {
89   if(!IS.read ((char*)&aValue, sizeof(Standard_Integer)))
90     Storage_StreamTypeMismatchError::Raise();;
91 #if DO_INVERSE
92   aValue = InverseInt (aValue);
93 #endif
94   return IS;
95 }
96
97 //=======================================================================
98 //function : GetExtChar
99 //purpose  : 
100 //=======================================================================
101
102 Standard_IStream& BinTools::GetExtChar(Standard_IStream& IS, Standard_ExtCharacter& theValue)
103 {
104   if(!IS.read ((char*)&theValue, sizeof(Standard_ExtCharacter)))
105     Storage_StreamTypeMismatchError::Raise();;
106 #if DO_INVERSE
107   theValue = InverseExtChar (theValue);
108 #endif
109   return IS;
110 }
111
112 //=======================================================================
113 //function : GetBool
114 //purpose  : 
115 //=======================================================================
116
117 Standard_IStream& BinTools::GetBool(Standard_IStream& IS, Standard_Boolean& aValue)
118 {
119   aValue = (Standard_Boolean)IS.get();
120   return IS;
121 }