sourCEntral - mobile manpages

pdf

Net::DBus::Test::MockIterator

NAME

Net::DBus::Test::MockIterator − Iterator over a mock message

SYNOPSIS

Creating a new message

  my $msg = new Net::DBus::Test::MockMessage
  my $iterator = $msg−>iterator;
  $iterator−>append_boolean(1);
  $iterator−>append_byte(123);

Reading from a mesage

  my $msg = ...get it from somewhere...
  my $iter = $msg−>iterator();
  my $i = 0;
  while ($iter−>has_next()) {
    $iter−>next();
    $i++;
    if ($i == 1) {
       my $val = $iter−>get_boolean();
    } elsif ($i == 2) {
       my $val = $iter−>get_byte();
    }
  }

DESCRIPTION

This module provides a "mock" counterpart to the Net::DBus::Binding::Iterator object which is capable of iterating over mock message objects. Instances of this module are not created directly, instead they are obtained via the "iterator" method on the Net::DBus::Test::MockMessage module.

METHODS

$res = $iter−>has_next()

Determines if there are any more fields in the message itertor to be read. Returns a positive value if there are more fields, zero otherwise.

$success = $iter−>next()

Skips the iterator onto the next field in the message. Returns a positive value if the current field pointer was successfully advanced, zero otherwise.

my $val = $iter−>get_boolean()
$iter−>append_boolean($val);

Read or write a boolean value from/to the message iterator

my $val = $iter−>get_byte()
$iter−>append_byte($val);

Read or write a single byte value from/to the message iterator.

my $val = $iter−>get_string()
$iter−>append_string($val);

Read or write a UTF−8 string value from/to the message iterator

my $val = $iter−>get_object_path()
$iter−>append_object_path($val);

Read or write a UTF−8 string value, whose contents is a valid object path, from/to the message iterator

my $val = $iter−>get_signature()
$iter−>append_signature($val);

Read or write a UTF−8 string, whose contents is a valid type signature, value from/to the message iterator

my $val = $iter−>get_int16()
$iter−>append_int16($val);

Read or write a signed 16 bit value from/to the message iterator

my $val = $iter−>get_uint16()
$iter−>append_uint16($val);

Read or write an unsigned 16 bit value from/to the message iterator

my $val = $iter−>get_int32()
$iter−>append_int32($val);

Read or write a signed 32 bit value from/to the message iterator

my $val = $iter−>get_uint32()
$iter−>append_uint32($val);

Read or write an unsigned 32 bit value from/to the message iterator

my $val = $iter−>get_int64()
$iter−>append_int64($val);

Read or write a signed 64 bit value from/to the message iterator. An error will be raised if this build of Perl does not support 64 bit integers

my $val = $iter−>get_uint64()
$iter−>append_uint64($val);

Read or write an unsigned 64 bit value from/to the message iterator. An error will be raised if this build of Perl does not support 64 bit integers

my $val = $iter−>get_double()
$iter−>append_double($val);

Read or write a double precision floating point value from/to the message iterator

my $value = $iter−>get()
my $value = $iter−>get($type);

Get the current value pointed to by this iterator. If the optional $type parameter is supplied, the wire type will be compared with the desired type & a warning output if their differ. The $type value must be one of the "Net::DBus::Binding::Message::TYPE*" constants.

my $hashref = $iter−>get_dict()

If the iterator currently points to a dictionary value, unmarshalls and returns the value as a hash reference.

my $hashref = $iter−>get_array()

If the iterator currently points to an array value, unmarshalls and returns the value as a array reference.

my $hashref = $iter−>get_variant()

If the iterator currently points to a variant value, unmarshalls and returns the value contained in the variant.

my $hashref = $iter−>get_struct()

If the iterator currently points to an struct value, unmarshalls and returns the value as a array reference. The values in the array correspond to members of the struct.

$iter−>append($value)
$iter−>append($value, $type)

Appends a value to the message associated with this iterator. The value is marshalled into wire format, according to the following rules.

If the $value is an instance of Net::DBus::Binding::Value, the embedded data type is used.

If the $type parameter is supplied, that is taken to represent the data type. The type must be one of the "Net::DBus::Binding::Message::TYPE_*" constants.

Otherwise, the data type is chosen to be a string, dict or array according to the perl data types SCALAR , HASH or ARRAY .

my $type = $iter−>guess_type($value)

Make a best guess at the on the wire data type to use for marshalling $value. If the value is a hash reference, the dictionary type is returned; if the value is an array reference the array type is returned; otherwise the string type is returned.

my $sig = $iter−>format_signature($type)

Given a data type representation, construct a corresponding signature string

$iter−>append_array($value, $type)

Append an array of values to the message. The $value parameter must be an array reference, whose elements all have the same data type specified by the $type parameter.

$iter−>append_struct($value, $type)

Append a struct to the message. The $value parameter must be an array reference, whose elements correspond to members of the structure. The $type parameter encodes the type of each member of the struct.

$iter−>append_dict($value, $type)

Append a dictionary to the message. The $value parameter must be an hash reference.The $type parameter encodes the type of the key and value of the hash.

$iter−>append_variant($value)

Append a value to the message, encoded as a variant type. The $value can be of any type, however, the variant will be encoded as either a string, dictionary or array according to the rules of the "guess_type" method.

my $type = $iter−>get_arg_type

Retrieves the type code of the value pointing to by this iterator. The returned code will correspond to one of the constants "Net::DBus::Binding::Message::TYPE_*"

my $type = $iter−>get_element_type

If the iterator points to an array, retrieves the type code of array elements. The returned code will correspond to one of the constants "Net::DBus::Binding::Message::TYPE_*"

BUGS

It doesn’t completely replicate the API of Net::DBus::Binding::Iterator, merely enough to make the high level bindings work in a test scenario.

AUTHOR

Daniel P. Berrange

COPYRIGHT

Copyright (C) 2005−2009 Daniel P. Berrange

SEE ALSO

Net::DBus::Test::MockMessage, Net::DBus::Binding::Iterator, <http://www.mockobjects.com/Faq.html>

pdf