DBD-WMI
view release on metacpan or search on metacpan
lib/Win32/WQL.pm view on Meta::CPAN
__PACKAGE__->mk_accessors(qw(iterator_class wmi query wmi_method));
sub execute {
my ($self) = @_;
my $m = $self->wmi_method;
my $i = $self->wmi->wmi->$m( $self->query );
return $self->iterator_class->new({
wql_iterator => $i
});
}
package Win32::WQL::Iterator::Collection;
use strict;
use base 'Class::Accessor';
__PACKAGE__->mk_accessors(qw(wql_iterator items));
use Win32::OLE qw(in);
use Data::Dumper;
# Finite, prefetched list
sub new {
my ($package,$args) = @_;
my @items = in delete $args->{wql_iterator};
$args->{items} = \@items;
$package->SUPER::new($args);
}
sub fetchrow {
my ($self) = @_;
if (@{ $self->items }) {
shift @{ $self->items };
} else {
return ()
};
}
package Win32::WQL::Iterator::Event;
use strict;
use base 'Class::Accessor';
__PACKAGE__->mk_accessors(qw(wql_iterator));
# potentially infinite list
sub fetchrow {
my ($self) = @_;
return $self->wql_iterator->NextEvent();
}
1;
=head1 SEE ALSO
L<DBD::WMI> for more examples
=head1 TODO
=over 4
=item * Implement parameters for and credentials
=item * Implement a multiplexer by using multiple, waiting threads so you can C<SELECT>
events from more than one WMI namespace
=back
=head1 REPOSITORY
The public repository of this module is
L<https://github.com/Corion/dbd-wmi>.
=head1 SUPPORT
The public support forum of this module is
L<https://perlmonks.org/>.
=head1 BUG TRACKER
Please report bugs in this module via the RT CPAN bug queue at
L<https://rt.cpan.org/Public/Dist/Display.html?Name=DBD-WMI>
or via mail to L<www-mechanize-phantomjs-Bugs@rt.cpan.org>.
=head1 AUTHOR
Max Maischein C<corion@cpan.org>
=head1 COPYRIGHT (c)
Copyright 2009-2018 by Max Maischein C<corion@cpan.org>.
=head1 LICENSE
This module is released under the same terms as Perl itself.
=cut
( run in 0.984 second using v1.01-cache-2.11-cpan-5837b0d9d2c )