BlockAllocator

class supriya.tools.servertools.BlockAllocator(heap_maximum=None, heap_minimum=0)[source]

A block allocator.

>>> from supriya.tools import servertools
>>> allocator = servertools.BlockAllocator(
...     heap_maximum=16,
...     )
>>> allocator.allocate(4)
0
>>> allocator.allocate(4)
4
>>> allocator.allocate(4)
8
>>> allocator.allocate(8) is None
True
>>> allocator.free(8)
>>> allocator.allocate(8)
8

Lineage

digraph InheritanceGraph { graph [background=transparent, bgcolor=transparent, color=lightslategrey, fontname=Arial, outputorder=edgesfirst, overlap=prism, penwidth=2, rankdir=LR, root="__builtin__.object", splines=spline, style="dotted, rounded", truecolor=true]; node [colorscheme=pastel19, fontname=Arial, fontsize=12, penwidth=2, style="filled, rounded"]; edge [color=lightsteelblue2, penwidth=2]; subgraph cluster_builtins { graph [label=builtins]; "builtins.object" [color=1, group=0, label=object, shape=box]; } subgraph cluster_servertools { graph [label=servertools]; "supriya.tools.servertools.BlockAllocator.BlockAllocator" [color=black, fontcolor=white, group=1, label=<<B>BlockAllocator</B>>, shape=box, style="filled, rounded"]; } subgraph cluster_systemtools { graph [label=systemtools]; "supriya.tools.systemtools.SupriyaObject.AbstractBase" [color=3, group=2, label=AbstractBase, shape=box]; "supriya.tools.systemtools.SupriyaObject.SupriyaObject" [color=3, group=2, label=SupriyaObject, shape=box]; "supriya.tools.systemtools.SupriyaObject.AbstractBase" -> "supriya.tools.systemtools.SupriyaObject.SupriyaObject"; } "builtins.object" -> "supriya.tools.systemtools.SupriyaObject.AbstractBase"; "supriya.tools.systemtools.SupriyaObject.SupriyaObject" -> "supriya.tools.servertools.BlockAllocator.BlockAllocator"; }

Bases

Attribute summary

allocate([desired_block_size])
allocate_at([index, desired_block_size])
free(block_id)
heap_maximum Maximum allocatable index.
heap_minimum Minimum allocatable index.
__eq__(expr) Is true when ID of expr equals ID of Supriya object.
__format__([format_specification]) Formats Supriya object.
__hash__() Hashes Supriya object.
__repr__() Gets interpreter representation of Supriya object.

Read-only properties

BlockAllocator.heap_maximum

Maximum allocatable index.

BlockAllocator.heap_minimum

Minimum allocatable index.

Methods

BlockAllocator.allocate(desired_block_size=1)[source]
BlockAllocator.allocate_at(index=None, desired_block_size=1)[source]
BlockAllocator.free(block_id)[source]

Special methods

(SupriyaObject).__eq__(expr)

Is true when ID of expr equals ID of Supriya object. Otherwise false.

Returns boolean.

(SupriyaObject).__format__(format_specification='')

Formats Supriya object.

Set format_specification to ‘’ or ‘storage’. Interprets ‘’ equal to ‘storage’.

Returns string.

(SupriyaObject).__hash__()

Hashes Supriya object.

Required to be explicitely re-defined on Python 3 if __eq__ changes.

Returns integer.

(SupriyaObject).__repr__()

Gets interpreter representation of Supriya object.

Returns string.