-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdatabase.h
More file actions
134 lines (114 loc) · 4.64 KB
/
Copy pathdatabase.h
File metadata and controls
134 lines (114 loc) · 4.64 KB
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
129
130
131
132
133
134
#ifndef DATABASE_H
#define DATABASE_H
#include <QDebug>
#include <QXmlStreamReader>
#include "smartutente.h"
class LinQedInAdmin;
class Database {
friend class LinQedInAdmin; // Necessario per poter aggiungere utenti al database.
private:
class Database_rapp;
Database_rapp* database_rapp;
/** Scorre un elemento user nel file xml.
* Crea e salva un oggetto Utente nella lista degli utenti del database.
*
* @param QXmlStreamReader Lettore di file xml passato per riferimento.
*/
void parseUser( QXmlStreamReader& );
/** Scorre un elemento profile nel file xml.
* Ricrea le informazioni legate al profilo dell'utente.
*
* @param QXmlStreamReader Lettore di file xml passato per riferimento.
* @param SmartUtente Utente del quale si devono ricreare le informazioni.
*/
void parseProfile( QXmlStreamReader&, const SmartUtente& );
/** Scorre un elemento net nel file xml.
* Ricrea la rete dei contatti dell'utente.
*
* @param QXmlStreamReader Lettore di file xml passato per riferimento.
* @param SmartUtente Utente del quale si vuole ricreare la rete dei contatti.
*/
void parseNet( QXmlStreamReader&, const SmartUtente& );
/** Scorre un elemento education nel file xml.
* Crea ed aggiunge un oggetto Titolo nella lista dei titoli di studio dell'utente.
*
* @param QXmlStreamReader Lettore di file xml passato per riferimento.
* @param SmartUtente Utente del quale si vogliono aggiungere i titoli di studio.
*/
void parseEducation( QXmlStreamReader&, const SmartUtente& );
/** Scorre un oggetto experience nel file xml.
* Crea ed aggiunge un oggetto Lavoro nella lista delle esperienze lavorative
* dell'utente.
*
* @param QXmlStreamReader Lettore di file xml passato per riferimento.
* @param SmartUtente Utente del quale si vogliono aggiungere le esperienze lavorative.
*/
void parseExperience( QXmlStreamReader&, const SmartUtente& );
/** Scorre un elemento <date> nel file xml.
* Crea un oggetto di tipo QDate.
*
* @param QXmlStreamReader Lettore di file xml passato per riferimento.
* @return QDate Oggetto QDate creato con i valori letti da file (XML)
*/
QDate parseDate( QXmlStreamReader& );
/** Ricrea la lista dei contatti per ogni utente da file (XML).
*
* @param QXmlStreamReader Lettore di file xml passato per riferimento.
*/
void loadUsersNet( QXmlStreamReader& );
/** Inserisce un nuovo utente nella lista degli utenti del database.
* Accessibile solo da oggetti di tipo LinQedInAdmin.
*
* @param SmartUtente Utende da inserire nella lista degli utenti del database.
* @return bool true se l'utente viene inserito correttamente; false altrimenti.
*/
bool insert( const SmartUtente& );
/** Rimuove un utente dalla lista degli utenti del database.
* Accessibile solo da oggetti di tipo LinQedInAdmin.
*
* @param QString Username dell'utente da rimuovere dalla lista degli utenti del database.
* @return bool true se l'utente viene rimosso correttamente; false altrimenti.
*/
bool remove( const QString& );
public:
/** Costruttore di default ridefinito.
* Carica la lista degli utenti da file (XML).
*/
Database();
/** Distruttore di Database.
* Richiama il distruttore di Database_rapp.
*/
~Database();
/** Cerca se nel database è presente un oggetto con la chiave cercata.
*
* @param QString Username da cercare tra le chiavi.
* @return bool true se l'username è presente tra le chiavi, false altrimenti.
*/
bool contains( const QString& ) const;
/** Ritorna lo SmartUtente in base all'username.
* L'username fornito deve essere presente come chiave nel database.
*
* @param QString Username dell'utente cercato.
* @return SmartUtente Utente cercato.
*/
SmartUtente find( const QString& );
/** Carica la lista degli utenti da file (XML). */
void loadUsersList();
/** Salva la lista degli utenti su file (XML). */
void saveUsersList() const;
/** Ritorna un vettore contenente gli utenti del database.
*
* @return QVector<SmartUtente> Vettore degli utenti del database.
*/
QVector<SmartUtente> getUsersList() const;
friend QDebug& operator <<( QDebug&, const Database& );
};
/** Overloading operatore di output di QDebug.
* Stampa su standard output l'username degli utenti del database.
*
* @param QDebug QDebug.
* @param Database Database.
* @param QDebug QDebug.
*/
QDebug& operator <<( QDebug&, const Database& );
#endif // DATABASE_H