Yann’s Blog

September 7, 2009

libevecache 0.1 and 0.1.1

Filed under: EVE-Central,Software — Yann @ 4:59 pm

libevecache just gained two releases this weekend. Version 0.1 was a functional single shot cache file to .CSV file converter capable release, but had huge memory leak and pointer ownership issues, which made Contribtastic! very unstable and generally unusable.

After spending some quality time with Valgrind, all of the remaining issues are now resolved, and version 0.1.1 is available for mass consumption. Look for Contribtastic early betas soon. One new feature of libevecache in version 0.1.1 is the dumper is capable of digesting a whole CachedMethodCalls folder in one shot (just pass it the list of files on the command line). When you run dumper with the --market flag, you can safely redirect stdout to the file of your choice.

8 Comments »

  1. Something I found with the export…. If you have an item with a low price, say Pyerite, at 4.08ISK the CSV export dumps it as 4.8 and looses the leading zaro.

    Comment by MOAB DaBomb — September 15, 2009 @ 10:24 am

  2. Thanks for the report. That was a silly error, quickly fixed in the current Git version.

    Comment by Yann — September 15, 2009 @ 12:01 pm

  3. Glad to help – This really makes pulling market data a _ton_ easier…. Great job!!!!!

    Comment by MOAB DaBomb — September 15, 2009 @ 2:07 pm

  4. D’Oh… Got another bug… Rounding. The patch in market.cpp truncates the extra decimal values instead of rounding resulting in a .01 variance from the export file. (Test with trade goods NPC orders and you’ll see it)

    Comment by MOAB DaBomb — September 15, 2009 @ 5:22 pm

  5. Fixed again, this time by removing my hokey fixed point math. I’m an embedded developer, can you tell? (I’m also apparently not good with numbers today).

    Comment by Yann — September 15, 2009 @ 9:34 pm

  6. One of the things parsing the cache file will finally accomplish is returning a valid empty set of order for a given region/item pair. In other words, when someone buys the last item for sale in a region, or fills the last buy order, the cache file will be able to reflect it where the item export cannot.

    Unfortunately EveCache::MarketParser sets the typeID and regionID in the list by looking for the first order in the DBRow. If you look at a dump of an empty order cache file the best thing to do is pull the region/type pair from the first 2nd level tuple in the file. For a market order the tuple should have the marketProxy ID, followed by the “GetOrders” string, and then the regionID and typeID. Unfortunately fixing it is beyond my rusty c++ abilities. See this partial structure dump form the dumper util:

    ….

    Comment by MOAB DaBomb — September 15, 2009 @ 10:27 pm

  7. wow, ok the blog ate that one…. nevermind. :)

    Comment by MOAB DaBomb — September 15, 2009 @ 10:28 pm

  8. Good catch, never mind the blog eating the > and < symbols :)

    Comment by Yann — September 15, 2009 @ 10:29 pm

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by WordPress