kpilot/lib

KPilotDeviceLink Class Reference

#include <kpilotdevicelink.h>

Inheritance diagram for KPilotDeviceLink:

KPilotLink List of all members.

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 KPilotCardgetCardInfo (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 PilotDatabasedatabase (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]

Get a human-readable string for the given status l.

Definition at line 904 of file kpilotlink.cc.

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()

pilotPath()

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:
KDE Home | KDE Accessibility Home | Description of Access Keys