2 * Copyright (c) 2014 Cisco 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
8 package org.opendaylight.controller.sal.restconf.impl;
10 import java.math.BigInteger;
11 import java.util.concurrent.atomic.AtomicLong;
12 import javax.ws.rs.core.Response;
13 import javax.ws.rs.core.UriInfo;
14 import org.opendaylight.controller.sal.rest.api.RestconfService;
15 import org.opendaylight.yangtools.yang.data.api.CompositeNode;
16 import org.opendaylight.yangtools.yang.data.api.Node;
18 public class StatisticsRestconfServiceWrapper implements RestconfService {
20 AtomicLong operationalGet = new AtomicLong();
21 AtomicLong configGet = new AtomicLong();
22 AtomicLong rpc = new AtomicLong();
23 AtomicLong configPost = new AtomicLong();
24 AtomicLong configPut = new AtomicLong();
25 AtomicLong configDelete = new AtomicLong();
27 private static final StatisticsRestconfServiceWrapper INSTANCE = new StatisticsRestconfServiceWrapper(RestconfImpl.getInstance());
29 final RestconfService delegate;
31 private StatisticsRestconfServiceWrapper(RestconfService delegate) {
32 this.delegate = delegate;
35 public static StatisticsRestconfServiceWrapper getInstance() {
40 public Object getRoot() {
41 return delegate.getRoot();
45 public StructuredData getModules(UriInfo uriInfo) {
46 return delegate.getModules(uriInfo);
50 public StructuredData getModules(String identifier, UriInfo uriInfo) {
51 return delegate.getModules(identifier, uriInfo);
55 public StructuredData getModule(String identifier, UriInfo uriInfo) {
56 return delegate.getModule(identifier, uriInfo);
60 public StructuredData getOperations(UriInfo uriInfo) {
61 return delegate.getOperations(uriInfo);
65 public StructuredData getOperations(String identifier, UriInfo uriInfo) {
66 return delegate.getOperations(identifier, uriInfo);
70 public StructuredData invokeRpc(String identifier, CompositeNode payload, UriInfo uriInfo) {
71 rpc.incrementAndGet();
72 return delegate.invokeRpc(identifier, payload, uriInfo);
76 public StructuredData invokeRpc(String identifier, String noPayload, UriInfo uriInfo) {
77 rpc.incrementAndGet();
78 return delegate.invokeRpc(identifier, noPayload, uriInfo);
82 public NormalizedNodeContext readConfigurationData(String identifier, UriInfo uriInfo) {
83 configGet.incrementAndGet();
84 return delegate.readConfigurationData(identifier, uriInfo);
88 public NormalizedNodeContext readOperationalData(String identifier, UriInfo uriInfo) {
89 operationalGet.incrementAndGet();
90 return delegate.readOperationalData(identifier, uriInfo);
94 public Response updateConfigurationData(String identifier, Node<?> payload) {
95 configPut.incrementAndGet();
96 return delegate.updateConfigurationData(identifier, payload);
100 public Response createConfigurationData(String identifier, Node<?> payload) {
101 configPost.incrementAndGet();
102 return delegate.createConfigurationData(identifier, payload);
106 public Response createConfigurationData(Node<?> payload) {
107 configPost.incrementAndGet();
108 return delegate.createConfigurationData(payload);
112 public Response deleteConfigurationData(String identifier) {
113 return delegate.deleteConfigurationData(identifier);
117 public Response subscribeToStream(String identifier, UriInfo uriInfo) {
118 return delegate.subscribeToStream(identifier, uriInfo);
122 public StructuredData getAvailableStreams(UriInfo uriInfo) {
123 return delegate.getAvailableStreams(uriInfo);
126 public BigInteger getConfigDelete() {
127 return BigInteger.valueOf(configDelete.get());
130 public BigInteger getConfigGet() {
131 return BigInteger.valueOf(configGet.get());
134 public BigInteger getConfigPost() {
135 return BigInteger.valueOf(configPost.get());
138 public BigInteger getConfigPut() {
139 return BigInteger.valueOf(configPut.get());
142 public BigInteger getOperationalGet() {
143 return BigInteger.valueOf(operationalGet.get());
146 public BigInteger getRpc() {
147 return BigInteger.valueOf(rpc.get());