summaryrefslogtreecommitdiffstats
path: root/src/uscxml/URL.h
diff options
context:
space:
mode:
authorStefan Radomski <radomski@tk.informatik.tu-darmstadt.de>2013-02-20 21:55:27 (GMT)
committerStefan Radomski <radomski@tk.informatik.tu-darmstadt.de>2013-02-20 21:55:27 (GMT)
commit47956a35d11495f2ebf6988c7f9d9dffe0bd3a4b (patch)
treeb991daf52ca2051d2e3f89f8143b843bf1318449 /src/uscxml/URL.h
parent8c30e4f664bb8b68f965165035ec29115486b065 (diff)
downloaduscxml-47956a35d11495f2ebf6988c7f9d9dffe0bd3a4b.zip
uscxml-47956a35d11495f2ebf6988c7f9d9dffe0bd3a4b.tar.gz
uscxml-47956a35d11495f2ebf6988c7f9d9dffe0bd3a4b.tar.bz2
Beautified source code again
Diffstat (limited to 'src/uscxml/URL.h')
-rw-r--r--src/uscxml/URL.h248
1 files changed, 157 insertions, 91 deletions
diff --git a/src/uscxml/URL.h b/src/uscxml/URL.h
index 0858626..df93e60 100644
--- a/src/uscxml/URL.h
+++ b/src/uscxml/URL.h
@@ -21,86 +21,110 @@ class URL;
class URLMonitor {
public:
- virtual void downloadStarted(const URL& url) {};
- virtual void downloadCompleted(const URL& url) {};
- virtual void downloadFailed(const URL& url, int errorCode) {};
- virtual void headerChunkReceived(const URL& url, const std::string& headerChunk) {};
- virtual void contentChunkReceived(const URL& url, const std::string& contentChunk) {};
+ virtual void downloadStarted(const URL& url) {};
+ virtual void downloadCompleted(const URL& url) {};
+ virtual void downloadFailed(const URL& url, int errorCode) {};
+ virtual void headerChunkReceived(const URL& url, const std::string& headerChunk) {};
+ virtual void contentChunkReceived(const URL& url, const std::string& contentChunk) {};
};
class URLImpl : public boost::enable_shared_from_this<URLImpl> {
public:
URLImpl(const std::string& url);
~URLImpl();
- static boost::shared_ptr<URLImpl> toLocalFile(const std::string& content, const std::string& suffix);
-
+ static boost::shared_ptr<URLImpl> toLocalFile(const std::string& content, const std::string& suffix);
+
static size_t writeHandler(void *ptr, size_t size, size_t nmemb, void *userdata);
static size_t headerHandler(void *ptr, size_t size, size_t nmemb, void *userdata);
- void addMonitor(URLMonitor* monitor) { _monitors.insert(monitor); }
- void removeMonitor(URLMonitor* monitor) { _monitors.erase(monitor); }
-
- const bool isAbsolute() const { return _uri.is_absolute(); }
- const std::string scheme() const { return _uri.scheme(); }
- const std::string host() const { return _uri.host(); }
- const std::string port() const { return _uri.port(); }
- const std::string path() const { return _uri.path(); }
- const std::string asString() const { return _uri.as_string(); }
-
- const bool toAbsoluteCwd();
+ void addMonitor(URLMonitor* monitor) {
+ _monitors.insert(monitor);
+ }
+ void removeMonitor(URLMonitor* monitor) {
+ _monitors.erase(monitor);
+ }
+
+ const bool isAbsolute() const {
+ return _uri.is_absolute();
+ }
+ const std::string scheme() const {
+ return _uri.scheme();
+ }
+ const std::string host() const {
+ return _uri.host();
+ }
+ const std::string port() const {
+ return _uri.port();
+ }
+ const std::string path() const {
+ return _uri.path();
+ }
+ const std::string asString() const {
+ return _uri.as_string();
+ }
+
+ const bool toAbsoluteCwd();
const bool toAbsolute(const std::string& baseUrl);
const std::string asLocalFile(const std::string& suffix, bool reload = false);
- void addOutHeader(const std::string& key, const std::string& value) { _outHeader[key] = value; }
- void setOutContent(const std::string& content);
- void setRequestType(const std::string& requestType);
-
- const std::map<std::string, std::string> getInHeaderFields();
+ void addOutHeader(const std::string& key, const std::string& value) {
+ _outHeader[key] = value;
+ }
+ void setOutContent(const std::string& content);
+ void setRequestType(const std::string& requestType);
+
+ const std::map<std::string, std::string> getInHeaderFields();
const std::string getInContent(bool forceReload = false);
- const void download(bool blocking = false);
-
- void downloadStarted();
- void downloadCompleted();
- void downloadFailed(int errorCode);
+ const void download(bool blocking = false);
- friend class URLFetcher;
+ void downloadStarted();
+ void downloadCompleted();
+ void downloadFailed(int errorCode);
+
+ friend class URLFetcher;
protected:
URLImpl() : _handle(NULL), _isDownloaded(false), _hasFailed(false) {}
std::string getLocalFilename(const std::string& suffix);
- std::string _outContent;
- std::map<std::string, std::string> _outHeader;
- std::string _requestType;
+ std::string _outContent;
+ std::map<std::string, std::string> _outHeader;
+ std::string _requestType;
+
+ CURL* _handle;
+ std::stringstream _inContent;
+ std::stringstream _inHeader;
- CURL* _handle;
- std::stringstream _inContent;
- std::stringstream _inHeader;
+ Arabica::io::URI _uri;
+ bool _isDownloaded;
+ bool _hasFailed;
- Arabica::io::URI _uri;
- bool _isDownloaded;
- bool _hasFailed;
+ std::string _localFile;
- std::string _localFile;
-
- tthread::condition_variable _condVar;
+ tthread::condition_variable _condVar;
tthread::recursive_mutex _mutex;
- std::set<URLMonitor*> _monitors;
- typedef std::set<URLMonitor*>::iterator monIter_t;
+ std::set<URLMonitor*> _monitors;
+ typedef std::set<URLMonitor*>::iterator monIter_t;
};
class URL {
-public:
+public:
URL() : _impl() {}
URL(const std::string url) : _impl(new URLImpl(url)) {}
URL(boost::shared_ptr<URLImpl> const impl) : _impl(impl) { }
URL(const URL& other) : _impl(other._impl) { }
virtual ~URL() {};
-
- operator bool() const { return _impl; }
- bool operator< (const URL& other) const { return _impl < other._impl; }
- bool operator==(const URL& other) const { return _impl == other._impl; }
+
+ operator bool() const {
+ return _impl;
+ }
+ bool operator< (const URL& other) const {
+ return _impl < other._impl;
+ }
+ bool operator==(const URL& other) const {
+ return _impl == other._impl;
+ }
bool operator!=(const URL& other) const {
return _impl != other._impl;
}
@@ -109,41 +133,83 @@ public:
return *this;
}
- const std::map<std::string, std::string> getInHeaderFields() const { return _impl->getInHeaderFields(); }
- const std::string getInContent() const { return _impl->getInContent(); }
- const void download(bool blocking = false) const { return _impl->download(blocking); }
-
- void addOutHeader(const std::string& key, const std::string& value) { _impl->addOutHeader(key, value); }
- void setRequestType(const std::string& requestType) { _impl->setRequestType(requestType); }
- void setOutContent(const std::string& content) { _impl->setOutContent(content); }
-
- const bool toAbsoluteCwd() { return _impl->toAbsoluteCwd(); }
- const bool toAbsolute(const std::string& baseUrl) { return _impl->toAbsolute(baseUrl); }
- const bool toAbsolute(const URL& baseUrl) { return _impl->toAbsolute(baseUrl.asString()); }
- const std::string asLocalFile(const std::string& suffix, bool reload = false) { return _impl->asLocalFile(suffix, reload); }
-
- static URL toLocalFile(const std::string& content, const std::string& suffix) {
- boost::shared_ptr<URLImpl> impl = URLImpl::toLocalFile(content, suffix);
- return URL(impl);
- }
-
- void addMonitor(URLMonitor* monitor) { _impl->addMonitor(monitor); }
- void removeMonitor(URLMonitor* monitor) { _impl->removeMonitor(monitor); }
-
- const bool isAbsolute() const { return _impl->isAbsolute(); }
- const std::string scheme() const { return _impl->scheme(); }
- const std::string host() const { return _impl->host(); }
- const std::string port() const { return _impl->port(); }
- const std::string path() const { return _impl->path(); }
- const std::string asString() const { return _impl->asString(); }
-
- friend class URLFetcher;
+ const std::map<std::string, std::string> getInHeaderFields() const {
+ return _impl->getInHeaderFields();
+ }
+ const std::string getInContent() const {
+ return _impl->getInContent();
+ }
+ const void download(bool blocking = false) const {
+ return _impl->download(blocking);
+ }
+
+ void addOutHeader(const std::string& key, const std::string& value) {
+ _impl->addOutHeader(key, value);
+ }
+ void setRequestType(const std::string& requestType) {
+ _impl->setRequestType(requestType);
+ }
+ void setOutContent(const std::string& content) {
+ _impl->setOutContent(content);
+ }
+
+ const bool toAbsoluteCwd() {
+ return _impl->toAbsoluteCwd();
+ }
+ const bool toAbsolute(const std::string& baseUrl) {
+ return _impl->toAbsolute(baseUrl);
+ }
+ const bool toAbsolute(const URL& baseUrl) {
+ return _impl->toAbsolute(baseUrl.asString());
+ }
+ const std::string asLocalFile(const std::string& suffix, bool reload = false) {
+ return _impl->asLocalFile(suffix, reload);
+ }
+
+ static URL toLocalFile(const std::string& content, const std::string& suffix) {
+ boost::shared_ptr<URLImpl> impl = URLImpl::toLocalFile(content, suffix);
+ return URL(impl);
+ }
+
+ void addMonitor(URLMonitor* monitor) {
+ _impl->addMonitor(monitor);
+ }
+ void removeMonitor(URLMonitor* monitor) {
+ _impl->removeMonitor(monitor);
+ }
+
+ const bool isAbsolute() const {
+ return _impl->isAbsolute();
+ }
+ const std::string scheme() const {
+ return _impl->scheme();
+ }
+ const std::string host() const {
+ return _impl->host();
+ }
+ const std::string port() const {
+ return _impl->port();
+ }
+ const std::string path() const {
+ return _impl->path();
+ }
+ const std::string asString() const {
+ return _impl->asString();
+ }
+
+ friend class URLFetcher;
friend std::ostream & operator<<(std::ostream &stream, const URL& p);
protected:
- void downloadStarted() { return _impl->downloadStarted(); }
- void downloadCompleted() { return _impl->downloadCompleted(); }
- void downloadFailed(int errorCode) { return _impl->downloadFailed(errorCode); }
+ void downloadStarted() {
+ return _impl->downloadStarted();
+ }
+ void downloadCompleted() {
+ return _impl->downloadCompleted();
+ }
+ void downloadFailed(int errorCode) {
+ return _impl->downloadFailed(errorCode);
+ }
boost::shared_ptr<URLImpl> _impl;
};
@@ -152,7 +218,7 @@ class URLFetcher {
public:
URLFetcher();
~URLFetcher();
-
+
static void fetchURL(URL& url);
static void breakURL(URL& url);
@@ -160,19 +226,19 @@ public:
void stop();
protected:
- static URLFetcher* _instance;
- static URLFetcher* getInstance();
-
+ static URLFetcher* _instance;
+ static URLFetcher* getInstance();
+
static void run(void* instance);
void perform();
-
- tthread::thread* _thread;
- tthread::condition_variable _condVar;
+
+ tthread::thread* _thread;
+ tthread::condition_variable _condVar;
tthread::recursive_mutex _mutex;
- bool _isStarted;
-
- std::map<CURL*, URL> _handlesToURLs;
- CURLM* _multiHandle;
+ bool _isStarted;
+
+ std::map<CURL*, URL> _handlesToURLs;
+ CURLM* _multiHandle;
};
}