session_t now holds a std::auto_prt<journal_t>
This commit is contained in:
parent
b5dca67396
commit
b2b0ae37e8
4 changed files with 19 additions and 19 deletions
|
|
@ -201,23 +201,23 @@ bool archive_t::should_load(const std::list<path>& data_files)
|
|||
return true;
|
||||
}
|
||||
|
||||
bool archive_t::should_save(shared_ptr<journal_t> journal)
|
||||
bool archive_t::should_save(journal_t& journal)
|
||||
{
|
||||
std::list<path> data_files;
|
||||
|
||||
DEBUG("archive.journal", "Should the archive be saved?");
|
||||
|
||||
if (journal->was_loaded) {
|
||||
if (journal.was_loaded) {
|
||||
DEBUG("archive.journal", "No, it's one we loaded before");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (journal->sources.empty()) {
|
||||
if (journal.sources.empty()) {
|
||||
DEBUG("archive.journal", "No, there were no sources!");
|
||||
return false;
|
||||
}
|
||||
|
||||
foreach (const journal_t::fileinfo_t& i, journal->sources) {
|
||||
foreach (const journal_t::fileinfo_t& i, journal.sources) {
|
||||
if (i.from_stream) {
|
||||
DEBUG("archive.journal", "No, one source was from a stream");
|
||||
return false;
|
||||
|
|
@ -241,14 +241,14 @@ bool archive_t::should_save(shared_ptr<journal_t> journal)
|
|||
return true;
|
||||
}
|
||||
|
||||
void archive_t::save(shared_ptr<journal_t> journal)
|
||||
void archive_t::save(journal_t& journal)
|
||||
{
|
||||
INFO_START(archive, "Saved journal file cache");
|
||||
|
||||
ofstream stream(file, std::ios::binary);
|
||||
|
||||
write_header_bits(stream);
|
||||
sources = journal->sources;
|
||||
sources = journal.sources;
|
||||
|
||||
#if defined(DEBUG_ON)
|
||||
foreach (const journal_t::fileinfo_t& i, sources)
|
||||
|
|
@ -263,12 +263,12 @@ void archive_t::save(shared_ptr<journal_t> journal)
|
|||
|
||||
DEBUG("archive.journal",
|
||||
"Archiving journal with " << sources.size() << " sources");
|
||||
oa << *journal;
|
||||
oa << journal;
|
||||
|
||||
INFO_FINISH(archive);
|
||||
}
|
||||
|
||||
bool archive_t::load(shared_ptr<journal_t> journal)
|
||||
bool archive_t::load(journal_t& journal)
|
||||
{
|
||||
INFO_START(archive, "Read cached journal file");
|
||||
|
||||
|
|
@ -282,8 +282,8 @@ bool archive_t::load(shared_ptr<journal_t> journal)
|
|||
archive_t temp;
|
||||
iarchive >> temp;
|
||||
|
||||
iarchive >> *journal.get();
|
||||
journal->was_loaded = true;
|
||||
iarchive >> journal;
|
||||
journal.was_loaded = true;
|
||||
|
||||
INFO_FINISH(archive);
|
||||
|
||||
|
|
|
|||
|
|
@ -69,10 +69,10 @@ public:
|
|||
bool read_header();
|
||||
|
||||
bool should_load(const std::list<path>& data_files);
|
||||
bool should_save(shared_ptr<journal_t> journal);
|
||||
bool should_save(journal_t& journal);
|
||||
|
||||
void save(shared_ptr<journal_t> journal);
|
||||
bool load(shared_ptr<journal_t> journal);
|
||||
void save(journal_t& journal);
|
||||
bool load(journal_t& journal);
|
||||
|
||||
#if defined(HAVE_BOOST_SERIALIZATION)
|
||||
private:
|
||||
|
|
|
|||
|
|
@ -106,7 +106,7 @@ std::size_t session_t::read_data(const string& master_account)
|
|||
|
||||
if (! (cache &&
|
||||
cache->should_load(HANDLER(file_).data_files) &&
|
||||
cache->load(journal))) {
|
||||
cache->load(*journal.get()))) {
|
||||
#endif // HAVE_BOOST_SERIALIZATION
|
||||
if (price_db_path) {
|
||||
if (exists(*price_db_path)) {
|
||||
|
|
@ -142,8 +142,8 @@ std::size_t session_t::read_data(const string& master_account)
|
|||
assert(xact_count == journal->xacts.size());
|
||||
|
||||
#if defined(HAVE_BOOST_SERIALIZATION)
|
||||
if (cache && cache->should_save(journal))
|
||||
cache->save(journal);
|
||||
if (cache && cache->should_save(*journal.get()))
|
||||
cache->save(*journal.get());
|
||||
}
|
||||
#endif // HAVE_BOOST_SERIALIZATION
|
||||
|
||||
|
|
|
|||
|
|
@ -58,9 +58,9 @@ class session_t : public symbol_scope_t
|
|||
friend void set_session_context(session_t * session);
|
||||
|
||||
public:
|
||||
bool flush_on_next_data_file;
|
||||
date_t::year_type current_year;
|
||||
shared_ptr<journal_t> journal;
|
||||
bool flush_on_next_data_file;
|
||||
date_t::year_type current_year;
|
||||
std::auto_ptr<journal_t> journal;
|
||||
|
||||
explicit session_t();
|
||||
virtual ~session_t() {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue