//////////////////////////////////////////////////////////////////////
#include <ngx_queue.h>
//ngx_queue_t测试
typedef struct
{
u_char * str;
ngx_queue_t qEle;
int num;
}TestNote;
ngx_int_t compTestNote(const ngx_queue_t *a, const ngx_queue_t *b)
{
TestNote* aNote = ngx_queue_data(a, TestNote, qEle);
TestNote* bNote = ngx_queue_data(b, TestNote, qEle);
return aNote->num > bNote->num;
}
//////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////
ngx_queue_t queueContainer;
ngx_queue_init(&queueContainer);
int j = 0;
TestNote note[5] = {0};
for(; j < 5; j++)
{
note[j].num = j;
}
ngx_queue_insert_tail(&queueContainer, ¬e[0].qEle);
ngx_queue_insert_head(&queueContainer, ¬e[1].qEle);
ngx_queue_insert_tail(&queueContainer, ¬e[2].qEle);
ngx_queue_insert_after(&queueContainer, ¬e[3].qEle);
ngx_queue_insert_tail(&queueContainer, ¬e[4].qEle);
ngx_queue_t *q;
for(q = ngx_queue_head(&queueContainer); q != ngx_queue_sentinel(&queueContainer); q = ngx_queue_next(q))
{
TestNote * eleNote = ngx_queue_data(q, TestNote, qEle);
printf("num=%d\n", eleNote->num);
}
ngx_queue_sort(q, compTestNote);
for(q = ngx_queue_head(&queueContainer); q != ngx_queue_sentinel(&queueContainer); q = ngx_queue_next(q))
{
TestNote * eleNote = ngx_queue_data(q, TestNote, qEle);
printf("num=%d\n", eleNote->num);
}
////////////////////////////////////////////////////////////////////////////////////