[ekiga] Opal: Sanitized Services and shared_ptr usage.



commit 147b3a7b8d0a6b3a4998a281726e4bd3ed9ce11d
Author: Damien Sandras <dsandras seconix com>
Date:   Sat Jan 17 17:08:50 2015 +0100

    Opal: Sanitized Services and shared_ptr usage.
    
    The Opal::CallManager is not a Service anymore. It is not passed as
    boost::shared_ptr argument to objects using it.

 lib/engine/components/opal/opal-account.cpp    |    4 ++--
 lib/engine/components/opal/opal-account.h      |    6 ++++--
 lib/engine/components/opal/opal-bank.cpp       |    7 ++++---
 lib/engine/components/opal/opal-bank.h         |    4 +++-
 lib/engine/components/opal/opal-call-manager.h |    9 ---------
 lib/engine/components/opal/opal-main.cpp       |    3 +--
 6 files changed, 14 insertions(+), 19 deletions(-)
---
diff --git a/lib/engine/components/opal/opal-account.cpp b/lib/engine/components/opal/opal-account.cpp
index 9fcfa36..778011f 100644
--- a/lib/engine/components/opal/opal-account.cpp
+++ b/lib/engine/components/opal/opal-account.cpp
@@ -149,7 +149,7 @@ Opal::Account::Account (Opal::Bank & _bank,
                        boost::shared_ptr<Ekiga::NotificationCore> _notification_core,
                        boost::shared_ptr<Ekiga::PersonalDetails> _personal_details,
                        boost::shared_ptr<Ekiga::AudioOutputCore> _audiooutput_core,
-                       boost::shared_ptr<CallManager> _call_manager,
+                       CallManager& _call_manager,
                        boost::function0<std::list<std::string> > _existing_groups,
                        xmlNodePtr _node):
   existing_groups(_existing_groups),
@@ -921,7 +921,7 @@ Opal::Account::handle_registration_event (Ekiga::Account::RegistrationState stat
       failed_registration_already_notified = false;
 
       PURL url = PString (get_transaction_aor (get_aor ()));
-      presentity = call_manager->AddPresentity (url);
+      presentity = call_manager.AddPresentity (url);
       if (presentity) {
 
         presentity->SetPresenceChangeNotifier (PCREATE_PresenceChangeNotifier (OnPresenceChange));
diff --git a/lib/engine/components/opal/opal-account.h b/lib/engine/components/opal/opal-account.h
index 9d4b1d4..f308384 100644
--- a/lib/engine/components/opal/opal-account.h
+++ b/lib/engine/components/opal/opal-account.h
@@ -93,7 +93,7 @@ public:
             boost::shared_ptr<Ekiga::NotificationCore> _notification_core,
             boost::shared_ptr<Ekiga::PersonalDetails> _personal_details,
             boost::shared_ptr<Ekiga::AudioOutputCore> _audiooutput_core,
-            boost::shared_ptr<CallManager> _call_manager,
+            CallManager& _call_manager,
             boost::function0<std::list<std::string> > _existing_groups,
             xmlNodePtr node_);
 
@@ -248,11 +248,13 @@ private:
 
     Opal::Sip::EndPoint& sip_endpoint;
     Opal::H323::EndPoint& h323_endpoint;
+
     boost::weak_ptr<Ekiga::PresenceCore> presence_core;
     boost::weak_ptr<Ekiga::NotificationCore> notification_core;
     boost::weak_ptr<Ekiga::PersonalDetails> personal_details;
     boost::weak_ptr<Ekiga::AudioOutputCore> audiooutput_core;
-    boost::shared_ptr<CallManager> call_manager;
+
+    CallManager& call_manager;
   };
 
   typedef boost::shared_ptr<Account> AccountPtr;
diff --git a/lib/engine/components/opal/opal-bank.cpp b/lib/engine/components/opal/opal-bank.cpp
index 171a3ad..02a69fc 100644
--- a/lib/engine/components/opal/opal-bank.cpp
+++ b/lib/engine/components/opal/opal-bank.cpp
@@ -52,6 +52,7 @@
 
 
 Opal::Bank::Bank (Ekiga::ServiceCore& core,
+                  Opal::CallManager& _call_manager,
                   Opal::Sip::EndPoint& _sip_endpoint,
                   Opal::H323::EndPoint& _h323_endpoint):
   is_call_manager_ready(false),
