00001 #ifndef CONNECTIONFACTORY_H
00002 #define CONNECTIONFACTORY_H
00003 #include <stdio.h>
00004 #include <iostream>
00005 #include <errno.h>
00006 #include <stdlib.h>
00007 #include <unistd.h>
00008 #include <sys/time.h>
00009 #include <sys/types.h>
00010 #include <sys/socket.h>
00011 #include <netinet/in.h>
00012 #include <netdb.h>
00013 #include <string>
00014
00015 #include "Connection.h"
00016 #include "FilterConnection.h"
00017 #include "InputConnection.h"
00018 #include "OutputConnection.h"
00019 #include "ConfigConnection.h"
00020 #include "ConnectionWrap.h"
00021 #include "BufferedFile.h"
00022 #include "BufferedFileFactory.h"
00023
00024
00025 class ConnectionFactory {
00026 public:
00027 ConnectionFactory(BufferedFileFactory * bff,int start);
00028 ConnectionFactory(BufferedFileFactory * bff,int inputPort,int outputPort,int filterPort,int configPort);
00029 bool isThereANewConnection();
00030 ConnectionWrap * ConnectionFactory::processConnection();
00031 ~ConnectionFactory();
00032 private:
00033 void init(BufferedFileFactory * bff, int inputPort,int outputPort,int filterPort,int configPort);
00034 int inputfd;
00035 int outputfd;
00036 int filterfd;
00037 int configfd;
00038 BufferedFile * inputBF;
00039 BufferedFile * outputBF;
00040 BufferedFile * filterBF;
00041 BufferedFile * configBF;
00042
00043
00044
00045
00046 BufferedFileFactory * bf;
00047 BufferedFile * acceptAndGetFile(int fdin);
00048 };
00049 #endif