InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
URI.h
1 //========================================================================================
2 //
3 // $File$
4 //
5 // Owner: Michael Easter
6 //
7 // $Author$
8 //
9 // $DateTime$
10 //
11 // $Revision$
12 //
13 // $Change$
14 //
15 // Copyright 1997-2010 Adobe Systems Incorporated. All rights reserved.
16 //
17 // NOTICE: Adobe permits you to use, modify, and distribute this file in accordance
18 // with the terms of the Adobe license agreement accompanying it. If you have received
19 // this file from a source other than Adobe, then your use, modification, or
20 // distribution of it requires the prior written permission of Adobe.
21 //
22 //
23 // Description:
24 // This class provides functionality to construct and parse a well formed Uniform
25 // Resource Identifier (URI).
26 //
27 //========================================================================================
28 
29 #ifndef __URI__
30 #define __URI__
31 
32 // ----- Includes -----
33 
34 class IPMStream;
35 class URIImpl;
36 class WideString;
37 
38 static const WideString kCCLibraryAssetURIScheme("cclibraries");
39 
40 static const WideString kFileAssetURIScheme("file");
41 static const WideString kHTTPAssetURIScheme("http");
42 static const WideString kHTTPSAssetURIScheme("https");
43 
62 class URI
63 {
64 public:
65  typedef object_type data_type;
66 
71  URI();
72 
78  URI(const std::string& uri);
79 
85  URI(const WideString& uri);
86 
92  URI(const URI& uri);
93 
98  virtual ~URI();
99 
106  URI& operator=(const URI& rhs);
107 
114  bool operator==(const URI& rhs) const;
115 
122  bool operator!=(const URI& rhs) const;
123 
130  bool operator<(const URI& rhs) const;
131 
137  bool SetURI(const std::string& uri);
138 
144  std::string GetURI() const;
145 
151  bool SetURIW(const WideString& uri);
152 
158  WideString GetURIW() const;
159 
163  void ClearURI();
164 
169  enum Component {
171  kScheme = 0,
180  };
181 
188  bool VerifyURI(Component* badComponent = nil) const;
189 
195  bool HasComponent(Component component) const;
196 
204  void SetComponent(Component component, const WideString& value);
205 
215  WideString GetComponent(Component component) const;
216 
221  void RemoveComponent(Component component);
222 
229  void ReadWrite(IPMStream* s);
230 
231 private:
232  URIImpl* fpImpl;
233 
234 #ifdef DEBUG
235 #include <string>
240  std::string fURIStr;
241 #endif
242 };
243 
244 #endif // __URI__