Enlightenment CVS committal

Author  : andreas
Project : e17
Module  : proto/eflpp

Dir     : e17/proto/eflpp/src/ecore


Modified Files:
        eflpp_ecore_data.cpp eflpp_ecore_data.h 


Log Message:
- fixed EcoreList
- added EcoreList example

===================================================================
RCS file: /cvs/e/e17/proto/eflpp/src/ecore/eflpp_ecore_data.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- eflpp_ecore_data.cpp        6 Sep 2007 20:40:50 -0000       1.3
+++ eflpp_ecore_data.cpp        21 Sep 2007 22:39:16 -0000      1.4
@@ -2,299 +2,5 @@
 
 namespace efl {
 
-/*************/
-/* EcoreList */
-/*************/
-
-template <typename T>
-EcoreList<T>::EcoreList()
-{
-    m_list = ecore_list_new();
-    // todo: how to handle error return? -> Exception?
-}
-  
-template <typename T>
-EcoreList<T>::~EcoreList()
-{
-    ecore_list_destroy( m_list );
-}
-
-template <typename T>
-Ecore_List *EcoreList<T>::obj()
-{
-    return m_list;
-}
-
-template <typename T>
-bool EcoreList<T>::append( T &data )
-{
-    return ecore_list_append( m_list, static_cast <void*> (data) );
-}
-
-template <typename T>
-bool EcoreList<T>::prepend( T &data )
-{
-   return ecore_list_prepend( m_list, static_cast <void*> (data) );
-}
-
-template <typename T>
-bool EcoreList<T>::insert( T &data )
-{
-   return ecore_list_insert( m_list, static_cast <void*> (data) );
-}
-
-template <typename T>
-bool EcoreList<T>::appendList( EcoreList <T> &append)
-{
-    return ecore_list_append_list( m_list, append.m_list);
-}
-
-template <typename T>
-bool EcoreList<T>::prependList( EcoreList <T> &prepend)
-{
-    return ecore_list_prepend_list( m_list, &prepend.m_list);
-}
-
-template <typename T>
-T *EcoreList<T>::remove()
-{
-    return static_cast <T*> (ecore_list_remove( m_list ) );
-}
-
-template <typename T>
-T *EcoreList<T>::removeFirst()
-{
-    return static_cast <T*> ( ecore_list_first_remove( m_list ) );
-}
-
-template <typename T>
-T *EcoreList<T>::removeLast()
-{
-    return static_cast <T*> ( ecore_list_last_remove( m_list ) );
-}
-
-template <typename T>
-T *EcoreList<T>::current()
-{
-    return static_cast <T*> ( ecore_list_current( m_list ) );
-}
-
-template <typename T>
-T *EcoreList<T>::first()
-{
-    return static_cast <T*> ( ecore_list_first( m_list ) );
-}
-
-template <typename T>
-T *EcoreList<T>::last()
-{
-    return static_cast <T*> ( ecore_list_last( m_list) );
-}
-
-template <typename T>
-int EcoreList<T>::index()
-{
-    return ecore_list_index( m_list );
-}
-
-template <typename T>
-int EcoreList<T>::count()
-{
-    return ecore_list_count( m_list );
-}
-
-template <typename T>
-T *EcoreList<T>::gotoFirst()
-{
-    return static_cast <T*> ( ecore_list_first_goto( m_list ) );
-}
-
-template <typename T>
-T *EcoreList<T>::gotoLast()
-{
-    return static_cast <T*> ( ecore_list_last_goto( m_list ) );
-}
-
-template <typename T>
-T *EcoreList<T>::gotoIndex(int index)
-{
-    return static_cast <T*> ( ecore_list_index_goto( m_list, index ) );
-}
-
-template <typename T>
-T *EcoreList<T>::gotoElement(const T &data)
-{
-    return static_cast <T*> ( ecore_list_goto( m_list, 
-                             static_cast <const void*> ( data ) ));
-}
-
-template <typename T>
-T *EcoreList<T>::next()
-{
-    return static_cast <T*> ( ecore_list_next( m_list ));
-}
-
-template <typename T>
-bool EcoreList<T>::isEmpty()
-{
-    return ecore_list_empty_is ( m_list );
-}
-
-template <typename T>
-bool EcoreList<T>::clear()
-{
-    return ecore_list_clear( m_list );
-}
-
-/**************/
-/* EcoreDList */
-/**************/
-
-template <typename T>
-EcoreDList<T>::EcoreDList()
-{
-    m_list = ecore_dlist_new();
-    // todo: how to handle error return? -> Exception?
-}
-  
-template <typename T>
-EcoreDList<T>::~EcoreDList()
-{
-    ecore_dlist_destroy( m_list );
-}
-
-template <typename T>
-Ecore_DList *EcoreDList<T>::obj()
-{
-    return m_list;
-}
-
-template <typename T>
-bool EcoreDList<T>::append( T &data )
-{
-    return ecore_dlist_append( m_list, static_cast <void*> (data) );
-}
-
-template <typename T>
-bool EcoreDList<T>::prepend( T &data )
-{
-   return ecore_dlist_prepend( m_list, static_cast <void*> (data) );
-}
-
-template <typename T>
-bool EcoreDList<T>::insert( T &data )
-{
-   return ecore_dlist_insert( m_list, static_cast <void*> (data) );
-}
-
-template <typename T>
-bool EcoreDList<T>::appendList( EcoreDList <T> &append)
-{
-    return ecore_dlist_append_list( m_list, append.m_list);
-}
-
-template <typename T>
-bool EcoreDList<T>::prependList( EcoreDList <T> &prepend)
-{
-    return ecore_dlist_prepend_list( m_list, &prepend.m_list);
-}
-
-template <typename T>
-T *EcoreDList<T>::remove()
-{
-    return static_cast <T*> (ecore_dlist_remove( m_list ) );
-}
-
-template <typename T>
-T *EcoreDList<T>::removeFirst()
-{
-    return static_cast <T*> ( ecore_dlist_first_remove( m_list ) );
-}
-
-template <typename T>
-T *EcoreDList<T>::removeLast()
-{
-    return static_cast <T*> ( ecore_dlist_last_remove( m_list ) );
-}
-
-template <typename T>
-T *EcoreDList<T>::current()
-{
-    return static_cast <T*> ( ecore_dlist_current( m_list ) );
-}
-
-/*template <typename T>
-T *EcoreDList<T>::first()
-{
-    return static_cast <T*> ( ecore_dlist_first( m_list ) );
-}
-
-template <typename T>
-T *EcoreDList<T>::last()
-{
-    return static_cast <T*> ( ecore_dlist_last( m_list) );
-}*/
-
-template <typename T>
-int EcoreDList<T>::index()
-{
-    return ecore_dlist_index( m_list );
-}
-
-template <typename T>
-int EcoreDList<T>::count()
-{
-    return ecore_dlist_count( m_list );
-}
-
-template <typename T>
-T *EcoreDList<T>::gotoFirst()
-{
-    return static_cast <T*> ( ecore_dlist_first_goto( m_list ) );
-}
-
-template <typename T>
-T *EcoreDList<T>::gotoLast()
-{
-    return static_cast <T*> ( ecore_dlist_last_goto( m_list ) );
-}
-
-template <typename T>
-T *EcoreDList<T>::gotoIndex(int index)
-{
-    return static_cast <T*> ( ecore_dlist_index_goto( m_list, index ) );
-}
-
-template <typename T>
-T *EcoreDList<T>::gotoElement(const T &data)
-{
-    return static_cast <T*> ( ecore_dlist_goto( m_list, 
-                             static_cast <const void*> ( data ) ));
-}
-
-template <typename T>
-T *EcoreDList<T>::next()
-{
-    return static_cast <T*> ( ecore_dlist_next( m_list ));
-}
-
-template <typename T>
-T *EcoreDList<T>::previous()
-{
-    return static_cast <T*> ( ecore_dlist_previous( m_list ));
-}
-
-template <typename T>
-bool EcoreDList<T>::isEmpty()
-{
-    return ecore_dlist_empty_is ( m_list );
-}
-
-template <typename T>
-bool EcoreDList<T>::clear()
-{
-    return ecore_dlist_clear( m_list );
-}
-
 
 } // end namespace efl
