MCPcopy Create free account
hub / github.com/FirebirdSQL/firebird / addSession

Method addSession

src/jrd/trace/TraceConfigStorage.cpp:703–742  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

701}
702
703void ConfigStorage::addSession(TraceSession& session)
704{
705 const ULONG size = getSessionSize(session);
706 const ULONG idx = allocSlot(size);
707
708 TraceCSHeader* header = m_sharedMemory->getHeader();
709 TraceCSHeader::Slot* slot = &header->slots[idx];
710
711 setDirty();
712
713 // setup some session fields
714 session.ses_id = slot->ses_id;
715 session.ses_flags |= trs_active;
716 slot->ses_flags = session.ses_flags;
717 time(&session.ses_start);
718
719 char* p = reinterpret_cast<char*> (header) + slot->offset;
720 Writer writer(p, slot->size);
721
722 if (!session.ses_name.empty()) {
723 writer.write(tagName, session.ses_name.length(), session.ses_name.c_str());
724 }
725 if (session.ses_auth.hasData()) {
726 writer.write(tagAuthBlock, session.ses_auth.getCount(), session.ses_auth.begin());
727 }
728 if (!session.ses_user.empty()) {
729 writer.write(tagUserName, session.ses_user.length(), session.ses_user.c_str());
730 }
731 if (session.ses_role.hasData()) {
732 writer.write(tagRole, session.ses_role.length(), session.ses_role.c_str());
733 }
734 if (!session.ses_config.empty()) {
735 writer.write(tagConfig, session.ses_config.length(), session.ses_config.c_str());
736 }
737 writer.write(tagStartTS, sizeof(session.ses_start), &session.ses_start);
738 if (!session.ses_logfile.empty()) {
739 writer.write(tagLogFile, session.ses_logfile.length(), session.ses_logfile.c_str());
740 }
741 writer.write(tagEnd, 0, NULL);
742}
743
744bool ConfigStorage::getSession(Firebird::TraceSession& session, GET_FLAGS getFlag)
745{

Callers 1

startSessionMethod · 0.80

Calls 8

getHeaderMethod · 0.45
emptyMethod · 0.45
writeMethod · 0.45
lengthMethod · 0.45
c_strMethod · 0.45
hasDataMethod · 0.45
getCountMethod · 0.45
beginMethod · 0.45

Tested by

no test coverage detected