8 #ifndef DMGR_AVL_TREE_H
9 #define DMGR_AVL_TREE_H
32 #define GREATER_THAN 2
50 class CO_MemAddAVLTree;
150 left->remove_nod(dispo_chunk);
155 right->remove_nod(dispo_chunk);
158 if (dispo_chunk &&
data)
199 void rebalance_tree(
CO_MemAVLNode *tree_node,
int add_balance,
209 root->remove_nod(dispo_chunk);
216 #pragma warning (push)
217 #pragma warning (disable : 4311)
218 #pragma warning (disable : 4302)
230 return trees[(long)data->
address & 0xff00 >> 8].search_node(data, search);
234 return trees[(long)data->
address & 0xff00 >> 8].insert_node(data);
238 return trees[(long)data->
address & 0xff00 >> 8].search_and_remove_node(data,
EQUAL);
243 trees[i].empty_tree(dispo_chunk);
248 #pragma warning (pop)
266 , number_of_chunks(1)
276 fprintf(stderr,
"Fehler!!!\n");
293 node_list = node_list->
next;
302 node_list = node_list->
next;
308 if (tmpptr->
next == data)
315 tmpptr = tmpptr->
next;
382 return tree.search_and_remove_node(size_wanted,
GT_EQUAL);
386 return tree.remove_node(data);
390 return tree.insert_node(data);
Definition: dmgr_mem_avltrees.h:191
MemChunk * split(shmSizeType s)
Definition: dmgr_mem_avltrees.h:78
GLsizeiptr size
Definition: khronos-glext.h:6610
void print()
Definition: dmgr_mem_avltrees.h:138
void * get_pointer(int no)
Definition: covise_shm.h:246
int seq_no
Definition: dmgr_mem_avltrees.h:61
CO_MemAddAVLTree()
Definition: dmgr_mem_avltrees.h:196
shmSizeType size
Definition: dmgr_mem_avltrees.h:62
void increase_size(shmSizeType incr)
Definition: dmgr_mem_avltrees.h:99
~AddressOrderedTree()
Definition: dmgr_mem_avltrees.h:227
Definition: dmgr_mem_avltrees.h:251
CO_MemAVLNode()
Definition: dmgr_mem_avltrees.h:132
GLuint address
Definition: khronos-glext.h:10368
CO_MemAVLTree()
Definition: dmgr_mem_avltrees.h:169
void set(int no, void *add, shmSizeType s)
Definition: dmgr_mem_avltrees.h:104
MemChunk * remove_chunk(MemChunk *data)
Definition: dmgr_mem_avltrees.h:297
GLsizei GLsizei GLenum GLenum const GLvoid * data
Definition: khronos-glext.h:6354
int insert_chunk(MemChunk *data)
Definition: dmgr_mem_avltrees.h:232
MemChunk * remove_chunk(MemChunk *data)
Definition: dmgr_mem_avltrees.h:384
~CO_MemSizeAVLTree()
Definition: dmgr_mem_avltrees.h:355
Definition: covise_shm.h:379
Definition: dmgr_mem_avltrees.h:55
~CO_MemSizeAVLNode()
Definition: dmgr_mem_avltrees.h:272
shmSizeType size
Definition: dmgr_mem_avltrees.h:258
CO_MemSizeAVLNode(MemChunk *d)
Definition: dmgr_mem_avltrees.h:261
int is_reb_active(void)
Definition: dmgr_mem_avltrees.h:183
SizeOrderedTree()
Definition: dmgr_mem_avltrees.h:378
int insert_chunk(MemChunk *data)
Definition: dmgr_mem_avltrees.h:388
GLdouble GLdouble right
Definition: khronos-glext.h:12128
~CO_MemAddAVLTree()
Definition: dmgr_mem_avltrees.h:198
shmSizeType get_plain_size()
Definition: dmgr_mem_avltrees.h:95
unsigned int shmSizeType
Definition: covise_shm.h:202
CO_MemAVLNode * best_node
Definition: dmgr_mem_avltrees.h:194
CO_MemAVLNode * root
Definition: dmgr_mem_avltrees.h:193
char * get_plain_address()
Definition: dmgr_mem_avltrees.h:91
void print()
Definition: dmgr_mem_avltrees.h:319
void add_chunk(MemChunk *d)
Definition: dmgr_mem_avltrees.h:284
MemChunk * get_chunk(shmSizeType size_wanted)
Definition: dmgr_mem_avltrees.h:380
MemChunk * remove_chunk()
Definition: dmgr_mem_avltrees.h:290
CO_MemAVLNode(MemChunk *d)
Definition: dmgr_mem_avltrees.h:124
CO_MemSizeAVLNode * right
Definition: dmgr_mem_avltrees.h:255
void empty_tree(void)
Definition: dmgr_mem_avltrees.h:361
void empty_trees(int dispo_chunk)
Definition: dmgr_mem_avltrees.h:240
CO_MemAVLNode * up
Definition: dmgr_mem_avltrees.h:121
CO_MemSizeAVLTree()
Definition: dmgr_mem_avltrees.h:353
Definition: dmgr_mem_avltrees.h:163
CO_MemAVLNode * left
Definition: dmgr_mem_avltrees.h:119
CO_MemSizeAVLNode * up
Definition: dmgr_mem_avltrees.h:256
#define GT_EQUAL
Definition: dmgr_mem_avltrees.h:35
MemChunk * search_chunk(MemChunk *data, int search)
Definition: dmgr_mem_avltrees.h:228
MemChunk * new_memchunk()
Definition: dmgr_mem_avltrees.cpp:89
GLint left
Definition: khronos-glext.h:8444
MemChunk * data
Definition: dmgr_mem_avltrees.h:123
void deactivate_reb(void)
Definition: dmgr_mem_avltrees.h:179
MemChunk(int no, void *add, shmSizeType s)
Definition: dmgr_mem_avltrees.h:72
int m_reb_active
Definition: dmgr_mem_avltrees.h:167
CO_MemSizeAVLNode * root
Definition: dmgr_mem_avltrees.h:350
SHMEXPORT SharedMemory * get_shared_memory()
Definition: covise_shm.cpp:91
void empty_tree(void)
Definition: dmgr_mem_avltrees.h:392
#define AVL_EXTERN
Definition: dmgr_mem_avltrees.cpp:9
int balance
Definition: dmgr_mem_avltrees.h:122
const int NO_OF_TREES
Definition: dmgr_mem_avltrees.h:52
void remove_nod(int dispo_chunk)
Definition: dmgr_mem_avltrees.h:146
int number_of_chunks
Definition: dmgr_mem_avltrees.h:259
Definition: dmgr_mem_avltrees.h:116
char * address
Definition: dmgr_mem_avltrees.h:63
GLdouble s
Definition: khronos-glext.h:6441
CO_MemSizeAVLTree tree
Definition: dmgr_mem_avltrees.h:375
MemChunk()
Definition: dmgr_mem_avltrees.h:67
CO_MemSizeAVLNode * best_node
Definition: dmgr_mem_avltrees.h:351
~CO_MemAVLTree()
Definition: dmgr_mem_avltrees.h:173
AddressOrderedTree()
Definition: dmgr_mem_avltrees.h:226
~SizeOrderedTree()
Definition: dmgr_mem_avltrees.h:379
class MemChunk * next
Definition: dmgr_mem_avltrees.h:66
Definition: dmgr_mem_avltrees.h:372
void delete_memchunk(MemChunk *chunk_ptr)
Definition: dmgr_mem_avltrees.cpp:113
MemChunk * remove_chunk(MemChunk *data)
Definition: dmgr_mem_avltrees.h:236
void remove_nod(void)
Definition: dmgr_mem_avltrees.h:327
MemChunk * node_list
Definition: dmgr_mem_avltrees.h:260
#define DMGREXPORT
Definition: coExport.h:313
Definition: dmgr_mem_avltrees.h:348
CO_MemSizeAVLNode * left
Definition: dmgr_mem_avltrees.h:254
CO_MemAVLNode * right
Definition: dmgr_mem_avltrees.h:120
const int NO_OF_MEMCHUNKS
Definition: dmgr_mem_avltrees.h:53
Definition: dmgr_mem_avltrees.h:220
int balance
Definition: dmgr_mem_avltrees.h:257
#define NULL
Definition: covise_list.h:22
coShmPtr * getAddress()
Definition: dmgr_mem_avltrees.h:85
~MemChunk()
Definition: dmgr_mem_avltrees.h:77
Definition: covise_shm.h:208
void activate_reb(void)
Definition: dmgr_mem_avltrees.h:175
void empty_tree(int dispo_chunk)
Definition: dmgr_mem_avltrees.h:205
#define EQUAL
Definition: dmgr_mem_avltrees.h:38