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
Pipe
dequeue behavior.Parameters: arg ( Pipe
)(self
) – ThePipe
instance.If the overloading is done in scripts, the
Pipe
instance 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.
Pipe
instance 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
Pipe
enqueue behavior.Parameters: arg ( Pipe
)(self
) – ThePipe
instance.If the overloading is done in scripts, the
Pipe
instance 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.
Pipe
instance 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)