simpype.pipe¶
SimPype’s pipe.
-
class
simpype.pipe.Pipe(sim, resource, id)¶ The pipe implements the queueing disciplines.
Parameters: - sim (
Simulation) – The SimPype simulation object. - resource (
Resource) – The resource the pipe is associated to. - id (str) – The pipe id.
-
sim¶ The SimPype simulation object.
Type: Simulation
-
env¶ The SimPy environment object.
Type: simpy.Environment
-
id¶ The pipe id.
Type: str
-
add_queue(id, model=None)¶ Add a new queue to the pipe.
Parameters: - id (str) – The id of the new queue.
- model (str) – The model of the new queue. If model is
None, the default queue model is created.
Returns:
- sim (
-
simpype.pipe.dequeue(arg)¶ Decorator for overloading the default
Pipedequeue behavior.Parameters: arg ( Pipe)(self) – ThePipeinstance.If the overloading is done in scripts, the
Pipeinstance must be provided as decorator argument.myresource = sim.add_resource(id = 'myresource') myresource.add_queue(id = 'myqueue') @simpype.pipe.dequeue(myresource.pipe) def dequeue(self): return self.queue['myqueue'].pop()
If the overloading is done inside a Pipe subclass, the decorator must be called without any arguments.
Pipeinstance is automatically provided throughself.class MyPipe(simpype.Pipe): def __init__(self, sim, resource, id): super().__init__(sim, resource, id) self.add_queue(id = 'myqueue') @simpype.pipe.dequeue def dequeue(self): return self.queue['myqueue'].pop()
-
simpype.pipe.enqueue(arg)¶ Decorator for overloading the default
Pipeenqueue behavior.Parameters: arg ( Pipe)(self) – ThePipeinstance.If the overloading is done in scripts, the
Pipeinstance must be provided as decorator argument.myresource = sim.add_resource(id = 'myresource') myresource.add_queue(id = 'myqueue') @simpype.pipe.enqueue(myresource.pipe) def enqueue(self, message): return self.queue['myqueue'].push(message)
If the overloading is done inside a Pipe subclass, the decorator must be called without any arguments.
Pipeinstance is automatically provided throughself.class MyPipe(simpype.Pipe): def __init__(self, sim, resource, id): super().__init__(sim, resource, id) self.add_queue(id = 'myqueue') @simpype.pipe.enqueue def enqueue(self, message): return self.queue['myqueue'].push(message)