/***** * cache.h : HTML document & image caching routines * * This file Version $Revision: 1.2 $ * * Creation date: Fri May 23 14:43:04 GMT+0100 1997 * Last modification: $Date: 1997/08/30 01:47:55 $ * By: $Author: newt $ * Current State: $State: Exp $ * * Author: newt * * Copyright (C) 1994-1997 by Ripley Software Development * All Rights Reserved * * This file is part of the XmHTML Widget Library * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * *****/ /***** * $Source: /usr/local/rcs/Newt/XmHTML/RCS/cache.h,v $ *****/ /***** * ChangeLog * $Log: cache.h,v $ * Revision 1.2 1997/08/30 01:47:55 newt * getObjectFromCache proto changed. Added pruneObjectCache. * * Revision 1.1 1997/05/28 02:01:31 newt * Initial Revision * *****/ #ifndef _cache_h_ #define _cache_h_ /* get an object from the cache, given it's url */ extern XtPointer getURLObjectFromCache(String url); /* get an object from the cache, given it's location or reference */ extern XtPointer getObjectFromCache(String file, String url); /* insert a new entry in the cache */ extern void storeObjectInCache(XtPointer object, String file, String url); /* replace the given object in the cache with the newly given object */ extern void replaceObjectInCache(XtPointer old_object, XtPointer new_object); /* decrement reference counter for the given url */ extern void removeURLObjectFromCache(String url); /* decrement reference counter for the given file */ extern void removeObjectFromCache(String file); /* clean the cache: remove all objects which are no longer used */ extern void cleanObjectCache(void); /* prune ObjectCache: remove all objects for which no mappings are present */ extern void pruneObjectCache(void); /* completely destroy the cache */ extern void destroyObjectCache(void); /* get the current size and number of objects stored in the cache */ extern void getCacheInfo(int *size, int *nobjects); /***** * prune the image cache to the requested size. When small_first is True, * pruning is started with the smallest objects, otherwise it starts with * the largest objects. Cache pruning removes cached objects with low * reference counts. *****/ #if 0 extern void pruneCache(int size, int small_first); #endif /***** * Proto for the clean_proc in the initCache proto below. This function * is called when cleanObjectCache want's to destroy a stored object. This * function is called with the following arguments: * * clean_proc(object, client_data) * XtPointer object: object to be destroyed; * client_data: additional data provided by the argument with the same * name in initCache. This object is unused internally. *****/ typedef void (*cleanObjectProc)(XtPointer, XtPointer); /***** * Proto for the size_proc in the initCache proto below. This function is * called whenever a new object is stored in the cache and should return the * size of the given object. The arguments are the same as above. *****/ typedef int (*sizeObjectProc)(XtPointer, XtPointer); /***** * function to initialize object cache. Arguments: * size: maximum cache size (UNUSED) * clean_proc: function to call when a stored object is to be destroyed * clean_data: client_data for the clean_proc. *****/ extern void initCache(int size, cleanObjectProc clean_proc, sizeObjectProc size_proc, XtPointer client_data); /* Don't add anything after this endif! */ #endif /* _cache_h_ */