SFF++ library: reading and writing SFF from C++
sffostream.cc
Go to the documentation of this file.
1 
35 #define TF_SFFOSTREAM_CC_VERSION \
36  "TF_SFFOSTREAM_CC V1.1 "
37 
38 #include <sffostream.h>
39 
40 namespace sff {
41 
42 namespace helper {
43 
44 using std::cout;
45 using std::endl;
46 
47  ostream_manager::ostream_manager(std::ostream& os, const bool& debug):
48  Mos(os),
49  Mlast(false), Mfileheaderwritten(false),
50  Mfilefreedefined(false), Mtraceinprogress(false),
51  Mnormmode(NM_maxdyn), Mdebug(debug) { }
52 
54  {
55  Mfileheader=fh;
56  Mfilefreedefined=true;
57  if (Mdebug)
58  { cout << "DEBUG (ostream_manager::setfileheader) finished" << endl; }
59  }
60 
62  {
63  Mtraceheader=th;
64  Mtraceinprogress=true;
65  if (Mdebug)
66  { cout << "DEBUG (ostream_manager::settraceheader) finished" << endl; }
67  }
68 
69  void ostream_manager::setinfo(const INFO& info)
70  {
71  Mtraceheader.setinfo(info);
72  Mtraceinprogress=true;
73  if (Mdebug) { cout << "DEBUG (ostream_manager::setinfo) finished" << endl; }
74  }
75 
76  void ostream_manager::setwid2(const WID2& wid2)
77  {
78  Mtraceheader.setwid2(wid2);
79  Mtraceinprogress=true;
80  if (Mdebug) { cout << "DEBUG (ostream_manager::setwid2) finished" << endl; }
81  }
82 
83  void ostream_manager::setsrce(const SRCE& srce)
84  {
85  Mfileheader.setsrce(srce);
86  if (Mdebug) { cout << "DEBUG (ostream_manager::setsrce) finished" << endl; }
87  }
88 
89  void ostream_manager::setfree(const FREE& free)
90  {
92  {
93  Mtraceheader.setfree(free);
94  if (Mdebug) { cout << "DEBUG (ostream_manager::setfree)"
95  << " trace FREE" << endl; }
96  }
97  else
98  {
99  Mfileheader.setfree(free);
100  Mfilefreedefined=true;
101  if (Mdebug) { cout << "DEBUG (ostream_manager::setfree)"
102  << " file FREE" << endl; }
103  }
104  }
105 
107  {
109  if (Mdebug)
110  { cout << "DEBUG (ostream_manager::setnormmode) finished" << endl; }
111  }
112 
114  {
115  Mlast=true;
116  if (Mdebug)
117  { cout << "DEBUG (ostream_manager::nextislast) finished" << endl; }
118  }
119 
121  {
122  Mlast=false;
123  if (Mdebug)
124  { cout << "DEBUG (ostream_manager::clearlast) finished" << endl; }
125  }
126 
128  {
129  TraceHeader retval(Mtraceheader);
130  retval.setlast(Mlast);
131  if (Mdebug)
132  { cout << "DEBUG (ostream_manager::traceheader) finished" << endl; }
133  return(retval);
134  }
135 
137  {
138  return(Mfileheader);
139  }
140 
142  {
143  return(Mnormmode);
144  }
145 
147  {
148  if (Mdebug) { cout << "DEBUG (ostream_manager::flushheader):" << endl; }
149  if (!Mfileheaderwritten)
150  {
151  Mos << Mfileheader;
152  Mfileheaderwritten=true;
153  if (Mdebug) { cout << " flushed" << endl; }
154  }
155  else
156  {
157  if (Mdebug) { cout << " no waiting header to be flushed" << endl; }
158  }
159  }
160 
161 } // namespace helper
162 } // namespace sff
163 
164 /* ----- END OF sffostream.cc ----- */
void setfileheader(const FileHeader &)
Definition: sffostream.cc:53
void setfree(const FREE &free)
Definition: sffxx.h:256
SFF trace header elements.
Definition: sffxx.h:282
all SFF modules
Definition: offset.cc:42
void setfree(const FREE &)
Definition: sffostream.cc:89
void setwid2(const WID2 &)
Definition: sffostream.cc:76
void setnormmode(const Enormmode &)
Definition: sffostream.cc:106
void settraceheader(const TraceHeader &)
Definition: sffostream.cc:61
Enormmode
Definition: sffxx.h:114
SFF output stream (prototypes)
void setinfo(const INFO &infoline)
Definition: sffxx.h:316
void setlast(const bool &flag)
Definition: sffxx.h:312
void setinfo(const INFO &)
Definition: sffostream.cc:69
TraceHeader traceheader() const
Definition: sffostream.cc:127
Waveform Header.
Definition: sffxx.h:209
void flushheader()
flush file header to output (if not done yet)
Definition: sffostream.cc:146
const Enormmode & normmode() const
Definition: sffostream.cc:141
void setfree(const FREE &free)
Definition: sffxx.h:318
void setsrce(const SRCE &)
Definition: sffostream.cc:83
void setwid2(const WID2 &wid2line)
Definition: sffxx.h:314
scale for maximum dynamic range
Definition: sffxx.h:116
const FileHeader & fileheader() const
Definition: sffostream.cc:136
ostream_manager(std::ostream &os, const bool &debug=false)
Definition: sffostream.cc:47
SFF file header elements.
Definition: sffxx.h:232
void setsrce(const SRCE &srce)
Definition: sffxx.h:258