Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > ff7a12d1f5f662c356232c2c46a46f59 > files > 7

liboasys1.3.0-1.3.0-2mdv2009.1.i586.rpm

Legend:

+---+------+
| * | todo |
| D | done |
| P | punt |
+---+------+

* Integrate expandable buffer into StreamBuffer

* Integrate serializestream into the marshallers

* MemoryStore serialization is wrong -- uses string serialize to
  marshal keys, then unmarshals the keys

* When fixing that, an idea is to add a SerializableKey interface that
  provices a virtual compare() function; change all the DurableStore
  interfaces to take this type as the key; then things like the
  DurableCache and the MemoryStore need not serialize / unserialize
  the key, they can just use it directly in an STL map class via a
  simple Comparison class shim.

  BD: Add a serialized key marshall type which can easily be used for
      handling the key case.

* Should be consistent throughout about the use of char* and u_char*. 

* Another idea: Implement a serializable 'FileBackedObject' that
  maintains a fixed-size in-memory buffer, but leaves the bulk of the
  data for the object on-disk (ala the dtn Bundle class). All
  read/write to the object goes through offset-based functions and is
  reflected immediately to the file. Augment all the DurableTable
  interfaces with bulk_put and bulk_get interfaces that can be used to
  manipulate these large objects. For the FileSystemStore, this would
  just use the normal mechanism. For BerkeleyDB and others, they could
  contain a FileSystemStore instance and use it to manipulate the bulk
  data items.

  demmer: this has been started on the apr-port branch

D Change the DurableTable::get() interface that takes an
  already-constructed object to not ASSERT that there's no cache, but
  instead marshal the data that's in the cache and then unmarshal into
  the object.