InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
IHTTPLinkManager.h
1 //========================================================================================
2 //
3 // $File$
4 //
5 // Owner: Sanyam Jain
6 //
7 // $Author$
8 //
9 // $DateTime$
10 //
11 // $Revision$
12 //
13 // $Change$
14 //
15 // ADOBE CONFIDENTIAL
16 //
17 // Copyright 2016 Adobe
18 // All Rights Reserved.
19 //
20 // NOTICE: Adobe permits you to use, modify, and distribute this file in
21 // accordance with the terms of the Adobe license agreement accompanying
22 // it. If you have received this file from a source other than Adobe,
23 // then your use, modification, or distribution of it requires the prior
24 // written permission of Adobe.
25 //
26 //========================================================================================
27 #ifndef __IHTTPLinkManager__
28 #define __IHTTPLinkManager__
29 
30 #include "IPMUnknown.h"
31 #include "LinksID.h"
32 #include "URI.h"
33 
34 #include "IHTTPLinkResourceServerAPIWrapper.h"
35 #include "ILinkResourceHandler.h"
36 #include "ILinkResourceStateUpdater.h"
37 #include "IHTTPLinkResourceServerCache.h"
38 #include "IHTTPLinkAssetURIPreprocessor.h"
39 
40 /*
41  AdobePatentID="P7137-US"
42  AdobePatentID="P7225-US"
43  AdobePatentID="P7609-US"
44 */
45 
58 {
59 public:
60  enum { kDefaultIID = IID_IHTTPLINKMANGER };
61 
66  virtual bool16 Initialize() = 0;
67 
72  virtual bool16 Shutdown() = 0;
73 
74  /*
75  Gets the registered HTTP schemes.
76  @param schemes [OUT] returns the registered HTTP schemes .
77  */
78  virtual void GetSchemes(K2Vector<WideString>& schemes) const = 0;
79 
80  /*
81  Gets the resource handler for the specified uri.
82  @param inAssetURI [IN] uri of the Link Resource.
83  @param db [IN] database corresponding to the link resource.
84  @return resource handler for the specified Link Resource.
85  */
86  virtual ILinkResourceHandler* QueryHandler(const URI& inAssetURI, IDataBase* db) = 0;
87 
88  /*
89  Gets the resource state updater for the specified uri.
90  @param inAssetURI [IN] uri of the Link Resource.
91  @param db [IN] database corresponding to the link resource.
92  @return resource state updater for the specified Link Resource.
93  */
94  virtual ILinkResourceStateUpdater* QueryStateUpdater(const URI& inAssetURI, IDataBase* db) = 0;
95 
96  /*
97  Gets the resource server api wrapper for the specified uri.
98  @param inAssetURI [IN] uri scheme e.g aem/file/cclibrary schemes of the Link Resource.
99  @param db [IN] database corresponding to the link resource.
100  @return resource server api wrapper for the specified Link Resource.
101  */
102  virtual IHTTPLinkResourceServerAPIWrapper* GetHTTPLinkResourceServerAPIWrapper(const URI& inAssetURI) = 0;
103 
104  /*
105  Gets the resource server cache the specified uri.
106  @param inAssetURI [IN] uri scheme e.g aem/file/cclibrary schemes of the Link Resource.
107  @return resource server cache the specified Link Resource.
108  */
109  virtual IHTTPLinkResourceServerCache* QueryHTTPLinkResourceServerCache(const URI& inAssetURI) = 0;
110 
111  /*
112  Gets the resource connection for the specified uri.
113  @param inAssetURI [IN] uri scheme e.g aem/file/cclibrary schemes of the Link Resource.
114  @return resource connection for the specified Link Resource.
115  */
116  virtual IHTTPLinkResourceConnection* QueryHTTPLinkResourceConnection(const URI& inAssetURI) = 0;
117 
118  /*
119  Gets the URI Preprocessor for the specified uri.
120  @param inAssetURI [IN] uri scheme e.g aem/file/cclibrary schemes of the Link Resource.
121  @return URI Preprocessor for the specified Link Resource.
122  */
123  virtual IHTTPLinkAssetURIPreprocessor* GetHTTPLinkAssetURIPreprocessor(const URI& inAssetURI) = 0;
124 
128  virtual void ReadWriteSnapshotForBackgroundThread(IPMStream* s) = 0;
129 };
130 
131 #endif // __IHTTPLinkManager__