netpanzer-cvs
[Top][All Lists]
Advanced

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

[netPanzer-CVS] netpanzer/src/Lib/ArrayUtil BucketArrayTemplate...


From: Matthias Braun
Subject: [netPanzer-CVS] netpanzer/src/Lib/ArrayUtil BucketArrayTemplate...
Date: Tue, 02 Dec 2003 06:40:14 -0500

CVSROOT:        /cvsroot/netpanzer
Module name:    netpanzer
Branch:         
Changes by:     Matthias Braun <address@hidden> 03/12/02 06:40:14

Modified files:
        src/Lib/ArrayUtil: BucketArrayTemplate.hpp 
                           LinkListDoubleTemplate.hpp 
                           LinkListSingleTemplate.hpp 

Log message:
        some more cleanups to the array classes

Patches:
Index: netpanzer/src/Lib/ArrayUtil/BucketArrayTemplate.hpp
diff -u netpanzer/src/Lib/ArrayUtil/BucketArrayTemplate.hpp:1.1 
netpanzer/src/Lib/ArrayUtil/BucketArrayTemplate.hpp:1.2
--- netpanzer/src/Lib/ArrayUtil/BucketArrayTemplate.hpp:1.1     Sat Nov 22 
10:43:15 2003
+++ netpanzer/src/Lib/ArrayUtil/BucketArrayTemplate.hpp Tue Dec  2 06:40:14 2003
@@ -26,149 +26,84 @@
 class BucketArrayTemplate : public NoCopy
 {
 protected:
-    unsigned long size;
-    unsigned long row_size;
-    unsigned long column_size;
+    size_t size;
+    size_t row_size;
+    size_t column_size;
     LinkListDoubleTemplate< TYPE > *array;
 
 public:
+    BucketArrayTemplate()
+        : size(0), row_size(0), column_size(0), array(0)
+    {
+    }
 
-    BucketArrayTemplate( );
+    BucketArrayTemplate(size_t rows, size_t columns)
+        : size(0), row_size(0), column_size(0), array(0)
+    {
+        initialize(rows, columns);
+    }
 
-    ~BucketArrayTemplate( );
+    ~BucketArrayTemplate()
+    {
+        deallocate();
+    }
+
+    void initialize(size_t rows, size_t columns)
+    {
+        deallocate();
 
-    BucketArrayTemplate( unsigned long size );
+        row_size = rows;
+        column_size = columns;
 
-    BucketArrayTemplate( unsigned long rows, unsigned long columns );
+        size = row_size * column_size;
 
-    void initialize( unsigned long size );
+        array = new LinkListDoubleTemplate< TYPE > [ size ];
+    }
 
-    void initialize( unsigned long rows, unsigned long columns );
+    void deallocate()
+    {
+        delete[] array;
 
-    void deallocate( void );
+        array = 0;
+        size = 0;
+        row_size = 0;
+        column_size = 0;
+    }
 
-    inline unsigned long getSize( void ) const
+    size_t getSize() const
     {
-        return( size );
+        return size;
     }
 
-    inline void addObject( unsigned long bucket_index, TYPE *object )
+    void addObject(size_t bucket_index, TYPE *object)
     {
         assert( bucket_index < size );
 
         array[ bucket_index ].addFront( object );
     }
 
-    inline void addObject( unsigned long row, unsigned long column, TYPE 
*object )
+    void addObject(size_t row, size_t column, TYPE *object)
     {
-        unsigned long bucket_index;
-
-        bucket_index = (row * column_size) + column;
+        size_t bucket_index = (row * column_size) + column;
         assert( bucket_index < size );
 
         array[ bucket_index ].addFront( object );
     }
 
-    inline LinkListDoubleTemplate< TYPE > * getBucket( unsigned long 
bucket_index )
+    LinkListDoubleTemplate< TYPE > * getBucket(size_t bucket_index)
     {
         assert( bucket_index < size );
         return( &(array[ bucket_index ]) );
     }
 
-    inline LinkListDoubleTemplate< TYPE > * getBucket( unsigned long row, 
unsigned long column )
+    LinkListDoubleTemplate< TYPE > * getBucket(size_t row,
+            size_t column )
     {
-        unsigned long bucket_index;
-
-        bucket_index = (row * column_size) + column;
+        size_t bucket_index = (row * column_size) + column;
 
         assert( bucket_index < size );
         return( &(array[ bucket_index ]) );
     }
-
 };
