1 package net.sf.appstatus.services;
2
3 import net.sf.appstatus.core.services.AbstractLoggingServiceMonitor;
4
5 public class ServiceCall extends AbstractLoggingServiceMonitor {
6
7 String id;
8 Service service;
9 int nestedCalls = 0;
10
11 public void cacheHit() {
12 if (!this.cacheHit) {
13 service.cacheHits.incrementAndGet();
14 }
15
16
17 super.cacheHit();
18 }
19
20 public ServiceCall(Service service, boolean log, boolean useThreadLocal) {
21 super(service, log, useThreadLocal);
22 this.service = service;
23 }
24
25 public String getId() {
26 return id;
27 }
28
29 public void beginCall(Object... parameters) {
30
31 super.beginCall(parameters);
32
33 service.hits.incrementAndGet();
34 service.running.incrementAndGet();
35 }
36
37 public void endCall() {
38 if (endTime != null) {
39
40 return;
41 }
42
43
44 super.endCall();
45
46 service.running.decrementAndGet();
47
48 service.addCall(executionTime, cacheHit, failure, error, nestedCalls);
49 }
50
51 public void nestedCall() {
52 nestedCalls ++;
53 }
54
55 }