crashtesting: assert on reimport of docx export of ooo102874-2.doc
[LibreOffice.git] / idl / inc / bastype.hxx
blobff4938764c6e095e80e5f6f5a2ab1e7150e350cd
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
20 #pragma once
22 #include <sal/types.h>
23 #include <rtl/string.hxx>
25 class SvStringHashEntry;
26 class SvIdlDataBase;
27 class SvStream;
28 class SvTokenStream;
30 class SvBOOL
32 bool bVal:1,
33 bSet:1;
34 public:
35 SvBOOL() { bSet = bVal = false; }
36 SvBOOL( bool b ) : bVal( b ), bSet( false) {}
37 SvBOOL & operator = ( bool n ) { bVal = n; bSet = true; return *this; }
39 operator bool() const { return bVal; }
40 bool IsSet() const { return bSet; }
42 bool ReadSvIdl( SvStringHashEntry const * pName, SvTokenStream & rInStm );
46 class SvIdentifier
48 OString m_aStr;
49 sal_uInt32 nValue;
50 public:
51 SvIdentifier() : nValue( 0 ) {};
52 SvIdentifier(sal_uInt32 n) : nValue( n ) {};
54 void setString(const OString& rStr) { m_aStr = rStr; }
55 const OString& getString() const { return m_aStr; }
57 void ReadSvIdl( SvStringHashEntry const * pName, SvTokenStream & rInStm );
58 bool IsSet() const
60 return !m_aStr.isEmpty() || nValue != 0;
62 sal_uInt32 GetValue() const { return nValue; }
63 void SetValue( sal_uInt32 bVal ) { nValue = bVal; }
65 void ReadSvIdl( SvIdlDataBase &, SvTokenStream & rInStm );
69 bool ReadStringSvIdl( SvStringHashEntry const * pName, SvTokenStream & rInStm, OString& aString );
71 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */