maxiaodong97 / organic-c-basic-data-structure-for-networking

An organic C data structure and defines for network related operations.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

organic-c-basic-data-structure-for-networking

An organic C data structure and defines for network related operations.

I wrote it a few years ago mainly for my hobby projects, but I would like to contribute to public domain if this can be beneficial to anyone. After coding java for a few years, I kind of missing the speed adn beauty of C!

To try it:

$ make
$./ut./exe
+------------------------------------------+
| testing pt_slist_t....                   |
+------------------------------------------+
the list is: 1 2 3 4 5 4 3 2 1 0 
sort the list: 0 1 1 2 2 3 3 4 4 5 
reverse it: 5 4 4 3 3 2 2 1 1 0 
+------------------------------------------+
| testing pt_dlist_t....                   |
+------------------------------------------+
count = 5
3 1 0 2 4 
reverse traverse: 4 2 0 1 3 
append a new list: 4 2 0 1 3 4 2 0 1 3 
After remove 0 : 3 1 2 4 3 1 2 4 
After remove 1 : 3 2 4 3 2 4 
After remove 2 : 3 4 3 4 
After remove 3 : 4 4 
After remove 4 : 
+------------------------------------------+
| testing pt_queue_t....                   |
+------------------------------------------+
count = 5: 3 1 0 2 4 
peek head = 3
peek tail = 4
After remove head 3 : 1 0 2 4 
After remove tail = 4 : 1 0 2 
After remove head 1 : 0 2 
After remove tail = 2 : 0 
After remove head 0 : 
+------------------------------------------+
| testing pt_vector_t....                  |
+------------------------------------------+
[0] = 0
[1] = 1
[2] = 2
[3] = 3
[4] = 4
[0] = 0
[1] = 1
[2] = 2
[3] = 3
[4] = 4
[5] = 0
[6] = 1
[7] = 2
[8] = 3
[9] = 4
+------------------------------------------+
| testing pt_hash_t....                    |
+------------------------------------------+
		 elp 0x1c0e070: key=00000000, val=ff000000
		 elp 0x1c0e0f0: key=01000000, val=00010000
		 elp 0x1c0e010: key=02000000, val=01010000
		 elp 0x1c0e030: key=03000000, val=02010000
		 elp 0x1c0e130: key=04000000, val=03010000
		 elp 0x1c0e150: key=05000000, val=04010000
		 elp 0x1c0e170: key=06000000, val=05010000
		 elp 0x1c0e5f0: key=07000000, val=06010000
		 elp 0x1c0e610: key=08000000, val=07010000
		 elp 0x1c0e630: key=09000000, val=08010000
iter: key = 0, value = 255
iter: key = 1, value = 256
iter: key = 2, value = 257
iter: key = 3, value = 258
iter: key = 4, value = 259
iter: key = 5, value = 260
iter: key = 6, value = 261
iter: key = 7, value = 262
iter: key = 8, value = 263
iter: key = 9, value = 264
find value 255 for key = 0
find value 256 for key = 1
find value 257 for key = 2
find value 258 for key = 3
find value 259 for key = 4
find value 260 for key = 5
find value 261 for key = 6
find value 262 for key = 7
find value 263 for key = 8
find value 264 for key = 9
key = 10 not found
create_cqueue 8 buckets 1 delta time 
+------------------------------------------+
| testing pt_cqueue_t....                  |
+------------------------------------------+
--------------------------------
-> bucket 0: 
   bucket 1: 
    object_1 timeout value 1
   bucket 2: 
    object_2 timeout value 2
   bucket 3: 
    object_3 timeout value 3
   bucket 4: 
    object_4 timeout value 4
   bucket 5: 
   bucket 6: 
   bucket 7: 
--------------------------------
--------------------------------
   bucket 0: 
-> bucket 1: 
    object_1 timeout value 1
   bucket 2: 
    object_2 timeout value 2
   bucket 3: 
    object_3 timeout value 3
   bucket 4: 
    object_4 timeout value 4
   bucket 5: 
   bucket 6: 
   bucket 7: 
--------------------------------
at time 3, [object_1] triggered!
at time 3, [object_2] triggered!
at time 3, [object_3] triggered!
--------------------------------
   bucket 0: 
   bucket 1: 
   bucket 2: 
   bucket 3: 
-> bucket 4: 
    object_4 timeout value 4
    object_1 timeout value 1
   bucket 5: 
    object_2 timeout value 2
   bucket 6: 
    object_3 timeout value 3
   bucket 7: 
--------------------------------
at time 6, [object_4] triggered!
at time 6, [object_1] triggered!
at time 6, [object_2] triggered!
at time 6, [object_3] triggered!
--------------------------------
   bucket 0: 
    object_2 timeout value 2
   bucket 1: 
    object_3 timeout value 3
   bucket 2: 
    object_4 timeout value 4
   bucket 3: 
   bucket 4: 
   bucket 5: 
   bucket 6: 
-> bucket 7: 
    object_1 timeout value 1
--------------------------------
at time 9, [object_1] triggered!
at time 9, [object_2] triggered!
at time 9, [object_3] triggered!
--------------------------------
   bucket 0: 
   bucket 1: 
-> bucket 2: 
    object_4 timeout value 4
    object_1 timeout value 1
   bucket 3: 
    object_2 timeout value 2
   bucket 4: 
    object_3 timeout value 3
   bucket 5: 
   bucket 6: 
   bucket 7: 
--------------------------------
at time 12, [object_4] triggered!
at time 12, [object_1] triggered!
at time 12, [object_2] triggered!
at time 12, [object_3] triggered!
--------------------------------
   bucket 0: 
    object_4 timeout value 4
   bucket 1: 
   bucket 2: 
   bucket 3: 
   bucket 4: 
-> bucket 5: 
    object_1 timeout value 1
   bucket 6: 
    object_2 timeout value 2
   bucket 7: 
    object_3 timeout value 3
--------------------------------
at time 15, [object_1] triggered!
at time 15, [object_2] triggered!
at time 15, [object_3] triggered!
--------------------------------
-> bucket 0: 
    object_4 timeout value 4
    object_1 timeout value 1
   bucket 1: 
    object_2 timeout value 2
   bucket 2: 
    object_3 timeout value 3
   bucket 3: 
   bucket 4: 
   bucket 5: 
   bucket 6: 
   bucket 7: 
--------------------------------
at time 18, [object_4] triggered!
at time 18, [object_1] triggered!
at time 18, [object_2] triggered!
at time 18, [object_3] triggered!
--------------------------------
   bucket 0: 
   bucket 1: 
   bucket 2: 
-> bucket 3: 
    object_1 timeout value 1
   bucket 4: 
    object_2 timeout value 2
   bucket 5: 
    object_3 timeout value 3
   bucket 6: 
    object_4 timeout value 4
   bucket 7: 
--------------------------------
at time 21, [object_1] triggered!
at time 21, [object_2] triggered!
at time 21, [object_3] triggered!
--------------------------------
   bucket 0: 
    object_3 timeout value 3
   bucket 1: 
   bucket 2: 
   bucket 3: 
   bucket 4: 
   bucket 5: 
-> bucket 6: 
    object_4 timeout value 4
    object_1 timeout value 1
   bucket 7: 
    object_2 timeout value 2
--------------------------------
at time 24, [object_4] triggered!
at time 24, [object_1] triggered!
at time 24, [object_2] triggered!
at time 24, [object_3] triggered!
--------------------------------
   bucket 0: 
-> bucket 1: 
    object_1 timeout value 1
   bucket 2: 
    object_2 timeout value 2
   bucket 3: 
    object_3 timeout value 3
   bucket 4: 
    object_4 timeout value 4
   bucket 5: 
   bucket 6: 
   bucket 7: 
--------------------------------
at time 27, [object_1] triggered!
at time 27, [object_2] triggered!
at time 27, [object_3] triggered!
--------------------------------
   bucket 0: 
   bucket 1: 
   bucket 2: 
   bucket 3: 
-> bucket 4: 
    object_4 timeout value 4
    object_1 timeout value 1
   bucket 5: 
    object_2 timeout value 2
   bucket 6: 
    object_3 timeout value 3
   bucket 7: 
--------------------------------


About

An organic C data structure and defines for network related operations.

License:MIT License


Languages

Language:C 99.7%Language:Makefile 0.3%