NAME

Protocol::Sys::Virt::TypedParams - Helper functions for typed parameter values

VERSION

v12.0.2

SYNOPSYS

my $params = typed_params_new();
typed_params_field( $params, MIGRATE_PARAM_DEST_NAME,
                    typed_value_new( TYPED_PARAM_STRING, 'test' ) );

my $dest = typed_params_field_string_value( $params, MIGRATE_PARAM_DEST_NAME );

DESCRIPTION

Typed parameters and typed parameter sets are part of the LibVirt protocol. This module offers a set of functions to work with typed parameters and parameter sets.

CONSTANTS

TYPED_PARAM_*

  • TYPED_PARAM_INT

    Integer (32-bit) value parameter

  • TYPED_PARAM_UINT

    Unsigned integer value parameter

  • TYPED_PARAM_LLONG

    Long long (64-bit) integer value parameter

  • TYPED_PARAM_ULLONG

    Unsigned long long integer value parameter

  • TYPED_PARAM_DOUBLE

    IEEE double float value parameter

  • TYPED_PARAM_BOOLEAN

    Boolean value parameter

  • TYPED_PARAM_STRING

    String value parameter; servers need to indicate feature DRV_FEATURE_TYPED_PARAM_STRING to accept this type of parameter

FUNCTIONS

typed_params_new

my $new_params = typed_params_new();

# - or -
my $new_params = typed_params_new( $old_params );

Creates and returns a new typed parameter set. If $old_params is passed, the structure is duplicated to create the return value.

typed_field_new

my $new_field = typed_field_new( 'name', TYPED_PARAM_INT, 3 );

Creates a new typed parameter field to become an entry in a typed parameter set.

typed_value_new

my $value = typed_value_new( $type, $value );

Creates and returns a new typed value.

typed_params_field

my $field = typed_params_field( $params, $name );

# - or -
typed_params_field( $params, $name, $typed_value );

When invoked as getter, returns the first field named $name in the parameter set. When invoked as a setter, changes the value of the first named field to the value provided, or, if no matching field is found, adds a field by this name to the parameter set.

typed_params_fields

my $fields = typed_params_fields( $params, $fieldname );

Returns all fields in the parameter set whose name matches $fieldname.

typed_params_field_int_value

my $value = typed_params_field_int_value( $params, $fieldname );

# - or -
typed_params_field_int_value( $params, $fieldname, $value );

When invoked as a getter, returns the value of the first parameter in $params whose name matches $fieldname. When invoked as a setter, sets the value of the first parameter in $params whose name matches $fieldname to $value, or, when no such entry exists, adds a parameter by this name and value.

When the entry exists, but has a different type, an error is thrown.

typed_params_field_uint_value

my $value = typed_params_field_uint_value( $params, $fieldname );

# - or -
typed_params_field_uint_value( $params, $fieldname, $value );

When invoked as a getter, returns the value of the first parameter in $params whose name matches $fieldname. When invoked as a setter, sets the value of the first parameter in $params whose name matches $fieldname to $value, or, when no such entry exists, adds a parameter by this name and value.

When the entry exists, but has a different type, an error is thrown.

typed_params_field_long_value

my $value = typed_params_field_long_value( $params, $fieldname );

# - or -
typed_params_field_long_value( $params, $fieldname, $value );

When invoked as a getter, returns the value of the first parameter in $params whose name matches $fieldname. When invoked as a setter, sets the value of the first parameter in $params whose name matches $fieldname to $value, or, when no such entry exists, adds a parameter by this name and value.

When the entry exists, but has a different type, an error is thrown.

typed_params_field_ulong_value

my $value = typed_params_field_ulong_value( $params, $fieldname );

# - or -
typed_params_field_ulong_value( $params, $fieldname, $value );

When invoked as a getter, returns the value of the first parameter in $params whose name matches $fieldname. When invoked as a setter, sets the value of the first parameter in $params whose name matches $fieldname to $value, or, when no such entry exists, adds a parameter by this name and value.

When the entry exists, but has a different type, an error is thrown.

typed_params_field_double_value

my $value = typed_params_field_double_value( $params, $fieldname );

# - or -
typed_params_field_double_value( $params, $fieldname, $value );

When invoked as a getter, returns the value of the first parameter in $params whose name matches $fieldname. When invoked as a setter, sets the value of the first parameter in $params whose name matches $fieldname to $value, or, when no such entry exists, adds a parameter by this name and value.

When the entry exists, but has a different type, an error is thrown.

typed_params_field_boolean_value

my $value = typed_params_field_boolean_value( $params, $fieldname );

# - or -
typed_params_field_boolean_value( $params, $fieldname, $value );

When invoked as a getter, returns the value of the first parameter in $params whose name matches $fieldname. When invoked as a setter, sets the value of the first parameter in $params whose name matches $fieldname to $value, or, when no such entry exists, adds a parameter by this name and value.

When the entry exists, but has a different type, an error is thrown.

typed_params_field_string_value

my $value = typed_params_field_string_value( $params, $fieldname );

# - or -
typed_params_field_string_value( $params, $fieldname, $value );

When invoked as a getter, returns the value of the first parameter in $params whose name matches $fieldname. When invoked as a setter, sets the value of the first parameter in $params whose name matches $fieldname to $value, or, when no such entry exists, adds a parameter by this name and value.

When the entry exists, but has a different type, an error is thrown.

Note that TYPED_PARAM_STRING typed parameters can only be sent to servers declaring support for DRV_FEATURE_TYPED_PARAM_STRING.

SEE ALSO

LibVirt, Sys::Virt

LICENSE AND COPYRIGHT

See the LICENSE file in this distribution.