#ifdef USE_MODULELOADER #include "TypeDetect.hpp" #include "ModuleLoader.hpp" #include "Fetcher.hpp" #else #include "LibMagicTypeDetect.hpp" #include "FileFetcher.hpp" #include "LibFetchFetcher.hpp" #endif #include "SimpleURLNormalizer.hpp" #include #include #include #include using namespace std; int main( int argc, char *argv[] ) { if( argc < 4 ) { cerr << "usage: test1 \n" << endl; return 1; } char *method = argv[1]; char *fetcherMethod = argv[2]; char *urlStr = argv[3]; #ifdef USE_MODULELOADER vector modules; modules.push_back( "../../src/modules/typedetect/libmagic/mod_typedetect_libmagic.so" ); ModuleLoader typeDetectors( modules ); TypeDetect *typeDetect = typeDetectors.create( method ); #else TypeDetect *typeDetect; if( strcmp( method, "libmagic_typedetect" ) == 0 ) { typeDetect = new LibMagicTypeDetect( ); } else { cerr << "Unknown type detection method '" << method << "'" << endl; return 1; } #endif #ifdef USE_MODULELOADER #error TODO #else Fetcher *fetcher; if( strcmp( fetcherMethod, "file_fetcher" ) == 0 ) { fetcher = new FileFetcher( ); } else if( strcmp( fetcherMethod, "libfetch_fetcher" ) == 0 ) { fetcher = new LibFetchFetcher( ); } else { cerr << "Unknown fetcher method '" << fetcherMethod << "'" << endl; return 1; } #endif SimpleURLNormalizer normalizer; URL url = normalizer.parseUrl( urlStr ); RewindInputStream *s = fetcher->fetch( url ); // (void)typeDetect->detect( s ); // s->rewind( ); MIMEType type = typeDetect->detect( s ); delete s; #ifdef USE_MODULELOADER typeDetects.destroy( typeDetect ); #else delete typeDetect; delete fetcher; #endif if( type == MIMEType::Null ) { cerr << "Unable to detect MIME type!" << endl; return 1; } cout << "MIME type: " << type << endl; return 0; }