001package com.khubla.pragmatach.plugin.adminapp;
002
003import com.khubla.pragmatach.framework.annotation.Controller;
004import com.khubla.pragmatach.framework.annotation.Route;
005import com.khubla.pragmatach.framework.annotation.Route.HttpMethod;
006import com.khubla.pragmatach.framework.annotation.View;
007import com.khubla.pragmatach.framework.api.PragmatachException;
008import com.khubla.pragmatach.framework.api.Response;
009import com.khubla.pragmatach.framework.router.Router;
010
011/**
012 * @author tome
013 */
014@Controller(name = "pragmatachShowRouteCacheController")
015@View(view = "pragmatach/admin/routecache.html")
016public class ShowRouteCacheController extends SecuredAdminController {
017   private long size;
018   private long totalHits;
019   private long totalRequests;
020   private float hitRatio;
021
022   @Route(uri = "/pragmatach/admin/routecache/clear", method = HttpMethod.post)
023   public Response clearCache() throws PragmatachException {
024      Router.getRoutecache().clear();
025      return super.render();
026   }
027
028   public float getHitRatio() {
029      return hitRatio;
030   }
031
032   public long getSize() {
033      return size;
034   }
035
036   public long getTotalHits() {
037      return totalHits;
038   }
039
040   public long getTotalRequests() {
041      return totalRequests;
042   }
043
044   @Route(uri = "/pragmatach/admin/routecache")
045   public Response render() throws PragmatachException {
046      size = Router.getRoutecache().size();
047      totalHits = Router.getRoutecache().getTotalHits();
048      totalRequests = Router.getRoutecache().getTotalRequests();
049      if (0 != totalRequests) {
050         hitRatio = 100 * ((float) totalHits / (float) totalRequests);
051      } else {
052         hitRatio = 0;
053      }
054      return super.render();
055   }
056
057   public void setHitRatio(float hitRatio) {
058      this.hitRatio = hitRatio;
059   }
060
061   public void setSize(long size) {
062      this.size = size;
063   }
064
065   public void setTotalHits(long totalHits) {
066      this.totalHits = totalHits;
067   }
068
069   public void setTotalRequests(long totalRequests) {
070      this.totalRequests = totalRequests;
071   }
072}