kpilot/lib
KPilotDeviceLink Class Reference
#include <kpilotdevicelink.h>
Inheritance diagram for KPilotDeviceLink:

Detailed Description
Implementation of the device link class for physical handheld devices, which communicate with the PC using DLP / SLP via the pilot-link library.
Definition at line 40 of file kpilotdevicelink.h.
Public Types | |
enum | LinkStatus { Init, WaitingForDevice, FoundDevice, CreatedSocket, DeviceOpen, AcceptedDevice, SyncDone, PilotLinkError, WorkaroundUSB } |
Public Member Functions | |
KPilotDeviceLink (QObject *parent=0, const char *name=0, const QString &tempDevice=QString::null) | |
virtual | ~KPilotDeviceLink () |
LinkStatus | status () const |
virtual QString | statusString () const |
virtual bool | isConnected () const |
virtual void | reset (const QString &) |
virtual void | close () |
virtual void | reset () |
virtual bool | tickle () |
virtual const KPilotCard * | getCardInfo (int card) |
virtual void | endOfSync () |
virtual void | finishSync () |
virtual int | openConduit () |
virtual int | getNextDatabase (int index, struct DBInfo *) |
virtual int | findDatabase (const char *name, struct DBInfo *, int index=0, unsigned long type=0, unsigned long creator=0) |
virtual bool | retrieveDatabase (const QString &path, struct DBInfo *db) |
virtual DBInfoList | getDBList (int cardno=0, int flags=dlpDBListRAM) |
virtual PilotDatabase * | database (const QString &name) |
void | setWorkarounds (bool usb) |
void | setTempDevice (const QString &device) |
Static Public Member Functions | |
static QString | statusString (LinkStatus l) |
Protected Types | |
enum | { OpenMessage = 1, OpenFailMessage = 2 } |
Protected Slots | |
void | openDevice () |
void | acceptDevice () |
Protected Member Functions | |
virtual bool | installFile (const QString &, const bool deleteFile) |
virtual void | addSyncLogEntryImpl (const QString &s) |
virtual int | pilotSocket () const |
bool | open (const QString &device=QString::null) |
void | checkDevice () |
void | shouldPrint (int msgid, const QString &s) |
Protected Attributes | |
int | messages |
int | messagesMask |
Static Protected Attributes | |
static const int | messagesType |
Friends | |
class | PilotSerialDatabase |
Member Enumeration Documentation
The link behaves like a state machine most of the time: it waits for the actual device to become available, and then becomes ready to handle syncing.
Definition at line 66 of file kpilotdevicelink.h.
anonymous enum [protected] |
Some messages are only printed once and are suppressed after that.
These are indicated by flag bits in messages.
Definition at line 183 of file kpilotdevicelink.h.
Constructor & Destructor Documentation
KPilotDeviceLink::KPilotDeviceLink | ( | QObject * | parent = 0 , |
|
const char * | name = 0 , |
|||
const QString & | tempDevice = QString::null | |||
) |
Creates a pilot link that can sync to the pilot.
Call reset() on it to start looking for a device.
Definition at line 320 of file kpilotlink.cc.
KPilotDeviceLink::~KPilotDeviceLink | ( | ) | [virtual] |
Destructor.
This rudely ends the communication with the handheld.
Definition at line 343 of file kpilotlink.cc.
Member Function Documentation
LinkStatus KPilotDeviceLink::status | ( | ) | const [inline] |
Get the status (state enum) of this link.
- Returns:
- The LinkStatus enum for the link's current state.
Definition at line 81 of file kpilotdevicelink.h.
QString KPilotDeviceLink::statusString | ( | LinkStatus | l | ) | [static] |
QString KPilotDeviceLink::statusString | ( | ) | const [virtual] |
Provides a human-readable status string.
Implements KPilotLink.
Definition at line 943 of file kpilotlink.cc.
bool KPilotDeviceLink::isConnected | ( | ) | const [virtual] |
True if HotSync has been started but not finished yet (ie.
the physical Pilot is waiting for sync commands)
Implements KPilotLink.
Definition at line 352 of file kpilotlink.cc.
void KPilotDeviceLink::reset | ( | const QString & | ) | [virtual] |
Return the device link to the Init state and try connecting to the given device path (if it's non-empty).
What the path means depends on the kind of link we're instantiating.
- See also:
- reset()
Implements KPilotLink.
Definition at line 391 of file kpilotlink.cc.
void KPilotDeviceLink::close | ( | ) | [virtual] |
Release all resources, including the master pilot socket, timers, notifiers, etc.
Implements KPilotLink.
Definition at line 358 of file kpilotlink.cc.
void KPilotDeviceLink::reset | ( | ) | [virtual] |
Assuming things have been set up at least once already by a call to reset() with parameters, use this slot to re-start with the same settings.
Implements KPilotLink.
Definition at line 422 of file kpilotlink.cc.
bool KPilotDeviceLink::tickle | ( | ) | [virtual] |
Tickle the underlying device exactly once.
Implements KPilotLink.
Definition at line 844 of file kpilotlink.cc.
const KPilotCard * KPilotDeviceLink::getCardInfo | ( | int | card | ) | [virtual] |
Retrieve information about the data card card
; I don't think that any pilot supports card numbers other than 0.
Non-device links return something fake.
This function may return NULL (non-device links or on error).
- Note:
- Ownership of the KPilotCard object is given to the caller, who must delete it.
Implements KPilotLink.
Definition at line 1066 of file kpilotlink.cc.
void KPilotDeviceLink::endOfSync | ( | ) | [virtual] |
End the sync in a gracuful manner.
Implements KPilotLink.
Definition at line 948 of file kpilotlink.cc.
void KPilotDeviceLink::finishSync | ( | ) | [virtual] |
End the sync in a graceful manner and update the last-sync time and user information on the handheld.
Implements KPilotLink.
Definition at line 955 of file kpilotlink.cc.
int KPilotDeviceLink::openConduit | ( | ) | [virtual] |
Notify the Pilot user that a conduit is running now.
On real devices, this prints out (on screen) which database is now opened; useful for progress reporting.
- Returns:
- -1 on error
- Note:
- the default implementation returns 0
Reimplemented from KPilotLink.
Definition at line 899 of file kpilotlink.cc.
int KPilotDeviceLink::getNextDatabase | ( | int | index, | |
struct DBInfo * | ||||
) | [virtual] |
Fill the DBInfo structure db
with information about the next database (in some ordering) counting from index
.
- Returns:
- < 0 on error
Implements KPilotLink.
Definition at line 970 of file kpilotlink.cc.
int KPilotDeviceLink::findDatabase | ( | const char * | name, | |
struct DBInfo * | , | |||
int | index = 0 , |
|||
unsigned long | type = 0 , |
|||
unsigned long | creator = 0 | |||
) | [virtual] |
Find a database with the given name
(and optionally, type type
and creator ID (from pi_mktag) creator
, on searching from index index
on the handheld.
Fills in the DBInfo structure if found, returns < 0 on error.
Implements KPilotLink.
Definition at line 984 of file kpilotlink.cc.
bool KPilotDeviceLink::retrieveDatabase | ( | const QString & | path, | |
struct DBInfo * | db | |||
) | [virtual] |
Retrieve the database indicated by DBInfo *db
into the local file path
.
This copies all the data, and you can create a PilotLocalDatabase from the resulting path
.
- Returns:
true
on success
Implements KPilotLink.
Definition at line 992 of file kpilotlink.cc.
DBInfoList KPilotDeviceLink::getDBList | ( | int | cardno = 0 , |
|
int | flags = dlpDBListRAM | |||
) | [virtual] |
Returns a list of DBInfo structures describing all the databases available on the link (ie.
device) with the given card number cardno
and flags flags
. No known handheld uses a cardno other than 0; use flags to indicate what kind of databases to fetch -- dlpDBListRAM
or dlpDBListROM
.
- Returns:
- list of DBInfo objects, one for each database
- Note:
- ownership of the DBInfo objects is passed to the caller, who must delete the objects.
Implements KPilotLink.
Definition at line 1033 of file kpilotlink.cc.
PilotDatabase * KPilotDeviceLink::database | ( | const QString & | name | ) | [virtual] |
Return a database object for manipulating the database with name name
on the link.
This database may be local or remote, depending on the kind of link in use.
- Returns:
- pointer to database object, or 0 on error.
- Note:
- ownership of the database object is given to the caller, who must delete the object in time.
Implements KPilotLink.
Definition at line 1093 of file kpilotlink.cc.
bool KPilotDeviceLink::installFile | ( | const QString & | , | |
const bool | deleteFile | |||
) | [protected, virtual] |
Install a single file onto the device link.
Full pathname f
is used; in addition, if deleteFile
is true remove the source file. Returns true
if the install succeeded.
The default
Implements KPilotLink.
Definition at line 857 of file kpilotlink.cc.
void KPilotDeviceLink::addSyncLogEntryImpl | ( | const QString & | s | ) | [protected, virtual] |
Actually write an entry to the device link.
The message s
is guaranteed to be non-Null.
Implements KPilotLink.
Definition at line 851 of file kpilotlink.cc.
virtual int KPilotDeviceLink::pilotSocket | ( | ) | const [inline, protected, virtual] |
Returns a file handle for raw operations.
Not recommended. On links with no physical device backing, returns -1.
- Note:
- the default implementation returns -1
Reimplemented from KPilotLink.
Definition at line 108 of file kpilotdevicelink.h.
void KPilotDeviceLink::setWorkarounds | ( | bool | usb | ) | [inline] |
Special-cases.
Call this after a reset to set device- specific workarounds; the only one currently known is the Zire 31/72 T5 quirk of doing a non-HotSync connect when it's switched on.
Definition at line 126 of file kpilotdevicelink.h.
void KPilotDeviceLink::setTempDevice | ( | const QString & | device | ) |
Sets an additional device, which should be tried as fallback.
Useful for hotplug enviroments, this device is used once for accepting a connection.
Definition at line 465 of file kpilotlink.cc.
void KPilotDeviceLink::openDevice | ( | ) | [protected, slot] |
Attempt to open the device.
Called regularly to check if the device exists (to handle USB-style devices).
Definition at line 471 of file kpilotlink.cc.
void KPilotDeviceLink::acceptDevice | ( | ) | [protected, slot] |
Called when the device is opened *and* activity occurs on the device.
This indicates the beginning of a hotsync.
Definition at line 679 of file kpilotlink.cc.
bool KPilotDeviceLink::open | ( | const QString & | device = QString::null |
) | [protected] |
Does the low-level opening of the device and handles the pilot-link library initialisation.
Definition at line 507 of file kpilotlink.cc.
void KPilotDeviceLink::checkDevice | ( | ) | [protected] |
Check for device permissions and existence, emitting warnings for weird situations.
This is primarily intended to inform the user.
Definition at line 437 of file kpilotlink.cc.
void KPilotDeviceLink::shouldPrint | ( | int | msgid, | |
const QString & | s | |||
) | [protected] |
Print a message s
which has an id of msgid
(one of the enum values mentioned above) -- but only if that message has not been suppressed through messagesMask.
Printing a message adds it to the messagesMask.
Definition at line 1083 of file kpilotlink.cc.
The documentation for this class was generated from the following files: