CoinUtils 2.11.4
Loading...
Searching...
No Matches
CoinFileIO.hpp
Go to the documentation of this file.
1/* $Id$ */
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
12public:
15 CoinFileIOBase(const std::string &fileName);
16
19
21 const char *getFileName() const;
22
24 inline std::string getReadType() const
25 {
26 return readType_.c_str();
27 }
28
29protected:
30 std::string readType_;
31
32private:
35
36 std::string fileName_;
37};
38
41public:
43 static bool haveGzipSupport();
45 static bool haveBzip2Support();
46
54 static CoinFileInput *create(const std::string &fileName);
55
58 CoinFileInput(const std::string &fileName);
59
61 virtual ~CoinFileInput();
62
67 virtual int read(void *buffer, int size) = 0;
68
78 virtual char *gets(char *buffer, int size) = 0;
79};
80
83public:
84 CoinPlainFileInput(const std::string &fileName);
88
89 virtual int read(void *buffer, int size);
90
91 virtual char *gets(char *buffer, int size);
92
93private:
94 FILE *f_;
95};
96
99public:
104 COMPRESS_BZIP2 = 2
105 };
106
109 static bool compressionSupported(Compression compression);
110
121 static CoinFileOutput *create(const std::string &fileName,
122 Compression compression);
123
126 CoinFileOutput(const std::string &fileName);
127
130
135 virtual int write(const void *buffer, int size) = 0;
136
144 virtual bool puts(const char *s);
145
147 inline bool puts(const std::string &s)
148 {
149 return puts(s.c_str());
150 }
151};
152
160bool fileAbsPath(const std::string &path);
161
180bool fileCoinReadable(std::string &name,
181 const std::string &dfltPrefix = std::string(""));
182#endif
183
184/* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
185*/
Base class for FileIO classes.
Definition: CoinFileIO.hpp:11
CoinFileIOBase(const CoinFileIOBase &)
const char * getFileName() const
Return the name of the file used by this object.
std::string getReadType() const
Return the method of reading being used.
Definition: CoinFileIO.hpp:24
CoinFileIOBase(const std::string &fileName)
Constructor.
~CoinFileIOBase()
Destructor.
std::string readType_
Definition: CoinFileIO.hpp:30
std::string fileName_
Definition: CoinFileIO.hpp:36
Abstract base class for file input classes.
Definition: CoinFileIO.hpp:40
bool fileCoinReadable(std::string &name, const std::string &dfltPrefix=std::string(""))
Test if the file is readable, using likely versions of the file name, and return the name that worked...
virtual ~CoinFileInput()
Destructor.
static CoinFileInput * create(const std::string &fileName)
Factory method, that creates a CoinFileInput (more precisely a subclass of it) for the file specified...
CoinFileInput(const std::string &fileName)
Constructor (don't use this, use the create method instead).
static bool haveBzip2Support()
indicates whether CoinFileInput supports bzip2'ed files
virtual char * gets(char *buffer, int size)=0
Reads up to (size-1) characters an stores them into the buffer, similar to fgets.
bool fileAbsPath(const std::string &path)
Test if the given string looks like an absolute file path.
static bool haveGzipSupport()
indicates whether CoinFileInput supports gzip'ed files
virtual int read(void *buffer, int size)=0
Read a block of data from the file, similar to fread.
Abstract base class for file output classes.
Definition: CoinFileIO.hpp:98
static CoinFileOutput * create(const std::string &fileName, Compression compression)
Factory method, that creates a CoinFileOutput (more precisely a subclass of it) for the file specifie...
Compression
The compression method.
Definition: CoinFileIO.hpp:101
@ COMPRESS_NONE
No compression.
Definition: CoinFileIO.hpp:102
@ COMPRESS_BZIP2
bzip2 compression.
Definition: CoinFileIO.hpp:104
@ COMPRESS_GZIP
gzip compression.
Definition: CoinFileIO.hpp:103
virtual bool puts(const char *s)
Write a string to the file (like fputs).
virtual int write(const void *buffer, int size)=0
Write a block of data to the file, similar to fwrite.
bool puts(const std::string &s)
Convenience method: just a 'puts(s.c_str())'.
Definition: CoinFileIO.hpp:147
static bool compressionSupported(Compression compression)
Returns whether the specified compression method is supported (i.e.
CoinFileOutput(const std::string &fileName)
Constructor (don't use this, use the create method instead).
virtual ~CoinFileOutput()
Destructor.
This reads plain text files.
Definition: CoinFileIO.hpp:82
CoinPlainFileInput(const std::string &fileName)
virtual int read(void *buffer, int size)
Read a block of data from the file, similar to fread.
virtual ~CoinPlainFileInput()
virtual char * gets(char *buffer, int size)
Reads up to (size-1) characters an stores them into the buffer, similar to fgets.
CoinPlainFileInput(FILE *fp)
When already opened.