36 void clear(
const uint64_t pos);
38 std::shared_ptr<Common::AbstractAccessByString> m_mainKeys;
39 StringsPoolIndex m_mainKeySize;
41 std::vector<LimaString>* m_cache;
45FsaStringsPoolPrivate::FsaStringsPoolPrivate():
54FsaStringsPoolPrivate::~FsaStringsPoolPrivate()
72 LINFO <<
"register main keys" ;
74 if (!m_d->m_additionalPool.
empty())
77 <<
"contains " << m_d->m_additionalPool[
static_cast<StringsPoolIndex
>(1)] );
79 if (mainKeys ==
nullptr)
84 m_d->m_mainKeys=mainKeys;
85 m_d->m_mainKeySize=m_d->m_mainKeys->getSize();
86 m_d->m_cache=
new std::vector<LimaString>(m_d->m_mainKeySize,
LimaString());
94 StringsPoolIndex res=
static_cast<StringsPoolIndex
>(m_d->m_mainKeys->getIndex(str));
95 if (res!=
static_cast<StringsPoolIndex
>(0))
97 QMutexLocker lock(&m_d->m_mutex);
99 if (cachedStr.size()==0)
106 return static_cast<StringsPoolIndex
>(m_d->m_mainKeySize + m_d->m_additionalPool[str]);
113 if (ind < m_d->m_mainKeySize)
115 QMutexLocker lock(&m_d->m_mutex);
117 if (ind ==
static_cast<StringsPoolIndex
>(0))
123 str=
LimaString(m_d->m_mainKeys->getSpelling(ind));
127 return m_d->m_additionalPool[
static_cast<StringsPoolIndex
>(ind - m_d->m_mainKeySize)];
#define LIMA_EXCEPTION(X)
This macro writes the message X to a previously configured error stream before throwing a LimaExcepti...
void registerMainKeys(std::shared_ptr< Common::AbstractAccessByString > mainKeys)
virtual ~FsaStringsPool()
StringsPoolIndex operator[](const LimaString &str)
void unregisterUser(void *p)
void registerUser(void *p)
void registerUser(void *p)
void unregisterUser(void *p)