NEURON
ocfile.h
Go to the documentation of this file.
1 #ifndef ocfile_h
2 #define ocfile_h
3 
4 #include <OS/string.h>
5 #include <string>
6 class File;
7 class FileChooser;
8 
9 class OcFile {
10  public:
11  OcFile();
12  virtual ~OcFile();
13  bool open(const char* filename, const char* type);
14  void set_name(const char* s);
15  const char* get_name() {
16  return filename_.string();
17  }
18  const char* dir();
19  void close();
20  void print(const char* s) {
21  fprintf(file(), "%s", s);
22  }
23  FILE* file();
24  bool is_open() {
25  return file_ ? true : false;
26  }
27  bool eof();
28  void flush() {
29  if (file_) {
30  fflush(file_);
31  }
32  }
33  bool mktemp();
34  bool unlink();
35  void file_chooser_style(const char* type,
36  const char* path,
37  const char* banner = NULL,
38  const char* filter = NULL,
39  const char* accept = NULL,
40  const char* cancel = NULL);
41  bool file_chooser_popup();
42 #ifdef WIN32
43  void binary_mode(); // sets open file to binary mode once only
44 #endif
45  private:
47  enum { N, R, W, A };
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);
66 
67 #endif
#define FileChooser
Definition: _defines.h:116
short type
Definition: cabvars.h:9
Definition: ocfile.h:9
void flush()
Definition: ocfile.h:28
void close()
Definition: ocfile.cpp:308
bool mktemp()
Definition: ocfile.cpp:380
void set_name(const char *s)
Definition: ocfile.cpp:314
bool eof()
Definition: ocfile.cpp:374
virtual ~OcFile()
Definition: ocfile.cpp:74
FILE * file_
Definition: ocfile.h:51
void print(const char *s)
Definition: ocfile.h:20
const char * dir()
Definition: ocfile.cpp:473
FILE * file()
Definition: ocfile.cpp:367
OcFile()
Definition: ocfile.cpp:66
bool unlink()
Definition: ocfile.cpp:390
bool file_chooser_popup()
Definition: ocfile.cpp:485
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:395
FileChooser * fc_
Definition: ocfile.h:46
const char * get_name()
Definition: ocfile.h:15
@ R
Definition: ocfile.h:47
@ N
Definition: ocfile.h:47
@ W
Definition: ocfile.h:47
@ A
Definition: ocfile.h:47
int chooser_type_
Definition: ocfile.h:48
CopyString filename_
Definition: ocfile.h:49
bool open(const char *filename, const char *type)
Definition: ocfile.cpp:343
CopyString dirname_
Definition: ocfile.h:50
bool is_open()
Definition: ocfile.h:24
const char * string() const
Definition: string.h:139
#define fprintf
Definition: mwprefix.h:30
static char banner[]
Definition: init.cpp:21
bool makePath(const std::string &path)
Definition: ocfile.cpp:561
bool isDirExist(const std::string &path)
Definition: ocfile.cpp:545
int * File
Definition: spoutput.c:568
#define NULL
Definition: sptree.h:16