From Code to Community: Sponsoring The Perl and Raku Conference 2025 Learn more

NAME

Zing::Watcher - Watcher Process

ABSTRACT

Watcher Process

SYNOPSIS

package MyApp;
sub perform {
time;
}
sub receive {
my ($self, $from, $data) = @_;
[$from, $data];
}
sub scheme {
['MyApp::Handler', [], 1];
}
package main;
my $myapp = MyApp->new;
# $myapp->execute;

DESCRIPTION

This package provides a Zing::Process which forks a scheme using Zong::Fork and maintains the desired active processes. The standard process perform and receive methods operate as expected.

INHERITS

This package inherits behaviors from:

Zing::Process

LIBRARIES

This package uses type constraints from:

Zing::Types

SCENARIOS

This package supports the following scenarios:

perform

# given: synopsis
$myapp->perform;

The perform method is meant to be implemented by a subclass and is automatically invoked iteratively by the event-loop.

receive

# given: synopsis
$myapp->receive($myapp->name, { status => 'ok' });

The receive method is meant to be implemented by a subclass and is automatically invoked iteratively by the event-loop.

scheme

# given: synopsis
$myapp->scheme;

The scheme method is meant to be implemented by a subclass and is automatically invoked when the process is executed.

ATTRIBUTES

This package has the following attributes:

on_scheme

on_scheme(Maybe[CodeRef])

This attribute is read-only, accepts (Maybe[CodeRef]) values, and is optional.

METHODS

This package implements the following methods:

scheme

scheme(Any @args) : Scheme

The scheme method, when not overloaded, executes the callback in the "on_scheme" attribute and expects a process scheme to be processed.

scheme example #1
my $watcher = Zing::Watcher->new(
on_scheme => sub {
['MyApp::Handler', [], 1]
},
);
$watcher->scheme;

AUTHOR

Al Newkirk, awncorp@cpan.org

LICENSE

Copyright (C) 2011-2019, Al Newkirk, et al.

This is free software; you can redistribute it and/or modify it under the terms of the The Apache License, Version 2.0, as elucidated in the "license file".

PROJECT

Wiki

Project

Initiatives

Milestones

Contributing

Issues