37 "config.BulkData.paperdollResources",
38 "config.BulkData.ramactivities",
39 "config.BulkData.billtypes",
40 "config.BulkData.bloodlineNames",
41 "config.BulkData.locationscenes",
42 "config.BulkData.overviewDefaults",
43 "config.BulkData.schematicspinmap",
45 "config.BulkData.overviewDefaultGroups",
46 "config.BulkData.schematics",
47 "config.BulkData.paperdollColors",
48 "config.BulkData.schematicstypemap",
49 "config.BulkData.sounds",
50 "config.BulkData.invtypematerials",
51 "config.BulkData.ownericons",
52 "config.BulkData.paperdollModifierLocations",
53 "config.BulkData.paperdollSculptingLocations",
54 "config.BulkData.paperdollColorNames",
55 "config.BulkData.paperdollColorRestrictions",
56 "config.BulkData.icons",
58 "config.BulkData.tickernames",
59 "config.BulkData.ramtyperequirements",
60 "config.BulkData.ramaltypesdetailpergroup",
61 "config.BulkData.ramaltypes",
62 "config.BulkData.allianceshortnames",
63 "config.BulkData.ramcompletedstatuses",
64 "config.BulkData.categories",
65 "config.BulkData.invtypereactions",
66 "config.BulkData.dgmtypeeffects",
67 "config.BulkData.metagroups",
68 "config.BulkData.ramaltypesdetailpercategory",
69 "config.BulkData.owners",
70 "config.StaticOwners",
73 "config.BulkData.dgmtypeattribs",
74 "config.BulkData.locations",
75 "config.BulkData.locationwormholeclasses",
76 "config.BulkData.groups",
77 "config.BulkData.shiptypes",
78 "config.BulkData.dgmattribs",
80 "config.BulkData.bptypes",
81 "config.BulkData.graphics",
82 "config.BulkData.mapcelestialdescriptions",
83 "config.BulkData.certificates",
84 "config.StaticLocations",
85 "config.InvContrabandTypes",
86 "config.BulkData.certificaterelationships",
87 "config.BulkData.units",
88 "config.BulkData.dgmeffects",
89 "config.BulkData.dgmexpressions",
90 "config.BulkData.types",
91 "config.BulkData.invmetatypes"
96 "charCreationInfo.bl_eyebrows",
97 "charCreationInfo.bl_eyes",
98 "charCreationInfo.bl_decos",
99 "charCreationInfo.bloodlines",
100 "charCreationInfo.bl_hairs",
101 "charCreationInfo.bl_backgrounds",
102 "charCreationInfo.bl_accessories",
103 "charCreationInfo.bl_costumes",
104 "charCreationInfo.bl_lights",
105 "charCreationInfo.races",
106 "charCreationInfo.ancestries",
107 "charCreationInfo.schools",
108 "charCreationInfo.attributes",
109 "charCreationInfo.bl_beards",
110 "charCreationInfo.bl_skins",
111 "charCreationInfo.bl_lipsticks",
112 "charCreationInfo.bl_makeups"
117 "charCreationInfo.eyebrows",
118 "charCreationInfo.eyes",
119 "charCreationInfo.decos",
120 "charCreationInfo.hairs",
121 "charCreationInfo.backgrounds",
122 "charCreationInfo.accessories",
123 "charCreationInfo.costumes",
124 "charCreationInfo.lights",
125 "charCreationInfo.makeups",
126 "charCreationInfo.beards",
127 "charCreationInfo.skins",
128 "charCreationInfo.lipsticks"
133 "charNewExtraCreationInfo.raceskills",
134 "charNewExtraCreationInfo.careerskills",
135 "charNewExtraCreationInfo.careers",
136 "charNewExtraCreationInfo.specialityskills",
137 "charNewExtraCreationInfo.specialities"
148 std::string _basePath =
sConfig.files.cacheDir;
149 if (_basePath[_basePath.size() - 1] !=
'/')
158 m_cacheKeys[
"config.BulkData.paperdollResources"] =
"config.BulkData.paperdollResources";
159 m_cacheKeys[
"config.BulkData.bloodlineNames"] =
"config.BulkData.bloodlineNames";
160 m_cacheKeys[
"config.BulkData.locationscenes"] =
"config.BulkData.locationscenes";
161 m_cacheKeys[
"config.BulkData.overviewDefaults"] =
"config.BulkData.overviewDefaults";
162 m_cacheKeys[
"config.BulkData.schematicspinmap"] =
"config.BulkData.schematicspinmap";
163 m_cacheKeys[
"config.BulkData.overviewDefaultGroups"] =
"config.BulkData.overviewDefaultGroups";
164 m_cacheKeys[
"config.BulkData.schematics"] =
"config.BulkData.schematics";
165 m_cacheKeys[
"config.BulkData.paperdollColors"] =
"config.BulkData.paperdollColors";
166 m_cacheKeys[
"config.BulkData.schematicstypemap"] =
"config.BulkData.schematicstypemap";
167 m_cacheKeys[
"config.BulkData.sounds"] =
"config.BulkData.sounds";
168 m_cacheKeys[
"config.BulkData.invtypematerials"] =
"config.BulkData.invtypematerials";
169 m_cacheKeys[
"config.BulkData.ownericons"] =
"config.BulkData.ownericons";
170 m_cacheKeys[
"config.BulkData.paperdollModifierLocations"] =
"config.BulkData.paperdollModifierLocations";
171 m_cacheKeys[
"config.BulkData.paperdollSculptingLocations"] =
"config.BulkData.paperdollSculptingLocations";
172 m_cacheKeys[
"config.BulkData.paperdollColorNames"] =
"config.BulkData.paperdollColorNames";
173 m_cacheKeys[
"config.BulkData.paperdollColorRestrictions"] =
"config.BulkData.paperdollColorRestrictions";
174 m_cacheKeys[
"config.BulkData.icons"] =
"config.BulkData.icons";
175 m_cacheKeys[
"config.BulkData.billtypes"] =
"config.BulkData.billtypes";
176 m_cacheKeys[
"config.BulkData.allianceshortnames"] =
"config.BulkData.allianceshortnames";
177 m_cacheKeys[
"config.BulkData.categories"] =
"config.BulkData.categories";
178 m_cacheKeys[
"config.BulkData.invtypereactions"] =
"config.BulkData.invtypereactions";
179 m_cacheKeys[
"config.BulkData.dgmexpressions"] =
"config.BulkData.dgmexpressions";
180 m_cacheKeys[
"config.BulkData.dgmtypeattribs"] =
"config.BulkData.dgmtypeattribs";
181 m_cacheKeys[
"config.BulkData.dgmtypeeffects"] =
"config.BulkData.dgmtypeeffects";
182 m_cacheKeys[
"config.BulkData.dgmeffects"] =
"config.BulkData.dgmeffects";
183 m_cacheKeys[
"config.BulkData.dgmattribs"] =
"config.BulkData.dgmattribs";
184 m_cacheKeys[
"config.BulkData.metagroups"] =
"config.BulkData.metagroups";
185 m_cacheKeys[
"config.BulkData.ramactivities"] =
"config.BulkData.ramactivities";
186 m_cacheKeys[
"config.BulkData.ramaltypesdetailpergroup"] =
"config.BulkData.ramaltypesdetailpergroup";
187 m_cacheKeys[
"config.BulkData.ramaltypesdetailpercategory"] =
"config.BulkData.ramaltypesdetailpercategory";
188 m_cacheKeys[
"config.BulkData.ramaltypes"] =
"config.BulkData.ramaltypes";
189 m_cacheKeys[
"config.BulkData.ramcompletedstatuses"] =
"config.BulkData.ramcompletedstatuses";
190 m_cacheKeys[
"config.BulkData.ramtyperequirements"] =
"config.BulkData.ramtyperequirements";
191 m_cacheKeys[
"config.BulkData.mapcelestialdescriptions"] =
"config.BulkData.mapcelestialdescriptions";
192 m_cacheKeys[
"config.BulkData.tickernames"] =
"config.BulkData.tickernames";
193 m_cacheKeys[
"config.BulkData.groups"] =
"config.BulkData.groups";
194 m_cacheKeys[
"config.BulkData.certificates"] =
"config.BulkData.certificates";
195 m_cacheKeys[
"config.BulkData.certificaterelationships"] =
"config.BulkData.certificaterelationships";
196 m_cacheKeys[
"config.BulkData.shiptypes"] =
"config.BulkData.shiptypes";
197 m_cacheKeys[
"config.BulkData.locations"] =
"config.BulkData.locations";
198 m_cacheKeys[
"config.BulkData.locationwormholeclasses"] =
"config.BulkData.locationwormholeclasses";
199 m_cacheKeys[
"config.BulkData.bptypes"] =
"config.BulkData.bptypes";
200 m_cacheKeys[
"config.BulkData.graphics"] =
"config.BulkData.graphics";
201 m_cacheKeys[
"config.BulkData.types"] =
"config.BulkData.types";
202 m_cacheKeys[
"config.BulkData.invmetatypes"] =
"config.BulkData.invmetatypes";
203 m_cacheKeys[
"config.Bloodlines"] =
"config.Bloodlines";
204 m_cacheKeys[
"config.Units"] =
"config.Units";
205 m_cacheKeys[
"config.BulkData.units"] =
"config.BulkData.units";
206 m_cacheKeys[
"config.BulkData.owners"] =
"config.BulkData.owners";
207 m_cacheKeys[
"config.StaticOwners"] =
"config.StaticOwners";
208 m_cacheKeys[
"config.Races"] =
"config.Races";
209 m_cacheKeys[
"config.Attributes"] =
"config.Attributes";
210 m_cacheKeys[
"config.Flags"] =
"config.Flags";
211 m_cacheKeys[
"config.StaticLocations"] =
"config.StaticLocations";
212 m_cacheKeys[
"config.InvContrabandTypes"] =
"config.InvContrabandTypes";
214 m_cacheKeys[
"charCreationInfo.bloodlines"] =
"bloodlines";
215 m_cacheKeys[
"charCreationInfo.races"] =
"races";
216 m_cacheKeys[
"charCreationInfo.ancestries"] =
"ancestries";
217 m_cacheKeys[
"charCreationInfo.schools"] =
"schools";
218 m_cacheKeys[
"charCreationInfo.attributes"] =
"attributes";
219 m_cacheKeys[
"charCreationInfo.bl_accessories"] =
"accessories";
220 m_cacheKeys[
"charCreationInfo.bl_lights"] =
"lights";
221 m_cacheKeys[
"charCreationInfo.bl_skins"] =
"skins";
222 m_cacheKeys[
"charCreationInfo.bl_beards"] =
"beards";
223 m_cacheKeys[
"charCreationInfo.bl_eyes"] =
"eyes";
224 m_cacheKeys[
"charCreationInfo.bl_lipsticks"] =
"lipsticks";
225 m_cacheKeys[
"charCreationInfo.bl_makeups"] =
"makeups";
226 m_cacheKeys[
"charCreationInfo.bl_hairs"] =
"hairs";
227 m_cacheKeys[
"charCreationInfo.bl_backgrounds"] =
"backgrounds";
228 m_cacheKeys[
"charCreationInfo.bl_decos"] =
"decos";
229 m_cacheKeys[
"charCreationInfo.bl_eyebrows"] =
"eyebrows";
230 m_cacheKeys[
"charCreationInfo.bl_costumes"] =
"costumes";
232 m_cacheKeys[
"charCreationInfo.eyebrows"] =
"eyebrows";
233 m_cacheKeys[
"charCreationInfo.eyes"] =
"eyes";
234 m_cacheKeys[
"charCreationInfo.decos"] =
"decos";
235 m_cacheKeys[
"charCreationInfo.hairs"] =
"hairs";
236 m_cacheKeys[
"charCreationInfo.backgrounds"] =
"backgrounds";
237 m_cacheKeys[
"charCreationInfo.accessories"] =
"accessories";
238 m_cacheKeys[
"charCreationInfo.lights"] =
"lights";
239 m_cacheKeys[
"charCreationInfo.costumes"] =
"costumes";
240 m_cacheKeys[
"charCreationInfo.makeups"] =
"makeups";
241 m_cacheKeys[
"charCreationInfo.beards"] =
"beards";
242 m_cacheKeys[
"charCreationInfo.skins"] =
"skins";
243 m_cacheKeys[
"charCreationInfo.lipsticks"] =
"lipsticks";
245 m_cacheKeys[
"charNewExtraCreationInfo.raceskills"] =
"raceskills";
246 m_cacheKeys[
"charNewExtraCreationInfo.careerskills"] =
"careerskills";
247 m_cacheKeys[
"charNewExtraCreationInfo.careers"] =
"careers";
248 m_cacheKeys[
"charNewExtraCreationInfo.specialityskills"] =
"specialityskills";
249 m_cacheKeys[
"charNewExtraCreationInfo.specialities"] =
"specialities";
275 CallGetCachableObject
args;
276 if (!args.Decode(&call.
tuple)) {
277 codelog(SERVICE__ERROR,
"%s: Failed to decode arguments.",
GetName());
326 _log( CACHE__INFO,
"Loaded cached object '%s' from file.", objectID_string.c_str() );
334 if(cache !=
nullptr) {
343 _log(CACHE__ERROR,
"Failed to create or load cache file for '%s'", objectID_string.c_str());
355 sLog.Error(
"ObjCacheService",
"Failed to save cache file for '%s' in '%s'", objectID_string.c_str(),
m_cacheDir.c_str() );
357 sLog.White(
"ObjCacheService",
"Saved cached object '%s' to file in '%s'.", objectID_string.c_str(),
m_cacheDir.c_str() );
369 if (cache_hint ==
nullptr) {
378 const char *
const *
objects =
nullptr;
398 if(objects ==
nullptr)
401 std::map<std::string, std::string>::const_iterator res;
402 for(r = 0; r < object_count; r++) {
406 _log(CACHE__ERROR,
"Unable to find cache key for object ID '%s', skipping.", objects[r]);
415 if(cache_hint ==
nullptr)
439 objectCaching_SessionCachedMethodCallResult_object c;
440 c.clientWhen = clientWhen;
441 c.sessionInfoName = sessionInfoName;
450 objectCaching_CachedMethodCallResult_object c;
451 c.versionCheck = versionCheck;
471 SessionMethodCallID c;
479 c.sessionValue = sessionValue;
#define sConfig
A macro for easier access to the singleton.
Dispatcher *const m_dispatch
bool HaveCached(const std::string &objectID) const
#define _log(type, fmt,...)
void InsertCacheHints(hintSet hset, PyDict *into)
static const uint32 CharCreateNewExtraCachableObjectCount
bool _LoadCachableObject(const PyRep *objectID)
PyObject * MakeCacheHint(const PyRep *objectID)
PyRep * GetCacheHint(const PyRep *objectID)
const char * GetName() const
PySubStream * LoadCachedFile(const char *filename, const char *oname)
void UpdateCache(const std::string &objectID, PyRep **in_cached_data)
#define sLog
Evaluates to a NewLog instance.
static const char *const AppearanceCachableObjects[]
PySubStream * LoadCachedFile(const char *obj_name)
int CreateDirectory(const char *name, void *)
bool SaveCachedToFile(const std::string &cacheDir, const std::string &objectID) const
void UpdateCacheFromSS(const std::string &objectID, PySubStream **in_cached_data)
#define codelog(type, fmt,...)
entityID heal the character with the entityID note giving you detailed ship status information gives a list of all dynamic entities and players and their destinyState in this bubble shows some current destiny variables save all kick all and halt server immediate command list all items in current location s gives list of cargo contents and volumes in all holds list current session values show current ship DNA show current objects in their destiny and movement speed show current attributes for itemID given in args note giving you detailed fleet boost information gets positional data between ship and enable disable bubble outline tracking shows all dynamic items in system on ship scanner begin warp to given bubbleID in current ship list of current bound objects(with clients)." ) COMMAND( dropLoot
static const uint32 AppearanceCachableObjectCount
void InvalidateCache(const PyRep *objectID)
static const uint32 CharCreateCachableObjectCount
virtual ~ObjCacheService()
PyCallable_Make_InnerDispatcher(ObjCacheService) ObjCacheService
~ObjectCachedSessionMethodID()
static const uint32 LoginCachableObjectCount
#define PyCallable_REG_CALL(c, m)
static const char *const LoginCachableObjects[]
static const char *const CharCreateCachableObjects[]
void InvalidateCache(const PyRep *objectID)
CacheKeysMap::const_iterator CacheKeysMapConstItr
void GiveCache(const PyRep *objectID, PyRep **contents)
static std::string OIDToString(const PyRep *objectID)
static const char *const CharCreateNewExtraCachableObjects[]
ObjectCachedSessionMethodID(const char *service, const char *method, int32 sessionValue)
PyObject * GetCachedObject(const PyRep *objectID)
Dispatcher *const m_dispatch
PyObject * MakeObjectCachedSessionMethodCallResult(const PyRep *objectID, const char *sessionInfoName, const char *clientWhen="always")
PyObject * MakeObjectCachedMethodCallResult(const PyRep *objectID, const char *versionCheck="run")
bool LoadCachedFromFile(const std::string &cacheDir, const std::string &objectID)
void SetItemString(const char *key, PyRep *value)
SetItemString adds or sets a database entry.
ObjectCachedMethodID(const char *service, const char *method)
bool IsCacheLoaded(const PyRep *objectID) const
PyRep * GetCachableObject(const std::string &type)