func (s *BeanImpl) GetNamespaceReplicationQueue() persistence.NamespaceReplicationQueue {
	s.RLock()
	defer s.RUnlock()
	return s.namespaceReplicationQueue
}
GetNamespaceReplicationQueue get NamespaceReplicationQueue
package client
import (
	"sync"
	"go.temporal.io/server/common/persistence"
)
type (
	Bean interface {
		Close()
		GetClusterMetadataManager() persistence.ClusterMetadataManager
		GetMetadataManager() persistence.MetadataManager
		GetTaskManager() persistence.TaskManager
		GetNamespaceReplicationQueue() persistence.NamespaceReplicationQueue
		GetShardManager() persistence.ShardManager
		GetExecutionManager() persistence.ExecutionManager
	}
	BeanImpl struct {
		clusterMetadataManager    persistence.ClusterMetadataManager
		metadataManager           persistence.MetadataManager
		taskManager               persistence.TaskManager
		namespaceReplicationQueue persistence.NamespaceReplicationQueue
		shardManager              persistence.ShardManager
		executionManager          persistence.ExecutionManager
		factory        Factory
		faultInjection *FaultInjectionDataStoreFactory
		sync.RWMutex
	}
)
var _ Bean = (*BeanImpl)(nil)
func NewBeanFromFactory(
	factory Factory,
) (*BeanImpl, error) {
	clusterMetadataMgr, err := factory.NewClusterMetadataManager()
	if err != nil {
		return nil, err
	}
	metadataMgr, err := factory.NewMetadataManager()
	if err != nil {
		return nil, err
	}
	taskMgr, err := factory.NewTaskManager()
	if err != nil {
		return nil, err
	}
	namespaceReplicationQueue, err := factory.NewNamespaceReplicationQueue()
	if err != nil {
		return nil, err
	}
	shardMgr, err := factory.NewShardManager()
	if err != nil {
		return nil, err
	}
	executionManager, err := factory.NewExecutionManager()
	if err != nil {
		return nil, err
	}
	return NewBean(
		factory,
		clusterMetadataMgr,
		metadataMgr,
		taskMgr,
		namespaceReplicationQueue,
		shardMgr,
		executionManager,
	), nil
}
func NewBean(
	factory Factory,
	clusterMetadataManager persistence.ClusterMetadataManager,
	metadataManager persistence.MetadataManager,
	taskManager persistence.TaskManager,
	namespaceReplicationQueue persistence.NamespaceReplicationQueue,
	shardManager persistence.ShardManager,
	executionManager persistence.ExecutionManager,
) *BeanImpl {
	return &BeanImpl{
		factory:                   factory,
		clusterMetadataManager:    clusterMetadataManager,
		metadataManager:           metadataManager,
		taskManager:               taskManager,
		namespaceReplicationQueue: namespaceReplicationQueue,
		shardManager:              shardManager,
		executionManager:          executionManager,
	}
}
func (s *BeanImpl) GetClusterMetadataManager() persistence.ClusterMetadataManager {
	s.RLock()
	defer s.RUnlock()
	return s.clusterMetadataManager
}
func (s *BeanImpl) GetMetadataManager() persistence.MetadataManager {
	s.RLock()
	defer s.RUnlock()
	return s.metadataManager
}
func (s *BeanImpl) GetTaskManager() persistence.TaskManager {
	s.RLock()
	defer s.RUnlock()
	return s.taskManager
}