nymea-app/3rdParty/android/firebase_cpp_sdk/include/firebase/functions.h

111 lines
4.2 KiB
C++

// Copyright 2017 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#ifndef FIREBASE_FUNCTIONS_CLIENT_CPP_SRC_INCLUDE_FIREBASE_FUNCTIONS_H_
#define FIREBASE_FUNCTIONS_CLIENT_CPP_SRC_INCLUDE_FIREBASE_FUNCTIONS_H_
#include <string>
#include "firebase/app.h"
#include "firebase/functions/callable_reference.h"
#include "firebase/functions/callable_result.h"
#include "firebase/functions/common.h"
namespace firebase {
/// Namespace for the Firebase C++ SDK for Cloud Functions.
namespace functions {
/// @cond FIREBASE_APP_INTERNAL
namespace internal {
class FunctionsInternal;
} // namespace internal
/// @endcond
class FunctionsReference;
/// @brief Entry point for the Firebase C++ SDK for Cloud Functions.
///
/// To use the SDK, call firebase::functions::Functions::GetInstance() to
/// obtain an instance of Functions, then use GetHttpsCallable() to obtain
/// references to callable functions. From there you can call them with
/// CallableReference::Call().
class Functions {
public:
/// @brief Destructor. You may delete an instance of Functions when
/// you are finished using it, to shut down the Functions library.
~Functions();
/// @brief Get an instance of Functions corresponding to the given App.
///
/// Cloud Functions uses firebase::App to communicate with Firebase
/// Authentication to authenticate users to the server backend.
///
/// @param[in] app An instance of firebase::App. Cloud Functions will use
/// this to communicate with Firebase Authentication.
/// @param[out] init_result_out Optional: If provided, write the init result
/// here. Will be set to kInitResultSuccess if initialization succeeded, or
/// kInitResultFailedMissingDependency on Android if Google Play services is
/// not available on the current device.
///
/// @returns An instance of Functions corresponding to the given App.
static Functions* GetInstance(::firebase::App* app,
InitResult* init_result_out = nullptr);
/// @brief Get an instance of Functions corresponding to the given App.
///
/// Cloud Functions uses firebase::App to communicate with Firebase
/// Authentication to authenticate users to the server backend.
///
/// @param[in] app An instance of firebase::App. Cloud Functions will use
/// this to communicate with Firebase Authentication.
/// @param[in] region The region to call functions in.
/// @param[out] init_result_out Optional: If provided, write the init result
/// here. Will be set to kInitResultSuccess if initialization succeeded, or
/// kInitResultFailedMissingDependency on Android if Google Play services is
/// not available on the current device.
///
/// @returns An instance of Functions corresponding to the given App.
static Functions* GetInstance(::firebase::App* app, const char* region,
InitResult* init_result_out = nullptr);
/// @brief Get the firebase::App that this Functions was created with.
///
/// @returns The firebase::App this Functions was created with.
::firebase::App* app();
/// @brief Get a FunctionsReference for the specified path.
HttpsCallableReference GetHttpsCallable(const char* name) const;
/// @brief Sets an origin for a Cloud Functions emulator to use.
void UseFunctionsEmulator(const char* origin);
private:
/// @cond FIREBASE_APP_INTERNAL
Functions(::firebase::App* app, const char* region);
Functions(const Functions& src);
Functions& operator=(const Functions& src);
// Delete the internal_ data.
void DeleteInternal();
internal::FunctionsInternal* internal_;
/// @endcond
};
} // namespace functions
} // namespace firebase
#endif // FIREBASE_FUNCTIONS_CLIENT_CPP_SRC_INCLUDE_FIREBASE_FUNCTIONS_H_