00001 
00032 #ifndef LL_LLCACHENAME_H
00033 #define LL_LLCACHENAME_H
00034 
00035 class LLMessageSystem;
00036 class LLHost;
00037 class LLUUID;
00038 
00039 
00040 typedef void (*LLCacheNameCallback)(const LLUUID&, const char*, const char*, BOOL, void*);
00041 
00042 
00043 
00044 
00045 
00046 
00047 
00048 
00049 class LLCacheName
00050 {
00051 public:
00052         LLCacheName(LLMessageSystem* msg);
00053         LLCacheName(LLMessageSystem* msg, const LLHost& upstream_host);
00054         ~LLCacheName();
00055 
00056         
00057         
00058         
00059         void setUpstream(const LLHost& upstream_host);
00060 
00061         void addObserver(LLCacheNameCallback callback);
00062         void removeObserver(LLCacheNameCallback callback);
00063 
00064         void cancelCallback(const LLUUID& id, LLCacheNameCallback callback, void* user_data = NULL);
00065 
00066         
00067         void importFile(FILE* fp);
00068         void exportFile(FILE* fp);
00069 
00070         
00071         
00072         
00073         
00074         
00075         BOOL getName(const LLUUID& id, char* first, char* last);
00076         
00077         
00078         
00079         
00080         
00081         BOOL getGroupName(const LLUUID& id, char* group);
00082 
00083         
00084         
00085         
00086         
00087         void get(const LLUUID& id, BOOL is_group, LLCacheNameCallback callback, void* user_data = NULL);
00088         
00089         
00090         void getName(const LLUUID& id, LLCacheNameCallback callback, void* user_data = NULL)
00091                         { get(id, FALSE, callback, user_data); }
00092 
00093         
00094         
00095         void processPending();
00096 
00097         
00098         void deleteEntriesOlderThan(S32 secs);
00099 
00100         
00101         void dump();            
00102         void dumpStats();       
00103 
00104         static LLString getDefaultName();
00105 
00106 private:
00107         class Impl;
00108         Impl& impl;
00109 };
00110 
00111 
00112 
00113 extern LLCacheName* gCacheName;
00114 
00115 #endif