00001 /* cque.h */ 00002 /* $Id: */ 00003 00004 #ifndef __CQUE_H__ 00005 #define __CQUE_H__ 00006 #include "config.h" 00007 00008 /* BQUE - Command queue */ 00009 00010 typedef struct bque BQUE; 00011 struct bque { 00012 BQUE *next; 00013 00014 dbref player; /* player who will do command */ 00015 dbref cause; /* player causing command (for %N) */ 00016 dbref sem; /* blocking semaphore */ 00017 int waittime; /* time to run command */ 00018 int queuetime; 00019 int attr; /* blocking attribute */ 00020 char *text; /* buffer for comm, env, and scr text */ 00021 char *comm; /* command */ 00022 char *env[NUM_ENV_VARS]; /* environment vars */ 00023 char *scr[NUM_ENV_VARS]; /* temp vars */ 00024 int nargs; /* How many args I have */ 00025 struct event ev; /* event structure for wait queue */ 00026 }; 00027 00028 /* Per object run queues */ 00029 typedef struct objqe OBJQE; 00030 00031 struct objqe { 00032 dbref obj; 00033 BQUE *cque; 00034 BQUE *ctail; 00035 BQUE *wait_que; // commands waiting on this object 00036 BQUE *pending_que; // obj's commands that are waiting 00037 struct objqe *next; 00038 int queued; 00039 }; 00040 00041 #endif