evas/cserve2: Add cache hit count on image data
authorJean-Philippe Andre <jp.andre@samsung.com>
Mon, 9 Sep 2013 04:57:45 +0000 (13:57 +0900)
committerJean-Philippe Andre <jp.andre@samsung.com>
Mon, 28 Oct 2013 06:47:15 +0000 (15:47 +0900)
src/lib/evas/cache2/evas_cache2.c
src/lib/evas/cserve2/evas_cs2_image_data.c
src/lib/evas/cserve2/evas_cs2_private.h

index 0444741..fc7982d 100644 (file)
@@ -982,7 +982,10 @@ evas_cache2_image_load_data(Image_Entry *ie)
    int error = EVAS_LOAD_ERROR_NONE;
 
    if ((ie->flags.loaded) && (!ie->animated.animated))
-     return error;
+     {
+        evas_cserve2_image_hit(ie);
+        return EVAS_LOAD_ERROR_NONE;
+     }
 
    ie->flags.in_progress = EINA_TRUE;
 
index a5e49da..845107e 100644 (file)
@@ -20,4 +20,13 @@ evas_cserve2_image_data_get(Image_Entry *ie)
    return dentry->shm.data;
 }
 
+unsigned int
+evas_cserve2_image_hit(Image_Entry *ie)
+{
+   Data_Entry *dentry = ie->data2;
+
+   if (!dentry) return 0;
+   return ++dentry->hit_count;
+}
+
 #endif
index 8d12e69..c0ed575 100644 (file)
@@ -14,6 +14,7 @@ typedef struct _Shared_Buffer Shared_Buffer;
 struct _Data_Entry
 {
    unsigned int image_id;
+   unsigned int hit_count;
    void (*preloaded_cb)(void *, Eina_Bool);
    struct {
       const char *path;
@@ -81,6 +82,7 @@ Eina_Bool evas_cserve2_image_preload(Image_Entry *ie, void (*preloaded_cb)(void
 void evas_cserve2_dispatch(void);
 
 void *evas_cserve2_image_data_get(Image_Entry *ie);
+unsigned int evas_cserve2_image_hit(Image_Entry *ie);
 
 Font_Entry *evas_cserve2_font_load(const char *source, const char *name, int size, int dpi, Font_Rend_Flags wanted_rend);
 EAPI int evas_cserve2_font_load_wait(Font_Entry *fe);