28 #ifndef CPL_SWIFT_INCLUDED_H
29 #define CPL_SWIFT_INCLUDED_H
35 #include <curl/curl.h>
41 class VSISwiftHandleHelper final:
public IVSIS3LikeHandleHelper
49 static bool GetConfiguration(
CPLString& osStorageURL,
52 static bool GetCached(
const char* pszURLKey,
53 const char* pszUserKey,
54 const char* pszPasswordKey,
62 void RebuildURL()
override;
65 static bool CheckCredentialsV1();
66 static bool AuthV1(
CPLString& osStorageURL,
70 static bool CheckCredentialsV3(
const CPLString& osAuthType);
71 static bool AuthV3(
const CPLString& osAuthType,
75 static bool GetAuthV3StorageURL(
const CPLHTTPResult *psResult,
79 VSISwiftHandleHelper(
const CPLString& osStorageURL,
83 ~VSISwiftHandleHelper();
87 static VSISwiftHandleHelper* BuildFromURI(
const char* pszURI,
88 const char* pszFSPrefix);
90 struct curl_slist* GetCurlHeaders(
const CPLString& osVerbosVerb,
91 const struct curl_slist* psExistingHeaders,
92 const void *pabyDataContent =
nullptr,
93 size_t nBytesContent = 0)
const override;
95 const CPLString& GetURL()
const override {
return m_osURL; }
97 static void CleanMutex();
98 static void ClearCache();
The CPLJSONArray class holds JSON object from CPLJSONDocument.
Definition: cpl_json.h:54
Convenient string class based on std::string.
Definition: cpl_string.h:333
Interface for downloading HTTP, FTP documents.
Interface for read and write JSON documents.
Definition: cpl_http.h:66