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 (
MandNare 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 ...