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 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]

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