1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
|
// Copyright 2020 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/persisted_state_db/session_proto_db_factory.h"
#include "base/no_destructor.h"
#include "build/build_config.h"
#include "components/commerce/core/proto/persisted_state_db_content.pb.h"
SessionProtoDBFactory<persisted_state_db::PersistedStateContentProto>*
GetPersistedStateSessionProtoDBFactory() {
static base::NoDestructor<
SessionProtoDBFactory<persisted_state_db::PersistedStateContentProto>>
instance;
return instance.get();
}
template <>
SessionProtoDBFactory<persisted_state_db::PersistedStateContentProto>*
SessionProtoDBFactory<
persisted_state_db::PersistedStateContentProto>::GetInstance() {
return GetPersistedStateSessionProtoDBFactory();
}
SessionProtoDBFactory<
commerce_subscription_db::CommerceSubscriptionContentProto>*
GetCommerceSubscriptionSessionProtoDBFactory() {
static base::NoDestructor<SessionProtoDBFactory<
commerce_subscription_db::CommerceSubscriptionContentProto>>
instance;
return instance.get();
}
template <>
SessionProtoDBFactory<
commerce_subscription_db::CommerceSubscriptionContentProto>*
SessionProtoDBFactory<
commerce_subscription_db::CommerceSubscriptionContentProto>::GetInstance() {
return GetCommerceSubscriptionSessionProtoDBFactory();
}
SessionProtoDBFactory<parcel_tracking_db::ParcelTrackingContent>*
GetParcelTrackingSessionProtoDBFactory() {
static base::NoDestructor<
SessionProtoDBFactory<parcel_tracking_db::ParcelTrackingContent>>
instance;
return instance.get();
}
template <>
SessionProtoDBFactory<parcel_tracking_db::ParcelTrackingContent>*
SessionProtoDBFactory<
parcel_tracking_db::ParcelTrackingContent>::GetInstance() {
return GetParcelTrackingSessionProtoDBFactory();
}
#if !BUILDFLAG(IS_ANDROID)
SessionProtoDBFactory<cart_db::ChromeCartContentProto>*
GetChromeCartSessionProtoDBFactory() {
static base::NoDestructor<
SessionProtoDBFactory<cart_db::ChromeCartContentProto>>
instance;
return instance.get();
}
template <>
SessionProtoDBFactory<cart_db::ChromeCartContentProto>*
SessionProtoDBFactory<cart_db::ChromeCartContentProto>::GetInstance() {
return GetChromeCartSessionProtoDBFactory();
}
SessionProtoDBFactory<coupon_db::CouponContentProto>*
GetCouponSessionProtoDBFactory() {
static base::NoDestructor<
SessionProtoDBFactory<coupon_db::CouponContentProto>>
instance;
return instance.get();
}
template <>
SessionProtoDBFactory<coupon_db::CouponContentProto>*
SessionProtoDBFactory<coupon_db::CouponContentProto>::GetInstance() {
return GetCouponSessionProtoDBFactory();
}
SessionProtoDBFactory<discounts_db::DiscountsContentProto>*
GetDiscountsSessionProtoDBFactory() {
static base::NoDestructor<
SessionProtoDBFactory<discounts_db::DiscountsContentProto>>
instance;
return instance.get();
}
template <>
SessionProtoDBFactory<discounts_db::DiscountsContentProto>*
SessionProtoDBFactory<discounts_db::DiscountsContentProto>::GetInstance() {
return GetDiscountsSessionProtoDBFactory();
}
#else
SessionProtoDBFactory<merchant_signal_db::MerchantSignalContentProto>*
GetMerchantSignalSessionProtoDBFactory() {
static base::NoDestructor<
SessionProtoDBFactory<merchant_signal_db::MerchantSignalContentProto>>
instance;
return instance.get();
}
template <>
SessionProtoDBFactory<merchant_signal_db::MerchantSignalContentProto>*
SessionProtoDBFactory<
merchant_signal_db::MerchantSignalContentProto>::GetInstance() {
return GetMerchantSignalSessionProtoDBFactory();
}
#endif
|