00001
00002
00003
00004
00005
00006
00007
00008 #ifndef __WVURL_H
00009 #define __WVURL_H
00010
00011 #include "wvstring.h"
00012 #include "wvresolver.h"
00013
00014 class WvIPPortAddr;
00015
00016 class WvUrl
00017 {
00018 public:
00019 WvUrl(WvStringParm url);
00020 WvUrl(const WvUrl &url);
00021 ~WvUrl();
00022
00023 bool isok() const
00024 { return port != 0 && (resolving || addr != NULL); }
00025 WvStringParm errstr() const
00026 { return err; }
00027 bool resolve();
00028
00029 operator WvString () const;
00030
00031
00032 const WvUrl &operator= (const WvUrl &);
00033
00034 WvStringParm getproto() const
00035 { return proto; }
00036
00037
00038 const WvIPPortAddr getaddr() const
00039 { return addr ? *addr : WvIPPortAddr(); }
00040
00041 WvStringParm getfile() const
00042 { return file; }
00043 WvStringParm gethost() const
00044 { return hostname; }
00045 int getport() const
00046 { return port; }
00047 WvStringParm getuser() const
00048 { return user; }
00049 WvStringParm getpassword() const
00050 { return password; }
00051
00052 protected:
00053 WvString proto, hostname, user, password;
00054 int port;
00055 bool resolving;
00056 WvResolver dns;
00057 WvIPPortAddr *addr;
00058 WvString file, err;
00059 };
00060
00061
00062
00063 typedef WvUrl WvURL;
00064
00065 #endif // __WVURL_H