Add FTP protocol debugging facilities.
[dftpd.git] / DataBufferFile.hpp
blob24ac6c9a056848c44c9e05a73bcba1f4f3c7796d
1 #ifndef __DFTPD__DATABUFFERFILE_HPP__
2 #define __DFTPD__DATABUFFERFILE_HPP__
4 #include <stdio.h>
5 #include <pthread.h>
6 #include "DataBuffer.hpp"
8 class DataBufferFile : public DataBuffer
10 enum { BufSize = 131072 };
12 public:
13 DataBufferFile( FILE* f, int secondaryBufferSize, Mode mode );
14 ~DataBufferFile();
16 int Read( void* ptr, int size );
17 int Write( void* ptr, int size );
18 void Store( void* ptr, int size );
20 private:
21 void SaveBuffer();
22 static void* SaveBuffer( void* ptr );
24 FILE* m_file;
26 char* m_buf;
27 char* m_buf2;
28 int m_offset;
29 int m_offsetToWrite;
31 char* m_secBuf;
32 int m_secBufSize;
34 Mode m_mode;
36 pthread_t m_thread;
37 bool m_threadRunning;
40 #endif