Sales Conduit Based on Generic Conduit

Now that we have walked through the creation of a mirror-image conduit created with a Generic conduit, it is time to apply our knowledge to our own Sales example. We will use the conduit we just created, named SalesGen, and add support for two-way syncing of the Customers database. Next, we’ll extend the conduit to upload the orders and download the products. Remember, our conduit will support everything except categories (since we don’t use them for our Customers).

We’ll be storing the customers in a tab-delimited text file named Customers.txt. It’ll have one line for each customer. Private customers will have a P in the third from the last field whereas nonprivate customers will have an empty string instead:

               Cust ID<tab>Name<tab>Addr<tab>City<tab>Phone<tab>P<tab>unique ID<tab>attrs Cust ID<tab>Name<tab>Addr<tab>City<tab>Phone<tab><tab>unique ID<tab>attrs

The unique ID is the record unique ID (as opposed to our separate customer ID). The attrs field is composed of a number of characters:

N

New, added on the desktop

M

Modified since the last sync to the handheld (M and N are exclusive)

A

Archived

D

Deleted

CSalesGenPCMgr

Part of our conduit includes the custom class derived from CPcMgr (the Wizard created it). We will add three new member functions (ReadString, ReadRecord, WriteRecord) to it as well (see Example 16-9).

Example 16-9. CSalesGenPcMgr (emphasized code has been added)
class CSalesGenPcMgr : public CPcMgr { public: CSalesGenPcMgr(CPLogging ...

Get Palm OS Programming, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.