NAME
libpdb – library for reading and writing Palm database files
SYNOPSIS
#include <palm.h>
#include <pdb.h>
Function prototypes are given in their respective man pages.
If
libpdb was built with I18N support, you may need to link with -lintl
DESCRIPTION
The libpdb library provides functions for reading and writing Palm database files, both PDB (record database) and PRC (resource database).
INTRODUCTION
A Palm database file has the following overall structure:
-
Header.
This includes the database's name; attribute flags; version; creation, modification, and backup time; modification number; type; creator; and unique ID number seed. It also specifies whether or not the database has an AppInfo and/or sort block.
The creator field identifies the application with which the database is associated: it will be the same as the creator field of the application database.
-
Index header.
-
Record/resource index.
The index lists the locations of records or resources in the database. The index header specifies the number of records in the index, and may optionally point to another index in the database. libpdb manages the index and index header.
-
Optional AppInfo block.
The AppInfo block contains application-specific data that pertains to the database as a whole. Typically, it contains category information, as well as user preference settings.
-
Optional sort block.
I'm not sure what this is. I think it specifies the order in which to display the records.
-
Records/resources.
FUNCTIONS
libpdb includes the following functions, which are described in their respective manual pages:
void free_pdb(struct pdb *db)
struct pdb * new_Record(const ubyte flags, const ubyte category, const udword id, const uword len, const ubyte *data)
struct pdb_resource * new_Resource(const udword type, const uword id, const uword len, const ubyte *data)
void pdb_FreeRecord(struct pdb_record *rec)
void pdb_FreeResource(struct pdb_resource *rsrc)
struct pdb * pdb_Read(int fd)
int pdb_Write(const struct pdb *db, int fd)
struct pdb_record * pdb_FindRecordByID(const struct pdb *db, const udword id)
struct pdb_record * pdb_FindRecordByIndex(const struct pdb *db, const uword index)
int pdb_DeleteRecordByID(struct pdb *db, const udword id)
int pdb_AppendRecord(struct pdb *db, struct pdb_record *newrec)
int pdb_AppendResource(struct pdb *db, struct pdb_resource *newrsrc)
int pdb_InsertRecord(struct pdb *db, struct pdb_record *prev, struct pdb_record *newrec)
int pdb_InsertResource(struct pdb *db, struct pdb_resource *prev, struct pdb_resource *newrsrc)
struct pdb_record * new_Record(const ubyte attributes, const ubyte category, const udword id, const uword len, const ubyte *data)
struct pdb_record * pdb_CopyRecord(const struct pdb *db, const struct pdb_record *rec)
struct pdb_resource * pdb_CopyResource(const struct pdb *db, const struct pdb_resource *rsrc)
int pdb_LoadHeader(int fd, struct pdb *db)
AUTHORS
Andrew Arensburger ⟨[email protected]⟩
LIMITATIONS
Does not support multiple indexes in one database.