OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimCsvFile.h
Go to the documentation of this file.
1 #ifndef ossimCsvFile_HEADER
2 #define ossimCsvFile_HEADER
8 #include <map>
9 #include <vector>
10 #include <fstream>
11 
13 {
14 public:
15  typedef std::vector<ossimString> StringListType;
17  {
18  public:
19  typedef std::map<ossimString, ossimString, ossimStringLtstr> FieldMapType;
20  typedef std::vector<ossimString> FieldValueListType;
21 
22  Record(ossimCsvFile* csvFile);
24  {
25  theCsvFile = file;
26  }
28  {
29  return theCsvFile;
30  }
31  const ossimCsvFile* csvFile()const
32  {
33  return theCsvFile;
34  }
35 
37  {
38  return theValues;
39  }
40  const StringListType& values()const
41  {
42  return theValues;
43  }
44 
48  bool valueAt(const ossimString& fieldName,
49  ossimString& value)const;
50 
51  bool valueAt(ossim_uint32 idx,
52  ossimString& value)const;
56  ossimString& operator [](const ossimString& fieldName);
57  const ossimString& operator [](const ossimString& fieldName)const;
58  ossimString& operator [](ossim_uint32 idx);
59  const ossimString& operator [](ossim_uint32 idx)const;
60  protected:
61  // used in out of bounds returns on the operators []
62  //
66  };
67  friend class Record;
68 
69  ossimCsvFile(const ossimString& separatorList=",");
70  ~ossimCsvFile();
71 
77  bool open(const ossimFilename& file, const ossimString& flags="r");
78  void close();
79 
80  bool readHeader();
86 
90  const StringListType& fieldHeaderList()const;
91 
92  ossim_int32 indexOfField(const ossimString& fieldName)const;
93 
95 protected:
96  bool readCsvLine(std::istream& inStream,
97  ossimCsvFile::StringListType& tokens)const;
103 };
104 #endif
ossimRefPtr< ossimCsvFile::Record > theRecordBuffer
Definition: ossimCsvFile.h:99
StringListType & values()
Definition: ossimCsvFile.h:36
StringListType theFieldHeaderList
Definition: ossimCsvFile.h:98
std::istream * theInputStream
Definition: ossimCsvFile.h:100
static ossim_int32 INVALID_INDEX
Definition: ossimCsvFile.h:94
std::vector< ossimString > FieldValueListType
Definition: ossimCsvFile.h:20
ossimReferenced allows for shared object ref counting if the reference count ever gets to 0 or less i...
ossimCsvFile * theCsvFile
Definition: ossimCsvFile.h:65
const ossimCsvFile * csvFile() const
Definition: ossimCsvFile.h:31
ossimCsvFile * csvFile()
Definition: ossimCsvFile.h:27
const StringListType & values() const
Definition: ossimCsvFile.h:40
std::map< ossimString, ossimString, ossimStringLtstr > FieldMapType
Definition: ossimCsvFile.h:19
ossimString theDummyValue
Definition: ossimCsvFile.h:63
StringListType theValues
Definition: ossimCsvFile.h:64
unsigned int ossim_uint32
ossimString theSeparatorList
Definition: ossimCsvFile.h:101
std::basic_istream< char > istream
Base class for char input streams.
Definition: ossimIosFwd.h:20
#define OSSIM_DLL
void setCsvFile(ossimCsvFile *file)
Definition: ossimCsvFile.h:23
std::vector< ossimString > StringListType
Definition: ossimCsvFile.h:15
int ossim_int32