[ekiga] Made the opal presence manager code also do Ekiga::PresenceFetcher
- From: Julien Puydt <jpuydt src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [ekiga] Made the opal presence manager code also do Ekiga::PresenceFetcher
- Date: Fri, 14 Jan 2011 12:57:13 +0000 (UTC)
commit 09b131969536c2053581e970235a220a8f7d8113
Author: Snark <jpuydt gnome org>
Date: Sun Dec 26 21:42:08 2010 +0100
Made the opal presence manager code also do Ekiga::PresenceFetcher
That leads to a dummy implementation in the opal account code and I'm
not sure the framework is complete, but it's a start.
lib/engine/components/opal/opal-account.cpp | 12 ++++++++++++
lib/engine/components/opal/opal-account.h | 6 ++++++
lib/engine/components/opal/opal-main.cpp | 1 +
.../components/opal/opal-presence-manager.cpp | 18 ++++++++++++++++++
lib/engine/components/opal/opal-presence-manager.h | 8 +++++++-
5 files changed, 44 insertions(+), 1 deletions(-)
---
diff --git a/lib/engine/components/opal/opal-account.cpp b/lib/engine/components/opal/opal-account.cpp
index f1980c3..58f1bf0 100644
--- a/lib/engine/components/opal/opal-account.cpp
+++ b/lib/engine/components/opal/opal-account.cpp
@@ -503,6 +503,18 @@ Opal::Account::publish (const Ekiga::PersonalDetails& details)
}
void
+Opal::Account::fetch (const std::string uri)
+{
+ std::cout << __PRETTY_FUNCTION__ << " " << uri << std::endl;
+}
+
+void
+Opal::Account::unfetch (const std::string uri)
+{
+ std::cout << __PRETTY_FUNCTION__ << " " << uri << std::endl;
+}
+
+void
Opal::Account::handle_registration_event (RegistrationState state_,
const std::string info) const
{
diff --git a/lib/engine/components/opal/opal-account.h b/lib/engine/components/opal/opal-account.h
index b552bc0..24f75f2 100644
--- a/lib/engine/components/opal/opal-account.h
+++ b/lib/engine/components/opal/opal-account.h
@@ -145,7 +145,13 @@ public:
boost::signal0<void> trigger_saving;
+ /*
+ * This part of the api allows using each account to handle
+ * some piece of the presence
+ */
void publish (const Ekiga::PersonalDetails& details);
+ void fetch (const std::string uri);
+ void unfetch (const std::string uri);
/* This method is public to be called by an opal endpoint, which will push
* this Opal::Account's new registration state
diff --git a/lib/engine/components/opal/opal-main.cpp b/lib/engine/components/opal/opal-main.cpp
index 097b65c..8c7de43 100644
--- a/lib/engine/components/opal/opal-main.cpp
+++ b/lib/engine/components/opal/opal-main.cpp
@@ -134,6 +134,7 @@ struct OPALSpark: public Ekiga::Spark
boost::shared_ptr<PresenceManager> presence_manager (new PresenceManager (bank));
presence_core->add_presence_publisher (presence_manager);
+ presence_core->add_presence_fetcher (presence_manager);
#ifdef HAVE_H323
unsigned h323_port = gm_conf_get_int (H323_KEY "listen_port");
diff --git a/lib/engine/components/opal/opal-presence-manager.cpp b/lib/engine/components/opal/opal-presence-manager.cpp
index e710e86..a67c77a 100644
--- a/lib/engine/components/opal/opal-presence-manager.cpp
+++ b/lib/engine/components/opal/opal-presence-manager.cpp
@@ -49,3 +49,21 @@ Opal::PresenceManager::publish (const Ekiga::PersonalDetails& details)
iter++)
(*iter)->publish (details);
}
+
+void
+Opal::PresenceManager::fetch (const std::string uri)
+{
+ for (Opal::Bank::iterator iter = bank->begin ();
+ iter != bank->end ();
+ iter++)
+ (*iter)->fetch (uri);
+}
+
+void
+Opal::PresenceManager::unfetch (const std::string uri)
+{
+ for (Opal::Bank::iterator iter = bank->begin ();
+ iter != bank->end ();
+ iter++)
+ (*iter)->unfetch (uri);
+}
diff --git a/lib/engine/components/opal/opal-presence-manager.h b/lib/engine/components/opal/opal-presence-manager.h
index 49d1007..c5523fa 100644
--- a/lib/engine/components/opal/opal-presence-manager.h
+++ b/lib/engine/components/opal/opal-presence-manager.h
@@ -44,7 +44,9 @@
namespace Opal {
- class PresenceManager: public Ekiga::PresencePublisher
+ class PresenceManager:
+ public Ekiga::PresencePublisher,
+ public Ekiga::PresenceFetcher
{
public:
@@ -52,6 +54,10 @@ namespace Opal {
void publish (const Ekiga::PersonalDetails& details);
+ void fetch (const std::string uri);
+
+ void unfetch (const std::string uri);
+
private:
boost::shared_ptr<Opal::Bank> bank;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]