本文整理汇总了C++中ConfigStorage::getChangeNumber方法的典型用法代码示例。如果您正苦于以下问题:C++ ConfigStorage::getChangeNumber方法的具体用法?C++ ConfigStorage::getChangeNumber怎么用?C++ ConfigStorage::getChangeNumber使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ConfigStorage
的用法示例。
在下文中一共展示了ConfigStorage::getChangeNumber方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: checkAliveAndFlags
bool TraceSvcJrd::checkAliveAndFlags(ULONG sesId, int& flags)
{
ConfigStorage* storage = TraceManager::getStorage();
bool alive = (m_chg_number == storage->getChangeNumber());
if (!alive)
{
// look if our session still alive
StorageGuard guard(storage);
TraceSession readSession(*getDefaultMemoryPool());
storage->restart();
while (storage->getNextSession(readSession))
{
if (readSession.ses_id == sesId)
{
alive = true;
flags = readSession.ses_flags;
break;
}
}
m_chg_number = storage->getChangeNumber();
}
return alive;
}
示例2: startSession
void TraceSvcJrd::startSession(TraceSession& session, bool interactive)
{
if (!TraceManager::pluginsCount())
{
m_svc.printf(false, "Can not start trace session. There are no trace plugins loaded\n");
return;
}
ConfigStorage* storage = TraceManager::getStorage();
{ // scope
StorageGuard guard(storage);
session.ses_auth = m_authBlock;
session.ses_user = m_user;
MetaName role = m_role;
UserId::makeRoleName(role, SQL_DIALECT_V6);
session.ses_role = role.c_str();
session.ses_flags = trs_active;
if (m_admin) {
session.ses_flags |= trs_admin;
}
if (interactive)
{
Guid guid;
GenerateGuid(&guid);
char* buff = session.ses_logfile.getBuffer(GUID_BUFF_SIZE);
GuidToString(buff, &guid);
session.ses_logfile.insert(0, "fb_trace.");
}
storage->addSession(session);
m_chg_number = storage->getChangeNumber();
}
m_svc.started();
m_svc.printf(false, "Trace session ID %ld started\n", session.ses_id);
if (interactive)
{
readSession(session);
{
StorageGuard guard(storage);
storage->removeSession(session.ses_id);
}
}
}
示例3: update_sessions
void TraceManager::update_sessions()
{
SortedArray<ULONG> liveSessions(*getDefaultMemoryPool());
{ // scope
ConfigStorage* storage = getStorage();
StorageGuard guard(storage);
storage->restart();
TraceSession session(*getDefaultMemoryPool());
while (storage->getNextSession(session))
{
if ((session.ses_flags & trs_active) && !(session.ses_flags & trs_log_full))
{
update_session(session);
liveSessions.add(session.ses_id);
}
}
changeNumber = storage->getChangeNumber();
}
// remove sessions not present in storage
FB_SIZE_T i = 0;
while (i < trace_sessions.getCount())
{
FB_SIZE_T pos;
if (liveSessions.find(trace_sessions[i].ses_id, pos)) {
i++;
}
else
{
trace_sessions[i].plugin->release();
trace_sessions.remove(i);
}
}
// nothing to trace, clear needs
if (trace_sessions.getCount() == 0)
{
trace_needs = 0;
}
}