InAppPurchasesInterface.cpp 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. /*
  2. * Copyright (c) Contributors to the Open 3D Engine Project.
  3. * For complete copyright and license terms please see the LICENSE at the root of this distribution.
  4. *
  5. * SPDX-License-Identifier: Apache-2.0 OR MIT
  6. *
  7. */
  8. #include <InAppPurchases/InAppPurchasesInterface.h>
  9. namespace InAppPurchases
  10. {
  11. InAppPurchasesInterface* InAppPurchasesInterface::iapInstance = nullptr;
  12. InAppPurchasesInterface* InAppPurchasesInterface::GetInstance()
  13. {
  14. if (iapInstance == nullptr)
  15. {
  16. iapInstance = InAppPurchasesInterface::CreateInstance();
  17. AZ_Warning("InAppPurchases", iapInstance, "Inapp purchases not supported on this platform!");
  18. }
  19. return iapInstance;
  20. }
  21. void InAppPurchasesInterface::DestroyInstance()
  22. {
  23. if (iapInstance != nullptr)
  24. {
  25. iapInstance->m_cache.ClearCachedProductDetails();
  26. iapInstance->m_cache.ClearCachedPurchasedProductDetails();
  27. delete iapInstance;
  28. iapInstance = nullptr;
  29. }
  30. }
  31. void InAppPurchasesCache::ClearCachedProductDetails()
  32. {
  33. m_cachedProductDetails.set_capacity(0);
  34. }
  35. void InAppPurchasesCache::ClearCachedPurchasedProductDetails()
  36. {
  37. m_cachedPurchasedProducts.set_capacity(0);
  38. }
  39. void InAppPurchasesCache::AddProductDetailsToCache(const ProductDetails* productDetails)
  40. {
  41. m_cachedProductDetails.push_back(AZStd::unique_ptr<ProductDetails const>(productDetails));
  42. }
  43. void InAppPurchasesCache::AddPurchasedProductDetailsToCache(const PurchasedProductDetails* purchasedProductDetails)
  44. {
  45. m_cachedPurchasedProducts.push_back(AZStd::unique_ptr<PurchasedProductDetails const>(purchasedProductDetails));
  46. }
  47. const AZStd::vector<AZStd::unique_ptr<ProductDetails const> >& InAppPurchasesCache::GetCachedProductDetails() const
  48. {
  49. return m_cachedProductDetails;
  50. }
  51. const AZStd::vector<AZStd::unique_ptr<PurchasedProductDetails const> >& InAppPurchasesCache::GetCachedPurchasedProductDetails() const
  52. {
  53. return m_cachedPurchasedProducts;
  54. }
  55. }