Is anyone comfortable with the STL? (well, I'm sure SOMEONE is)... I just recently decided it was time to learn the STL... and I came to the priority_queue template... I started thing about if this would be useful for an event system, and wanted to get a little input from anyone that knows the template... This is a VERY ROUGH draft of what I had in mind... class event_type { public: operator int() { return when; }; event_type() { }; ~event_type() { }; time_t when; void EVENTF(*func)(); }; priority_queue<event_type, vector<event_type>, greater<int> > Q; event_type event; event.when = time(0) + 10; // Initialize other event stuff here Q.push(event); void event_process() { event_type *e; int now = time(0); while (!Q.empty() && (*e = Q.top()) && (e->when >= now)) { // process the event (e->func)(); Q.pop(); } } Half of this was mailer code, so that my test code made sense to someone else ;) Good idea? Bad idea? Or is there any point whatsoever? Or is there a better solution? Our current event system cannot handle the load I want to put on it, (in the range of 10000 events), so I want to push it as high as I possibly can without bringing the mud to a standstill so it can process events all day. I'm sure this will work, but I don't want to be taking a step back in efficency, even though this would be easier to handle. Any input/feedback would be appreciated :) Brazil +------------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html | +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/15/00 PST