NCBI C++ ToolKit
journal_report.cpp
Go to the documentation of this file.

Go to the SVN repository for this file.

1 /*
2  * ===========================================================================
3  *
4  * PUBLIC DOMAIN NOTICE
5  * National Center for Biotechnology Information
6  *
7  * This software/database is a "United States Government Work" under the
8  * terms of the United States Copyright Act. It was written as part of
9  * the author's official duties as a United States Government employee and
10  * thus cannot be copyrighted. This software/database is freely available
11  * to the public for use. The National Library of Medicine and the U.S.
12  * Government have not placed any restriction on its use or reproduction.
13  *
14  * Although all reasonable efforts have been taken to ensure the accuracy
15  * and reliability of the software and data, the NLM and the U.S.
16  * Government do not and cannot warrant the performance or results that
17  * may be obtained by using this software or data. The NLM and the U.S.
18  * Government disclaim all warranties, express or implied, including
19  * warranties of performance, merchantability or fitness for any particular
20  * purpose.
21  *
22  * Please cite the author in any work or product based on this material.
23  *
24  * ===========================================================================
25  *
26  * Author: Alexey Dobronadezhdin
27  *
28  * File Description:
29  *
30  * ===========================================================================
31  */
32 
33 #include <ncbi_pch.hpp>
34 
35 #include <algorithm>
36 #include <functional>
37 #include <iostream>
38 
39 #include "journal_report.hpp"
40 
41 /////////////////////////////////////////////////
42 // CJournalReport
43 
44 namespace pub_report
45 {
46 
47 using namespace std;
49 
51  m_out(out)
52 {
53 }
54 
55 void CJournalReport::SetCurrentSeqId(const string& name)
56 {
58 
59  if (! m_set_level_journals.empty()) {
60  auto report_fun = bind(&CJournalReport::ReportJournal, this, placeholders::_1);
61  for_each(m_set_level_journals.cbegin(), m_set_level_journals.cend(), report_fun);
62 
63  m_set_level_journals.clear();
64  }
65 }
66 
67 void CJournalReport::ReportJournal(const string& name)
68 {
69  if (GetCurrentSeqId().empty()) {
70  m_set_level_journals.push_back(name);
71  } else {
72  m_out << '|' << GetCurrentSeqId() << "|\t" << name << '\n';
73  }
74 }
75 
76 }
const std::string & GetCurrentSeqId() const
Definition: base_report.hpp:46
virtual void SetCurrentSeqId(const std::string &name)
Definition: base_report.hpp:51
void SetCurrentSeqId(const std::string &name) override
ncbi::CNcbiOstream & m_out
CJournalReport(ncbi::CNcbiOstream &out)
std::list< std::string > m_set_level_journals
void ReportJournal(const std::string &name)
std::ofstream out("events_result.xml")
main entry point for tests
IO_PREFIX::ostream CNcbiOstream
Portable alias for ostream.
Definition: ncbistre.hpp:149
constexpr bool empty(list< Ts... >) noexcept
Modified on Sun Apr 14 05:26:52 2024 by modify_doxy.py rev. 669887