Data Persistence

From Chumby Wiki
Revision as of 09:55, 16 March 2008 by Wayn3w (Talk | contribs)

Jump to: navigation, search

Sometimes widgets take information from users that should be stored for later. For instance, if a user changes the color of a screen by pressing an icon on the screen, then when the widget next loads it should still use this color.

Persisting to Chumby Servers: the Chumby API

  • persists across Chumby reboots
  • may take longer because of network fetches

Persisting Locally: Mobile Shared Objects

This involves using objects of the SharedObject class.

  • store in /tmp/pdata, but it is not easily readable
  • will not be available when a Chumby restarts.
  • flashplayer does not support shared objects, so this will have to be tested on the Chumby.

General Approach

  • since it uses a callback, rather than listener pattern, the handler will not have the context of the instance. hence if the callback needs to invoke a method on an instance, then it will have to refer to a reference to the instance that stored globally.

MTASC Issues

MTASC has an older, incomplete definition for SharedObject. The file SharedObject.as (on Linux stored in /usr/share/mtasc/std/SharedObject.as) will have to be edited to include the following code:

static function addListener(objectName:String, notifyFunction:Function): Void;
static function removeListener(objectName:String): Void;

With this definition of SharedObject, it is not possible to have private data -- that is, data on the shared object that will not persist. This is not a detriment, because in an object oriented project there will be other places to store private data. Note that this makes it difficult to derive a new class from SharedObject.

Debugging