[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [netPanzer-CVS] netpanzer/src/Lib/ArrayUtil BucketArrayTemplate...,
Matthias Braun <=