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 //wait for how long? 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 //BuffMap * descriptorToFile; 00031 BuffVec descriptorToFile; 00032 fd_set readSet; 00033 fd_set writeSet; 00034 struct timeval tv; 00035 int maxFd; 00036 }; 00037 #endif