LRAUV  revA
FileOutStream.h
Go to the documentation of this file.
1 
10 #ifndef FILEOUTSTREAM_H_
11 #define FILEOUTSTREAM_H_
12 
13 #include <cstdio>
14 
15 #include "OutStream.h"
16 #include "utils/Mutex.h"
17 
26 class FileOutStream : public OutStream
27 {
28 public:
29 
31  FileOutStream( FILE* file = NULL, bool autoClose = false );
32 
34  FileOutStream( const char* filename, bool append = true, bool rewrite = false );
35 
36  virtual ~FileOutStream();
37 
39  OutStream& write( const char* buffer, size_t num );
40 
42  virtual OutStream& write( const char* buffer )
43  {
44  return write( buffer, strlen( buffer ) );
45  }
46 
48  void setFile( FILE* file )
49  {
50  file_ = file;
51  }
52 
53  bool seek( unsigned int location );
54 
55  int tell();
56 
57  void close();
58 
59  void flush();
60 
61  bool open( const char* filename, bool append = true, bool rewrite = false );
62 
63  bool isWritable()
64  {
65  return NULL != file_;
66  }
67 
68  const char* getName()
69  {
70  return filename_.cStr();
71  }
72 
73 protected:
74  FILE* file_;
75  bool autoClose_;
77 
78 private:
79  // Note that the copy constructor below is private and not given a body.
80  // Any attempt to call it will return a compiler error.
81  FileOutStream( const FileOutStream& old ); // disallow copy constructor
83 };
84 
85 #endif /*FILEOUTSTREAM_H_*/
OutStream & write(const char *buffer, size_t num)
writes num bytes from buffer to the output buffer/stream
Definition: FileOutStream.cpp:36
FileOutStream(FILE *file=NULL, bool autoClose=false)
Constructor.
Definition: FileOutStream.cpp:12
A simple pthread Mutex abstraction.
Definition: Mutex.h:20
const char * getName()
Definition: FileOutStream.h:68
Wraps a c FILE* handle with an OutStream class.
Definition: FileOutStream.h:26
Mutex fileMutex_
Definition: FileOutStream.h:76
FILE * file_
Definition: FileOutStream.h:74
Contains the OutStream class declaration.
bool seek(unsigned int location)
Definition: FileOutStream.cpp:46
void close()
Definition: FileOutStream.cpp:66
virtual OutStream & write(const char *buffer)
writes zero-terminated buffer to the output buffer/stream
Definition: FileOutStream.h:42
Replacement for standard template class string.
Definition: Str.h:12
void flush()
Definition: FileOutStream.cpp:76
bool isWritable()
indicates whether the stream can actually be written to.
Definition: FileOutStream.h:63
const char * cStr() const
Definition: Str.h:188
Contains the Mutex, ThreadCondition, and MutexLocker class declarations.
int tell()
Definition: FileOutStream.cpp:56
bool open(const char *filename, bool append=true, bool rewrite=false)
Definition: FileOutStream.cpp:85
bool autoClose_
Definition: FileOutStream.h:75
This is a very abstract class that can be implemented by classes that want to send stream output...
Definition: OutStream.h:41
virtual ~FileOutStream()
Definition: FileOutStream.cpp:27
Str filename_
Definition: FileOutStream.h:82
void setFile(FILE *file)
Change the assoicated file.
Definition: FileOutStream.h:48