2 // Created: Tue May 18 17:00:25 2004
3 // Author: Sergey ZARITCHNY <szy@opencascade.com>
4 // Copyright: Open CasCade S.A. 2004
6 #include <BinTools.ixx>
7 #include <FSD_FileHeader.hxx>
8 #include <Storage_StreamTypeMismatchError.hxx>
10 //=======================================================================
13 //=======================================================================
15 Standard_OStream& BinTools::PutBool(Standard_OStream& OS, const Standard_Boolean aValue)
17 OS.put((Standard_Byte)aValue);
22 //=======================================================================
23 //function : PutInteger
25 //=======================================================================
27 Standard_OStream& BinTools::PutInteger(Standard_OStream& OS, const Standard_Integer aValue)
29 Standard_Integer anIntValue = aValue;
31 anIntValue = InverseInt (aValue);
33 OS.write((char*)&anIntValue, sizeof(Standard_Integer));
38 //=======================================================================
41 //=======================================================================
43 Standard_OStream& BinTools::PutReal(Standard_OStream& OS, const Standard_Real aValue)
45 Standard_Real aRValue = aValue;
47 aRValue = InverseReal (aValue);
49 OS.write((char*)&aRValue, sizeof(Standard_Real));
53 //=======================================================================
54 //function : PutExtChar
56 //=======================================================================
58 Standard_OStream& BinTools::PutExtChar(Standard_OStream& OS, const Standard_ExtCharacter aValue)
60 Standard_ExtCharacter aSValue = aValue;
62 aSValue = InverseExtChar (aValue);
64 OS.write((char*)&aSValue, sizeof(Standard_ExtCharacter));
67 //=======================================================================
70 //=======================================================================
72 Standard_IStream& BinTools::GetReal(Standard_IStream& IS, Standard_Real& aValue)
74 if(!IS.read ((char*)&aValue, sizeof(Standard_Real)))
75 Storage_StreamTypeMismatchError::Raise();
77 aValue = InverseReal (aValue);
82 //=======================================================================
83 //function : GetInteger
85 //=======================================================================
87 Standard_IStream& BinTools::GetInteger(Standard_IStream& IS, Standard_Integer& aValue)
89 if(!IS.read ((char*)&aValue, sizeof(Standard_Integer)))
90 Storage_StreamTypeMismatchError::Raise();;
92 aValue = InverseInt (aValue);
97 //=======================================================================
98 //function : GetExtChar
100 //=======================================================================
102 Standard_IStream& BinTools::GetExtChar(Standard_IStream& IS, Standard_ExtCharacter& theValue)
104 if(!IS.read ((char*)&theValue, sizeof(Standard_ExtCharacter)))
105 Storage_StreamTypeMismatchError::Raise();;
107 theValue = InverseExtChar (theValue);
112 //=======================================================================
115 //=======================================================================
117 Standard_IStream& BinTools::GetBool(Standard_IStream& IS, Standard_Boolean& aValue)
119 aValue = (Standard_Boolean)IS.get();