-
-
-template< class TYPE >
-BucketArrayTemplate< TYPE >::BucketArrayTemplate( )
-{
-    array = 0;
-    size = 0;
-    row_size = 0;
-    column_size = 0;
-}
-
-template< class TYPE >
-BucketArrayTemplate< TYPE >::~BucketArrayTemplate()
-{
-    deallocate();
-}
-
-
-template< class TYPE >
-BucketArrayTemplate< TYPE >::BucketArrayTemplate( unsigned long size )
-{
-    array = 0;
-    size = 0;
-    row_size = 0;
-    column_size = 0;
-    initialize( size );
-}
-
-template< class TYPE >
-BucketArrayTemplate< TYPE >::BucketArrayTemplate( unsigned long rows, unsigned 
long columns )
-{
-    array = 0;
-    size = 0;
-    row_size = 0;
-    column_size = 0;
-    initialize( rows, columns );
-}
-
-template< class TYPE >
-void BucketArrayTemplate< TYPE >::initialize( unsigned long size )
-{
-    if ( array != 0 ) {
-        deallocate();
-    }
-
-    BucketArrayTemplate< TYPE >::size = size;
-
-    array = new LinkListDoubleTemplate< TYPE > [ size ];
-
-    assert( array != 0 );
-}
-
-template< class TYPE >
-void BucketArrayTemplate< TYPE >::initialize( unsigned long rows, unsigned 
long columns )
-{
-    if ( array != 0 ) {
-        deallocate();
-    }
-
-    row_size = rows;
-    column_size = columns;
-
-    BucketArrayTemplate< TYPE >::size = row_size * column_size;
-
-    array = new LinkListDoubleTemplate< TYPE > [ size ];
-
-    assert( array != 0 );
-}
-
-
-template< class TYPE >
-void BucketArrayTemplate< TYPE >::deallocate( void )
-{
-    for( unsigned long bucket_index = 0; bucket_index < size; bucket_index++ ) 
{
-        array[ bucket_index ].deallocate();
-    }
-
-    delete[] array;
-
-    array = 0;
-    size = 0;
-    row_size = 0;
-    column_size = 0;
-}
 
 #endif // ** _BUCKETARRAYTEMPLATE_HPP
Index: netpanzer/src/Lib/ArrayUtil/LinkListDoubleTemplate.hpp
diff -u netpanzer/src/Lib/ArrayUtil/LinkListDoubleTemplate.hpp:1.1 
netpanzer/src/Lib/ArrayUtil/LinkListDoubleTemplate.hpp:1.2
--- netpanzer/src/Lib/ArrayUtil/LinkListDoubleTemplate.hpp:1.1  Sat Nov 22 
10:43:15 2003
+++ netpanzer/src/Lib/ArrayUtil/LinkListDoubleTemplate.hpp      Tue Dec  2 
06:40:14 2003
@@ -28,23 +28,21 @@
     TYPE *rear;
 
 public:
-
     LinkListDoubleTemplate()
             : front(0), rear(0)
     { }
 
-    LinkListDoubleTemplate( unsigned long size );
-
-    ~LinkListDoubleTemplate();
-
-    void initialize( unsigned long size );
+    ~LinkListDoubleTemplate()
+    {
+        deallocate();
+    }
 
-    TYPE* getFront() const
+    TYPE* getFront()
     {
         return front;
     }
 
-    TYPE * getRear() const
+    TYPE* getRear()
     {
         return rear;
     }
