1/* 2 * Copyright 2010-2013 Haiku Inc. All rights reserved. 3 * Distributed under the terms of the MIT License. 4 * 5 * Authors: 6 * Christophe Huriaux, c.huriaux@gmail.com 7 * Adrien Destugues, pulkomandy@pulkomandy.tk 8 */ 9 10#include <UrlProtocolRoster.h> 11 12#include <new> 13 14#include <DataRequest.h> 15#include <Debug.h> 16#include <FileRequest.h> 17#include <GopherRequest.h> 18#include <HttpRequest.h> 19#include <UrlRequest.h> 20 21using namespace BPrivate::Network; 22 23 24/* static */ BUrlRequest* 25BUrlProtocolRoster::MakeRequest(const BUrl& url, BDataIO* output, 26 BUrlProtocolListener* listener, BUrlContext* context) 27{ 28 // TODO: instanciate the correct BUrlProtocol using add-on interface 29 if (url.Protocol() == "http") { 30 return new(std::nothrow) BHttpRequest(url, output, false, "HTTP", 31 listener, context); 32 } else if (url.Protocol() == "https") { 33 return new(std::nothrow) BHttpRequest(url, output, true, "HTTPS", 34 listener, context); 35 } else if (url.Protocol() == "file") { 36 return new(std::nothrow) BFileRequest(url, output, listener, context); 37 } else if (url.Protocol() == "data") { 38 return new(std::nothrow) BDataRequest(url, output, listener, context); 39 } else if (url.Protocol() == "gopher") { 40 return new(std::nothrow) BGopherRequest(url, output, listener, context); 41 } 42 43 return NULL; 44} 45