summaryrefslogtreecommitdiffstats
path: root/kpilot/lib/pilotUser.h
blob: 6ba46b00712bed249db1a461bd90987568705cec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
#ifndef _KPILOT_PILOTUSER_H
#define _KPILOT_PILOTUSER_H
/* pilotUser.h			KPilot
**
** Copyright (C) 1998-2001 by Dan Pilone
**
** Wrapper for the PilotUser struct from pilot-link, which describes
** the user-data set in the Pilot.
*/

/*
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU Lesser General Public License as published by
** the Free Software Foundation; either version 2.1 of the License, or
** (at your option) any later version.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU Lesser General Public License for more details.
**
** You should have received a copy of the GNU Lesser General Public License
** along with this program in a file called COPYING; if not, write to
** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
** MA 02110-1301, USA.
*/

/*
** Bug reports and questions can be sent to kde-pim@kde.org
*/

#include <stdlib.h>
#include <string.h>
#include <time.h>

#include <pi-dlp.h>

#include "pilot.h"

class KPilotUser
{
public:
	/** Constructor. Create an empty PilotUser structure. */
	KPilotUser()
	{
		::memset(&fUser,0,sizeof(struct PilotUser));
	}
	/** Constructor. Use the given PilotUser structure.
	*  This creates a copy; no ownership is transferred.
	*/
	KPilotUser(const PilotUser *user)
	{
		fUser = *user;
	}

	/** Accessor for the whole PilotUser structure. */
	PilotUser *data()
	{
		return &fUser;
	}

	/** @return The username set on the handheld. */
	QString name() const
	{
		return Pilot::fromPilot( fUser.username );
	}
	/** Set the user name to the given @p name , truncated
	*  if necessary to the size of the field on the handheld.
	*/
	void setName( const QString &name )
	{
		Pilot::toPilot( name, fUser.username, sizeof(fUser.username) );
	}

	/** @return The length of the password on the handheld,
	*           in bytes.
	*/
	const int passwordLength() const
	{
		return fUser.passwordLength;
	}

	/** @return the ID (4 bytes) of the last PC to sync this handheld.
	 *          This is intended to help identify when the use has
	 *          changed PCs and needs a new full sync.
	 */
	unsigned long getLastSyncPC() const
	{
		return fUser.lastSyncPC;
	}
	/** Set the ID of the PC syncing the handheld to @p pc . This
	 *  should be unique in some way (perhaps IP addresses can be
	 *  used this way, or hostnames).
	 */
	void setLastSyncPC(unsigned long pc)
	{
		fUser.lastSyncPC = pc;
	}

	/** @return the timestamp that the handheld was last synced
	 *  successfully.
	 */
	time_t getLastSuccessfulSyncDate()
	{
		return fUser.successfulSyncDate;
	}
	/** Set the timestamp for a successful sync. */
	void setLastSuccessfulSyncDate(time_t when)
	{
		fUser.successfulSyncDate = when;
	}

	/** @return the timestamp of the last sync attempt. */
	time_t getLastSyncDate()
	{
		return fUser.lastSyncDate;
	}
	/** Set the timestamp of the sync attempt. */
	void setLastSyncDate(time_t when)
	{
		fUser.lastSyncDate = when;
	}

private:
	struct PilotUser fUser;
};

#endif