@@ -134,16 +132,17 @@
 
     void deleteFront()
     {
-        TYPE *oldfront = front;
+        if(front == 0)
+            return;
 
-        if (front != 0) {
-            if (front == rear) {
-                front = 0;
-                rear = 0;
-            } else {
-                front = front->next;
-                front->prev = 0;
-            }
+        TYPE* oldfront = front;
+
+        if (front == rear) {
+            front = 0;
+            rear = 0;
+        } else {
+            front = front->next;
+            front->prev = 0;
         }
 
         delete oldfront;
@@ -151,16 +150,17 @@
 
     void deleteRear()
     {
+        if(rear == 0)
+            return;
+
         TYPE *oldrear = rear;
 
-        if ( rear != 0 ) {
-            if (front == rear) {
-                front = 0;
-                rear = 0;
-            } else {
-                rear = rear->prev;
-                rear->next = 0;
-            }
+        if (front == rear) {
+            front = 0;
+            rear = 0;
+        } else {
+            rear = rear->prev;
+            rear->next = 0;
         }
 
         delete oldrear;
@@ -172,19 +172,20 @@
 
         TYPE* object = after->next;
 
-        if(object != 0) {
-            after->next = object->next;
+        if(object == 0)
+            return;
 
-            if(object->next != 0) {
-                object->next->prev = after;
-            }
+        after->next = object->next;
 
-            if(object == rear) {
-                rear = after;
-            }
+        if(object->next != 0) {
+            object->next->prev = after;
         }
 
-        delete oldobject;
+        if(object == rear) {
+            rear = after;
+        }
+
+        delete object;
     }
 
     void deleteBefore(TYPE *before)
@@ -192,18 +193,20 @@
         assert( before != 0 );
 
         TYPE *object = before->prev;
+        
+        if(object == 0)
+            return;
 
-        if( object != 0 ) {
-            before->prev = object->prev;            
+        before->prev = object->prev;            
 
-            if(object->prev != 0) {
-                object->prev->next = before;
-            }
+        if(object->prev != 0) {
+            object->prev->next = before;
+        }
 
-            if(delete_ptr == front) {
-                front = before;
-            }
+        if(delete_ptr == front) {
+            front = before;
         }
+
         delete object;
     }
 
@@ -263,9 +266,9 @@
                 rear->next = 0;
             }
 
-            return( delete_ptr );
+            return delete_ptr;
         }
-        return( 0 );
+        return 0;
     }
 
     TYPE* removeAfter( TYPE *after )
@@ -287,10 +290,10 @@
                 rear = after;
             }
 
-            return( delete_ptr );
+            return delete_ptr;
         }
 
-        return( 0 );
+        return 0;
     }
 
     TYPE* removeBefore( TYPE *before )
@@ -312,24 +315,21 @@
                 front = before;
             }
 
-            return( delete_ptr );
+            return delete_ptr;
         }
-        return( 0 );
+        return 0;
     }
 
 
-    unsigned long getSize()
+    size_t getSize() const
     {
         TYPE *traversal_ptr;
-        unsigned long count = 0;
+        size_t count = 0;
 
-        traversal_ptr = front;
-        while( traversal_ptr != 0 ) {
-            traversal_ptr = traversal_ptr->next;
+        for(TYPE* p = front; p != 0; p = p->next)
             count++;
-        }
 
-        return( count );
+        return count;
     }
 
     void deallocate()
@@ -342,7 +342,7 @@
         while( traversal_ptr != 0 ) {
             delete_ptr = traversal_ptr;
             traversal_ptr = traversal_ptr->next;
-            delete( delete_ptr );
+            delete delete_ptr;
         }
 
         front = 0;
@@ -350,33 +350,5 @@
     }
 };
 
-template< class TYPE >
-LinkListDoubleTemplate< TYPE >::LinkListDoubleTemplate( unsigned long size )
-        : front(0), rear(0)
-{
-    initialize( size );
-}
-
-template< class TYPE >
-LinkListDoubleTemplate< TYPE >::~LinkListDoubleTemplate()
-{
-    deallocate();
-}
-
-template< class TYPE >
-void LinkListDoubleTemplate< TYPE >::initialize( unsigned long size )
-{
-    TYPE *object;
-
-    if( front != 0 ) {
-        deallocate();
-    }
-
-    for( unsigned long i; i < size; i++ ) {
-        object = new TYPE;
-        addRear( object );
-    }
-}
-
-
 #endif // ** _LINKLISTDOUBLETEMPLATE_HPP
+
Index: netpanzer/src/Lib/ArrayUtil/LinkListSingleTemplate.hpp
diff -u netpanzer/src/Lib/ArrayUtil/LinkListSingleTemplate.hpp:1.1 
netpanzer/src/Lib/ArrayUtil/LinkListSingleTemplate.hpp:1.2
--- netpanzer/src/Lib/ArrayUtil/LinkListSingleTemplate.hpp:1.1  Sat Nov 22 
10:43:15 2003
+++ netpanzer/src/Lib/ArrayUtil/LinkListSingleTemplate.hpp      Tue Dec  2 
06:40:14 2003
@@ -28,45 +28,38 @@
     TYPE *rear;
 
 public:
-
     LinkListSingleTemplate()
             : front(0), rear(0)
     {}
 
