NEURON
ocfile.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <string>
4 class File;
5 class FileChooser;
6 
7 class OcFile {
8  public:
9  OcFile();
10  virtual ~OcFile();
11  bool open(const char* filename, const char* type);
12  void set_name(const char* s);
13  const char* get_name() {
14  return filename_.c_str();
15  }
16  const char* dir();
17  void close();
18  void print(const char* s) {
19  fprintf(file(), "%s", s);
20  }
21  FILE* file();
22  bool is_open() {
23  return file_ ? true : false;
24  }
25  bool eof();
26  void flush() {
27  if (file_) {
28  fflush(file_);
29  }
30  }
31  bool mktemp();
32  bool unlink();
33  void file_chooser_style(const char* type,
34  const char* path,
35  const char* banner = NULL,
36  const char* filter = NULL,
37  const char* accept = NULL,
38  const char* cancel = NULL);
39  bool file_chooser_popup();
40 #ifdef WIN32
41  void binary_mode(); // sets open file to binary mode once only
42 #endif
43  private:
45  enum { N, R, W, A };
46 #if HAVE_IV
47  int chooser_type_;
48 #endif
49  std::string filename_;
50  std::string dirname_;
51  FILE* file_;
52 #ifdef WIN32
53  bool binary_;
54  char mode_[3];
55 #endif
56 };
57 
58 #ifdef WIN32
59 #define BinaryMode(ocfile) ocfile->binary_mode();
60 #else
61 #define BinaryMode(ocfile) /**/
62 #endif
63 
64 bool isDirExist(const std::string& path);
65 bool makePath(const std::string& path);
#define FileChooser
Definition: _defines.h:114
Definition: ocfile.h:7
void flush()
Definition: ocfile.h:26
void close()
Definition: ocfile.cpp:307
std::string dirname_
Definition: ocfile.h:50
bool mktemp()
Definition: ocfile.cpp:358
void set_name(const char *s)
Definition: ocfile.cpp:313
bool eof()
Definition: ocfile.cpp:352
virtual ~OcFile()
Definition: ocfile.cpp:65
FILE * file_
Definition: ocfile.h:51
std::string filename_
Definition: ocfile.h:49
@ R
Definition: ocfile.h:45
@ N
Definition: ocfile.h:45
@ W
Definition: ocfile.h:45
@ A
Definition: ocfile.h:45
void print(const char *s)
Definition: ocfile.h:18
const char * dir()
Definition: ocfile.cpp:451
FILE * file()
Definition: ocfile.cpp:345
OcFile()
Definition: ocfile.cpp:57
bool unlink()
Definition: ocfile.cpp:368
bool file_chooser_popup()
Definition: ocfile.cpp:463
void file_chooser_style(const char *type, const char *path, const char *banner=NULL, const char *filter=NULL, const char *accept=NULL, const char *cancel=NULL)
Definition: ocfile.cpp:373
FileChooser * fc_
Definition: ocfile.h:44
const char * get_name()
Definition: ocfile.h:13
bool open(const char *filename, const char *type)
Definition: ocfile.cpp:335
bool is_open()
Definition: ocfile.h:22
static char banner[]
Definition: mk_mech.cpp:26
s
Definition: multisend.cpp:521
short type
Definition: cabvars.h:10
bool makePath(const std::string &path)
Definition: ocfile.cpp:539
bool isDirExist(const std::string &path)
Definition: ocfile.cpp:523
#define NULL
Definition: spdefs.h:105