NAME

Simulation::DiscreteEvent - module for discrete-event simulation

SYNOPSIS

use Simulation::DiscreteEvent;

DESCRIPTION

This module implements library for discrete-event simulation. Currently it is beta quality, I do not plan any backward incompatible changes in interface, but everything may happen. Please see Simulation::DiscreteEvent::Cookbook for information about using this module.

SUBROUTINES/METHODS

new

Creates simulation object.

$self->time

Returns current model time.

$self->schedule($time, $server, $event[, $message])

Schedule event at $time for $server. $event is a string that defines event type. $message is a message that will be passed to $server's event handler.

$self->send($server, $event[, $message])

Schedule $event for $server to happen right now.

$self->add($server_class, %parameters)

Will create new object of class $server_class and add it to model. %parameters are passed to the object constructor. Returns reference to the created object.

$self->run([$stop_time])

Start simulation. You should schedule at least one event before run simulation. Simulation will be finished at $stop_time if specified, or when there will be no more events scheduled for execution.

$self->step

Handles one event from the events queue.

AUTHOR

Pavel Shaydo, <zwon at cpan.org>

BUGS

Please report any bugs or feature requests to bug-simulation-discreteevent at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Simulation-DiscreteEvent. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

perldoc Simulation::DiscreteEvent

Project's git repository can be accessed at

http://github.com/trinitum/perl-Simulation-DiscreteEvent

You can also look for information at:

LICENSE AND COPYRIGHT

Copyright 2010 Pavel Shaydo.

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.