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(LLFILE* fp);
00068
00069
00070 bool importFile(std::istream& istr);
00071 void exportFile(std::ostream& ostr);
00072
00073
00074
00075
00076
00077
00078 BOOL getName(const LLUUID& id, char* first, char* last);
00079 BOOL getName(const LLUUID& id, std::string& first, std::string& last);
00080 BOOL getFullName(const LLUUID& id, std::string& fullname);
00081
00082
00083
00084
00085
00086 BOOL getGroupName(const LLUUID& id, char* group);
00087 BOOL getGroupName(const LLUUID& id, std::string& group);
00088
00089
00090
00091
00092
00093 void get(const LLUUID& id, BOOL is_group, LLCacheNameCallback callback, void* user_data = NULL);
00094
00095
00096 void getName(const LLUUID& id, LLCacheNameCallback callback, void* user_data = NULL)
00097 { get(id, FALSE, callback, user_data); }
00098
00099
00100
00101 void processPending();
00102
00103
00104 void deleteEntriesOlderThan(S32 secs);
00105
00106
00107 void dump();
00108 void dumpStats();
00109
00110 static LLString getDefaultName();
00111
00112 private:
00113
00114 class Impl;
00115 Impl& impl;
00116 };
00117
00118
00119
00120 extern LLCacheName* gCacheName;
00121
00122 #endif