CoinUtils  2.10.11
CoinFileIO.hpp
Go to the documentation of this file.
1 /* $Id: CoinFileIO.hpp 1439 2011-06-13 16:31:21Z stefan $ */
2 // Copyright (C) 2005, COIN-OR. All Rights Reserved.
3 // This code is licensed under the terms of the Eclipse Public License (EPL).
4 
5 #ifndef CoinFileIO_H
6 #define CoinFileIO_H
7 
8 #include <string>
9 
12 {
13 public:
16  CoinFileIOBase (const std::string &fileName);
17 
19  ~CoinFileIOBase ();
20 
22  const char *getFileName () const;
23 
25  inline std::string getReadType () const
26  { return readType_.c_str();}
27 protected:
28  std::string readType_;
29 private:
30  CoinFileIOBase ();
32 
33  std::string fileName_;
34 };
35 
38 {
39 public:
41  static bool haveGzipSupport();
43  static bool haveBzip2Support();
44 
52  static CoinFileInput *create (const std::string &fileName);
53 
56  CoinFileInput (const std::string &fileName);
57 
59  virtual ~CoinFileInput ();
60 
65  virtual int read (void *buffer, int size) = 0;
66 
76  virtual char *gets (char *buffer, int size) = 0;
77 };
78 
81 {
82 public:
83 
85  enum Compression {
86  COMPRESS_NONE = 0,
87  COMPRESS_GZIP = 1,
88  COMPRESS_BZIP2 = 2
89  };
90 
93  static bool compressionSupported (Compression compression);
94 
105  static CoinFileOutput *create (const std::string &fileName,
106  Compression compression);
107 
110  CoinFileOutput (const std::string &fileName);
111 
113  virtual ~CoinFileOutput ();
114 
119  virtual int write (const void * buffer, int size) = 0;
120 
128  virtual bool puts (const char *s);
129 
131  inline bool puts (const std::string &s)
132  {
133  return puts (s.c_str ());
134  }
135 };
136 
144 bool fileAbsPath (const std::string &path) ;
145 
164 bool fileCoinReadable(std::string &name,
165  const std::string &dfltPrefix = std::string(""));
166 #endif
bool puts(const std::string &s)
Convenience method: just a &#39;puts(s.c_str())&#39;.
Definition: CoinFileIO.hpp:131
Base class for FileIO classes.
Definition: CoinFileIO.hpp:11
const char * getFileName() const
Return the name of the file used by this object.
Abstract base class for file output classes.
Definition: CoinFileIO.hpp:80
Compression
The compression method.
Definition: CoinFileIO.hpp:85
std::string readType_
Definition: CoinFileIO.hpp:28
Abstract base class for file input classes.
Definition: CoinFileIO.hpp:37
~CoinFileIOBase()
Destructor.
std::string getReadType() const
Return the method of reading being used.
Definition: CoinFileIO.hpp:25