00001 #include <unistd.h>
00002 #include <vector>
00003 #include <list>
00004 #include <map>
00005 #ifndef BUFFEREDFILEFACTORY_H
00006 #define BUFFEREDFILEFACTORY_H
00007 #ifndef BUFFEREDFILE_H
00008 #include "BufferedFile.h"
00009 #endif
00010 struct lti
00011 {
00012 bool operator()(int a, int b) const
00013 {
00014 return (a < b);
00015 }
00016 };
00017 typedef map<int,BufferedFile *> BuffMap;
00018 typedef list<BufferedFile *> BuffVec;
00019 class BufferedFileFactory {
00020 public:
00021 BufferedFileFactory();
00022 BufferedFile * getNewBufferedFile(int fdesc);
00023
00024 int process(int microTime);
00025 void closeFile(BufferedFile * f);
00026 virtual ~BufferedFileFactory();
00027 void setBufferedFileRead(BufferedFile * bf,bool mode);
00028 void setBufferedFileWrite(BufferedFile * bf,bool mode);
00029 private:
00030
00031 BuffVec descriptorToFile;
00032 fd_set readSet;
00033 fd_set writeSet;
00034 struct timeval tv;
00035 int maxFd;
00036 };
00037 #endif