cat_gateway/db/index/session/
cache_manager.rs1use std::sync::Arc;
3
4use crate::db::index::queries::caches::{
5 assets::{ada::AssetsAdaCache, native::AssetsNativeCache},
6 rbac::{
7 chains::ChainsCache, public_key::PublicKeyCache, stake_address::StakeAddressCache,
8 transaction_id::TransactionIdCache,
9 },
10};
11
12pub(crate) struct Caches {
14 assets_ada: Arc<AssetsAdaCache>,
16 assets_native: Arc<AssetsNativeCache>,
18 rbac_public_key: Arc<PublicKeyCache>,
20 rbac_stake_address: Arc<StakeAddressCache>,
22 rbac_transaction_id: Arc<TransactionIdCache>,
24 rbac_persistent_chains: Arc<ChainsCache>,
26}
27
28impl Caches {
29 pub(crate) fn new(is_persistent: bool) -> Self {
31 Self {
32 assets_ada: Arc::new(AssetsAdaCache::new(is_persistent)),
33 assets_native: Arc::new(AssetsNativeCache::new(is_persistent)),
34 rbac_public_key: Arc::new(PublicKeyCache::new(is_persistent)),
35 rbac_stake_address: Arc::new(StakeAddressCache::new(is_persistent)),
36 rbac_transaction_id: Arc::new(TransactionIdCache::new(is_persistent)),
37 rbac_persistent_chains: Arc::new(ChainsCache::new(is_persistent)),
38 }
39 }
40
41 pub(crate) fn assets_native(&self) -> Arc<AssetsNativeCache> {
43 self.assets_native.clone()
44 }
45
46 pub(crate) fn assets_ada(&self) -> Arc<AssetsAdaCache> {
48 self.assets_ada.clone()
49 }
50
51 pub(crate) fn rbac_public_key(&self) -> Arc<PublicKeyCache> {
53 self.rbac_public_key.clone()
54 }
55
56 pub(crate) fn rbac_stake_address(&self) -> Arc<StakeAddressCache> {
58 self.rbac_stake_address.clone()
59 }
60
61 pub(crate) fn rbac_transaction_id(&self) -> Arc<TransactionIdCache> {
63 self.rbac_transaction_id.clone()
64 }
65
66 pub(crate) fn rbac_persistent_chains(&self) -> Arc<ChainsCache> {
68 self.rbac_persistent_chains.clone()
69 }
70}