[telepathy-qt4/master] shared-ptr: Added cast helper methods.

Andre Moreira Magalhaes (andrunko) andre.magalhaes at collabora.co.uk
Mon Apr 13 11:14:14 PDT 2009


---
 TelepathyQt4/shared-ptr.h          |   18 ++++++++++++++++++
 tests/dbus/streamed-media-chan.cpp |    3 +--
 2 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/TelepathyQt4/shared-ptr.h b/TelepathyQt4/shared-ptr.h
index 2809843..73da246 100644
--- a/TelepathyQt4/shared-ptr.h
+++ b/TelepathyQt4/shared-ptr.h
@@ -117,6 +117,24 @@ public:
         o.d = tmp;
     }
 
+    template <class X>
+    static inline SharedPtr<T> staticCast(const SharedPtr<X> &src)
+    {
+        return SharedPtr<T>(static_cast<T*>(src.data()));
+    }
+
+    template <class X>
+    static inline SharedPtr<T> dynamicCast(const SharedPtr<X> &src)
+    {
+        return SharedPtr<T>(dynamic_cast<T*>(src.data()));
+    }
+
+    template <class X>
+    static inline SharedPtr<T> constCast(const SharedPtr<X> &src)
+    {
+        return SharedPtr<T>(const_cast<T*>(src.data()));
+    }
+
 private:
     friend class WeakPtr<T>;
 
diff --git a/tests/dbus/streamed-media-chan.cpp b/tests/dbus/streamed-media-chan.cpp
index 8427cca..e3d92da 100644
--- a/tests/dbus/streamed-media-chan.cpp
+++ b/tests/dbus/streamed-media-chan.cpp
@@ -128,8 +128,7 @@ void TestStreamedMediaChan::expectCreateChannelFinished(PendingOperation* op)
     }
 
     PendingChannel *pc = qobject_cast<PendingChannel*>(op);
-    mChan = StreamedMediaChannelPtr(
-            dynamic_cast<StreamedMediaChannel*>(pc->channel().data()));
+    mChan = StreamedMediaChannelPtr::dynamicCast(pc->channel());
     mLoop->exit(0);
 }
 
-- 
1.5.6.5




More information about the telepathy-commits mailing list