===================================================================
RCS file: /cvs/e/e17/proto/eflpp/src/ecore/eflpp_ecore_data.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- eflpp_ecore_data.h  6 Sep 2007 20:40:50 -0000       1.2
+++ eflpp_ecore_data.h  21 Sep 2007 22:39:16 -0000      1.3
@@ -14,7 +14,7 @@
 {
   public:
     EcoreList();
-    ~EcoreList();
+    virtual ~EcoreList();
 
     /*!
      *  return The internal Ecore_List object
@@ -22,11 +22,11 @@
     Ecore_List *obj();
   
     /* Adding items to the list */
-    bool append( T &data );
-    bool prepend( T &data );
-    bool insert( T &data );
-    bool appendList( EcoreList <T> &append);
-    bool prependList( EcoreList <T> &prepend);
+    bool append( T *data );
+    bool prepend( T *data );
+    bool insert( T *data );
+    bool appendList( EcoreList <T> *append);
+    bool prependList( EcoreList <T> *prepend);
 
     /* Removing items from the list */
     // TODO: how to integrate this with destructors?
@@ -50,7 +50,7 @@
     T *gotoFirst();
     T *gotoLast();
     T *gotoIndex(int index);
-    T *gotoElement(const T &data);
+    T *gotoElement(const T *data);
 
     /* Traversing the list and returning data */
     T *next();
@@ -70,18 +70,50 @@
 
     bool isEmpty();
     bool clear();
+  
+    /*class forward_iterator
+    {
+      public:
+        forward_iterator ()
+        {
+            list = m_list;
+        }
+        
+        // Prefix
+        forward_iterator& operator++ ()
+        {
+            list = list->next ();
+            return *this;          
+        }
+      
+        // Postfix
+        forward_iterator operator++ (int)
+        {
+            forward_iterator oldIterator =* this;
+            list = list->next ();
+            return oldIterator;
+        }
+      
+      private:
+        EcoreList<T> list;        
+
+    };*/
+    
+    //forward_iterator begin ();
+    //forward_iterator end ();
 
-  private:
-    Ecore_List *m_list;
+    private:
+      Ecore_List *m_list;
 };
 
 
