Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
cpdf_number.cpp
Go to the documentation of this file.
1
// Copyright 2016 The PDFium Authors
2
// Use of this source code is governed by a BSD-style license that can be
3
// found in the LICENSE file.
4
5
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6
7
#
include
"core/fpdfapi/parser/cpdf_number.h"
8
9
#
include
<
sstream
>
10
11
#
include
"core/fpdfapi/edit/cpdf_contentstream_write_utils.h"
12
#
include
"core/fxcrt/fx_stream.h"
13
#
include
"core/fxcrt/fx_string_wrappers.h"
14
15
namespace
{
16
17
ByteString
FloatToString(
float
value) {
18
fxcrt::ostringstream sstream;
19
WriteFloat(sstream, value);
20
return
ByteString
(sstream);
21
}
22
23
}
// namespace
24
25
CPDF_Number::CPDF_Number() =
default
;
26
27
CPDF_Number::CPDF_Number(
int
value) : number_(value) {}
28
29
CPDF_Number::CPDF_Number(
float
value) : number_(value) {}
30
31
CPDF_Number::CPDF_Number(
ByteStringView
str) : number_(str) {}
32
33
CPDF_Number::~
CPDF_Number
() =
default
;
34
35
CPDF_Object
::
Type
CPDF_Number::
GetType
()
const
{
36
return
kNumber
;
37
}
38
39
RetainPtr
<
CPDF_Object
> CPDF_Number::
Clone
()
const
{
40
return
number_.IsInteger()
41
? pdfium::MakeRetain<CPDF_Number>(number_.GetSigned())
42
: pdfium::MakeRetain<CPDF_Number>(number_.GetFloat());
43
}
44
45
float
CPDF_Number::
GetNumber
()
const
{
46
return
number_.GetFloat();
47
}
48
49
int
CPDF_Number::
GetInteger
()
const
{
50
return
number_.GetSigned();
51
}
52
53
CPDF_Number* CPDF_Number::
AsMutableNumber
() {
54
return
this
;
55
}
56
57
void
CPDF_Number::
SetString
(
const
ByteString
& str) {
58
number_ = FX_Number(str.AsStringView());
59
}
60
61
ByteString
CPDF_Number::
GetString
()
const
{
62
return
number_.IsInteger() ? ByteString::FormatInteger(number_.GetSigned())
63
: FloatToString(GetNumber());
64
}
65
66
bool
CPDF_Number::
WriteTo
(
IFX_ArchiveStream
* archive,
67
const
CPDF_Encryptor
* encryptor)
const
{
68
return
archive
->
WriteString
(
" "
) &&
69
archive
->
WriteString
(
GetString
(
)
.AsStringView()
)
;
70
}
ByteString
fxcrt::ByteString ByteString
Definition
bytestring.h:180
CPDF_Encryptor
Definition
cpdf_encryptor.h:18
CPDF_Number::WriteTo
bool WriteTo(IFX_ArchiveStream *archive, const CPDF_Encryptor *encryptor) const override
Definition
cpdf_number.cpp:66
CPDF_Number::GetNumber
float GetNumber() const override
Definition
cpdf_number.cpp:45
CPDF_Number::GetInteger
int GetInteger() const override
Definition
cpdf_number.cpp:49
CPDF_Number::Clone
RetainPtr< CPDF_Object > Clone() const override
Definition
cpdf_number.cpp:39
CPDF_Number::SetString
void SetString(const ByteString &str) override
Definition
cpdf_number.cpp:57
CPDF_Number::~CPDF_Number
~CPDF_Number() override
CPDF_Number::GetString
ByteString GetString() const override
Definition
cpdf_number.cpp:61
CPDF_Number::AsMutableNumber
CPDF_Number * AsMutableNumber() override
Definition
cpdf_number.cpp:53
CPDF_Number::GetType
Type GetType() const override
Definition
cpdf_number.cpp:35
CPDF_Object
Definition
cpdf_object.h:50
CPDF_Object::Type
Type
Definition
cpdf_object.h:53
CPDF_Object::kNumber
@ kNumber
Definition
cpdf_object.h:55
IFX_ArchiveStream
Definition
fx_stream.h:32
IFX_WriteStream::WriteString
bool WriteString(ByteStringView str)
Definition
fx_stream.cpp:46
fxcrt::RetainPtr
Definition
retain_ptr.h:28
ByteStringView
fxcrt::ByteStringView ByteStringView
Definition
string_view_template.h:325
qtwebengine
src
3rdparty
chromium
third_party
pdfium
core
fpdfapi
parser
cpdf_number.cpp
Generated on
for Qt by
1.18.0