Coverage Report

Created: 2026-09-28 10:59

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/libreoffice/lotuswordpro/inc/lwpobjhdr.hxx
Line
Count
Source
1
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2
/*************************************************************************
3
 *
4
 *  The Contents of this file are made available subject to the terms of
5
 *  either of the following licenses
6
 *
7
 *         - GNU Lesser General Public License Version 2.1
8
 *         - Sun Industry Standards Source License Version 1.1
9
 *
10
 *  Sun Microsystems Inc., October, 2000
11
 *
12
 *  GNU Lesser General Public License Version 2.1
13
 *  =============================================
14
 *  Copyright 2000 by Sun Microsystems, Inc.
15
 *  901 San Antonio Road, Palo Alto, CA 94303, USA
16
 *
17
 *  This library is free software; you can redistribute it and/or
18
 *  modify it under the terms of the GNU Lesser General Public
19
 *  License version 2.1, as published by the Free Software Foundation.
20
 *
21
 *  This library is distributed in the hope that it will be useful,
22
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
23
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
24
 *  Lesser General Public License for more details.
25
 *
26
 *  You should have received a copy of the GNU Lesser General Public
27
 *  License along with this library; if not, write to the Free Software
28
 *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
29
 *  MA  02111-1307  USA
30
 *
31
 *
32
 *  Sun Industry Standards Source License Version 1.1
33
 *  =================================================
34
 *  The contents of this file are subject to the Sun Industry Standards
35
 *  Source License Version 1.1 (the "License"); You may not use this file
36
 *  except in compliance with the License. You may obtain a copy of the
37
 *  License at http://www.openoffice.org/license.html.
38
 *
39
 *  Software provided under this License is provided on an "AS IS" basis,
40
 *  WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
41
 *  WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
42
 *  MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
43
 *  See the License for the specific provisions governing your rights and
44
 *  obligations concerning the Software.
45
 *
46
 *  The Initial Developer of the Original Code is: IBM Corporation
47
 *
48
 *  Copyright: 2008 by IBM Corporation
49
 *
50
 *  All Rights Reserved.
51
 *
52
 *  Contributor(s): _______________________________________
53
 *
54
 *
55
 ************************************************************************/
56
/*************************************************************************
57
 * @file
58
 *  For LWP filter architecture prototype
59
 ************************************************************************/
60
61
#ifndef INCLUDED_LOTUSWORDPRO_INC_LWPOBJHDR_HXX
62
#define INCLUDED_LOTUSWORDPRO_INC_LWPOBJHDR_HXX
63
64
#include <config_lgpl.h>
65
#include "lwpobjid.hxx"
66
67
/**
68
 * @brief   Base class of all Lwp VO objects
69
*/
70
class LwpObjectHeader
71
{
72
public:
73
    LwpObjectHeader();
74
private:
75
    sal_uInt32 m_nTag;
76
    LwpObjectID m_ID;
77
    sal_uInt32 m_nSize;     //Data size
78
    bool m_bCompressed;
79
80
    //localize the following members to save memory
81
    //sal_uInt8 m_nFlagBits;
82
    //sal_uInt32 m_nVersionID;
83
    //sal_uInt32 m_nRefCount;
84
    //sal_uInt32 m_nNextVersionOffset;
85
    //sal_uInt32 m_nNextVersionID;
86
    //sal_uInt32 m_nHeaderSize;
87
88
    enum
89
    {
90
        VERSION_BITS            = 0x03,
91
        DEFAULT_VERSION         = 0x00,
92
        ONE_BYTE_VERSION        = 0x01,
93
        TWO_BYTE_VERSION        = 0x02,
94
        FOUR_BYTE_VERSION       = 0x03,
95
96
        REFCOUNT_BITS           = 0x0C,
97
        ONE_BYTE_REFCOUNT       = 0x04,
98
        TWO_BYTE_REFCOUNT       = 0x08,
99
        FOUR_BYTE_REFCOUNT      = 0x0C,
100
101
        SIZE_BITS               = 0x30,
102
        ONE_BYTE_SIZE           = 0x10,
103
        TWO_BYTE_SIZE           = 0x20,
104
        FOUR_BYTE_SIZE          = 0x30,
105
106
        HAS_PREVOFFSET          = 0x40,
107
        DATA_COMPRESSED     = 0x80
108
    };
109
110
public:
111
    bool Read(LwpSvStream &pStrm);
112
    inline sal_uInt32 GetTag() const;
113
    inline sal_uInt32 GetSize() const;
114
    inline LwpObjectID& GetID();
115
    inline bool IsCompressed() const;
116
};
117
118
inline sal_uInt32 LwpObjectHeader::GetTag() const
119
3.37M
{
120
3.37M
    return m_nTag;
121
3.37M
}
122
inline sal_uInt32 LwpObjectHeader::GetSize() const
123
2.47M
{
124
2.47M
    return m_nSize;
125
2.47M
}
126
inline LwpObjectID& LwpObjectHeader::GetID()
127
14.0M
{
128
14.0M
    return m_ID;
129
14.0M
}
130
inline bool LwpObjectHeader::IsCompressed() const
131
2.46M
{
132
2.46M
    return m_bCompressed;
133
2.46M
}
134
#endif
135
136
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */