GeoTessCPP  2.2.3
Software to facilitate storage and retrieval of 3D information about the Earth.
IFStreamAscii.h
Go to the documentation of this file.
1 //- ****************************************************************************
2 //-
3 //- Copyright 2009 National Technology & Engineering Solutions of Sandia, LLC
4 //- (NTESS). Under the terms of Contract DE-NA0003525 with NTESS, the U.S.
5 //- Government retains certain rights in this software.
6 //-
7 //- BSD Open Source License
8 //- All rights reserved.
9 //-
10 //- Redistribution and use in source and binary forms, with or without
11 //- modification, are permitted provided that the following conditions are met:
12 //-
13 //- 1. Redistributions of source code must retain the above copyright notice,
14 //- this list of conditions and the following disclaimer.
15 //-
16 //- 2. Redistributions in binary form must reproduce the above copyright
17 //- notice, this list of conditions and the following disclaimer in the
18 //- documentation and/or other materials provided with the distribution.
19 //-
20 //- 3. Neither the name of the copyright holder nor the names of its
21 //- contributors may be used to endorse or promote products derived from
22 //- this software without specific prior written permission.
23 //-
24 //- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
25 //- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26 //- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
27 //- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
28 //- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
29 //- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
30 //- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
31 //- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
32 //- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
33 //- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34 //- POSSIBILITY OF SUCH DAMAGE.
35 //-
36 //- ****************************************************************************
37 
38 #ifndef IFSTREAMASCII_OBJECT_H
39 #define IFSTREAMASCII_OBJECT_H
40 
41 // **** _SYSTEM INCLUDES_ ******************************************************
42 
43 #include <iostream>
44 #include <string>
45 #include <fstream>
46 #include <vector>
47 #include <sstream>
48 
49 // use standard library objects
50 using namespace std;
51 
52 // **** _LOCAL INCLUDES_ *******************************************************
53 
54 #include "CPPUtils.h"
55 #include "GeoTessUtils.h"
56 #include "GeoTessException.h"
57 
58 // **** _BEGIN GEOTESS NAMESPACE_ **********************************************
59 
60 namespace geotess {
61 
62 // **** _FORWARD REFERENCES_ ***************************************************
63 
64 // **** _CLASS DEFINITION_ *****************************************************
65 
83 {
84  private:
85 
89  ifstream ifs;
90 
94  ofstream ofs;
95 
111  string strDelim[5];
112 
116  string strFileName;
117 
118  // The total number of lines read from this stream
119  int strTotlLinesRead;
120  // The total number of "data" lines read from this stream
121  int strDataLinesRead;
122  // The total number of "blank" lines read from this stream
123  int strBlankLinesRead;
124  // The total number of "comment" lines read from this stream
125  int strCommentLinesRead;
126  // The total number of "block comment" lines read from this stream
127  int strBlkCommentLinesRead;
128  // The total number of "bytes" read from this stream
129  int strBytesRead;
130 
135  bool strBlkCommntSet;
136 
144  int strTokenPtr;
145 
156  vector<string> strTokens;
157 
158  public:
159 
163  void getLine(string& buf);
164 
169  void getline(string& s) { std::getline(ifs, s); };
170 
174  IFStreamAscii() : strFileName(""), strTotlLinesRead(0),
175  strDataLinesRead(0), strBlankLinesRead(0),
176  strCommentLinesRead(0), strBlkCommentLinesRead(0),
177  strBytesRead(0), strBlkCommntSet(false),
178  strTokenPtr(0)
179  {
180  setDefaultDelimiters(); setCommentDelimiter("#");
181  };
182 
186  virtual ~IFStreamAscii() { close(); };
187 
191  void openForRead(const string& fn);
192  void openForWrite(const string& fn);
193 
197  bool isOpen() { return (ifs.is_open() || ofs.is_open()) ? true : false; }
198 
202  void close()
203  {
204  if (ifs.is_open())
205  ifs.close();
206  else if (ofs.is_open())
207  ofs.close();
208  }
209 
213  void flush()
214  {
215  if (ofs.is_open())
216  ofs.flush();
217  }
218 
225  void resetPos()
226  {
227  if (ifs.is_open())
228  {
229  string fn = strFileName;
230  openForRead(fn);
231  }
232  }
233 
238  bool read(string& token);
239 
244  bool readLine(string& ln);
245 
250  void tokenize(const string& str, vector<string>& tokens);
251 
255  const string& getFileName() const { return strFileName; };
256 
261 
265  void resetReader();
266 
271  void setDelimiters(const string& wspcDelims,
272  const string& strgDelim,
273  const string& cmntDelim,
274  const string& begBlk,
275  const string& endBlk)
276  {
277  strDelim[0] = wspcDelims;
278  strDelim[1] = strgDelim;
279  strDelim[2] = cmntDelim;
280  strDelim[3] = begBlk;
281  strDelim[4] = endBlk;
282  }
283 
287  void setWhitespaceDelimiters(const string& wsDelims)
288  {
289  strDelim[0] = wsDelims;
290  };
291 
295  const string& getWhitespaceDelimiters() const
296  {
297  return strDelim[0];
298  };
299 
303  void setStringDelimiter(const string& strgDelim)
304  {
305  strDelim[1] = strgDelim;
306  };
307 
311  const string& getStringDelimiter() const
312  {
313  return strDelim[1];
314  };
315 
319  void setCommentDelimiter(const string& cmntDelim)
320  {
321  strDelim[2] = cmntDelim;
322  };
323 
327  const string& getCommentDelimiter() const
328  {
329  return strDelim[2];
330  };
331 
336  void setBlockCommentDelimiters(const string& begBlk,
337  const string& endBlk)
338  {
339  strDelim[3] = begBlk;
340  strDelim[4] = endBlk;
341  }
342 
346  void setBeginBlockCommentDelimiter(const string& begBlkCmntDelim)
347  {
348  strDelim[3] = begBlkCmntDelim;
349  };
350 
354  const string& getBeginBlockCommentDelimiter() const
355  {
356  return strDelim[3];
357  };
358 
362  void setEndBlockCommentDelimiter(const string& endBlkCmntDelim)
363  {
364  strDelim[4] = endBlkCmntDelim;
365  };
366 
370  const string& getEndBlockCommentDelimiter() const
371  {
372  return strDelim[4];
373  };
374 
378  int getTotalLinesRead() const
379  {
380  return strTotlLinesRead;
381  };
382 
386  int getDataLinesRead() const
387  {
388  return strDataLinesRead;
389  };
390 
394  int getBlankLinesRead() const
395  {
396  return strBlankLinesRead;
397  };
398 
403  {
404  return strCommentLinesRead;
405  };
406 
411  {
412  return strBlkCommentLinesRead;
413  };
414 
418  int getBytesRead() const
419  {
420  return strBytesRead;
421  };
422 
426  bool isEOF() const;
427 
431  bool next();
432 
436  string readString();
437 
441  bool readString(string& s);
442 
446  byte readByte();
447 
451  bool readType(byte& b) { return readByte(b); };
452 
456  bool readByte(byte& b);
457 
461  short readShort();
462 
466  bool readType(short& s) { return readShort(s); };
467 
471  bool readShort(short& s);
472 
476  int readInteger();
477 
481  bool readType(int& i) { return readInteger(i); };
482 
486  bool readInteger(int& i);
487 
491  LONG_INT readLong();
492 
496  bool readType(LONG_INT& l) { return readLong(l); };
497 
501  bool readLong(LONG_INT& l);
502 
506  float readFloat();
507 
511  bool readType(float& f) { return readFloat(f); };
512 
516  bool readFloat(float& f);
517 
521  double readDouble();
522 
526  bool readType(double& d) { return readDouble(d); };
527 
531  bool readDouble(double& d);
532 
533  // ***** Write functions **************************************************
534 
535  void writeString(const string& s) { ofs << s; }
536  void writeStringNL(const string& s) { ofs << s << endl; }
537  void writeType(const string& s) { ofs << s; }
538  void writeTypeNL(const string& s) { ofs << s << endl; }
539  void writeBool(bool b) { ofs << b; }
540  void writeBoolNL(bool b) { ofs << b << endl; }
541  void writeType(bool b) { ofs << b; }
542  void writeTypeNL(bool b) { ofs << b << endl; }
543  void writeByte(byte b) { ofs << (int)b; }
544  void writeByteNL(byte b) { ofs << (int)b << endl; }
545  void writeType(byte b) { ofs << (int)b; }
546  void writeTypeNL(byte b) { ofs << (int)b << endl; }
547  void writeShort(short s) { ofs << s; }
548  void writeShortNL(short s) { ofs << s << endl; }
549  void writeType(short s) { ofs << s; };
550  void writeTypeNL(short s) { ofs << s << endl; };
551  void writeInt(int i) { ofs << i; }
552  void writeIntNL(int i) { ofs << i << endl; }
553  void writeType(int i) { ofs << i; }
554  void writeTypeNL(int i) { ofs << i << endl; }
555  void writeLong(LONG_INT l) { ofs << l; }
556  void writeLongNL(LONG_INT l) { ofs << l << endl; }
557  void writeType(LONG_INT l) { ofs << l; }
558  void writeTypeNL(LONG_INT l) { ofs << l << endl; }
559  void writeFloat(float f) { ofs << f; }
560  void writeFloatNL(float f) { ofs << f << endl; }
561  void writeType(float f) { ofs << f; }
562  void writeTypeNL(float f) { ofs << f << endl; }
563  void writeDouble(double d) { ofs << d; }
564  void writeDoubleNL(double d) { ofs << d << endl; }
565  void writeType(double d) { ofs << d; }
566  void writeTypeNL(double d) { ofs << d << endl; }
567  void writeNL() { ofs << endl; }
568 
569 }; // end class IFStreamAscii
570 
577 inline bool IFStreamAscii::read(string& token)
578 {
579  string ln;
580 
581  // if the strTokenPtr is >= than strTokens.size() then get more tokens
582 
583  if (strTokenPtr >= (int) strTokens.size())
584  {
585  // get more tokens ... reset token pointer and list
586 
587  strTokenPtr = 0;
588  strTokens.clear();
589 
590  // read another data line from the stream ... if eof() is reached return
591  // true
592 
593  if (!readLine(ln)) return false;
594 
595  // tokennize the line into the tokens list
596 
597  tokenize(ln, strTokens);
598  }
599 
600  // get the token ... increment the pointer ... and return false for success
601 
602  token = strTokens[strTokenPtr++];
603  return true;
604 }
605 
609 inline bool IFStreamAscii::isEOF() const
610 {
611  return (ifs.eof() && (strTokenPtr >= (int) strTokens.size()));
612 }
613 
617 inline string IFStreamAscii::readString()
618 {
619  string s;
620  read(s);
621  return s;
622 }
623 
627 inline bool IFStreamAscii::readString(string& s)
628 {
629  return read(s);
630 }
631 
635 inline bool IFStreamAscii::next()
636 {
637  string s;
638  return read(s);
639 }
640 
644 inline byte IFStreamAscii::readByte()
645 {
646  byte b = 0;
647  readByte(b);
648  return b;
649 }
650 
654 inline bool IFStreamAscii::readByte(byte& b)
655 {
656  string sb;
657 
658  // read token into sb ... if eof or stream not open return false
659 
660  if (!read(sb)) return false;
661 
662  // attempt to scan token into b ... if unable issue error and return false
663 
664  if (sscanf(sb.c_str(), "%hhd", &b) != 1)
665  {
666  ostringstream os;
667  os << endl << "ERROR in IFStreamAscii::readByte" << endl
668  << " Could Not Scan Byte From Token = " << sb << endl
669  << " On File Line: " << strTotlLinesRead << " ..." << endl;
670  throw GeoTessException(os, __FILE__, __LINE__, 9201);
671  }
672 
673  // successful ... return true
674 
675  return true;
676 }
677 
681 inline short IFStreamAscii::readShort()
682 {
683  short s = 0;
684  readShort(s);
685  return s;
686 }
687 
691 inline bool IFStreamAscii::readShort(short& s)
692 {
693  string ss;
694 
695  // read token into ss ... if eof or stream not open return false
696 
697  if (!read(ss)) return false;
698 
699  // attempt to scan token into s ... if unable issue error and return false
700 
701  if (sscanf(ss.c_str(), "%hd", &s) != 1)
702  {
703  ostringstream os;
704  os << endl << "ERROR in IFStreamAscii::readShort" << endl
705  << " Could Not Scan Short From Token = " << ss << endl
706  << " On File Line: " << strTotlLinesRead << " ..." << endl;
707  throw GeoTessException(os, __FILE__, __LINE__, 9202);
708  }
709 
710  // successful ... return true
711 
712  return true;
713 }
714 
718 inline int IFStreamAscii::readInteger()
719 {
720  int i = 0;
721  readInteger(i);
722  return i;
723 }
724 
728 inline bool IFStreamAscii::readInteger(int& i)
729 {
730  string si;
731 
732  // read token into si ... if eof or stream not open return false
733 
734  if (!read(si)) return false;
735 
736  // attempt to scan token into i ... if unable issue error and return false
737 
738  if (sscanf(si.c_str(), "%d", &i) != 1)
739  {
740  ostringstream os;
741  os << endl << "ERROR in IFStreamAscii::readInteger" << endl
742  << " Could Not Scan Integer From Token = " << si << endl
743  << " On File Line: " << strTotlLinesRead << " ..." << endl;
744  throw GeoTessException(os, __FILE__, __LINE__, 9203);
745  }
746 
747  // successful ... return true
748 
749  return true;
750 }
751 
755 inline LONG_INT IFStreamAscii::readLong()
756 {
757  LONG_INT l = 0;
758  readLong(l);
759  return l;
760 }
761 
765 inline bool IFStreamAscii::readLong(LONG_INT& l)
766 {
767  string sl;
768 
769  // read token into sl ... if eof or stream not open return false
770 
771  if (!read(sl)) return false;
772 
773  // attempt to scan token into l ... if unable issue error and return false
774 
775  if (sscanf(sl.c_str(), LONG_INT_F, &l) != 1)
776  {
777  ostringstream os;
778  os << endl << "ERROR in IFStreamAscii::readLong" << endl
779  << " Could Not Scan Long From Token = " << sl << endl
780  << " On File Line: " << strTotlLinesRead << " ..." << endl;
781  throw GeoTessException(os, __FILE__, __LINE__, 9204);
782  }
783 
784  // successful ... return true
785 
786  return true;
787 }
788 
792 inline float IFStreamAscii::readFloat()
793 {
794  float f = 0;
795  readFloat(f);
796  return f;
797 }
798 
802 inline bool IFStreamAscii::readFloat(float& f)
803 {
804  string sf;
805 
806  // read token into sf ... if eof or stream not open return false
807 
808  if (!read(sf)) return false;
809 
810  // attempt to scan token into f ... if unable issue error and return false
811 
812  if (sscanf(sf.c_str(), "%f", &f) != 1)
813  {
814  ostringstream os;
815  os << endl << "ERROR in IFStreamAscii::readFloat" << endl
816  << " Could Not Scan Float From Token = " << sf << endl
817  << " On File Line: " << strTotlLinesRead << " ..." << endl;
818  throw GeoTessException(os, __FILE__, __LINE__, 9205);
819  }
820 
821  // successful ... return true
822 
823  return true;
824 }
825 
829 inline double IFStreamAscii::readDouble()
830 {
831  double d = 0;
832  readDouble(d);
833  return d;
834 }
835 
839 inline bool IFStreamAscii::readDouble(double& d)
840 {
841  string sd;
842 
843  // read token into sd ... if eof or stream not open return false
844 
845  if (!read(sd)) return false;
846 
847  // attempt to scan token into d ... if unable issue error and return false
848 
849  if (sscanf(sd.c_str(), "%lf", &d) != 1)
850  {
851  ostringstream os;
852  os << endl << "ERROR in IFStreamAscii::readDouble" << endl
853  << " Could Not Scan Double From Token = " << sd << endl
854  << " On File Line: " << strTotlLinesRead << " ..." << endl;
855  throw GeoTessException(os, __FILE__, __LINE__, 9206);
856  }
857 
858  // successful ... return true
859 
860  return true;
861 }
862 
863 } // end namespace geotess
864 
865 #endif // INTERPOLATOR_OBJECT_H
geotess::IFStreamAscii::setWhitespaceDelimiters
void setWhitespaceDelimiters(const string &wsDelims)
Definition: IFStreamAscii.h:287
geotess::IFStreamAscii::resetPos
void resetPos()
Definition: IFStreamAscii.h:225
geotess::IFStreamAscii::setDelimiters
void setDelimiters(const string &wspcDelims, const string &strgDelim, const string &cmntDelim, const string &begBlk, const string &endBlk)
Definition: IFStreamAscii.h:271
geotess::IFStreamAscii::setDefaultDelimiters
void setDefaultDelimiters()
geotess::IFStreamAscii::writeTypeNL
void writeTypeNL(int i)
Definition: IFStreamAscii.h:554
geotess::IFStreamAscii::getBeginBlockCommentDelimiter
const string & getBeginBlockCommentDelimiter() const
Definition: IFStreamAscii.h:354
geotess::IFStreamAscii::writeLong
void writeLong(LONG_INT l)
Definition: IFStreamAscii.h:555
geotess
Definition: ArrayReuse.h:57
geotess::IFStreamAscii::writeType
void writeType(bool b)
Definition: IFStreamAscii.h:541
GeoTessException.h
geotess::IFStreamAscii::readType
bool readType(LONG_INT &l)
Definition: IFStreamAscii.h:496
geotess::IFStreamAscii::getWhitespaceDelimiters
const string & getWhitespaceDelimiters() const
Definition: IFStreamAscii.h:295
geotess::IFStreamAscii::writeDouble
void writeDouble(double d)
Definition: IFStreamAscii.h:563
geotess::IFStreamAscii::writeByte
void writeByte(byte b)
Definition: IFStreamAscii.h:543
geotess::IFStreamAscii::~IFStreamAscii
virtual ~IFStreamAscii()
Definition: IFStreamAscii.h:186
geotess::IFStreamAscii::readType
bool readType(double &d)
Definition: IFStreamAscii.h:526
geotess::IFStreamAscii::isOpen
bool isOpen()
Definition: IFStreamAscii.h:197
geotess::IFStreamAscii::writeFloatNL
void writeFloatNL(float f)
Definition: IFStreamAscii.h:560
geotess::IFStreamAscii::writeType
void writeType(int i)
Definition: IFStreamAscii.h:553
geotess::IFStreamAscii::setEndBlockCommentDelimiter
void setEndBlockCommentDelimiter(const string &endBlkCmntDelim)
Definition: IFStreamAscii.h:362
geotess::IFStreamAscii::writeString
void writeString(const string &s)
Definition: IFStreamAscii.h:535
geotess::IFStreamAscii::writeFloat
void writeFloat(float f)
Definition: IFStreamAscii.h:559
geotess::IFStreamAscii::writeTypeNL
void writeTypeNL(LONG_INT l)
Definition: IFStreamAscii.h:558
geotess::IFStreamAscii::readType
bool readType(short &s)
Definition: IFStreamAscii.h:466
geotess::IFStreamAscii::IFStreamAscii
IFStreamAscii()
Definition: IFStreamAscii.h:174
geotess::IFStreamAscii::getBytesRead
int getBytesRead() const
Definition: IFStreamAscii.h:418
geotess::IFStreamAscii::tokenize
void tokenize(const string &str, vector< string > &tokens)
geotess::IFStreamAscii::writeBool
void writeBool(bool b)
Definition: IFStreamAscii.h:539
geotess::IFStreamAscii::readType
bool readType(float &f)
Definition: IFStreamAscii.h:511
geotess::IFStreamAscii::writeShort
void writeShort(short s)
Definition: IFStreamAscii.h:547
geotess::IFStreamAscii::setBeginBlockCommentDelimiter
void setBeginBlockCommentDelimiter(const string &begBlkCmntDelim)
Definition: IFStreamAscii.h:346
geotess::IFStreamAscii::openForWrite
void openForWrite(const string &fn)
geotess::IFStreamAscii::getStringDelimiter
const string & getStringDelimiter() const
Definition: IFStreamAscii.h:311
geotess::IFStreamAscii::writeByteNL
void writeByteNL(byte b)
Definition: IFStreamAscii.h:544
geotess::IFStreamAscii::writeTypeNL
void writeTypeNL(float f)
Definition: IFStreamAscii.h:562
geotess::IFStreamAscii::writeTypeNL
void writeTypeNL(double d)
Definition: IFStreamAscii.h:566
geotess::IFStreamAscii::writeBoolNL
void writeBoolNL(bool b)
Definition: IFStreamAscii.h:540
geotess::IFStreamAscii::readType
bool readType(int &i)
Definition: IFStreamAscii.h:481
geotess::IFStreamAscii::writeShortNL
void writeShortNL(short s)
Definition: IFStreamAscii.h:548
geotess::IFStreamAscii::writeTypeNL
void writeTypeNL(const string &s)
Definition: IFStreamAscii.h:538
geotess::IFStreamAscii::setStringDelimiter
void setStringDelimiter(const string &strgDelim)
Definition: IFStreamAscii.h:303
geotess::IFStreamAscii::writeNL
void writeNL()
Definition: IFStreamAscii.h:567
geotess::IFStreamAscii::writeType
void writeType(short s)
Definition: IFStreamAscii.h:549
geotess::IFStreamAscii::writeType
void writeType(float f)
Definition: IFStreamAscii.h:561
geotess::IFStreamAscii::writeDoubleNL
void writeDoubleNL(double d)
Definition: IFStreamAscii.h:564
GeoTessUtils.h
geotess::IFStreamAscii::getEndBlockCommentDelimiter
const string & getEndBlockCommentDelimiter() const
Definition: IFStreamAscii.h:370
geotess::IFStreamAscii::getCommentLinesRead
int getCommentLinesRead() const
Definition: IFStreamAscii.h:402
geotess::IFStreamAscii
Opens ascii file for read and write access.
Definition: IFStreamAscii.h:83
geotess::IFStreamAscii::getBlankLinesRead
int getBlankLinesRead() const
Definition: IFStreamAscii.h:394
LONG_INT
#define LONG_INT
Definition: CPPGlobals.h:113
geotess::IFStreamAscii::writeIntNL
void writeIntNL(int i)
Definition: IFStreamAscii.h:552
geotess::IFStreamAscii::writeLongNL
void writeLongNL(LONG_INT l)
Definition: IFStreamAscii.h:556
geotess::IFStreamAscii::writeType
void writeType(LONG_INT l)
Definition: IFStreamAscii.h:557
geotess::IFStreamAscii::readLine
bool readLine(string &ln)
geotess::IFStreamAscii::openForRead
void openForRead(const string &fn)
geotess::IFStreamAscii::setBlockCommentDelimiters
void setBlockCommentDelimiters(const string &begBlk, const string &endBlk)
Definition: IFStreamAscii.h:336
geotess::IFStreamAscii::writeStringNL
void writeStringNL(const string &s)
Definition: IFStreamAscii.h:536
geotess::IFStreamAscii::writeTypeNL
void writeTypeNL(short s)
Definition: IFStreamAscii.h:550
GEOTESS_EXP_IMP
#define GEOTESS_EXP_IMP
Definition: CPPGlobals.h:73
geotess::IFStreamAscii::getline
void getline(string &s)
Definition: IFStreamAscii.h:169
geotess::IFStreamAscii::writeTypeNL
void writeTypeNL(bool b)
Definition: IFStreamAscii.h:542
geotess::IFStreamAscii::getCommentDelimiter
const string & getCommentDelimiter() const
Definition: IFStreamAscii.h:327
geotess::IFStreamAscii::getLine
void getLine(string &buf)
geotess::IFStreamAscii::getTotalLinesRead
int getTotalLinesRead() const
Definition: IFStreamAscii.h:378
LONG_INT_F
#define LONG_INT_F
Definition: CPPGlobals.h:114
geotess::IFStreamAscii::close
void close()
Definition: IFStreamAscii.h:202
geotess::IFStreamAscii::flush
void flush()
Definition: IFStreamAscii.h:213
geotess::IFStreamAscii::getDataLinesRead
int getDataLinesRead() const
Definition: IFStreamAscii.h:386
geotess::IFStreamAscii::getBlockCommentLinesRead
int getBlockCommentLinesRead() const
Definition: IFStreamAscii.h:410
geotess::IFStreamAscii::getFileName
const string & getFileName() const
Definition: IFStreamAscii.h:255
geotess::IFStreamAscii::writeTypeNL
void writeTypeNL(byte b)
Definition: IFStreamAscii.h:546
geotess::IFStreamAscii::setCommentDelimiter
void setCommentDelimiter(const string &cmntDelim)
Definition: IFStreamAscii.h:319
geotess::IFStreamAscii::writeType
void writeType(const string &s)
Definition: IFStreamAscii.h:537
geotess::IFStreamAscii::readType
bool readType(byte &b)
Definition: IFStreamAscii.h:451
geotess::GeoTessException
An exception class for all GeoTess objects.
Definition: GeoTessException.h:68
geotess::IFStreamAscii::resetReader
void resetReader()
geotess::IFStreamAscii::writeInt
void writeInt(int i)
Definition: IFStreamAscii.h:551
CPPUtils.h
geotess::IFStreamAscii::writeType
void writeType(byte b)
Definition: IFStreamAscii.h:545
geotess::IFStreamAscii::writeType
void writeType(double d)
Definition: IFStreamAscii.h:565