bool SessionManager::GetSession(const wxString& workspaceFile, SessionEntry& session, const wxString& suffix, const wxChar* Tag) { if(!m_doc.GetRoot()) { return false; } wxFileName sessionFileName = GetSessionFileName(workspaceFile, suffix); wxXmlDocument doc; if(sessionFileName.FileExists()) { if(!doc.Load(sessionFileName.GetFullPath()) || !doc.IsOk()) return false; } else { doc.SetRoot(new wxXmlNode(NULL, wxXML_ELEMENT_NODE, Tag)); } wxXmlNode* const node = doc.GetRoot(); if(!node || node->GetName() != Tag) return false; Archive arch; arch.SetXmlNode(node); session.DeSerialize(arch); return true; }