[MUD-Dev] DBs and Events

Greg Munt greg at uni-corn.demon.co.uk
Wed Feb 11 10:47:34 CET 1998


On Tue, 10 Feb 1998, Nathan Yospe wrote:

> On Tue, 10 Feb 1998, Greg Munt wrote:
> 
> :Also, any references to caches?
> 
> Again, can't help you. I've done caches, but not for my mud... and there
> is such a broad spectrum of things that qualify as cache. Do you want to
> know more about cached in-memory storage for a disk-based DB? 

Yes.

> Or bottleneck spot caching?

What's that?
 
> :Any references to Event Management? Is there any alternative to using a 
> :pointer to a function, to store the Event->function()? (This has the 
> :disadvantage of every Event->function() needing to have the same number 
> :and type of parameters being passed to it.)
> 
> Here we go. This I can help you with. Events don't have to be functions,
> for a start. An event could be stored as anything, from a script on down
> to a held thread. I store mine as classes... any action is executed from
> an event class, which grabs the nearest available execution thread, sets
> it to the event's references, and frees it to go. Events are, by design,
> only actually capable of grabbing one specific thread, such that any set
> of events cannot execute asynchronously on the same resources. Functions
> are actually pulled up _after_ execution begins... Event.Process() is at
> its basis a normalization check, which tries to match a list of objects,
> and upon success, changes the values of the objects to a new norm, then,
> with its still-active thread, allows those objects to update. The object
> update methods are the actual functions involved, and once each object's
> updates are complete (and affected objects with zero delay complete such
> updates as the modified objects have made available) the thread is wiped
> clear of variables, set to sleep, and returned to the pool. 

I'm not sure I understand this too well. Are you suggesting this?

class Event
  {
     private:
       DataType1 *a;
       DataType2 *b;
       ...

     public:
       ...
       process();
  };

I still can't see how the event isn't a function. The tasks that the 
event does have to be stored in a function?

Am I wrong in thinking that the data that an Event needs (eg pointer to a 
Player) are stored in the class, with a function - which takes no 
parameters - calling class methods to do whatever it is that the Event is 
trying to achieve? Also, it looks like Event would need to be a template. 
Forget that, am using Linux g++ :(

I feel like I have totally gotten the wrong end of the stick here... 

> This is just
> one approach to events that doesn't actually require a function pointer,
> and a good number of others can be found in deja news archives of thread
> and event related newsgroups.

Could you lead me in the right direction here? Searches on dejanews 
revealed not very much (read: nothing)...

> Nathan F. Yospe - Aimed High, Crashed Hard, In the Hanger, Back Flying Soon
> Jr Software Engineer, Textron Systems Division (On loan to Rocketdyne Tech)
> (Temporarily on Hold) Physics student, University of Hawaii dept of Physics
> yospe at hawaii.edu nyospe at premeir.mhpcc.af.mil http://www2.hawaii.edu/~yospe/

I'll use this opportunity to keep you updated on my work activities: I 
finally got a job, C++/Unix, using such tools as Rational Rose, etc. I'll 
be maintaining and developing planning and scheduling software for the 
steel industry. Will post a FAQ update soon.

I'm free of Cobol now! Hurrah!

--
Greg Munt, greg at uni-corn.demon.co.uk   "I'm not bitter - just twisted."
http://www.uni-corn.demon.co.uk/ubiquity/





More information about the mud-dev-archive mailing list