+
 template <typename T>
 class EcoreDList
 {
   public:
     EcoreDList();
-    ~EcoreDList();
+    virtual ~EcoreDList();
 
     /*!
      *  return The internal Ecore_DList object
@@ -89,11 +121,11 @@
     Ecore_DList *obj();
   
     /* Adding items to the list */
-    bool append( T &data );
-    bool prepend( T &data );
-    bool insert( T &data );
-    bool appendList( EcoreDList <T> &append);
-    bool prependList( EcoreDList <T> &prepend);
+    bool append( T *data );
+    bool prepend( T *data );
+    bool insert( T *data );
+    bool appendList( EcoreDList <T> *append);
+    bool prependList( EcoreDList <T> *prepend);
     // not wrapped! -> std::for_each exist. -> #include <algorithm>
     // need to implement an iterator to get this working
     /* Removing items from the list */
@@ -119,7 +151,7 @@
     T *gotoFirst();
     T *gotoLast();
     T *gotoIndex(int index);
-    T *gotoElement(const T &data);
+    T *gotoElement(const T *data);
 
 
     /* Traversing the list and returning data */
@@ -144,6 +176,316 @@
   private:
     Ecore_DList *m_list;
 };
+
+/** Implementaion **/
+
+/*************/
+/* EcoreList */
+/*************/
+
+template <typename T>
+EcoreList<T>::EcoreList()
+{
+    m_list = ecore_list_new();
+    // todo: how to handle error return? -> Exception?
+}
+  
+template <typename T>
+EcoreList<T>::~EcoreList()
+{
+    ecore_list_destroy( m_list );
+}
+
+template <typename T>
+Ecore_List *EcoreList<T>::obj()
+{
+    return m_list;
+}
+
+template <typename T>
+bool EcoreList<T>::append( T *data )
+{
+    return ecore_list_append( m_list, static_cast <void*> (data) );
+}
+
+template <typename T>
+bool EcoreList<T>::prepend( T *data )
+{
+   return ecore_list_prepend( m_list, static_cast <void*> (data) );
+}
+
+template <typename T>
+bool EcoreList<T>::insert( T *data )
+{
+   return ecore_list_insert( m_list, static_cast <void*> (data) );
+}
+
+template <typename T>
+bool EcoreList<T>::appendList( EcoreList <T> *append)
+{
+    return ecore_list_append_list( m_list, append.m_list);
+}
+
+template <typename T>
+bool EcoreList<T>::prependList( EcoreList <T> *prepend)
+{
+    return ecore_list_prepend_list( m_list, prepend.m_list);
+}
+
+template <typename T>
+T *EcoreList<T>::remove()
+{
+    return static_cast <T*> (ecore_list_remove( m_list ) );
+}
+
+template <typename T>
+T *EcoreList<T>::removeFirst()
+{
+    return static_cast <T*> ( ecore_list_first_remove( m_list ) );
+}
+
+template <typename T>
+T *EcoreList<T>::removeLast()
+{
+    return static_cast <T*> ( ecore_list_last_remove( m_list ) );
+}
+
+template <typename T>
+T *EcoreList<T>::current()
+{
+    return static_cast <T*> ( ecore_list_current( m_list ) );
+}
+
+template <typename T>
+T *EcoreList<T>::first()
+{
+    return static_cast <T*> ( ecore_list_first( m_list ) );
+}
+
+template <typename T>
+T *EcoreList<T>::last()
+{
+    return static_cast <T*> ( ecore_list_last( m_list) );
+}
+
+template <typename T>
+int EcoreList<T>::index()
+{
+    return ecore_list_index( m_list );
+}
+
+template <typename T>
+int EcoreList<T>::count()
+{
+    return ecore_list_count( m_list );
+}
+
+template <typename T>
+T *EcoreList<T>::gotoFirst()
+{
+    return static_cast <T*> ( ecore_list_first_goto( m_list ) );
+}
+
+template <typename T>
+T *EcoreList<T>::gotoLast()
+{
+    return static_cast <T*> ( ecore_list_last_goto( m_list ) );
+}
+
+template <typename T>
+T *EcoreList<T>::gotoIndex(int index)
+{
+    return static_cast <T*> ( ecore_list_index_goto( m_list, index ) );
+}
+
+template <typename T>
+T *EcoreList<T>::gotoElement(const T *data)
+{
+    return static_cast <T*> ( ecore_list_goto( m_list, 
+                             static_cast <const void*> ( data ) ));
+}
+
+template <typename T>
+T *EcoreList<T>::next()
+{
+    return static_cast <T*> ( ecore_list_next( m_list ));
+}
+
+template <typename T>
+bool EcoreList<T>::isEmpty()
+{
+    return ecore_list_empty_is ( m_list );
+}
+
+template <typename T>
+bool EcoreList<T>::clear()
+{
+    return ecore_list_clear( m_list );
+}
+
+/*template <typename T>
+forward_iterator EcoreList<T>::begin ()
+{
+  //forward_iterator fi;
+  
+}
+
+template <typename T>
+EcoreList<T>::forward_iterator EcoreList<T>::end ()
+{
+  
+}*/
+
+
+/**************/
+/* EcoreDList */
+/**************/
+
+template <typename T>
+EcoreDList<T>::EcoreDList()
+{
+    m_list = ecore_dlist_new();
+    // todo: how to handle error return? -> Exception?
+}
+  
+template <typename T>
+EcoreDList<T>::~EcoreDList()
+{
+    ecore_dlist_destroy( m_list );
+}
+
+template <typename T>
+Ecore_DList *EcoreDList<T>::obj()
+{
+    return m_list;
+}
+
+template <typename T>
+bool EcoreDList<T>::append( T *data )
+{
+    return ecore_dlist_append( m_list, static_cast <void*> (data) );
+}
+
+template <typename T>
+bool EcoreDList<T>::prepend( T *data )
+{
+   return ecore_dlist_prepend( m_list, static_cast <void*> (data) );
+}
+
+template <typename T>
+bool EcoreDList<T>::insert( T *data )
+{
+   return ecore_dlist_insert( m_list, static_cast <void*> (data) );
+}
+
+template <typename T>
+bool EcoreDList<T>::appendList( EcoreDList <T> *append)
+{
+    return ecore_dlist_append_list( m_list, append.m_list);
+}
+
+template <typename T>
+bool EcoreDList<T>::prependList( EcoreDList <T> *prepend)
+{
+    return ecore_dlist_prepend_list( m_list, prepend.m_list);
+}
+
+template <typename T>
+T *EcoreDList<T>::remove()
+{
+    return static_cast <T*> (ecore_dlist_remove( m_list ) );
+}
+
+template <typename T>
+T *EcoreDList<T>::removeFirst()
+{
+    return static_cast <T*> ( ecore_dlist_first_remove( m_list ) );
+}
+
+template <typename T>
+T *EcoreDList<T>::removeLast()
+{
+    return static_cast <T*> ( ecore_dlist_last_remove( m_list ) );
+}
+
+template <typename T>
+T *EcoreDList<T>::current()
+{
+    return static_cast <T*> ( ecore_dlist_current( m_list ) );
+}
+
+/*template <typename T>
+T *EcoreDList<T>::first()
+{
+    return static_cast <T*> ( ecore_dlist_first( m_list ) );
+}
+
+template <typename T>
+T *EcoreDList<T>::last()
+{
+    return static_cast <T*> ( ecore_dlist_last( m_list) );
+}*/
+
+template <typename T>
+int EcoreDList<T>::index()
+{
+    return ecore_dlist_index( m_list );
+}
+
+template <typename T>
+int EcoreDList<T>::count()
+{
+    return ecore_dlist_count( m_list );
+}
+
+template <typename T>
+T *EcoreDList<T>::gotoFirst()
+{
+    return static_cast <T*> ( ecore_dlist_first_goto( m_list ) );
+}
+
+template <typename T>
+T *EcoreDList<T>::gotoLast()
+{
+    return static_cast <T*> ( ecore_dlist_last_goto( m_list ) );
+}
+
+template <typename T>
+T *EcoreDList<T>::gotoIndex(int index)
+{
+    return static_cast <T*> ( ecore_dlist_index_goto( m_list, index ) );
+}
+
+template <typename T>
+T *EcoreDList<T>::gotoElement(const T *data)
+{
+    return static_cast <T*> ( ecore_dlist_goto( m_list, 
+                             static_cast <const void*> ( data ) ));
+}
+
+template <typename T>
+T *EcoreDList<T>::next()
+{
+    return static_cast <T*> ( ecore_dlist_next( m_list ));
+}
+
+template <typename T>
+T *EcoreDList<T>::previous()
+{
+    return static_cast <T*> ( ecore_dlist_previous( m_list ));
+}
+
+template <typename T>
+bool EcoreDList<T>::isEmpty()
+{
+    return ecore_dlist_empty_is ( m_list );
+}
+
+template <typename T>
+bool EcoreDList<T>::clear()
+{
+    return ecore_dlist_clear( m_list );
+}
 
 } // end namespace efl
 



-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to