35 explicit Url(
const std::string &urlString,
bool isEscaped =
false );
40 const char*
c_str()
const {
return mStr.c_str(); }
67 : mIgnoreCache(
ignoreCache ), mTimeout( timeoutSeconds )
86 class IStreamUrlImpl {
89 : mUser( user ), mPassword( password ), mOptions( options ) {}
92 virtual ~IStreamUrlImpl() {}
95 std::string getPassword()
const {
return mPassword; }
96 const UrlOptions& getOptions()
const {
return mOptions; }
98 virtual size_t readDataAvailable(
void *dest,
size_t maxSize ) = 0;
99 virtual void seekAbsolute( off_t absoluteOffset ) = 0;
100 virtual void seekRelative( off_t relativeOffset ) = 0;
101 virtual off_t tell()
const = 0;
102 virtual off_t
size()
const = 0;
104 virtual bool isEof()
const = 0;
105 virtual void IORead(
void *
t,
size_t size ) = 0;
109 const UrlOptions mOptions;
123 virtual void seekAbsolute( off_t absoluteOffset ) {
return mImpl->seekAbsolute( absoluteOffset ); }
124 virtual void seekRelative( off_t relativeOffset ) {
return mImpl->seekRelative( relativeOffset ); }
138 virtual void IOWrite(
const void *
t,
size_t size ) {
throw std::exception(); }
140 std::shared_ptr<IStreamUrlImpl>
mImpl;
151 virtual const char *
what()
const throw() {
return mMessage.c_str(); }
UrlOptions & ignoreCache(bool ignore=true)
Definition: Url.h:70
bool getIgnoreCache() const
Definition: Url.h:71
std::string getUser() const
Definition: Url.h:130
GLsizei const GLchar ** string
Definition: GLee.h:2427
UrlOptions(bool ignoreCache=false, float timeoutSeconds=30.0f)
Definition: Url.h:66
int statusCode() const
Definition: Url.h:152
virtual off_t size() const
Definition: Url.h:126
static std::string encode(const std::string &unescaped)
Replaces illegal URL characters as defined by RFC 2396 with their escaped equivalents and returns a c...
Definition: Url.cpp:59
Url()
Definition: Url.h:33
virtual void IOWrite(const void *t, size_t size)
IStreamURL does not yet support writing.
Definition: Url.h:138
void setTimeout(float seconds)
Definition: Url.h:76
virtual void seekRelative(off_t relativeOffset)
Moves the current position of the stream by relativeOffset bytes.
Definition: Url.h:124
IStreamUrlRef loadUrlStream(const Url &url, const UrlOptions &options=UrlOptions())
Definition: Url.cpp:98
static IStreamUrlRef create(const Url &url, const std::string &user="", const std::string &password="", const UrlOptions &options=UrlOptions())
Creates a new IStreamUrlRef from the Url url with an optional login and password. ...
Definition: Url.cpp:84
std::shared_ptr< IStreamUrlImpl > mImpl
Definition: Url.h:140
UrlLoadExc(int statusCode, const std::string &message)
Definition: Url.cpp:111
std::shared_ptr< class IStreamUrl > IStreamUrlRef
A pointer to an instance of an IStreamUrl. Can be created using IStreamUrl::createRef() ...
Definition: Url.h:114
IStreamUrl(const std::string &url, const std::string &user, const std::string &password, const UrlOptions &options)
Definition: Url.cpp:89
virtual size_t readDataAvailable(void *dest, size_t maxSize)
Definition: Url.h:122
float getTimeout() const
Definition: Url.h:75
std::string str() const
Returns the string representation of the URL as std::string. Encoded as UTF-8.
Definition: Url.h:38
std::ostream & operator<<(std::ostream &lhs, const ColorT< float > &rhs)
Definition: Color.cpp:203
virtual void seekAbsolute(off_t absoluteOffset)
Sets the current position of the stream to byte absoluteOffset. A negative offset is relative to the ...
Definition: Url.h:123
void setIgnoreCache(bool ignore=true)
Definition: Url.h:72
Exception for failed Url loading.
Definition: Url.h:147
std::istream & operator>>(std::istream &is, Url &url)
Definition: Url.h:55
Definition: Exception.h:32
Options for loadUrl() to dictate caching and timeout behavior.
Definition: Url.h:64
std::string getPassword() const
Definition: Url.h:131
UrlOptions & timeout(float seconds)
Definition: Url.h:74
GLdouble GLdouble t
Definition: GLee.h:1426
virtual off_t tell() const
Returns the current position of the stream measured in bytes **/.
Definition: Url.h:125
GLclampf f
Definition: GLee.h:15307
GLsizeiptr size
Definition: GLee.h:2089
virtual void IORead(void *t, size_t size)
Definition: Url.h:136
virtual bool isEof() const
Definition: Url.h:128
const char * c_str() const
Returns the string representation of the URL as char*. Encoded as UTF-8.
Definition: Url.h:40
virtual const char * what() const
Definition: Url.h:151