/************************************************************** * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * *************************************************************/ #ifndef _BASTYPE_HXX #define _BASTYPE_HXX #include #include #include #include #include class SvStringHashEntry; class SvIdlDataBase; class SvTokenStream; /******************** class SvUINT32 **********************************/ class SvUINT32 { sal_uInt32 nVal; public: SvUINT32() { nVal = 0; } SvUINT32( sal_uInt32 n ) : nVal( n ) {} SvUINT32 & operator = ( sal_uInt32 n ) { nVal = n; return *this; } operator sal_uInt32 &() { return nVal; } static sal_uInt32 Read( SvStream & rStm ); static void Write( SvStream & rStm, sal_uInt32 nVal ); friend SvStream& operator << (SvStream & rStm, const SvUINT32 & r ) { SvUINT32::Write( rStm, r.nVal ); return rStm; } friend SvStream& operator >> (SvStream & rStm, SvUINT32 & r ) { r.nVal = SvUINT32::Read( rStm ); return rStm; } }; /******************** class SvINT16 **********************************/ class SvINT16 { short nVal; public: SvINT16() { nVal = 0; } SvINT16( short n ) : nVal( n ) {} SvINT16 & operator = ( short n ) { nVal = n; return *this; } operator short &() { return nVal; } friend SvStream& operator << (SvStream & rStm, const SvINT16 & r ) { SvUINT32::Write( rStm, (sal_uInt32)r.nVal ); return rStm; } friend SvStream& operator >> (SvStream & rStm, SvINT16 & r ) { r.nVal = (short)SvUINT32::Read( rStm ); return rStm; } }; /******************** class SvUINT16 **********************************/ class SvUINT16 { sal_uInt16 nVal; public: SvUINT16() { nVal = 0; } SvUINT16( sal_uInt16 n ) : nVal( n ) {} SvUINT16 & operator = ( sal_uInt16 n ) { nVal = n; return *this; } operator sal_uInt16 &() { return nVal; } friend SvStream& operator << (SvStream & rStm, const SvUINT16 & r ) { SvUINT32::Write( rStm, (sal_uInt32)r.nVal ); return rStm; } friend SvStream& operator >> (SvStream & rStm, SvUINT16 & r ) { r.nVal = (sal_uInt16)SvUINT32::Read( rStm ); return rStm; } }; /******************** class SvINT32 **********************************/ class SvINT32 { sal_Int32 nVal; public: SvINT32() { nVal = 0; } SvINT32( sal_Int32 n ) : nVal( n ) {} SvINT32 & operator = ( sal_Int32 n ) { nVal = n; return *this; } operator sal_Int32 &() { return nVal; } friend SvStream& operator << (SvStream & rStm, const SvINT32 & r ) { SvUINT32::Write( rStm, (sal_uInt32)r.nVal ); return rStm; } friend SvStream& operator >> (SvStream & rStm, SvINT32 & r ) { r.nVal = (sal_Int32)SvUINT32::Read( rStm ); return rStm; } }; /******************** class Svint **********************************/ class Svint { int nVal; sal_Bool bSet; public: Svint() { nVal = bSet = 0; } Svint( int n ) : nVal( n ), bSet( sal_True ) {} Svint( int n, sal_Bool bSetP ) : nVal( n ), bSet( bSetP ) {} Svint & operator = ( int n ) { nVal = n; bSet = sal_True; return *this; } operator int ()const { return nVal; } sal_Bool IsSet() const { return bSet; } friend SvStream& operator << (SvStream & rStm, const Svint & r ) { SvUINT32::Write( rStm, (sal_uInt32)r.nVal ); rStm << r.bSet; return rStm; } friend SvStream& operator >> (SvStream & rStm, Svint & r ) { r.nVal = (int)SvUINT32::Read( rStm ); rStm >> r.bSet ; return rStm; } }; /******************** class SvBOOL **********************************/ class SvBOOL { sal_Bool nVal:1, bSet:1; public: SvBOOL() { bSet = nVal = sal_False; } SvBOOL( sal_Bool n ) : nVal( n ), bSet( sal_True ) {} SvBOOL( sal_Bool n, sal_Bool bSetP ) : nVal( n ), bSet( bSetP ) {} SvBOOL & operator = ( sal_Bool n ) { nVal = n; bSet = sal_True; return *this; } operator sal_Bool() const { return nVal; } #ifdef STC operator int() const { return nVal; } #endif sal_Bool Is() const { return nVal; } sal_Bool IsSet() const { return bSet; } friend SvStream& operator << (SvStream &, const SvBOOL &); friend SvStream& operator >> (SvStream &, SvBOOL &); #ifdef IDL_COMPILER sal_Bool ReadSvIdl( SvStringHashEntry * pName, SvTokenStream & rInStm ); sal_Bool WriteSvIdl( SvStringHashEntry * pName, SvStream & rOutStm ); ByteString GetSvIdlString( SvStringHashEntry * pName ); #endif }; /******************** class SvIdentifier **********************************/ class SvIdentifier : public ByteString { public: SvIdentifier(){}; SvIdentifier & operator = ( const ByteString & rStr ) { ByteString::operator =( rStr ); return *this; } friend SvStream& operator << (SvStream &, const SvIdentifier &); friend SvStream& operator >> (SvStream &, SvIdentifier &); sal_Bool IsSet() const { return Len() != 0; } #ifdef IDL_COMPILER sal_Bool ReadSvIdl( SvStringHashEntry * pName, SvTokenStream & rInStm ); sal_Bool WriteSvIdl( SvStringHashEntry * pName, SvStream & rOutStm, sal_uInt16 nTab ); #endif }; /******************** class SvIdentifier **********************************/ class SvNumberIdentifier : public SvIdentifier { sal_uInt32 nValue; // darf nicht benutzt werden sal_Bool ReadSvIdl( SvStringHashEntry * pName, SvTokenStream & rInStm ); public: SvNumberIdentifier() : nValue( 0 ) {}; sal_Bool IsSet() const { return SvIdentifier::IsSet() || nValue != 0; } sal_uInt32 GetValue() const { return nValue; } void SetValue( sal_uInt32 nVal ) { nValue = nVal; } friend SvStream& operator << (SvStream &, const SvNumberIdentifier &); friend SvStream& operator >> (SvStream &, SvNumberIdentifier &); #ifdef IDL_COMPILER sal_Bool ReadSvIdl( SvIdlDataBase &, SvTokenStream & rInStm ); sal_Bool ReadSvIdl( SvIdlDataBase &, SvStringHashEntry * pName, SvTokenStream & rInStm ); #endif }; /******************** class SvString **********************************/ class SvString : public ByteString { public: SvString(){}; SvString & operator = ( const ByteString & rStr ) { ByteString::operator =( rStr ); return *this; } sal_Bool IsSet() const { return Len() != 0; } friend SvStream& operator << (SvStream &, const SvString &); friend SvStream& operator >> (SvStream &, SvString &); #ifdef IDL_COMPILER sal_Bool ReadSvIdl( SvStringHashEntry * pName, SvTokenStream & rInStm ); sal_Bool WriteSvIdl( SvStringHashEntry * pName, SvStream & rOutStm, sal_uInt16 nTab ); #endif }; /******************** class SvHelpText **********************************/ class SvHelpText : public SvString { public: SvHelpText() {} #ifdef IDL_COMPILER sal_Bool ReadSvIdl( SvIdlDataBase &, SvTokenStream & rInStm ); sal_Bool WriteSvIdl( SvIdlDataBase & rBase, SvStream & rOutStm, sal_uInt16 nTab ); #endif }; /******************** class SvHelpContext *******************************/ class SvHelpContext : public SvNumberIdentifier { }; /******************** class SvUUId *************************************/ class SvUUId : public SvGlobalName { public: SvUUId() {} #ifdef IDL_COMPILER sal_Bool ReadSvIdl( SvIdlDataBase &, SvTokenStream & rInStm ); sal_Bool WriteSvIdl( SvStream & rOutStm ); #endif }; /******************** class SvVersion **********************************/ class SvVersion { sal_uInt16 nMajorVersion; sal_uInt16 nMinorVersion; public: SvVersion() : nMajorVersion( 1 ), nMinorVersion( 0 ) {} sal_Bool operator == ( const SvVersion & r ) { return (r.nMajorVersion == nMajorVersion) && (r.nMinorVersion == nMinorVersion); } sal_Bool operator != ( const SvVersion & r ) { return !(*this == r); } sal_uInt16 GetMajorVersion() const { return nMajorVersion; } sal_uInt16 GetMinorVersion() const { return nMinorVersion; } friend SvStream& operator << (SvStream &, const SvVersion &); friend SvStream& operator >> (SvStream &, SvVersion &); #ifdef IDL_COMPILER sal_Bool ReadSvIdl( SvTokenStream & rInStm ); sal_Bool WriteSvIdl( SvStream & rOutStm ); #endif }; #endif // _BASTYPE_HXX