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.

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

References os_.

◆ operator()() [1/6]

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

Definition at line 49 of file TextWriter.hpp.

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

References os_.

◆ 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.

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 }

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

◆ operator()() [4/6]

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

Definition at line 76 of file TextWriter.hpp.

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 }

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

◆ operator()() [5/6]

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

Definition at line 87 of file TextWriter.hpp.

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 }

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

◆ 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: