3#include "ApplicationData.h"
11#include <CesiumAsync/AsyncSystem.h>
12#include <CesiumAsync/IAssetAccessor.h>
13#include <CesiumAsync/Library.h>
40 std::optional<int32_t>
page;
102 const std::shared_ptr<CesiumAsync::IAssetAccessor>& pAssetAccessor,
103 const std::string& friendlyApplicationName,
105 const std::string& redirectPath,
106 const std::vector<std::string>& scopes,
107 std::function<
void(
const std::string&)>&& openUrlCallback,
109 const std::string& ionApiUrl =
"https://api.cesium.com/",
110 const std::string& ionAuthorizeUrl =
"https://ion.cesium.com/oauth");
123 const std::shared_ptr<CesiumAsync::IAssetAccessor>& pAssetAccessor,
124 const std::string& apiUrl =
"https://api.cesium.com");
144 const std::shared_ptr<CesiumAsync::IAssetAccessor>& pAssetAccessor,
145 const std::string& ionUrl);
159 const std::shared_ptr<CesiumAsync::IAssetAccessor>& pAssetAccessor,
160 const std::string& accessToken,
162 const std::string& apiUrl =
"https://api.cesium.com");
168 return this->_asyncSystem;
175 const std::shared_ptr<CesiumAsync::IAssetAccessor>&
177 return this->_pAssetAccessor;
184 return this->_accessToken;
190 const std::string&
getApiUrl() const noexcept {
return this->_apiUrl; }
288 const std::string& name,
289 const std::vector<std::string>& scopes,
290 const std::optional<std::vector<int64_t>>& assetIds = std::nullopt,
291 const std::optional<std::vector<std::string>>& allowedUrls =
308 const std::string& tokenID,
309 const std::string& newName,
310 const std::optional<std::vector<int64_t>>& newAssetIDs,
311 const std::vector<std::string>& newScopes,
312 const std::optional<std::vector<std::string>>& newAllowedUrls)
const;
326 const std::shared_ptr<CesiumAsync::IAssetAccessor>& pAssetAccessor,
328 const std::string& ionApiUrl,
330 const std::string& code,
331 const std::string& redirectUrl,
332 const std::string& codeVerifier);
337 std::shared_ptr<CesiumAsync::IAssetAccessor> _pAssetAccessor;
338 std::string _accessToken;
A system for managing asynchronous requests and tasks.
A value that will be available in the future, as produced by AsyncSystem.
A connection to Cesium ion that can be used to interact with it via its REST API.
CesiumAsync::Future< Response< TokenList > > tokens(const ListTokensOptions &options={}) const
Invokes the "List tokens" service to get the list of available tokens.
static CesiumAsync::Future< std::optional< std::string > > getApiUrl(const CesiumAsync::AsyncSystem &asyncSystem, const std::shared_ptr< CesiumAsync::IAssetAccessor > &pAssetAccessor, const std::string &ionUrl)
Attempts to retrieve the ion endpoint URL by looking for a config.json file on the server.
static CesiumAsync::Future< Connection > authorize(const CesiumAsync::AsyncSystem &asyncSystem, const std::shared_ptr< CesiumAsync::IAssetAccessor > &pAssetAccessor, const std::string &friendlyApplicationName, int64_t clientID, const std::string &redirectPath, const std::vector< std::string > &scopes, std::function< void(const std::string &)> &&openUrlCallback, const CesiumIonClient::ApplicationData &appData, const std::string &ionApiUrl="https://api.cesium.com/", const std::string &ionAuthorizeUrl="https://ion.cesium.com/oauth")
Authorizes access to Cesium ion on behalf of a user, and returns a Connection that can be used to int...
CesiumAsync::Future< Response< Profile > > me() const
Retrieves profile information for the access token currently being used to make API calls.
Connection(const CesiumAsync::AsyncSystem &asyncSystem, const std::shared_ptr< CesiumAsync::IAssetAccessor > &pAssetAccessor, const std::string &accessToken, const CesiumIonClient::ApplicationData &appData, const std::string &apiUrl="https://api.cesium.com")
Creates a connection to Cesium ion using the provided access token.
const std::string & getApiUrl() const noexcept
Gets the Cesium ion API base URL.
CesiumAsync::Future< Response< Defaults > > defaults() const
Retrieves default imagery, terrain and building assets along with quick add assets that can be useful...
CesiumAsync::Future< Response< NoValue > > modifyToken(const std::string &tokenID, const std::string &newName, const std::optional< std::vector< int64_t > > &newAssetIDs, const std::vector< std::string > &newScopes, const std::optional< std::vector< std::string > > &newAllowedUrls) const
Modifies a token.
CesiumAsync::Future< Response< TokenList > > nextPage(const Response< TokenList > ¤tPage) const
Gets the next page of results from the "List tokens" service.
CesiumAsync::Future< Response< Assets > > assets() const
Gets the list of available assets.
const CesiumAsync::AsyncSystem & getAsyncSystem() const noexcept
Gets the async system used by this connection to do work in threads.
static std::optional< std::string > getIdFromToken(const std::string &token)
Decodes a token ID from a token.
const std::string & getAccessToken() const noexcept
Gets the access token used by this connection.
CesiumAsync::Future< Response< Token > > token(const std::string &tokenID) const
Gets details of the token with the given ID.
const std::shared_ptr< CesiumAsync::IAssetAccessor > & getAssetAccessor() const noexcept
Gets the interface used by this connection to interact with the Cesium ion REST API.
CesiumAsync::Future< Response< TokenList > > previousPage(const Response< TokenList > ¤tPage) const
Gets the previous page of results from the "List tokens" service.
CesiumAsync::Future< Response< Token > > createToken(const std::string &name, const std::vector< std::string > &scopes, const std::optional< std::vector< int64_t > > &assetIds=std::nullopt, const std::optional< std::vector< std::string > > &allowedUrls=std::nullopt) const
Creates a new token.
static CesiumAsync::Future< Response< ApplicationData > > appData(const CesiumAsync::AsyncSystem &asyncSystem, const std::shared_ptr< CesiumAsync::IAssetAccessor > &pAssetAccessor, const std::string &apiUrl="https://api.cesium.com")
Retrieves information about the ion API server.
CesiumAsync::Future< Response< Asset > > asset(int64_t assetID) const
Gets details of the asset with the given ID.
Classes for working with Cesium ion clients.
SortOrder
Whether sorted results should be ascending or descending.
Data retrieved from the Cesium ion server via an "appData" request from Cesium ion....
Options to be passed to Connection::tokens.
std::optional< std::string > search
One or more keywords separated by whitespace by which to filter the list of tokens....
std::optional< int32_t > page
The page number, where the first page of results is page 1 (not 0).
std::optional< std::string > sortBy
The property by which to sort results. Valid values are "NAME" and "LAST_USED".
std::optional< int32_t > limit
The maximum number of tokens to return in a single page.
std::optional< SortOrder > sortOrder
The property by which to sort results. Valid values are "NAME" and "LAST_USED".
A response from Cesium ion.