You're right: the Exchange Manager is designed for sending a single object
in one direction. You could use several Exchange Manager sessions to achieve
the result you want, but it would be an ugly hack at best.

Both the lower level IrDA protocols available via the IR Library, and the
IrCOMM virtual serial cable require the receiver to go into "receive" mode
explicitly. This means the user would have to run your app.

It seems to me that the best you can do today is either let the user deal
with beaming manually or go ahead and beam the update even if it isn't
needed. In the first case, you could provide the ability to beam the app
from within the app. You would definitely need to provide a way to beam the
database. Launcher could receive it, or your app could. In the second case,
you could have a single operation to beam an "update" object. This would
self-expand after verifying that it's newer than any existing version.

We're working on improving the Exchange Manager so that you'll have some
other choices in the future.

To answer your specific questions:
> The current capabilities of the PalmOS Exchange Manager make the beaming
possible,
> but they don't permit the exercise of much intelligence in the choice of
what gets beamed.

You can exercise some intelligence on the receiving side. You can make your
sysAppLaunchCmdExgAskUser handler check the version if you embed the version
info in the object header (filename, for example).

> The receiving application could examine this code and respond to it (by
relaunching itself, BTW --
> it doesn't seem to work for an application to do an Exchange Manager
within the same execution
> where it was launched via sysAppLaunchCmdExgReceiveData).

This is tricky because the communication doesn't actually occur until the
sending app calls ExgDisconnect. I've found that sending objects back and
forth in sequential sessions is difficult to get working. The user
experience is poor too.

> It appears that the Exchange Library (on which the Exchange Manager is
evidently layered) might
> have what we need, but it is unfortunately not documented.

It will be documented in the next version of Palm OS. But I don't think it
would be useful to solve your problem.

> There are also four undocumented ("system-only") Exchange Manager
functions that look promising:
> ExgConnect, ExgGet, ExgInit, and ExgNotifyReceive.

None of these would be of any use either.
--
Danny Epstein
OS Engineer, Palm Inc.


-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/

Reply via email to