Prima::File is a descendant of Prima::Component.
Objects of Prima::File class must be binded to a valid file handle object,
before the associated events can occur:
my $f = Prima::File-> create();
$f-> file( *STDIN);
When a file handle, binded via the ::file property becomes readable,
writable or when an exception signaled, one of three correspondent
events called - Read, Write or Exception. When a handle is
always readable, or always writable, or, some of these events are
desired to be blocked, the file event mask can be set via the ::mask
$f-> mask( fe::Read | fe::Exception);
NB. Due to different system implementations, the only handles,
currently supported on all systems, are socket handle and disk file
handles. Pipes only work on unix platforms. The example file socket.pl
elucidates the use of sockets together with Prima::File.
When a file handle is not needed anymore, it is expected to
be detached from an object explicitly:
$f-> file( undef);
However, if the system detects that a file handle is no longer valid,
it is automatically detached. It is possible to check, if a file handle
is still valid by calling the is_active() method.
Prima::File events are basically the same I/O callbacks, provided by
a system select() call. See documentation of your systems select()
for the implementation details.