PokittoLib is the library needed for programming the Pokitto DIY game console (www.pokitto.com)
Dependents: YATTT sd_map_test cPong SnowDemo ... more
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-byte key string size of cookie data in bytes pointer to 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-byte key string reference to 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:
-
block number keytable entry 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:
-
slot number to erase
Definition at line 302 of file PokittoCookie.cpp.
int exists | ( | const char * | idkey ) |
exists - find out if the key exists
- Parameters:
-
8-byte key 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:
-
slot number 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:
-
block index 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:
-
block table 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:
-
block number
- 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:
-
block number
- Returns:
- true when is already reserved false when is not
Definition at line 203 of file PokittoCookie.cpp.
bool isOK | ( | ) |
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:
-
block index number pointer to 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:
-
slot number to check pointer to 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-byte key string slot number 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:
-
byte to 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.
Generated on Tue Jul 12 2022 11:20:53 by 1.7.2