// filename : queue.h // written by Ting-jen Yen // description: This file define the structures of the classes // of Queue_item and Queue, which are used to // handle requests on the clients before send // through network one by one. // #ifndef _QUEUE_H #define _QUEUE_H #include #ifndef NULL # define _LOCAL_NULL # define NULL 0 #endif #define NO_REQUEST 0 #define VIEW_NEW_IMAGE 1 #define GET_MORE_DATA 2 #define CLOSE_CONNECTION 3 #define GET_LIST 4 class Queue_item { public: Queue_item (void); Queue_item (int, int, int, int, int); Queue_item (int, int, int, int, int, int); int request_type; int level; int st_col; int en_col; int st_row; int en_row; int depend; Queue_item * next; }; class Queue { public: Queue (void); ~Queue (void); void startup(void); void stop(void); Queue_item *dequeue(void); void clean(void); int enqueue(int, int, int, int, int); int enqueue(int, int, int, int, int, int); int enqueue(int); void reduce(int, int, int, int, int); int length(void); private: int Length; Queue_item * head; Queue_item * tail; }; #ifdef _LOCAL_NULL # undef NULL # undef _LOCAL_NULL #endif #endif