36 #ifndef PROJECT_CONTRACTING_LIBRARY_RFCBASIC_URI_HPP 37 #define PROJECT_CONTRACTING_LIBRARY_RFCBASIC_URI_HPP 40 #ifdef BUILDING_LIBRARY_RFC 41 #define EXPORT_RFC EXPORT_OUT 43 #define EXPORT_RFC EXPORT_IN 48 #pragma warning (disable : 4251) 51 #ifdef BUILDING_LIBRARY_RFC 52 #include "rfcTokens.h" 54 #include <SaS/RfcBasic/rfcTokens.h> 57 #include <SaS/Common/Base.hpp> 58 #include <SaS/Common/String.hpp> 59 #include <SaS/Common/StringCache.hpp> 61 #include <sys/types.h> 87 static const char * URICap_s;
88 static const char * URICid_s;
89 static const char * URIFile_s;
90 static const char * URIFtp_s;
91 static const char * URIGopher_s;
92 static const char * URIHttp_s;
93 static const char * URIHttps_s;
94 static const char * URILdap_s;
95 static const char * URIMailTo_s;
96 static const char * URIMid_s;
97 static const char * URINews_s;
98 static const char * URINntp_s;
99 static const char * URIProsperp_s;
100 static const char * URITelnet_s;
101 static const char * URIWais_s;
102 static const char * URIWebCal_s;
103 static const char * URIWebDav_s;
104 static const char * URICalDav_s;
105 static const char * URISql_s;
106 static const char * URILotusCal_s;
107 static const char * URIMicrosoftCal_s;
108 static const char * URIOracleCal_s;
109 static const char * URISip_s;
110 static const char * URISips_s;
143 const char * Name()
const;
148 const char * Value()
const;
179 Parameter(
const char * TheName,
const char * TheValue);
198 Header(
const char * TheName,
const char * TheValue);
316 Uri_t GetSchemeType()
const;
321 const char * GetScheme()
const;
326 const char * GetSchemeSpecific()
const;
331 const char * GetServer()
const;
340 short GetPort()
const;
345 const char * GetUser()
const;
350 const char * GetPassword()
const;
359 void SetSchemeType(
const Uri_t type,
360 const char * otherType = NULL);
369 void SetScheme(
const char * type);
376 void SetSchemeSpecific(
const char * value);
383 void SetServer(
const char * server);
391 void SetPort(
const int port);
398 void SetUser(
const char * user);
405 void SetPassword(
const char * pw);
413 bool IsUri(
const char * IsSuppotedUri)
const;
422 bool Parse(
const char * aString);
431 virtual bool Sprint(
string * Results)
const;
440 virtual bool Sprint(
String & Results)
const;
452 bool Sprint(
char * resultString,
453 const size_t resultStringMaxSize)
const;
458 const char * GetUri()
const;
467 bool operator==(
const Uri * Other)
const;
476 bool operator!=(
const Uri * Other)
const;
485 bool operator==(
const Uri & Other)
const;
494 bool operator!=(
const Uri & Other)
const;
503 bool operator==(
const char * Other)
const;
512 bool operator!=(
const char * Other)
const;
521 void AddParameter(
const char * TheName,
522 const char * TheValue);
531 void AddHeader(
const char * TheName,
532 const char * TheValue);
537 size_t ParameterCount()
const;
542 size_t HeaderCount()
const;
550 const Parameter * GetParameter(
unsigned long nTh)
const;
558 const Header * GetHeader(
unsigned long nTh)
const;
568 const Parameter * GetParameter(
const char * TheName)
const;
578 const Header * GetHeader(
const char * TheName)
const;
583 static const char * UriTokenTable[40];
588 mutable const char * _scheme;
589 mutable const char * _schemeSpecific;
591 const char * _server;
594 const char * _password;
596 std::map<const char*,Parameter*> _Parameters;
597 std::map<const char*,Header*> _Headers;
601 mutable const char * _fullUri;
608 #endif //PROJECT_CONTRACTING_LIBRARY_RFCBASIC_URI_HPP
FILE uri (direct file I/O - no network needed)
Content ID (Used to identify an attachment in a MIME message)
A basic implementation an a generic URI.
Generic text parsing routines.
Uri_t
The currently known URI types.
LDAP uri (Directory Services)
Calendar Access Protocol.
Each one holds one header Value.
Message ID uri (Used in MIME message and some IMAP and POP server to identify a unique message) ...
An SQL based Calendar - for calendars - Unique to Project-Contracting.com.
Each one holds one name and value.
Lotus URI - for calendars - Unique to Project-Contracting.com.
Instance counting and tracking.
Microsoft URI - for calendars - Unique to Project-Contracting.com.
Each one holds one Parameter value.
Web Based Calendars (not WebDav)
HTTP uri (HyperText Transfer Protocol)
HTTPS uri (HyperText Transfer Protocol - Secure)
This is a class that allows:
Copyright Douglas Mark Royer DouglasRoyer@gmail.com.
SIP URI - for Session initiation protocol.
Gopher uri - no long used on the internet?
SIPs URI - for secure (TLS) Session initiation protocol.
FTP uri (File Transfer Protocol)
Net News (Net News Transfer Protocol)
Oracle URI - for calendars - Unique to Project-Contracting.com.
EMail uri (Represents an EMAIL address)