* terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
* and is available at http://www.eclipse.org/legal/epl-v10.html\r
*/\r
-package org.opendaylight.controller.sal.core.impl.data;\r
+package org.opendaylight.controller.sal.core.impl;\r
\r
import java.util.ArrayList;\r
import java.util.Collections;\r
import java.util.List;\r
import java.util.Map;\r
import java.util.Set;\r
+import java.util.concurrent.ExecutorService;\r
import java.util.concurrent.Future;\r
\r
import org.opendaylight.controller.sal.common.DataStoreIdentifier;\r
+import org.opendaylight.controller.sal.common.util.Rpcs;\r
import org.opendaylight.controller.sal.core.api.BrokerService;\r
import org.opendaylight.controller.sal.core.api.Broker.ConsumerSession;\r
import org.opendaylight.controller.sal.core.api.Broker.ProviderSession;\r
import org.opendaylight.controller.sal.core.api.data.DataValidator;\r
import org.opendaylight.controller.sal.core.api.data.DataCommitHandler.CommitTransaction;\r
import org.opendaylight.controller.sal.core.api.data.DataProviderService.DataRefresher;\r
-import org.opendaylight.controller.sal.core.impl.RpcUtils;\r
import org.opendaylight.controller.sal.core.spi.BrokerModule;\r
import org.opendaylight.controller.yang.common.RpcError;\r
import org.opendaylight.controller.yang.common.RpcResult;\r
import org.slf4j.Logger;\r
import org.slf4j.LoggerFactory;\r
\r
+import com.google.common.collect.ImmutableSet;\r
\r
public class DataBrokerModule implements BrokerModule {\r
\r
private static final Logger log = LoggerFactory\r
.getLogger(DataBrokerModule.class);\r
\r
+ private static final Set<Class<? extends ProviderFunctionality>> SUPPORTED_PROVIDER_FUNCTIONALITY = ImmutableSet\r
+ .of((Class<? extends ProviderFunctionality>) DataValidator.class,\r
+ DataRefresher.class, DataCommitHandler.class);\r
+\r
+ private static final Set<Class<? extends BrokerService>> PROVIDED_SESSION_SERVICES = ImmutableSet\r
+ .of((Class<? extends BrokerService>) DataBrokerService.class,\r
+ DataProviderService.class);\r
+\r
private Map<DataStoreIdentifier, StoreContext> storeContext;\r
\r
+ private ExecutorService executor;\r
+ \r
private SequentialCommitHandlerCoordinator coordinator = new SequentialCommitHandlerCoordinator();\r
\r
@Override\r
public Set<Class<? extends BrokerService>> getProvidedServices() {\r
- // FIXME: Refactor\r
- Set<Class<? extends BrokerService>> ret = new HashSet<Class<? extends BrokerService>>();\r
- ret.add(DataBrokerService.class);\r
- ret.add(DataProviderService.class);\r
- return ret;\r
+ return PROVIDED_SESSION_SERVICES;\r
}\r
\r
@Override\r
public Set<Class<? extends ProviderFunctionality>> getSupportedProviderFunctionality() {\r
- // FIXME Refactor\r
- Set<Class<? extends ProviderFunctionality>> ret = new HashSet<Class<? extends ProviderFunctionality>>();\r
- ret.add(DataValidator.class);\r
- ret.add(DataCommitHandler.class);\r
- ret.add(DataRefresher.class);\r
- return ret;\r
+ return SUPPORTED_PROVIDER_FUNCTIONALITY;\r
+ }\r
+\r
+ @Override\r
+ public Set<Class<? extends ConsumerFunctionality>> getSupportedConsumerFunctionality() {\r
+ return Collections.emptySet();\r
}\r
\r
@Override\r
}\r
\r
private DataProviderService newDataProviderService(ConsumerSession session) {\r
- // TODO Implement this method\r
- throw new UnsupportedOperationException("Not implemented");\r
+ return new DataProviderSession();\r
}\r
\r
private DataBrokerService newDataConsumerService(ConsumerSession session) {\r
- // TODO Implement this method\r
- throw new UnsupportedOperationException("Not implemented");\r
+ return new DataConsumerSession();\r
}\r
\r
- @Override\r
- public Set<Class<? extends ConsumerFunctionality>> getSupportedConsumerFunctionality() {\r
- // TODO Implement this method\r
- throw new UnsupportedOperationException("Not implemented");\r
+ private StoreContext context(DataStoreIdentifier store) {\r
+ return storeContext.get(store);\r
}\r
\r
private static class StoreContext {\r
- private Set<DataCommitHandler> commitHandlers = new HashSet<DataCommitHandler>();\r
- private Set<DataValidator> validators = new HashSet<DataValidator>();\r
- private Set<DataRefresher> refreshers = new HashSet<DataRefresher>();\r
+ private Set<DataCommitHandler> commitHandlers = Collections\r
+ .synchronizedSet(new HashSet<DataCommitHandler>());\r
+ private Set<DataValidator> validators = Collections\r
+ .synchronizedSet(new HashSet<DataValidator>());\r
+ private Set<DataRefresher> refreshers = Collections\r
+ .synchronizedSet(new HashSet<DataRefresher>());\r
}\r
\r
private class DataConsumerSession implements DataBrokerService {\r
throw new UnsupportedOperationException("Not implemented");\r
}\r
\r
- }\r
+ @Override\r
+ public Set<DataStoreIdentifier> getDataStores() {\r
+ // TODO Auto-generated method stub\r
+ return null;\r
+ }\r
\r
- private StoreContext context(DataStoreIdentifier store) {\r
- return storeContext.get(store);\r
}\r
\r
private class DataProviderSession extends DataConsumerSession implements\r
}\r
CommitTransaction transaction = new SequentialCommitTransaction(\r
store, transactions);\r
- return RpcUtils.getRpcResult(successful, transaction, errors);\r
+ return Rpcs.getRpcResult(successful, transaction, errors);\r
}\r
\r
@Override\r
break;\r
}\r
\r
- return RpcUtils.getRpcResult(successful, null, errors);\r
+ return Rpcs.getRpcResult(successful, null, errors);\r
}\r
\r
@Override\r
break;\r
}\r
\r
- return RpcUtils.getRpcResult(successful, null, errors);\r
+ return Rpcs.getRpcResult(successful, null, errors);\r
}\r
\r
@Override\r
break;\r
}\r
\r
- return RpcUtils.getRpcResult(successful, null, errors);\r
+ return Rpcs.getRpcResult(successful, null, errors);\r
}\r
\r
@Override\r
}\r
}\r
}\r
-