ProteoWizard
Public Member Functions | Private Attributes | List of all members
pwiz::proteome::TextWriter Class Reference

#include <TextWriter.hpp>

Public Member Functions

 TextWriter (std::ostream &os, int depth=0)
 
TextWriter child ()
 
TextWriteroperator() (const std::string &text)
 
template<typename object_type >
TextWriteroperator() (const std::string &label, const std::vector< object_type > &v)
 
TextWriteroperator() (const ProteomeData &pd, bool metadata_only=false)
 
TextWriteroperator() (const Protein &p)
 
TextWriteroperator() (const ProteinList &proteinList, bool metadata_only=false)
 
template<typename object_type >
TextWriteroperator() (const boost::shared_ptr< object_type > &p)
 

Private Attributes

std::ostream & os_
 
int depth_
 
std::string indent_
 

Detailed Description

Definition at line 39 of file TextWriter.hpp.

Constructor & Destructor Documentation

§ TextWriter()

pwiz::proteome::TextWriter::TextWriter ( std::ostream &  os,
int  depth = 0 
)
inline

Definition at line 43 of file TextWriter.hpp.

44  : os_(os), depth_(depth), indent_(depth*2, ' ')
45  {}

Member Function Documentation

§ child()

TextWriter pwiz::proteome::TextWriter::child ( )
inline

Definition at line 47 of file TextWriter.hpp.

References os_.

47 {return TextWriter(os_, depth_+1);}
TextWriter(std::ostream &os, int depth=0)
Definition: TextWriter.hpp:43

§ operator()() [1/6]

TextWriter& pwiz::proteome::TextWriter::operator() ( const std::string &  text)
inline

Definition at line 49 of file TextWriter.hpp.

References os_.

50  {
51  os_ << indent_ << text << std::endl;
52  return *this;
53  }

§ operator()() [2/6]

template<typename object_type >
TextWriter& pwiz::proteome::TextWriter::operator() ( const std::string &  label,
const std::vector< object_type > &  v 
)
inline

Definition at line 56 of file TextWriter.hpp.

57  {
58  (*this)(label);
59  for_each(v.begin(), v.end(), child());
60  return *this;
61  }

§ operator()() [3/6]

TextWriter& pwiz::proteome::TextWriter::operator() ( const ProteomeData pd,
bool  metadata_only = false 
)
inline

Definition at line 64 of file TextWriter.hpp.

References pwiz::proteome::ProteomeData::id, and pwiz::proteome::ProteomeData::proteinListPtr.

65  {
66  (*this)("ProteomeData:");
67  child()
68  ("id: " + pd.id);
69 
70  if (pd.proteinListPtr.get())
71  child()(*pd.proteinListPtr, metadata_only);
72 
73  return *this;
74  }

§ operator()() [4/6]

TextWriter& pwiz::proteome::TextWriter::operator() ( const Protein p)
inline

Definition at line 76 of file TextWriter.hpp.

References pwiz::proteome::Protein::description, pwiz::proteome::Protein::id, pwiz::proteome::Protein::index, and pwiz::proteome::Peptide::sequence().

77  {
78  (*this)("protein:");
79  child()
80  ("id: " + p.id)
81  ("index: " + p.index)
82  ("description: " + p.description)
83  ("sequence: " + p.sequence().substr(0, 10));
84  return *this;
85  }

§ operator()() [5/6]

TextWriter& pwiz::proteome::TextWriter::operator() ( const ProteinList proteinList,
bool  metadata_only = false 
)
inline

Definition at line 87 of file TextWriter.hpp.

References pwiz::proteome::ProteinList::protein(), and pwiz::proteome::ProteinList::size().

88  {
89  std::string text("proteinList (" + boost::lexical_cast<std::string>(proteinList.size()) + " proteins)");
90  if (!metadata_only)
91  text += ":";
92 
93  (*this)(text);
94 
95  if (!metadata_only)
96  for (size_t index = 0; index < proteinList.size(); ++index)
97  child()
98  (*proteinList.protein(index, true));
99  return *this;
100  }

§ operator()() [6/6]

template<typename object_type >
TextWriter& pwiz::proteome::TextWriter::operator() ( const boost::shared_ptr< object_type > &  p)
inline

Definition at line 104 of file TextWriter.hpp.

105  {
106  return p.get() ? (*this)(*p) : *this;
107  }

Member Data Documentation

§ os_

std::ostream& pwiz::proteome::TextWriter::os_
private

Definition at line 111 of file TextWriter.hpp.

§ depth_

int pwiz::proteome::TextWriter::depth_
private

Definition at line 112 of file TextWriter.hpp.

§ indent_

std::string pwiz::proteome::TextWriter::indent_
private

Definition at line 113 of file TextWriter.hpp.


The documentation for this class was generated from the following file: