Enum Types#

File Creation#

Open Type#

enum mhi.psout.OpenType(value)#

Used to specify whether to open a *.psout file in a read-only mode, a read-write mode, or write-only. When opening for write-only, also indicates whether an existing file should be overwritten or not.

Valid values are as follows:

CREATE_NEW = <OpenType.CREATE_NEW: 0>#

Create a new file; fail if file exists (write-only)

OPEN_EXISTING = <OpenType.OPEN_EXISTING: 1>#

Open existing file; fail if file does not exist (read-only)

OPEN_CREATE = <OpenType.OPEN_CREATE: 2>#

Open existing, or create if does not exist (read-write)

CREATE_OVERWRITE = <OpenType.CREATE_OVERWRITE: 3>#

Create a new file; delete any existing file (write-only)

CREATE_RENAME = <OpenType.CREATE_RENAME: 4>#

Create a new file; renaming if file exists (write-only)

If the file Example.psout exists, the new file would be named Example_1.psout, or if that exists then Example_2.psout, etc. Use File.path to determine the filename that was actually selected.

Page Size#

enum mhi.psout.PageSize(value)#

Size of memory-mapped “pages” (allocation size)

Larger page size may require less page swapping, which may be faster, but it may provide more wasted unused space. and require more memory to operate on.

Valid values are as follows:

DEFAULT = <PageSize.DEFAULT: 0>#
PS_1024 = <PageSize.PS_1024: 1>#
PS_2048 = <PageSize.PS_2048: 2>#
PS_4096 = <PageSize.PS_4096: 3>#
PS_8192 = <PageSize.PS_8192: 4>#
PS_16384 = <PageSize.PS_16384: 5>#
PS_32768 = <PageSize.PS_32768: 6>#
PS_65536 = <PageSize.PS_65536: 7>#

Reserve Size#

enum mhi.psout.ReserveSize(value)#

The initial size of the file in pages.

To get the size in bytes multiply this value * the page size value. The large the initial size is, the longer it has until the first resizing operation. The resizing operation are semi-expensive; by allocating more at the start, it can postpone any resize operation.

Valid values are as follows:

DEFAULT = <ReserveSize.DEFAULT: 0>#
RS_1024 = <ReserveSize.RS_1024: 1>#
RS_2048 = <ReserveSize.RS_2048: 2>#
RS_4096 = <ReserveSize.RS_4096: 3>#
RS_8192 = <ReserveSize.RS_8192: 4>#
RS_16384 = <ReserveSize.RS_16384: 5>#
RS_32768 = <ReserveSize.RS_32768: 6>#
RS_65536 = <ReserveSize.RS_65536: 7>#
RS_131072 = <ReserveSize.RS_131072: 8>#
RS_262144 = <ReserveSize.RS_262144: 9>#
RS_524288 = <ReserveSize.RS_524288: 10>#
RS_1048576 = <ReserveSize.RS_1048576: 11>#

Growth Size#

enum mhi.psout.GrowthSize(value)#

The size of the file will grow by when needing to allocate space.

To get the size in bytes multiply this value * the page size value. The large the growth size is, the fewer resizing operation it will need but the more potential space it may take up (temporary) while writing. The resizing operation are semi-expensive, by increasing the amount it resizes it can reduce the number of resize operations.

Valid values are as follows:

DEFAULT = <GrowthSize.DEFAULT: 0>#
GS_256 = <GrowthSize.GS_256: 1>#
GS_512 = <GrowthSize.GS_512: 2>#
GS_1024 = <GrowthSize.GS_1024: 3>#
GS_2048 = <GrowthSize.GS_2048: 4>#
GS_4096 = <GrowthSize.GS_4096: 5>#
GS_8192 = <GrowthSize.GS_8192: 6>#
GS_16384 = <GrowthSize.GS_16384: 7>#
GS_32768 = <GrowthSize.GS_32768: 8>#
GS_655536 = <GrowthSize.GS_655536: 9>#
GS_131072 = <GrowthSize.GS_131072: 10>#
GS_262144 = <GrowthSize.GS_262144: 11>#
GS_524288 = <GrowthSize.GS_524288: 12>#
GS_1048576 = <GrowthSize.GS_1048576: 13>#

Data Type#

enum mhi.psout.DataType(value)#

The variable types that can be stored.

Some of the variable types in here are defined as a buffered type, meaning that they have no definitive size, and the size must be provided for each value to be set

Valid values are as follows:

DEFAULT = <DataType.DEFAULT: 0>#

Determine the data type from the actual data values

BIT = <DataType.BIT: 1>#
BYTE = <DataType.BYTE: 2>#
CHARACTER = <DataType.CHARACTER: 8>#
WIDE_CHAR = <DataType.WIDE_CHAR: 9>#
INT16 = <DataType.INT16: 16>#
UINT16 = <DataType.UINT16: 17>#
INT32 = <DataType.INT32: 18>#
UINT32 = <DataType.UINT32: 19>#
INT64 = <DataType.INT64: 20>#
UINT64 = <DataType.UINT64: 21>#
REAL32 = <DataType.REAL32: 32>#
REAL64 = <DataType.REAL64: 33>#
COMPLEX64 = <DataType.COMPLEX64: 64>#
COMPLEX128 = <DataType.COMPLEX128: 65>#
STRING_ASCII = <DataType.STRING_ASCII: 128>#
STRING_UNICODE = <DataType.STRING_UNICODE: 129>#
BLOB = <DataType.BLOB: 255>#

Call Type#

enum mhi.psout.CallType(value)#

Types for Call nodes in the Call Tree

Valid values are as follows:

MODULE = <CallType.MODULE: 1>#

Has a parent, may have children.

TRACE = <CallType.TRACE: 2>#

May not have children. Maps to a trace.

ROOT = <CallType.ROOT: 3>#

Has no parent.