LIMA
Libre Multilingual Analyzer — C++ API
Loading...
Searching...
No Matches
SingleConcatenatedEntry.cpp
Go to the documentation of this file.
1
// Copyright 2002-2013 CEA LIST
2
// SPDX-FileCopyrightText: 2022 CEA LIST <gael.de-chalendar@cea.fr>
3
//
4
// SPDX-License-Identifier: MIT
5
6
// NAUTITIA
7
//
8
// jys 1-OCT-2002
9
//
10
// SingleConcatenatedEntry is the way to access dictionary Concatenated word infos datas.
11
// SingleConcatenatedEntry manages recurent calls to lists of linguistic infos.
12
// Dictionaries in memory are specified in NA2002.r2128 JYS
13
// Dictionaries iterators are specified in NA2002.r2129 JYS
14
// <Len10><String>
15
// <Len1><lingInfo>
16
// ...
17
18
#include "
SingleConcatenatedEntry.h
"
19
20
#include "
common/misc/Exceptions.h
"
21
#include <wchar.h>
22
23
using namespace
Lima::Common::Misc
;
24
25
namespace
Lima
{
26
namespace
LinguisticProcessing {
27
namespace
Dictionary {
28
29
// Creates SingleConcatenatedEntry
30
SingleConcatenatedEntry::SingleConcatenatedEntry
() :
31
BinaryEntry
(),
32
m_stringStartAddr(NULL),
33
m_startAddr(NULL),
34
m_dictionaryEntry(NULL) {
35
}
36
37
// copy constructor. Copies the specified SingleConcatenatedEntry
38
// into self. Internal iteration pointers of self are reset
39
SingleConcatenatedEntry::SingleConcatenatedEntry
(
const
SingleConcatenatedEntry
& concatenated) :
40
BinaryEntry
(),
41
m_stringStartAddr(concatenated.m_stringStartAddr),
42
m_startAddr(concatenated.m_startAddr),
43
m_dictionaryEntry(NULL) {
44
reset
();
45
}
46
47
SingleConcatenatedEntry::SingleConcatenatedEntry
(
unsigned
char
*startAddr,
48
unsigned
char
*stringStartAddr) :
49
BinaryEntry
(),
50
m_stringStartAddr(stringStartAddr),
51
m_startAddr(startAddr),
52
m_dictionaryEntry(NULL) {
53
reset
();
54
}
55
56
// Destroys SingleConcatenatedEntry
57
SingleConcatenatedEntry::~SingleConcatenatedEntry
() {
58
}
59
60
// Assignment operator. Copies the specified SingleConcatenatedEntry
61
// into self. Returns a reference to self.
62
// After assignment, internal iteration pointers of self are reset
63
SingleConcatenatedEntry
&
SingleConcatenatedEntry::operator=
(
64
const
SingleConcatenatedEntry
& single) {
65
m_stringStartAddr = single.m_stringStartAddr;
66
m_startAddr = single.m_startAddr;
67
reset
();
68
return
*
this
;
69
}
70
71
// Resets iteration pointers
72
SingleConcatenatedEntry
&
SingleConcatenatedEntry::reset
() {
73
if
(m_startAddr != NULL) {
74
unsigned
char
*ptr = m_startAddr;
75
getEncodedNumber
(ptr);
// Skip <component>
76
m_dictionaryEntry = ptr;
77
}
78
else
79
m_dictionaryEntry = NULL;
80
return
*
this
;
81
}
82
83
// Returns true if self is empty
84
bool
SingleConcatenatedEntry::isEmpty
()
const
{
85
return
(m_startAddr == NULL);
86
}
87
88
// Returns component string
89
// If self is empty, EmptyEntryException is raised
90
Lima::LimaString
SingleConcatenatedEntry::component
()
const
{
91
if
(m_startAddr == NULL)
throw
EmptyEntryException
();
92
return
getUtf8StringNoMove
(m_stringStartAddr +
getEncodedNumberNoMove
(m_startAddr));
//component
93
}
94
95
// Returns dictionary entry address attached to the component, if exists
96
// If there is no dictionary entry, NULL is returned
97
// (to solve recursivity datas definition)
98
unsigned
char
*
SingleConcatenatedEntry::dictionaryEntryAddress
() {
99
if
(m_startAddr == NULL)
throw
EmptyEntryException
();
100
return
m_dictionaryEntry;
101
}
102
103
}
// closing namespace Dictionary
104
}
// closing namespace LinguisticProcessing
105
}
// closing namespace Lima
Exceptions.h
SingleConcatenatedEntry.h
Lima::EmptyEntryException
Definition
Exceptions.h:44
Lima::LinguisticProcessing::Dictionary::BinaryEntry
Definition
BinaryEntry.h:27
Lima::LinguisticProcessing::Dictionary::BinaryEntry::getEncodedNumber
uint64_t getEncodedNumber(unsigned char *&ptr) const
Definition
BinaryEntry.cpp:52
Lima::LinguisticProcessing::Dictionary::BinaryEntry::getUtf8StringNoMove
Lima::LimaString getUtf8StringNoMove(unsigned char *ptr) const
Definition
BinaryEntry.cpp:159
Lima::LinguisticProcessing::Dictionary::BinaryEntry::getEncodedNumberNoMove
uint64_t getEncodedNumberNoMove(unsigned char *ptr) const
Definition
BinaryEntry.cpp:73
Lima::LinguisticProcessing::Dictionary::SingleConcatenatedEntry
Definition
SingleConcatenatedEntry.h:28
Lima::LinguisticProcessing::Dictionary::SingleConcatenatedEntry::dictionaryEntryAddress
unsigned char * dictionaryEntryAddress()
Definition
SingleConcatenatedEntry.cpp:98
Lima::LinguisticProcessing::Dictionary::SingleConcatenatedEntry::isEmpty
bool isEmpty() const
Definition
SingleConcatenatedEntry.cpp:84
Lima::LinguisticProcessing::Dictionary::SingleConcatenatedEntry::operator=
SingleConcatenatedEntry & operator=(const SingleConcatenatedEntry &)
Definition
SingleConcatenatedEntry.cpp:63
Lima::LinguisticProcessing::Dictionary::SingleConcatenatedEntry::~SingleConcatenatedEntry
virtual ~SingleConcatenatedEntry()
Definition
SingleConcatenatedEntry.cpp:57
Lima::LinguisticProcessing::Dictionary::SingleConcatenatedEntry::SingleConcatenatedEntry
SingleConcatenatedEntry()
Definition
SingleConcatenatedEntry.cpp:30
Lima::LinguisticProcessing::Dictionary::SingleConcatenatedEntry::reset
SingleConcatenatedEntry & reset()
Definition
SingleConcatenatedEntry.cpp:72
Lima::LinguisticProcessing::Dictionary::SingleConcatenatedEntry::component
Lima::LimaString component() const
Definition
SingleConcatenatedEntry.cpp:90
Lima::Common::Misc
Definition
genericDocumentProperties.cpp:29
Lima
NAUTITIA.
Definition
AmosePluginsManager.h:15
Lima::LimaString
QString LimaString
Definition
LimaString.h:33
lima_linguisticprocessing
src
linguisticProcessing
core
Dictionary
SingleConcatenatedEntry.cpp
Generated by
1.9.8