2 * Copyright (c) 2014 Brocade Communications Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.controller.cluster.datastore;
11 import com.google.common.base.Preconditions;
13 import org.opendaylight.controller.md.sal.dom.store.impl.InMemoryDOMDataStoreConfigProperties;
15 import scala.concurrent.duration.Duration;
17 import java.util.concurrent.TimeUnit;
20 * Contains contextual data for a data store.
22 * @author Thomas Pantelis
24 public class DatastoreContext {
26 private final InMemoryDOMDataStoreConfigProperties dataStoreProperties;
27 private final Duration shardTransactionIdleTimeout;
28 private final int operationTimeoutInSeconds;
29 private final String dataStoreMXBeanType;
31 public DatastoreContext() {
32 this.dataStoreProperties = null;
33 this.dataStoreMXBeanType = "DistributedDatastore";
34 this.shardTransactionIdleTimeout = Duration.create(10, TimeUnit.MINUTES);
35 this.operationTimeoutInSeconds = 5;
38 public DatastoreContext(String dataStoreMXBeanType,
39 InMemoryDOMDataStoreConfigProperties dataStoreProperties,
40 Duration shardTransactionIdleTimeout,
41 int operationTimeoutInSeconds) {
42 this.dataStoreMXBeanType = dataStoreMXBeanType;
43 this.dataStoreProperties = Preconditions.checkNotNull(dataStoreProperties);
44 this.shardTransactionIdleTimeout = shardTransactionIdleTimeout;
45 this.operationTimeoutInSeconds = operationTimeoutInSeconds;
48 public InMemoryDOMDataStoreConfigProperties getDataStoreProperties() {
49 return dataStoreProperties;
52 public Duration getShardTransactionIdleTimeout() {
53 return shardTransactionIdleTimeout;
56 public String getDataStoreMXBeanType() {
57 return dataStoreMXBeanType;
60 public int getOperationTimeoutInSeconds() {
61 return operationTimeoutInSeconds;