PokittoLib is the library needed for programming the Pokitto DIY game console (www.pokitto.com)

Dependents:   YATTT sd_map_test cPong SnowDemo ... more

Embed: (wiki syntax)

« Back to documentation index

Cookie Class Reference

Cookie Class Reference

Pokitto Cookies are queues of 32 byte blocks that are saved in the EEPROM in a safe way. More...

#include <PokittoCookie.h>

Public Member Functions

 Cookie ()
 Cookie class constructor.
int begin (const char *, int, char *)
 begin - Register your Cookie with a 8-byte key to begin using it
template<typename T >
int begin (const char *key, T &object)
 begin - Register your Cookie with a 8-byte key to begin using it
int initialize ()
 initialize - create cookie structure.
bool saveCookie ()
 saveCookie - Save your Cookie
bool loadCookie ()
 loadCookie - Load your Cookie
void deleteCookie ()
 deleteCookie - your Cookie
bool isOK ()
 isOK - Get status of Cookie
void readKeytableEntry (int, char *)
 readKeytableEntry - return the key at slot n
void formatKeytable ()
 formatKeyTable(int) - erase all keys
void eraseKeytableEntry (int)
 eraseKeyAt(int) - erase key at slot n
void cleanKeytable ()
 cleanKeytable() - erase keys that have no blocks reserved from the keyTable
int exists (const char *)
 exists - find out if the key exists
int getFreeKeytableSlot ()
 getFreeKeytableSlot - Are there any keys left to use
int getFreeBlocks ()
 getFreeBlocks - Are there any storage blocks left to use
int getAssignedBlocks ()
 getAssignedBlocks - return number of blocks already reserved for cookie
bool isFreeBlock (int)
 isFreeBlock - check if block n is free to use
bool isMyBlock (int)
 isMyBlock - check if block n is already reserved for this cookie
bool blockIsOwnedBy (int, int)
 blockIsOwnedBy - check if block n is owned by Keytable entry k
void writeKeyToKeytable (const char *, int)
 writeKeyToKeyTable - write the key into the key table
char getBlockTableEntry (int)
 getBlockTableEntry - read an entry from the blocktable
void readBlock (int, char *)
 readBlock - read the data of a block
void freeBlock (int)
 freeBlock - free block from blocktable and delete data of block in EEPROM
bool reserveBlock ()
 reserveBlock - search and reserve a block from blocktable for use by this cookie
void writeQueue (char)
 writeQueue - write the cookie data as a stream of bytes into the EEPROM blocks
char readQueue ()
 readQueue - write the cookie data as a stream of bytes into the EEPROM blocks
int findMyNextBlock ()
 findMyNextBlock - find the next block assigned to this cookie

Data Fields

char _key [SBKEYSIZE]
 keystring identification string for the Cookie
unsigned char _keyorder
 Keyorder order number of key in key table.
bool _status
 Status false = uninitialized true = ready.
int _datasize
 Datasize size (in bytes) of cookie data to be saved and reloaded.
char * _pointer
 Pointer pointer to cookie data.
int _head
 Head data "head" for byte write/read operations.
char _block
 Current block block number that we are reading/writing.

Detailed Description

Pokitto Cookies are queues of 32 byte blocks that are saved in the EEPROM in a safe way.

Example:

 // Create saveable data and initialize your app to use Cookies

   class gdata : public Cookie {
   int highscore;
   }

   gdata gamedata;

   gamedata.begin("ASTEROCK"); // register your Cookie with key "ASTEROCK"

   // you use the data objects inside the Cookie as normal:

   gamedata.highscore = player.currentscore; // It's a new highscore!

   // Finally you call the save method to write your data to EEPROM

   gamedata.save;

Definition at line 78 of file PokittoCookie.h.


Constructor & Destructor Documentation

Cookie (  )

Cookie class constructor.

Definition at line 54 of file PokittoCookie.cpp.


Member Function Documentation

int begin ( const char *  idkey,
int  datasize,
char *  ptr 
)

begin - Register your Cookie with a 8-byte key to begin using it

Parameters:
8-bytekey string
sizeof cookie data in bytes
pointerto beginning of cookie data in memory
Returns:
0 on success (free blocks available), non-0 on failure (no more free keys/blocks)

Definition at line 104 of file PokittoCookie.cpp.

int begin ( const char *  key,
T &  object 
)

begin - Register your Cookie with a 8-byte key to begin using it

Parameters:
8-bytekey string
referenceto cookie data object in memory
Returns:
0 on success (free blocks available), non-0 on failure (no more free keys/blocks)

Definition at line 107 of file PokittoCookie.h.

bool blockIsOwnedBy ( int  n,
int  k 
)

blockIsOwnedBy - check if block n is owned by Keytable entry k

Parameters:
blocknumber
keytableentry number
Returns:
true when keytable entry k is owner of block n false when is not

Definition at line 215 of file PokittoCookie.cpp.

void cleanKeytable (  )

cleanKeytable() - erase keys that have no blocks reserved from the keyTable

Definition at line 311 of file PokittoCookie.cpp.

void deleteCookie (  )

deleteCookie - your Cookie

