This bodes well for my idea. However there are tricky parts,
> like what is used in map/maps_list.cpp

Hoping the patch won't be dropped by the ml, here's what I tried
to do for MapInfo accessors. Most of them use in fact LoadBasicInfo
or LoadData.

Those functions throw exceptions in case of error during loading.
And they are used everywhere in the code.

So I decided to remove the accessors, and create special classes
holding said accessors. BasicLoadInfo and LoadData return pointers
to them, and obviously, one should check those pointers and
appropriately handle such error.

However, there are cases when we do want to load such data, and
others where it should already have been, otherwise there's
probably an undetermined state.

That's why I've further written 2 functions, LoadedInfo and
LoadedBasic, which assert if the state is in fact that nothing is
loaded.

That's maybe not very clean design, but I wasn't sure how to handle
this. Lami suggested to immediately load basic info, to which I
objected that this would cause initial lag (in particular in debug
mode, now that I remember).

Your opinion?

Best regards,
Christophe
_______________________________________________
Wormux-dev mailing list
Wormux-dev@gna.org
https://mail.gna.org/listinfo/wormux-dev

Répondre à