@@ -61,7 +62,7 @@ Opal::Bank::Bank (Ekiga::ServiceCore& core,
   notification_core(core.get<Ekiga::NotificationCore> ("notification-core")),
   personal_details(core.get<Ekiga::PersonalDetails> ("personal-details")),
   audiooutput_core(core.get<Ekiga::AudioOutputCore> ("audiooutput-core")),
-  opal_component(core.get<CallManager> ("opal-component"))
+  call_manager(_call_manager)
 {
   std::list<std::string> accounts;
   protocols_settings = new Ekiga::Settings (PROTOCOLS_SCHEMA);
@@ -96,7 +97,7 @@ Opal::Bank::Bank (Ekiga::ServiceCore& core,
                                                       notification_core,
                                                       personal_details,
                                                       audiooutput_core,
-                                                      opal_component,
+                                                      call_manager,
                                                       boost::bind(&Opal::Bank::existing_groups, this),
                                                       child));
 
@@ -271,7 +272,7 @@ Opal::Bank::add (Account::Type acc_type,
                                    notification_core,
                                    personal_details,
                                    audiooutput_core,
-                                   opal_component,
+                                    call_manager,
                                    boost::bind(&Opal::Bank::existing_groups, this),
                                    child));
   Ekiga::BankImpl<Account>::add_connection (account, account->presentity_added.connect (boost::bind 
(boost::ref(presentity_added), account, _1)));
diff --git a/lib/engine/components/opal/opal-bank.h b/lib/engine/components/opal/opal-bank.h
index 89869be..c3088f8 100644
--- a/lib/engine/components/opal/opal-bank.h
+++ b/lib/engine/components/opal/opal-bank.h
@@ -63,6 +63,7 @@ namespace Opal
 public:
 
     Bank (Ekiga::ServiceCore& _core,
+          Opal::CallManager& _call_manager,
           Opal::Sip::EndPoint& _sip_endpoint,
           Opal::H323::EndPoint& _h323_endpoint);
 
@@ -117,13 +118,14 @@ public:
 private:
     bool is_call_manager_ready;
 
+    CallManager& call_manager;
     Sip::EndPoint& sip_endpoint;
     H323::EndPoint& h323_endpoint;
+
     boost::weak_ptr<Ekiga::PresenceCore> presence_core;
     boost::shared_ptr<Ekiga::NotificationCore> notification_core;
     boost::shared_ptr<Ekiga::PersonalDetails> personal_details;
     boost::shared_ptr<Ekiga::AudioOutputCore> audiooutput_core;
-    boost::shared_ptr<CallManager> opal_component;
 
     boost::shared_ptr<xmlDoc> doc;
     xmlNodePtr node;
diff --git a/lib/engine/components/opal/opal-call-manager.h b/lib/engine/components/opal/opal-call-manager.h
index 5414f4e..ed18e37 100644
--- a/lib/engine/components/opal/opal-call-manager.h
+++ b/lib/engine/components/opal/opal-call-manager.h
@@ -72,7 +72,6 @@ namespace Opal {
 
   class CallManager :
     public boost::enable_shared_from_this<CallManager>,
-    public Ekiga::Service,
     public Ekiga::CallManager,
     public Ekiga::URIActionProvider,
     public OpalManager
@@ -91,14 +90,6 @@ public:
                        const std::string & uri);
 
 
-    /* Ekiga::Service implementation */
-    const std::string get_name () const
-      { return "opal-component"; }
-
-    const std::string get_description () const
-      { return "\tObject bringing in Opal support (calls, text messaging, sip, h323, ...)"; }
-
-
     /* Set up endpoint: all options or a specific setting */
     void setup (const std::string & setting = "");
 
diff --git a/lib/engine/components/opal/opal-main.cpp b/lib/engine/components/opal/opal-main.cpp
index 86a4f1c..092da65 100644
--- a/lib/engine/components/opal/opal-main.cpp
+++ b/lib/engine/components/opal/opal-main.cpp
@@ -113,7 +113,6 @@ struct OPALSpark: public Ekiga::Spark
       hook_ekiga_plugins_to_opal (core);
 
       boost::shared_ptr<CallManager> call_manager (new CallManager (core));
-      core.add (call_manager);
 
       boost::shared_ptr<Sip::EndPoint> sip_manager (new Sip::EndPoint (*call_manager, core), null_deleter 
());
       sip_manager->setup ();
@@ -125,7 +124,7 @@ struct OPALSpark: public Ekiga::Spark
       call_manager->set_h323_endpoint (h323_manager);
 #endif
 
-      boost::shared_ptr<Bank> bank (new Bank (core, *sip_manager.get (), *h323_manager.get ()));
+      boost::shared_ptr<Bank> bank (new Bank (core, *call_manager.get (), *sip_manager.get (), 
*h323_manager.get ()));
       account_core->add_bank (bank);
       presence_core->add_cluster (bank);
       core.add (bank);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]