mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-10 18:51:21 +03:00
Got rid of warning -Wunused-variable In FSD_File, use template specialization instead of comparison of sizeof() to specific value in if statement, thus eliminating warning "constant value in conditional expression"
145 lines
4.8 KiB
C++
Executable File
145 lines
4.8 KiB
C++
Executable File
// Created on: 2008-06-20
|
|
// Copyright (c) 1998-1999 Matra Datavision
|
|
// Copyright (c) 1999-2012 OPEN CASCADE SAS
|
|
//
|
|
// The content of this file is subject to the Open CASCADE Technology Public
|
|
// License Version 6.5 (the "License"). You may not use the content of this file
|
|
// except in compliance with the License. Please obtain a copy of the License
|
|
// at http://www.opencascade.org and read it completely before using this file.
|
|
//
|
|
// The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
|
|
// main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
|
|
//
|
|
// The Original Code and all software distributed under the License is
|
|
// distributed on an "AS IS" basis, without warranty of any kind, and the
|
|
// Initial Developer hereby disclaims all such warranties, including without
|
|
// limitation, any warranties of merchantability, fitness for a particular
|
|
// purpose or non-infringement. Please see the License for the specific terms
|
|
// and conditions governing the rights and limitations under the License.
|
|
|
|
|
|
#ifndef _FSD_FileHeader_HeaderFile
|
|
#define _FSD_FileHeader_HeaderFile
|
|
|
|
struct FSD_FileHeader {
|
|
Standard_Integer testindian;
|
|
Standard_Integer binfo;
|
|
Standard_Integer einfo;
|
|
Standard_Integer bcomment;
|
|
Standard_Integer ecomment;
|
|
Standard_Integer btype;
|
|
Standard_Integer etype;
|
|
Standard_Integer broot;
|
|
Standard_Integer eroot;
|
|
Standard_Integer bref;
|
|
Standard_Integer eref;
|
|
Standard_Integer bdata;
|
|
Standard_Integer edata;
|
|
};
|
|
|
|
#ifndef DO_INVERSE
|
|
#if defined ( SOLARIS ) || defined ( IRIX )
|
|
#define DO_INVERSE 1
|
|
#else
|
|
#define DO_INVERSE 0
|
|
#endif
|
|
#endif
|
|
|
|
//=======================================================================
|
|
//function : InverseInt
|
|
//purpose : Inverses bytes in the word
|
|
//=======================================================================
|
|
|
|
inline Standard_Integer InverseInt (const Standard_Integer theValue)
|
|
{
|
|
return (0 | (( theValue & 0x000000ff ) << 24 )
|
|
| (( theValue & 0x0000ff00 ) << 8 )
|
|
| (( theValue & 0x00ff0000 ) >> 8 )
|
|
| (( theValue >> 24 ) & 0x000000ff ) );
|
|
}
|
|
|
|
//=======================================================================
|
|
//function : InverseLong
|
|
//purpose : Inverses bytes in the long word
|
|
//=======================================================================
|
|
|
|
inline long InverseLong (const long theValue)
|
|
{
|
|
return (long) InverseInt ((Standard_Integer) theValue);
|
|
}
|
|
|
|
//=======================================================================
|
|
//function : InverseExtChar
|
|
//purpose : Inverses bytes in the extended character
|
|
//=======================================================================
|
|
|
|
inline Standard_ExtCharacter InverseExtChar (const Standard_ExtCharacter theValue)
|
|
{
|
|
return (0 | (( theValue & 0x00ff ) << 8 )
|
|
| (( theValue & 0xff00 ) >> 8 ) );
|
|
}
|
|
|
|
//=======================================================================
|
|
//function : InverseReal
|
|
//purpose : Inverses bytes in the real value
|
|
//=======================================================================
|
|
|
|
inline Standard_Real InverseReal (const Standard_Real theValue)
|
|
{
|
|
Standard_Real aResult;
|
|
Standard_Integer *i = (Standard_Integer*) &theValue;
|
|
Standard_Integer *j = (Standard_Integer*) &aResult;
|
|
j[1] = InverseInt (i[0]);
|
|
j[0] = InverseInt (i[1]);
|
|
return aResult;
|
|
}
|
|
|
|
//=======================================================================
|
|
//function : InverseShortReal
|
|
//purpose : Inverses bytes in the short real value
|
|
//=======================================================================
|
|
|
|
inline Standard_ShortReal InverseShortReal (const Standard_ShortReal theValue)
|
|
{
|
|
Standard_ShortReal aResult;
|
|
Standard_Integer *i = (Standard_Integer*) &aResult;
|
|
*i = InverseInt (*(Standard_Integer*) &theValue);
|
|
return aResult;
|
|
}
|
|
|
|
//=======================================================================
|
|
//function : InverseSize
|
|
//purpose : Inverses bytes in size_t type instance
|
|
//=======================================================================
|
|
|
|
template<int size>
|
|
inline Standard_Size InverseSizeSpecialized (const Standard_Size theValue, int);
|
|
|
|
template<>
|
|
inline Standard_Size InverseSizeSpecialized <4> (const Standard_Size theValue, int)
|
|
{
|
|
return (0 | (( theValue & 0x000000ff ) << 24 )
|
|
| (( theValue & 0x0000ff00 ) << 8 )
|
|
| (( theValue & 0x00ff0000 ) >> 8 )
|
|
| (( theValue >> 24 ) & 0x000000ff ) );
|
|
}
|
|
|
|
template<>
|
|
inline Standard_Size InverseSizeSpecialized <8> (const Standard_Size theValue, int)
|
|
{
|
|
Standard_Size aResult;
|
|
Standard_Integer *i = (Standard_Integer*) &theValue;
|
|
Standard_Integer *j = (Standard_Integer*) &aResult;
|
|
j[1] = InverseInt (i[0]);
|
|
j[0] = InverseInt (i[1]);
|
|
return aResult;
|
|
}
|
|
|
|
inline Standard_Size InverseSize (const Standard_Size theValue)
|
|
{
|
|
return InverseSizeSpecialized <sizeof(Standard_Size)> (theValue, 0);
|
|
}
|
|
|
|
|
|
#endif
|