summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortg(x) <*@tg-x.net>2016-03-10 23:23:37 +0100
committertg(x) <*@tg-x.net>2016-03-10 23:23:37 +0100
commit83f2395605f5ab34d1ee9003a49f0d0b5d4144f7 (patch)
tree05e906385d149ef50b1a1682c3998d41cc06d4b2
parentd503c3f159f29e7fd5b1dfa362bc6ce557e397fd (diff)
downloadsecushare-83f2395605f5ab34d1ee9003a49f0d0b5d4144f7.tar.gz
secushare-83f2395605f5ab34d1ee9003a49f0d0b5d4144f7.zip
ego model
-rw-r--r--qml/PlaceCreate.qml2
-rw-r--r--qml/PlaceEnter.qml2
-rw-r--r--src/app.cpp8
-rw-r--r--src/model/EgoListModel.cpp36
-rw-r--r--src/model/EgoListModel.h7
-rw-r--r--src/model/PlaceListModel.cpp11
-rw-r--r--src/model/PlaceListModel.h4
-rw-r--r--src/model/models.cpp2
-rw-r--r--src/nym/ego.cpp8
-rw-r--r--src/nym/ego.h5
-rw-r--r--src/nym/nym.cpp9
-rw-r--r--src/nym/nym.h5
-rw-r--r--src/social/socialapp.cpp99
-rw-r--r--src/social/socialapp.h62
14 files changed, 187 insertions, 73 deletions
diff --git a/qml/PlaceCreate.qml b/qml/PlaceCreate.qml
index 2206eb5..a5a4313 100644
--- a/qml/PlaceCreate.qml
+++ b/qml/PlaceCreate.qml
@@ -173,7 +173,7 @@ Rectangle {
173 width: 200 173 width: 200
174 174
175 onClicked: { 175 onClicked: {
176 App.social.createPlace() // FIXME: nameField.text 176 App.social.createPlace("FIXME: egoPubKey") // FIXME: nameField.text
177 } 177 }
178 } 178 }
179 } 179 }
diff --git a/qml/PlaceEnter.qml b/qml/PlaceEnter.qml
index 1eb09bb..3dcd3e7 100644
--- a/qml/PlaceEnter.qml
+++ b/qml/PlaceEnter.qml
@@ -212,7 +212,7 @@ Rectangle {
212 width: 200 212 width: 200
213 213
214 onClicked: { 214 onClicked: {
215 App.social.enterPlace(publicKeyField.text, originField.text) 215 App.social.enterPlace("FIXME: egoPubKey", publicKeyField.text, originField.text)
216 } 216 }
217 } 217 }
218 } 218 }
diff --git a/src/app.cpp b/src/app.cpp
index 6933589..15063cb 100644
--- a/src/app.cpp
+++ b/src/app.cpp
@@ -15,7 +15,7 @@ Settings *theSettings;
15QQuickWindow *theWindow; 15QQuickWindow *theWindow;
16 16
17 17
18App::App (QObject * parent) 18App::App (QObject *parent)
19 : QObject (parent) 19 : QObject (parent)
20{ 20{
21 theApp = this; 21 theApp = this;
@@ -78,6 +78,12 @@ App::startGnuNet ()
78void 78void
79App::setConnected (bool connected) 79App::setConnected (bool connected)
80{ 80{
81 #if FIXME
82 m_models->egos ()->setData (m_gnunet->social ()->egos ());
83 connect (m_gnunet->social (), SIGNAL (egoAdded ()),
84 m_models->egos (), SLOT (add ()));
85 #endif
86
81 m_connected = connected; 87 m_connected = connected;
82 emit connectedChanged (m_connected); 88 emit connectedChanged (m_connected);
83} 89}
diff --git a/src/model/EgoListModel.cpp b/src/model/EgoListModel.cpp
index 740545f..3ffe6bd 100644
--- a/src/model/EgoListModel.cpp
+++ b/src/model/EgoListModel.cpp
@@ -28,9 +28,15 @@
28EgoListModel::EgoListModel (QObject * parent) 28EgoListModel::EgoListModel (QObject * parent)
29 : QAbstractListModel (parent) 29 : QAbstractListModel (parent)
30{ 30{
31 //connect(this, &EgoListModel::addNewPeerSignal, this, &EgoListModel::addNewPeerSlot, Qt::BlockingQueuedConnection); 31 connect (this, &EgoListModel::addEgoSignal,
32 connect (this, &EgoListModel::addNewEgoSignal, this, 32 this, &EgoListModel::addEgoSlot, Qt::BlockingQueuedConnection);
33 &EgoListModel::addNewEgoSlot, Qt::BlockingQueuedConnection); 33}
34
35
36void
37EgoListModel::setData (const QList<Ego *> &data)
38{
39 m_data = data;
34} 40}
35 41
36 42
@@ -38,7 +44,7 @@ int
38EgoListModel::rowCount (const QModelIndex & parent) const 44EgoListModel::rowCount (const QModelIndex & parent) const
39{ 45{
40 Q_UNUSED (parent); 46 Q_UNUSED (parent);
41 return m_data.size () + 1; // PLus one is because the last one is a "<CREATE>" 47 return m_data.size ();
42} 48}
43 49
44 50
@@ -52,10 +58,8 @@ EgoListModel::contains (QString pubKey)
52QVariant 58QVariant
53EgoListModel::data (const QModelIndex &index, int role) const 59EgoListModel::data (const QModelIndex &index, int role) const
54{ 60{
55 if (index.row () < 0 || index.row () > m_data.count ()) 61 if (index.row () < 0 || m_data.count () <= index.row ())
56 return QVariant (); 62 return QVariant ();
57 else if (index.row () == m_data.count ())
58 return QString ("<Create>");
59 63
60 Ego *ego = m_data[index.row ()]; 64 Ego *ego = m_data[index.row ()];
61 65
@@ -95,6 +99,7 @@ EgoListModel::modifiedSlot (int indexRow)
95 emit dataChanged (modelIndex, modelIndex); 99 emit dataChanged (modelIndex, modelIndex);
96} 100}
97 101
102
98/** 103/**
99 * @brief EgoListModel::add, add a new ego to the model. 104 * @brief EgoListModel::add, add a new ego to the model.
100 * @param key 105 * @param key
@@ -104,17 +109,17 @@ EgoListModel::modifiedSlot (int indexRow)
104void 109void
105EgoListModel::add (Ego *ego) 110EgoListModel::add (Ego *ego)
106{ 111{
107 emit addNewEgoSignal (ego, ego->pubKeyString ()); 112 emit addEgoSignal (ego, ego->pubKeyString ());
108} 113}
109 114
110 115
111/** 116/**
112 * @brief EgoListModel::addNewEgoSlot 117 * @brief EgoListModel::addEgoSlot
113 * @param key, the ego key. 118 * @param key, the ego key.
114 * @return return the same place as item 119 * @return return the same place as item
115 */ 120 */
116Ego * 121Ego *
117EgoListModel::addNewEgoSlot (Ego *item, QString pubKey) 122EgoListModel::addEgoSlot (Ego *item, QString pubKey)
118{ 123{
119 124
120 //Search if already exists 125 //Search if already exists
@@ -138,10 +143,9 @@ EgoListModel::addNewEgoSlot (Ego *item, QString pubKey)
138 endInsertRows (); 143 endInsertRows ();
139 return item; 144 return item;
140 } 145 }
141
142
143} 146}
144 147
148
145Ego * 149Ego *
146EgoListModel::get (QString key) 150EgoListModel::get (QString key)
147{ 151{
@@ -154,20 +158,21 @@ EgoListModel::get (QString key)
154 return NULL; 158 return NULL;
155} 159}
156 160
161
157Ego * 162Ego *
158EgoListModel::get (QModelIndex index) 163EgoListModel::get (QModelIndex index)
159{ 164{
160 165 if (m_data.count () <= index.row ())
161 if (getCount () <= index.row ())
162 return NULL; 166 return NULL;
163 167
164 return m_data[index.row ()]; 168 return m_data[index.row ()];
165} 169}
166 170
171
167Ego * 172Ego *
168EgoListModel::get (int index) 173EgoListModel::get (int index)
169{ 174{
170 if (index < 0 || getCount () <= index) 175 if (index < 0 || m_data.count () <= index)
171 return NULL; 176 return NULL;
172 177
173 Ego *ego = m_data[index]; 178 Ego *ego = m_data[index];
@@ -178,6 +183,7 @@ EgoListModel::get (int index)
178 return ego; 183 return ego;
179} 184}
180 185
186
181int 187int
182EgoListModel::getCount () 188EgoListModel::getCount ()
183{ 189{
diff --git a/src/model/EgoListModel.h b/src/model/EgoListModel.h
index 0ab2bcb..33a9cbe 100644
--- a/src/model/EgoListModel.h
+++ b/src/model/EgoListModel.h
@@ -44,6 +44,9 @@ public:
44 EgoListModel (QObject *parent = 0); 44 EgoListModel (QObject *parent = 0);
45 45
46 void 46 void
47 setData (const QList<Ego *> &data);
48
49 void
47 add (Ego *ego); 50 add (Ego *ego);
48 51
49 Q_INVOKABLE int 52 Q_INVOKABLE int
@@ -62,7 +65,7 @@ public:
62signals: 65signals:
63 66
64 void 67 void
65 addNewEgoSignal (Ego *item, QString pubKey); 68 addEgoSignal (Ego *item, QString pubKey);
66 69
67public slots: 70public slots:
68 71
@@ -72,7 +75,7 @@ public slots:
72private slots: 75private slots:
73 76
74 Ego * 77 Ego *
75 addNewEgoSlot (Ego * item, QString name); 78 addEgoSlot (Ego *item, QString name);
76 79
77private: 80private:
78 81
diff --git a/src/model/PlaceListModel.cpp b/src/model/PlaceListModel.cpp
index 54fede7..1116679 100644
--- a/src/model/PlaceListModel.cpp
+++ b/src/model/PlaceListModel.cpp
@@ -28,9 +28,8 @@
28PlaceListModel::PlaceListModel (QObject * parent) 28PlaceListModel::PlaceListModel (QObject * parent)
29 : QAbstractListModel (parent) 29 : QAbstractListModel (parent)
30{ 30{
31 //connect(this, &PlaceListModel::addNewPlaceSignal, this, &PlaceListModel::addNewPlaceSlot, Qt::BlockingQueuedConnection); 31 connect (this, &PlaceListModel::addPlaceSignal,
32 connect (this, &PlaceListModel::addNewPlaceSignal, this, 32 this, &PlaceListModel::addPlaceSlot);
33 &PlaceListModel::addNewPlaceSlot);
34} 33}
35 34
36 35
@@ -116,17 +115,17 @@ PlaceListModel::modifiedSlot (int indexRow)
116void 115void
117PlaceListModel::add (Place *place) 116PlaceListModel::add (Place *place)
118{ 117{
119 emit addNewPlaceSignal (place, place->pubKeyString ()); 118 emit addPlaceSignal (place, place->pubKeyString ());
120} 119}
121 120
122 121
123/** 122/**
124 * @brief PlaceListModel::addNewPlaceSlot 123 * @brief PlaceListModel::addPlaceSlot
125 * @param key, the place ID. 124 * @param key, the place ID.
126 * @return return the same place as item 125 * @return return the same place as item
127 */ 126 */
128Place * 127Place *
129PlaceListModel::addNewPlaceSlot (Place *item, QString pubKey) 128PlaceListModel::addPlaceSlot (Place *item, QString pubKey)
130{ 129{
131 130
132 //Search if already exists 131 //Search if already exists
diff --git a/src/model/PlaceListModel.h b/src/model/PlaceListModel.h
index 03d1501..b66044d 100644
--- a/src/model/PlaceListModel.h
+++ b/src/model/PlaceListModel.h
@@ -67,7 +67,7 @@ class PlaceListModel : public QAbstractListModel
67 signals: 67 signals:
68 68
69 void 69 void
70 addNewPlaceSignal (Place *item, QString key); 70 addPlaceSignal (Place *item, QString key);
71 71
72 public slots: 72 public slots:
73 73
@@ -77,7 +77,7 @@ class PlaceListModel : public QAbstractListModel
77 private slots: 77 private slots:
78 78
79 Place * 79 Place *
80 addNewPlaceSlot (Place *item, QString name); 80 addPlaceSlot (Place *item, QString name);
81 81
82 private: 82 private:
83 83
diff --git a/src/model/models.cpp b/src/model/models.cpp
index 0ff97b3..cdac395 100644
--- a/src/model/models.cpp
+++ b/src/model/models.cpp
@@ -22,7 +22,7 @@
22#include "models.h" 22#include "models.h"
23 23
24 24
25Models::Models (QObject * parent) 25Models::Models (QObject *parent)
26 : QObject (parent) 26 : QObject (parent)
27{ 27{
28 m_egos = new EgoListModel (this); 28 m_egos = new EgoListModel (this);
diff --git a/src/nym/ego.cpp b/src/nym/ego.cpp
index 75e1513..410bab8 100644
--- a/src/nym/ego.cpp
+++ b/src/nym/ego.cpp
@@ -1,6 +1,10 @@
1#include "ego.h" 1#include "ego.h"
2 2
3Ego::Ego (GNUNET_CRYPTO_EcdsaPublicKey pubKey, QObject *parent) 3Ego::Ego (GNUNET_CRYPTO_EcdsaPublicKey pubKey,
4 : Nym (pubKey, parent) 4 QString name,
5 GNUNET_SOCIAL_Ego *ego,
6 QObject *parent)
7 : Nym (pubKey, name, 0, parent)
5{ 8{
9 setEgo (ego);
6} 10}
diff --git a/src/nym/ego.h b/src/nym/ego.h
index d41ba4b..fbf6370 100644
--- a/src/nym/ego.h
+++ b/src/nym/ego.h
@@ -13,7 +13,10 @@ class Ego : public Nym
13 public: 13 public:
14 14
15 explicit 15 explicit
16 Ego (GNUNET_CRYPTO_EcdsaPublicKey pubKey, QObject *parent = 0); 16 Ego (GNUNET_CRYPTO_EcdsaPublicKey pubKey,
17 QString name = "",
18 GNUNET_SOCIAL_Ego *ego = 0,
19 QObject *parent = 0);
17 20
18 21
19 GNUNET_SOCIAL_Ego * 22 GNUNET_SOCIAL_Ego *
diff --git a/src/nym/nym.cpp b/src/nym/nym.cpp
index 17ced59..007b26c 100644
--- a/src/nym/nym.cpp
+++ b/src/nym/nym.cpp
@@ -1,7 +1,12 @@
1#include "ego.h" 1#include "ego.h"
2 2
3Nym::Nym (GNUNET_CRYPTO_EcdsaPublicKey pubKey, QObject *parent): 3Nym::Nym (GNUNET_CRYPTO_EcdsaPublicKey pubKey,
4QObject (parent) 4 QString name,
5 GNUNET_SOCIAL_Nym *nym,
6 QObject *parent)
7 : QObject (parent)
5{ 8{
6 setPubKey (pubKey); 9 setPubKey (pubKey);
10 setName (name);
11 setNym (nym);
7} 12}
diff --git a/src/nym/nym.h b/src/nym/nym.h
index 350a21c..bddf91d 100644
--- a/src/nym/nym.h
+++ b/src/nym/nym.h
@@ -15,7 +15,10 @@ class Nym : public QObject
15 public: 15 public:
16 16
17 explicit 17 explicit
18 Nym (GNUNET_CRYPTO_EcdsaPublicKey pubKey, QObject *parent = 0); 18 Nym (GNUNET_CRYPTO_EcdsaPublicKey pubKey,
19 QString name = "",
20 GNUNET_SOCIAL_Nym *nym = 0,
21 QObject *parent = 0);
19 22
20 int 23 int
21 getIndex () const 24 getIndex () const
diff --git a/src/social/socialapp.cpp b/src/social/socialapp.cpp
index 353ce56..c789e7e 100644
--- a/src/social/socialapp.cpp
+++ b/src/social/socialapp.cpp
@@ -41,11 +41,23 @@ SocialApp::egoCallback (void *cls,
41 const char *name) 41 const char *name)
42{ 42{
43 SocialApp *s = (SocialApp *) cls; 43 SocialApp *s = (SocialApp *) cls;
44 s->m_curEgo = ego; 44 s->addEgo (new Ego (*egoPubKey, QString::fromLatin1 (name), ego));
45 Ego *e = new Ego (*egoPubKey); 45}
46 e->setEgo (ego); 46
47 e->setName (QString::fromLatin1 (name)); 47
48 theApp->models ()->egos ()->add (e); 48void
49SocialApp::addEgo (Ego *ego)
50{
51 m_egos += ego;
52 emit egoAddedSignal (ego);
53 theApp->models ()->egos ()->add (ego); // FIXME
54}
55
56void
57SocialApp::addPlace (Place *place)
58{
59 m_places += place;
60 emit placeAddedSignal (place);
49} 61}
50 62
51void 63void
@@ -56,7 +68,7 @@ SocialApp::hostPlaceCallback (void *cls,
56 enum GNUNET_SOCIAL_AppPlaceState placeState) 68 enum GNUNET_SOCIAL_AppPlaceState placeState)
57{ 69{
58 SocialApp *s = (SocialApp *) cls; 70 SocialApp *s = (SocialApp *) cls;
59 s->m_places += new Host (s->m_app, ego, hconn, s); 71 s->addPlace (new Host (s->m_app, ego, hconn, s));
60} 72}
61 73
62 74
@@ -68,64 +80,95 @@ SocialApp::guestPlaceCallback (void *cls,
68 enum GNUNET_SOCIAL_AppPlaceState placeState) 80 enum GNUNET_SOCIAL_AppPlaceState placeState)
69{ 81{
70 SocialApp *s = (SocialApp *) cls; 82 SocialApp *s = (SocialApp *) cls;
71 s->m_places += new Guest (s->m_app, ego, gconn, s); 83 s->addPlace (new Guest (s->m_app, ego, gconn, s));
84}
85
86
87Ego *
88SocialApp::findEgo (const QString pubKeyStr)
89{
90 QListIterator<Ego *> it (m_egos);
91 while (it.hasNext ())
92 {
93 Ego *ego = it.next ();
94 if (ego->pubKeyString () == pubKeyStr)
95 return ego;
96 }
97 return 0;
98}
99
100
101void
102SocialApp::placeCreate (GNUNET_SOCIAL_Ego *ego)
103{
104 addPlace (new Host (m_app, ego, GNUNET_PSYC_CHANNEL_PRIVATE, this)); // FIXME: ego
72} 105}
73 106
74 107
75void 108void
76SocialApp::placeCreate () 109SocialApp::createPlaceSlot (QString egoPubKeyStr)
77{ 110{
78 GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "Creating a New Place.\n"); 111 GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "Creating a New Place.\n");
79 112
80 Host *host = new Host (m_app, m_curEgo, GNUNET_PSYC_CHANNEL_PRIVATE, this); // FIXME: ego 113 Ego *ego = findEgo (egoPubKeyStr);
81 m_places += host; 114 if (!ego) // FIXME: fall back to last added ego for now
115 {
116 Q_ASSERT (!m_egos.isEmpty ());
117 ego = m_egos.last ();
118 }
119
120 placeCreate (ego->ego ());
82} 121}
83 122
84 123
85void 124void
86SocialApp::createPlaceSlot () 125SocialApp::createPlace (QString egoPubKeyStr)
87{ 126{
88 placeCreate (); 127 emit createPlaceSignal (egoPubKeyStr);
89} 128}
90 129
91 130
92void 131void
93SocialApp::createPlace () 132SocialApp::placeEnter (GNUNET_SOCIAL_Ego *ego,
133 GNUNET_CRYPTO_EddsaPublicKey *pubKey,
134 GNUNET_PeerIdentity *peerId)
94{ 135{
95 emit createPlaceSignal (); 136 addPlace (new Guest (m_app, ego, pubKey, peerId, 0, NULL, NULL, this));
96} 137}
97 138
98 139
99void 140void
100SocialApp::placeEnter (QString pubKeyStr, QString peerIdStr) 141SocialApp::enterPlaceSlot (QString egoPubKeyStr, QString pubKeyStr, QString peerIdStr)
101{ 142{
102 GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "Entering place %s as guest.\n", 143 GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "Entering place %s as guest.\n",
103 pubKeyStr.toStdString ().c_str ()); 144 pubKeyStr.toStdString ().c_str ());
104 145
105 GNUNET_CRYPTO_EddsaPublicKey *pubKey = new GNUNET_CRYPTO_EddsaPublicKey; 146 GNUNET_CRYPTO_EddsaPublicKey pubKey;
106 if (GNUNET_OK != 147 if (GNUNET_OK !=
107 GNUNET_CRYPTO_eddsa_public_key_from_string (pubKeyStr.toStdString ().c_str (), 148 GNUNET_CRYPTO_eddsa_public_key_from_string (pubKeyStr.toStdString ().c_str (),
108 pubKeyStr.length (), 149 pubKeyStr.length (),
109 pubKey)) 150 &pubKey))
110 return; // Failed conversion 151 return; // Failed conversion
111 152
112 GNUNET_PeerIdentity peerId; 153 GNUNET_PeerIdentity peerId;
113 GNUNET_CRYPTO_eddsa_public_key_from_string (peerIdStr.toStdString ().c_str (), 154 if (GNUNET_OK != GNUNET_CRYPTO_eddsa_public_key_from_string (peerIdStr.toStdString ().c_str (),
114 peerIdStr.length (), 155 peerIdStr.length (),
115 &peerId.public_key); 156 &peerId.public_key))
116 m_places += new Guest (m_app, m_curEgo, pubKey, &peerId, 0, NULL, NULL, this); 157 return; // Failed conversion
117}
118 158
159 Ego *ego = findEgo (egoPubKeyStr);
160 if (!ego) // FIXME: fall back to last added ego for now
161 {
162 Q_ASSERT (!m_egos.isEmpty ());
163 ego = m_egos.last ();
164 }
119 165
120void 166 placeEnter (ego->ego (), &pubKey, &peerId);
121SocialApp::enterPlaceSlot (QString pubKeyStr, QString peerIdStr)
122{
123 placeEnter (pubKeyStr, peerIdStr);
124} 167}
125 168
126 169
127void 170void
128SocialApp::enterPlace (QString pubKeyStr, QString peerIdStr) 171SocialApp::enterPlace (QString egoPubKeyStr, QString pubKeyStr, QString peerIdStr)
129{ 172{
130 emit enterPlaceSignal (pubKeyStr, peerIdStr); 173 emit enterPlaceSignal (egoPubKeyStr, pubKeyStr, peerIdStr);
131} 174}
diff --git a/src/social/socialapp.h b/src/social/socialapp.h
index 99ee0ab..4aaa2c3 100644
--- a/src/social/socialapp.h
+++ b/src/social/socialapp.h
@@ -4,6 +4,7 @@
4#include <QObject> 4#include <QObject>
5#include <QDebug> 5#include <QDebug>
6 6
7#include "nym/ego.h"
7#include "social/place.h" 8#include "social/place.h"
8#include "gnunet.h" 9#include "gnunet.h"
9 10
@@ -17,28 +18,63 @@ class SocialApp : public QObject
17 QObject *parent = 0); 18 QObject *parent = 0);
18 ~SocialApp (); 19 ~SocialApp ();
19 20
20 void placeCreate (); 21 Ego *
21 void placeEnter (QString pubKeyStr, QString peerIdStr); 22 findEgo (const QString pubKeyStr);
22 23
23 Q_INVOKABLE void createPlace (); 24 void
24 Q_INVOKABLE void enterPlace (QString pubKeyStr, QString peerIdStr); 25 placeCreate (GNUNET_SOCIAL_Ego *ego);
26
27 void
28 placeEnter (GNUNET_SOCIAL_Ego *ego,
29 GNUNET_CRYPTO_EddsaPublicKey *pubKey,
30 GNUNET_PeerIdentity *peerId);
31
32 Q_INVOKABLE void
33 createPlace (QString egoPubKeyStr);
34
35 Q_INVOKABLE void
36 enterPlace (QString egoPubKeyStr, QString pubKeyStr, QString peerIdStr);
37
38 const QList<Ego *> &
39 egos ()
40 {
41 return m_egos;
42 }
43
44 const QList<Place *> &
45 places ()
46 {
47 return m_places;
48 }
25 49
26 signals: 50 signals:
27 51
28 void createPlaceSignal (); 52 void
29 void enterPlaceSignal (QString pubKey, QString peerIdentity); 53 createPlaceSignal (QString egoPubKeyStr);
54
55 void
56 enterPlaceSignal (QString egoPubKeyStr, QString pubKey, QString peerId);
57
58 void
59 egoAddedSignal (Ego *ego);
60
61 void
62 placeAddedSignal (Place *place);
30 63
31 public slots: 64 public slots:
32 65
33 void createPlaceSlot (); 66 void
34 void enterPlaceSlot (QString pubKey, QString peerIdentity); 67 createPlaceSlot (QString egoPubKeyStr);
68
69 void
70 enterPlaceSlot (QString egoPubKeyStr, QString pubKey, QString peerId);
35 71
36 private: 72 private:
37 73
38 GNUNET_SOCIAL_App *m_app; 74 GNUNET_SOCIAL_App *m_app;
39 GNUNET_SOCIAL_Ego *m_curEgo; // FIXME 75 QList<Ego *> m_egos;
76 QList<Place *> m_places;
40 GNUNET_CONFIGURATION_Handle *m_config; 77 GNUNET_CONFIGURATION_Handle *m_config;
41 QList<Place*> m_places;
42 78
43 static void 79 static void
44 egoCallback (void *cls, 80 egoCallback (void *cls,
@@ -46,6 +82,12 @@ class SocialApp : public QObject
46 const struct GNUNET_CRYPTO_EcdsaPublicKey *ego_pub_key, 82 const struct GNUNET_CRYPTO_EcdsaPublicKey *ego_pub_key,
47 const char *name); 83 const char *name);
48 84
85 void
86 addEgo (Ego *ego);
87
88 void
89 addPlace (Place *place);
90
49 static void 91 static void
50 hostPlaceCallback (void *cls, 92 hostPlaceCallback (void *cls,
51 struct GNUNET_SOCIAL_HostConnection *hconn, 93 struct GNUNET_SOCIAL_HostConnection *hconn,