View Javadoc
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  		// register cache hit
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  		// Register parameters
31  		super.beginCall(parameters);
32  
33  		service.hits.incrementAndGet();
34  		service.running.incrementAndGet();
35  	}
36  
37  	public void endCall() {
38  		if (endTime != null) {
39  			// endCall was called twice ! returning directly.
40  			return;
41  		}
42  
43  		// Register end time
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  }