Open Chinese Convert
1.4.0
A project for conversion between Traditional and Simplified Chinese
Toggle main menu visibility
Loading...
Searching...
No Matches
src
ConfigBasedConverter.hpp
1
/*
2
* Open Chinese Convert
3
*
4
* Copyright 2010-2026 Carbo Kuo and contributors
5
*
6
* Licensed under the Apache License, Version 2.0 (the "License");
7
* you may not use this file except in compliance with the License.
8
* You may obtain a copy of the License at
9
*
10
* http://www.apache.org/licenses/LICENSE-2.0
11
*
12
* Unless required by applicable law or agreed to in writing, software
13
* distributed under the License is distributed on an "AS IS" BASIS,
14
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
* See the License for the specific language governing permissions and
16
* limitations under the License.
17
*/
18
19
#pragma once
20
21
#include <utility>
22
23
#include "Converter.hpp"
24
25
namespace
opencc {
37
class
ConfigBasedConverter :
public
Converter
{
38
public
:
39
ConfigBasedConverter(ConverterPtr normConverter, ConverterPtr mainConverter)
40
: normConverter(std::move(normConverter)),
41
mainConverter(std::move(mainConverter)) {}
42
43
std::string
Convert
(std::string_view text)
const override
{
44
return
mainConverter->Convert(normConverter->Convert(text));
45
}
46
47
ConversionInspectionResult
Inspect
(std::string_view text)
const override
{
48
ConversionInspectionResult
result;
49
result.
input
= text;
50
ConversionInspectionResult
normResult = normConverter->Inspect(text);
51
ConversionInspectionResult
mainResult =
52
mainConverter->Inspect(normResult.
output
);
53
result.
pipelineStages
= {std::move(normResult), std::move(mainResult)};
54
result.
output
= result.
pipelineStages
.back().output;
55
return
result;
56
}
57
58
SegmentationPtr
GetSegmentation
()
const override
{
59
return
mainConverter->GetSegmentation();
60
}
61
62
ConversionChainPtr
GetConversionChain
()
const override
{
63
return
mainConverter->GetConversionChain();
64
}
65
66
private
:
67
const
ConverterPtr normConverter;
68
const
ConverterPtr mainConverter;
69
};
70
}
// namespace opencc
opencc::ConfigBasedConverter::GetConversionChain
ConversionChainPtr GetConversionChain() const override
Returns the conversion chain used by this converter, or nullptr if the converter has no single chain ...
Definition
ConfigBasedConverter.hpp:62
opencc::ConfigBasedConverter::GetSegmentation
SegmentationPtr GetSegmentation() const override
Returns the segmentation used by this converter, or nullptr if the converter has no single segmentati...
Definition
ConfigBasedConverter.hpp:58
opencc::ConfigBasedConverter::Inspect
ConversionInspectionResult Inspect(std::string_view text) const override
Converts text and returns a detailed inspection result that includes the initial segmentation,...
Definition
ConfigBasedConverter.hpp:47
opencc::ConfigBasedConverter::Convert
std::string Convert(std::string_view text) const override
Converts text and returns the result.
Definition
ConfigBasedConverter.hpp:43
opencc::Converter
Abstract base for full-text converters.
Definition
Converter.hpp:48
opencc::ConversionInspectionResult
Full inspection result returned by Converter::Inspect().
Definition
ConversionInspection.hpp:52
opencc::ConversionInspectionResult::pipelineStages
std::vector< ConversionInspectionResult > pipelineStages
Per-child-converter inspection results for a PipelineConverter.
Definition
ConversionInspection.hpp:68
opencc::ConversionInspectionResult::output
std::string output
The final converted output of this converter.
Definition
ConversionInspection.hpp:71
opencc::ConversionInspectionResult::input
std::string input
The original input text passed to Inspect().
Definition
ConversionInspection.hpp:54
Generated on
for Open Chinese Convert by
1.17.0