You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@etch.apache.org by fi...@apache.org on 2011/09/23 18:06:29 UTC

svn commit: r1174856 - in /incubator/etch/trunk/binding-cpp/runtime/lib/capu/modules/capu: include/capu/util/SmartPointer.h test/util/SmartPointerTest.cpp

Author: fitzner
Date: Fri Sep 23 16:06:29 2011
New Revision: 1174856

URL: http://svn.apache.org/viewvc?rev=1174856&view=rev
Log:
ETCH-149 Etch Utility Functions

Added dereference operator to SmartPointer implementation
Added Get function to retrieve the object stored by the SmartPointer

Change-Id: Ic09c53e691a37174edb2d91b27242dce1527a17b

Modified:
    incubator/etch/trunk/binding-cpp/runtime/lib/capu/modules/capu/include/capu/util/SmartPointer.h
    incubator/etch/trunk/binding-cpp/runtime/lib/capu/modules/capu/test/util/SmartPointerTest.cpp

Modified: incubator/etch/trunk/binding-cpp/runtime/lib/capu/modules/capu/include/capu/util/SmartPointer.h
URL: http://svn.apache.org/viewvc/incubator/etch/trunk/binding-cpp/runtime/lib/capu/modules/capu/include/capu/util/SmartPointer.h?rev=1174856&r1=1174855&r2=1174856&view=diff
==============================================================================
--- incubator/etch/trunk/binding-cpp/runtime/lib/capu/modules/capu/include/capu/util/SmartPointer.h (original)
+++ incubator/etch/trunk/binding-cpp/runtime/lib/capu/modules/capu/include/capu/util/SmartPointer.h Fri Sep 23 16:06:29 2011
@@ -69,10 +69,15 @@ namespace capu { 
     T* operator->() const;
 
     /**
-    * Overload dereferencing operator to be able to get the object
-    * referenced by the pointer
+    * Overload dereference operator to be able to get the object
+    * referenced by the pointer. Use with care!
     */
-    //T& operator*() const;
+    T& operator*() const;
+
+    /**
+    * Returns theh object stored by the smartPointer
+    */
+    T* get() const;
 
     /**
     * Check if object exists
@@ -178,12 +183,12 @@ namespace capu { 
     return m_data;
   }
 
-  /*template<class T>
+  template<class T>
   inline
   T& SmartPointer<T>::operator*() const
   {
   return *m_data;
-  }*/
+  }
 
   template<class T>
   inline
@@ -219,6 +224,13 @@ namespace capu { 
 
   template<class T>
   inline
+  T* SmartPointer<T>::get() const
+  {
+    return m_data;
+  }
+
+  template<class T>
+  inline
   SmartPointer<T>::operator bool()
   {
     return m_data != 0;

Modified: incubator/etch/trunk/binding-cpp/runtime/lib/capu/modules/capu/test/util/SmartPointerTest.cpp
URL: http://svn.apache.org/viewvc/incubator/etch/trunk/binding-cpp/runtime/lib/capu/modules/capu/test/util/SmartPointerTest.cpp?rev=1174856&r1=1174855&r2=1174856&view=diff
==============================================================================
--- incubator/etch/trunk/binding-cpp/runtime/lib/capu/modules/capu/test/util/SmartPointerTest.cpp (original)
+++ incubator/etch/trunk/binding-cpp/runtime/lib/capu/modules/capu/test/util/SmartPointerTest.cpp Fri Sep 23 16:06:29 2011
@@ -25,6 +25,7 @@ private:
   FRIEND_TEST(SmartPointer,Constructors);
   FRIEND_TEST(SmartPointer,Deconstructor);
   FRIEND_TEST(SmartPointer,FileOperator);
+  FRIEND_TEST(SmartPointer,DereferencingOperator);
 public:
   static capu::int32_t mRefCount;
 
@@ -46,7 +47,7 @@ capu::int32_t DummyClass::mRefCount = 0;
 
 
 
-TEST(SmartPointer,Constructors) {	
+TEST(SmartPointer,Constructors) {
   {
     capu::SmartPointer<DummyClass> ptr(new DummyClass());
     EXPECT_EQ((capu::uint32_t)1,ptr.getRefCount());
@@ -63,10 +64,6 @@ TEST(SmartPointer,Constructors) {	
   EXPECT_EQ(0,DummyClass::mRefCount);
 }
 
-TEST(SmartPointer,Deconstructor) {
-}    
-
-
 
 TEST(SmartPointer,AssignmentOperator) {
   capu::SmartPointer<DummyClass> ptr = new DummyClass();
@@ -94,6 +91,21 @@ TEST(SmartPointer,FileOperator) {
   EXPECT_EQ(13,ptr->mValue);
 }
 
+TEST(SmartPointer,DereferencingOperator) {
+  DummyClass *dc = new DummyClass();
+  capu::SmartPointer<DummyClass> ptr(dc);
+  DummyClass *dc2 = &(*ptr);
+  EXPECT_EQ(dc,dc2);
+}
+
+TEST(SmartPointer,getObject) {
+  DummyClass *dc = new DummyClass();
+  capu::SmartPointer<DummyClass> ptr(dc);
+  DummyClass *dc2 = ptr.get();
+  EXPECT_TRUE(dc2 != NULL);
+  EXPECT_EQ(dc,dc2);
+}
+
 TEST(SmartPointer,BoolOperator) {
   capu::SmartPointer<DummyClass> ptr;
   ptr = new DummyClass();