openATV enigma2
openATV is an open source SetTopBox Graphical user interface.
cfile.h
Go to the documentation of this file.
1 #ifndef __lib_base_cfile_h
2 #define __lib_base_cfile_h
3 
4 #include <stdio.h>
5 #include <string>
6 
7 typedef long long pts_t;
8 
9 /* Wrapper around FILE to prevent leaks and to make your code a bit more OO */
10 struct CFile
11 {
12  FILE *handle;
13  CFile(const char *filename, const char *mode)
15  {}
16  CFile(const std::string &filename, const char *mode)
17  : handle(fopen(filename.c_str(), mode))
18  {}
20  {
21  if (handle)
22  fclose(handle);
23  }
24  void sync() { fsync(fileno(handle)); }
25  operator bool() const { return handle != NULL; }
26  operator FILE*() const { return handle; }
27 
28  /* Fetch integer from /proc files and such */
29  static int parseIntHex(int *result, const char *filename);
30  static int parseInt(int *result, const char *filename);
31  static int parsePts_t(pts_t *result, const char *filename);
32  static int writeIntHex(const char *filename, int value);
33  static int writeInt(const char *filename, int value);
34  static int writeStr(const char *filename, std::string value);
35  static int write(const char *filename, const char *value);
36  static std::string read(const std::string &filename);
37  static bool contains_word(const std::string &filename, const std::string &word);
38 };
39 
40 #endif
long long pts_t
Definition: cfile.h:7
#define NULL
Definition: eerror.h:101
const char * filename
Definition: epng.h:36
FILE * fopen(const char *pathname, const char *mode)
Definition: libopen.c:126
value
Definition: Profile.py:29
else result
Definition: picload.cpp:1534
Definition: cfile.h:11
~CFile()
Definition: cfile.h:19
static int parsePts_t(pts_t *result, const char *filename)
Definition: cfile.cpp:26
static int parseIntHex(int *result, const char *filename)
Definition: cfile.cpp:6
static bool contains_word(const std::string &filename, const std::string &word)
Definition: cfile.cpp:78
static std::string read(const std::string &filename)
Definition: cfile.cpp:68
static int parseInt(int *result, const char *filename)
Definition: cfile.cpp:16
void sync()
Definition: cfile.h:24
static int writeIntHex(const char *filename, int value)
Definition: cfile.cpp:36
static int writeStr(const char *filename, std::string value)
Definition: cfile.cpp:52
static int writeInt(const char *filename, int value)
Definition: cfile.cpp:44
FILE * handle
Definition: cfile.h:12
static int write(const char *filename, const char *value)
Definition: cfile.cpp:60
CFile(const std::string &filename, const char *mode)
Definition: cfile.h:16
CFile(const char *filename, const char *mode)
Definition: cfile.h:13
uint8_t mode
Definition: vps.cpp:40