Definition at line 142 of file PokittoCookie.cpp.

void eraseKeytableEntry ( int  n )

eraseKeyAt(int) - erase key at slot n

Parameters:
slotnumber to erase

Definition at line 302 of file PokittoCookie.cpp.

int exists ( const char *  idkey )

exists - find out if the key exists

Parameters:
8-bytekey string
Returns:
slotnumber on key exists , SBINVALIDSLOT on does not exist

Definition at line 154 of file PokittoCookie.cpp.

int findMyNextBlock (  )

findMyNextBlock - find the next block assigned to this cookie

Returns:
number of next block

Definition at line 360 of file PokittoCookie.cpp.

void formatKeytable (  )

formatKeyTable(int) - erase all keys

Parameters:
slotnumber to erase

Definition at line 264 of file PokittoCookie.cpp.

void freeBlock ( int  n )

freeBlock - free block from blocktable and delete data of block in EEPROM

Parameters:
blockindex number

Definition at line 274 of file PokittoCookie.cpp.

int getAssignedBlocks (  )

getAssignedBlocks - return number of blocks already reserved for cookie

Returns:
number of blocks assigned to cookie

Definition at line 179 of file PokittoCookie.cpp.

char getBlockTableEntry ( int  n )

getBlockTableEntry - read an entry from the blocktable

Parameters:
blocktable index number
Returns:
block table entry (1 byte)

Definition at line 247 of file PokittoCookie.cpp.

int getFreeBlocks (  )

getFreeBlocks - Are there any storage blocks left to use

Returns:
number of blocks available

Definition at line 187 of file PokittoCookie.cpp.

int getFreeKeytableSlot (  )

getFreeKeytableSlot - Are there any keys left to use

Returns:
slot number 0...47 on success -1 on failure

Definition at line 169 of file PokittoCookie.cpp.

int initialize (  )

initialize - create cookie structure.

Can be called many times

Returns:
0 on success (free blocks available), non-0 on failure (no more free keys/blocks)

Definition at line 59 of file PokittoCookie.cpp.

bool isFreeBlock ( int  n )

isFreeBlock - check if block n is free to use

Parameters:
blocknumber
Returns:
true when free false when reserved

Definition at line 195 of file PokittoCookie.cpp.

bool isMyBlock ( int  n )

isMyBlock - check if block n is already reserved for this cookie

Parameters:
blocknumber
Returns:
true when is already reserved false when is not

Definition at line 203 of file PokittoCookie.cpp.

bool isOK (  )

isOK - Get status of Cookie

Returns:
true on success (Cookie is initialized and ready to use), false on failure (Cookie did not initialize and can't be used)
bool loadCookie (  )

loadCookie - Load your Cookie

Returns:
true on success false on failure

Definition at line 132 of file PokittoCookie.cpp.

void readBlock ( int  n,
char *  data 
)

readBlock - read the data of a block

Parameters:
blockindex number
pointerto a buffer of SBBLOCKSIZE size to hold the return data

Definition at line 255 of file PokittoCookie.cpp.

void readKeytableEntry ( int  n,
char *  answer 
)

readKeytableEntry - return the key at slot n

Parameters:
slotnumber to check
pointerto a 9 char buffer for return answer

Definition at line 237 of file PokittoCookie.cpp.

char readQueue (  )

readQueue - write the cookie data as a stream of bytes into the EEPROM blocks

Returns:
byte value from EEPROM memory

Definition at line 334 of file PokittoCookie.cpp.

bool reserveBlock (  )

reserveBlock - search and reserve a block from blocktable for use by this cookie

Returns:
true when it was possible to reserve a block false when it was not

Definition at line 288 of file PokittoCookie.cpp.

bool saveCookie (  )

saveCookie - Save your Cookie

Returns:
true on success (saved successfully and verified), false on failure (something is wrong)

Definition at line 119 of file PokittoCookie.cpp.

void writeKeyToKeytable ( const char *  key,
int  slot 
)

writeKeyToKeyTable - write the key into the key table

Parameters:
8-bytekey string
slotnumber into which the key is written 0...47

Definition at line 228 of file PokittoCookie.cpp.

void writeQueue ( char  data )

writeQueue - write the cookie data as a stream of bytes into the EEPROM blocks

Parameters:
byteto be written

Definition at line 349 of file PokittoCookie.cpp.


Field Documentation

char _block

Current block block number that we are reading/writing.

Definition at line 336 of file PokittoCookie.h.

int _datasize

Datasize size (in bytes) of cookie data to be saved and reloaded.

Definition at line 321 of file PokittoCookie.h.

int _head

Head data "head" for byte write/read operations.

Definition at line 331 of file PokittoCookie.h.

char _key[SBKEYSIZE]

keystring identification string for the Cookie

Definition at line 305 of file PokittoCookie.h.

unsigned char _keyorder

Keyorder order number of key in key table.

Definition at line 310 of file PokittoCookie.h.

char* _pointer

Pointer pointer to cookie data.

Definition at line 326 of file PokittoCookie.h.

bool _status

Status false = uninitialized true = ready.

Definition at line 316 of file PokittoCookie.h.