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;
17 public class StatisticsRestconfServiceWrapper implements RestconfService {
19 AtomicLong operationalGet = new AtomicLong();
20 AtomicLong configGet = new AtomicLong();
21 AtomicLong rpc = new AtomicLong();
22 AtomicLong configPost = new AtomicLong();
23 AtomicLong configPut = new AtomicLong();
24 AtomicLong configDelete = new AtomicLong();
26 private static final StatisticsRestconfServiceWrapper INSTANCE = new StatisticsRestconfServiceWrapper(RestconfImpl.getInstance());
28 final RestconfService delegate;
30 private StatisticsRestconfServiceWrapper(final RestconfService delegate) {
31 this.delegate = delegate;
34 public static StatisticsRestconfServiceWrapper getInstance() {
39 public Object getRoot() {
40 return delegate.getRoot();
44 public NormalizedNodeContext getModules(final UriInfo uriInfo) {
45 return delegate.getModules(uriInfo);
49 public NormalizedNodeContext getModules(final String identifier, final UriInfo uriInfo) {
50 return delegate.getModules(identifier, uriInfo);
54 public NormalizedNodeContext getModule(final String identifier, final UriInfo uriInfo) {
55 return delegate.getModule(identifier, uriInfo);
59 public NormalizedNodeContext getOperations(final UriInfo uriInfo) {
60 return delegate.getOperations(uriInfo);
64 public NormalizedNodeContext getOperations(final String identifier, final UriInfo uriInfo) {
65 return delegate.getOperations(identifier, uriInfo);
69 public StructuredData invokeRpc(final String identifier, final CompositeNode payload, final UriInfo uriInfo) {
70 rpc.incrementAndGet();
71 return delegate.invokeRpc(identifier, payload, uriInfo);
75 public StructuredData invokeRpc(final String identifier, final String noPayload, final UriInfo uriInfo) {
76 rpc.incrementAndGet();
77 return delegate.invokeRpc(identifier, noPayload, uriInfo);
81 public NormalizedNodeContext readConfigurationData(final String identifier, final UriInfo uriInfo) {
82 configGet.incrementAndGet();
83 return delegate.readConfigurationData(identifier, uriInfo);
87 public NormalizedNodeContext readOperationalData(final String identifier, final UriInfo uriInfo) {
88 operationalGet.incrementAndGet();
89 return delegate.readOperationalData(identifier, uriInfo);
93 public Response updateConfigurationData(final String identifier, final NormalizedNodeContext payload) {
94 configPut.incrementAndGet();
95 return delegate.updateConfigurationData(identifier, payload);
99 public Response createConfigurationData(final String identifier, final NormalizedNodeContext payload, final UriInfo uriInfo) {
100 configPost.incrementAndGet();
101 return delegate.createConfigurationData(identifier, payload, uriInfo);
105 public Response createConfigurationData(final NormalizedNodeContext payload, final UriInfo uriInfo) {
106 configPost.incrementAndGet();
107 return delegate.createConfigurationData(payload, uriInfo);
111 public Response deleteConfigurationData(final String identifier) {
112 return delegate.deleteConfigurationData(identifier);
116 public Response subscribeToStream(final String identifier, final UriInfo uriInfo) {
117 return delegate.subscribeToStream(identifier, uriInfo);
121 public NormalizedNodeContext getAvailableStreams(final UriInfo uriInfo) {
122 return delegate.getAvailableStreams(uriInfo);
125 public BigInteger getConfigDelete() {
126 return BigInteger.valueOf(configDelete.get());
129 public BigInteger getConfigGet() {
130 return BigInteger.valueOf(configGet.get());
133 public BigInteger getConfigPost() {
134 return BigInteger.valueOf(configPost.get());
137 public BigInteger getConfigPut() {
138 return BigInteger.valueOf(configPut.get());
141 public BigInteger getOperationalGet() {
142 return BigInteger.valueOf(operationalGet.get());
145 public BigInteger getRpc() {
146 return BigInteger.valueOf(rpc.get());