aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/main/java/org/onap/policy/pap/main/rest/PapStatisticsManager.java
blob: daa1a9c4fb1b8e4dddc47578070dc3350fc0b7f1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
/*-
 * ============LICENSE_START=======================================================
 *  Copyright (C) 2019 Nordix Foundation.
 *  Modifications Copyright (C) 2019 AT&T Intellectual Property.
 * ================================================================================
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * SPDX-License-Identifier: Apache-2.0
 * ============LICENSE_END=========================================================
 */

package org.onap.policy.pap.main.rest;

import java.util.concurrent.atomic.AtomicLong;

/**
 * Class to hold statistical data for pap component.
 *
 * @author Ram Krishna Verma (ram.krishna.verma@est.tech)
 */
public class PapStatisticsManager {

    private final AtomicLong totalPdpCount = new AtomicLong(0);
    private final AtomicLong totalPdpGroupCount = new AtomicLong(0);
    private final AtomicLong totalPolicyDeployCount = new AtomicLong(0);
    private final AtomicLong policyDeploySuccessCount = new AtomicLong(0);
    private final AtomicLong policyDeployFailureCount = new AtomicLong(0);
    private final AtomicLong totalPolicyDownloadCount = new AtomicLong(0);
    private final AtomicLong policyDownloadSuccessCount = new AtomicLong(0);
    private final AtomicLong policyDownloadFailureCount = new AtomicLong(0);

    /**
     * Constructs the object.
     */
    public PapStatisticsManager() {
        super();
    }

    /**
     * Method to update the total pdp count.
     *
     * @return the updated value of totalPdpCount
     */
    public long updateTotalPdpCount() {
        return totalPdpCount.incrementAndGet();
    }

    /**
     * Method to update the total pdp group count.
     *
     * @return the updated value of totalPdpGroupCount
     */
    public long updateTotalPdpGroupCount() {
        return totalPdpGroupCount.incrementAndGet();
    }

    /**
     * Method to update the total policy deploy count.
     *
     * @return the updated value of totalPolicyDeployCount
     */
    public long updateTotalPolicyDeployCount() {
        return totalPolicyDeployCount.incrementAndGet();
    }

    /**
     * Method to update the policy deploy success count.
     *
     * @return the updated value of policyDeploySuccessCount
     */
    public long updatePolicyDeploySuccessCount() {
        return policyDeploySuccessCount.incrementAndGet();
    }

    /**
     * Method to update the policy deploy failure count.
     *
     * @return the updated value of policyDeployFailureCount
     */
    public long updatePolicyDeployFailureCount() {
        return policyDeployFailureCount.incrementAndGet();
    }

    /**
     * Method to update the total policy download count.
     *
     * @return the updated value of totalPolicyDownloadCount
     */
    public long updateTotalPolicyDownloadCount() {
        return totalPolicyDownloadCount.incrementAndGet();
    }

    /**
     * Method to update the policy download success count.
     *
     * @return the updated value of policyDownloadSuccessCount
     */
    public long updatePolicyDownloadSuccessCount() {
        return policyDownloadSuccessCount.incrementAndGet();
    }

    /**
     * Method to update the policy download failure count.
     *
     * @return the updated value of policyDownloadFailureCount
     */
    public long updatePolicyDownloadFailureCount() {
        return policyDownloadFailureCount.incrementAndGet();
    }

    /**
     * Reset all the statistics counts to 0.
     */
    public void resetAllStatistics() {
        totalPdpCount.set(0L);
        totalPdpGroupCount.set(0L);
        totalPolicyDeployCount.set(0L);
        policyDeploySuccessCount.set(0L);
        policyDeployFailureCount.set(0L);
        totalPolicyDownloadCount.set(0L);
        policyDownloadSuccessCount.set(0L);
        policyDownloadFailureCount.set(0L);
    }

    public long getTotalPdpCount() {
        return totalPdpCount.get();
    }

    public long getTotalPdpGroupCount() {
        return totalPdpGroupCount.get();
    }

    public long getTotalPolicyDeployCount() {
        return totalPolicyDeployCount.get();
    }

    public long getPolicyDeploySuccessCount() {
        return policyDeploySuccessCount.get();
    }

    public long getPolicyDeployFailureCount() {
        return policyDeployFailureCount.get();
    }

    public long getTotalPolicyDownloadCount() {
        return totalPolicyDownloadCount.get();
    }

    public long getPolicyDownloadSuccessCount() {
        return policyDownloadSuccessCount.get();
    }

    public long getPolicyDownloadFailureCount() {
        return policyDownloadFailureCount.get();
    }
}