NCBI C++ ToolKit
process_null.hpp
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:
27 *
28 * File Description:
29 *
30 * ===========================================================================
31 */
32 
33 #ifndef __process_null__hpp__
34 #define __process_null__hpp__
35 
39 
40 // ============================================================================
42 // ============================================================================
43  : public CSeqEntryProcess
44 {
45 public:
46  // ------------------------------------------------------------------------
48  // ------------------------------------------------------------------------
50  , m_out( 0 )
51  , m_do_copy (false)
52  {};
53 
54  // ------------------------------------------------------------------------
55  CNullProcess(bool do_copy)
56  // ------------------------------------------------------------------------
58  , m_out( 0 )
59  , m_do_copy (do_copy)
60  {};
61 
62  // ------------------------------------------------------------------------
64  // ------------------------------------------------------------------------
65  {
66  };
67 
68  // ------------------------------------------------------------------------
70  const CArgs& args )
71  // ------------------------------------------------------------------------
72  {
74 
75  m_out = args["o"] ? &(args["o"].AsOutputFile()) : &cout;
76  };
77 
78  static bool x_UserFieldCompare (const CRef<CUser_field>& f1, const CRef<CUser_field>& f2)
79  {
80  if (!f1->IsSetLabel()) return true;
81  if (!f2->IsSetLabel()) return false;
82  return f1->GetLabel().Compare(f2->GetLabel()) < 0;
83  }
84 
85  // ------------------------------------------------------------------------
87  // ------------------------------------------------------------------------
88  {
89  // empty method body
90  try {
91 
92  if ( m_do_copy ) {
93  *m_out << MSerial_AsnText << *m_entry << endl;
94  }
95  }
96  catch (CException& e) {
97  ERR_POST(Error << "error processing seqentry: " << e.what());
98  }
99  };
100 
101 
102 protected:
104  bool m_do_copy;
105 };
106 
107 #endif
User-defined methods of the data storage class.
CArgs –.
Definition: ncbiargs.hpp:379
void SeqEntryProcess()
CNullProcess(bool do_copy)
void ProcessInitialize(const CArgs &args)
static bool x_UserFieldCompare(const CRef< CUser_field > &f1, const CRef< CUser_field > &f2)
CNcbiOstream * m_out
int Compare(const CObject_id &oid2) const
Definition: Object_id.cpp:145
CRef< CSeq_entry > m_entry
Definition: process.hpp:114
virtual void ProcessInitialize(const CArgs &args)
Definition: process.hpp:58
#define false
Definition: bool.h:36
#define ERR_POST(message)
Error posting with file, line number information but without error codes.
Definition: ncbidiag.hpp:186
void Error(CExceptionArgs_Base &args)
Definition: ncbiexpt.hpp:1197
virtual const char * what(void) const noexcept
Standard report (includes full backlog).
Definition: ncbiexpt.cpp:342
#define MSerial_AsnText
I/O stream manipulators –.
Definition: serialbase.hpp:696
IO_PREFIX::ostream CNcbiOstream
Portable alias for ostream.
Definition: ncbistre.hpp:149
bool IsSetLabel(void) const
field label Check if a value has been assigned to Label data member.
const TLabel & GetLabel(void) const
Get the Label member data.
Modified on Wed Apr 17 13:10:43 2024 by modify_doxy.py rev. 669887