-    LinkListSingleTemplate( unsigned long size );
-
-    ~LinkListSingleTemplate( void );
-
-    void initialize( unsigned long size );
+    ~LinkListSingleTemplate()
+    {
+        deallocate();
+    }
 
-    inline void addRear( TYPE *object )
+    void addRear(TYPE *object)
     {
         object->next = 0;
 
-        if ( (front == 0) && (rear == 0) ) {
-            front = object;
-            rear = object;
-        } else {
+        if(rear != 0)
             rear->next = object;
-            rear = rear->next;
+        else {
+            front = object;
         }
+        
+        rear = object;
     }
 
-    inline void addFront( TYPE *object )
+    void addFront( TYPE *object )
     {
-        object->next = 0;
+        object->next = front;
+        front = object;
 
-        if ( (front == 0) && (rear == 0) ) {
-            front = object;
+        if(rear == 0)
             rear = object;
-            object->next = 0;
-        } else {
-            object->next = front;
-            front = object;
-        }
     }
 
-    inline void insertAfter( TYPE *after, TYPE *object )
+    void insertAfter( TYPE *after, TYPE *object )
     {
         assert( after != 0 );
 
@@ -77,7 +70,7 @@
         }
     }
 
-    inline void deleteFront( void )
+    void deleteFront()
     {
         TYPE *delete_ptr;
 
@@ -95,7 +88,7 @@
         }
     }
 
-    inline void deleteAfter( TYPE *after )
+    void deleteAfter( TYPE *after )
     {
         TYPE *delete_ptr;
         assert( after != 0 );
@@ -108,15 +101,14 @@
             rear = after;
         }
 
-        delete( delete_ptr );
+        delete delete_ptr;
     }
 
-    inline TYPE * removeFront( void )
+    TYPE* removeFront()
     {
-        TYPE *delete_ptr;
         assert( front != 0 );
-
-        delete_ptr = front;
+        
+        TYPE *delete_ptr = front;
 
         if ( front != 0 ) {
             if (front == rear) {
@@ -126,45 +118,40 @@
                 front = front->next;
             }
 
-            return( delete_ptr );
+            return delete_ptr;
         }
 
-        return( 0 );
+        return 0;
     }
 
-    inline TYPE * removeAfter( TYPE *after )
+    TYPE* removeAfter(TYPE *after)
     {
-        TYPE *delete_ptr;
         assert( after != 0 );
+        
+        TYPE *delete_ptr;
 
         delete_ptr = after->next;
 
         after->next = delete_ptr->next;
 
-        if( delete_ptr == rear ) {
+        if(delete_ptr == rear) {
             rear = after;
         }
 
-        return( delete_ptr );
+        return delete_ptr;
     }
-
-
-
-    inline unsigned long getSize( void )
+    
+    size_t getSize() const
     {
-        TYPE *traversal_ptr;
-        unsigned long count = 0;
+        size_t count = 0;
 
-        traversal_ptr = front;
-        while( traversal_ptr != 0 ) {
-            traversal_ptr = traversal_ptr->next;
+        for(TYPE* p = front; p != 0; p = p->next)
             count++;
-        }
 
-        return( count );
+        return count;
     }
 
-    inline void deallocate( void )
+    void deallocate()
     {
         TYPE *traversal_ptr;
         TYPE *delete_ptr;
@@ -174,45 +161,12 @@
         while( traversal_ptr != 0 ) {
             delete_ptr = traversal_ptr;
             traversal_ptr = traversal_ptr->next;
-            delete( delete_ptr );
+            delete delete_ptr;
         }
 
         front = 0;
         rear = 0;
     }
-
 };
-
-
-
-template< class TYPE >
-LinkListSingleTemplate< TYPE >::LinkListSingleTemplate( unsigned long size )
-        : front(0), rear(0)
-{
-    initialize( size );
-}
-
-template< class TYPE >
-LinkListSingleTemplate< TYPE >::~LinkListSingleTemplate( void )
-{
-    deallocate();
-}
-
-template< class TYPE >
-void LinkListSingleTemplate<TYPE>::initialize( unsigned long size )
-{
-    TYPE *object;
-
-    if( front != 0 ) {
-        deallocate();
-    }
-
-    for( unsigned long i; i < size; i++ ) {
-        object = new TYPE;
-        addRear( object );
-    }
-
-}
-
 
 #endif // ** _LINKLISTSINGLETEMPLATE_HPP




reply via email to

[Prev in Thread] Current Thread [Next in Thread]