table of contents
TM::Serializable(3pm) | User Contributed Perl Documentation | TM::Serializable(3pm) |
NAME¶
TM::Serializable - Topic Maps, abstract trait for stream (map) based input/output drivers
SYNOPSIS¶
# step 1) you write an input/output driver for a serialized TM format package MyFormat; # provides methods sub deserialize { my $self = shift; # gets current map my $stream = shift; # .... fill the map with content } sub serialize { my $self = shift; # get the map # .... return ... #serialized content } 1; # step 2) construct a subclass of TM using this driver package MapWithMyFormat; use TM; use base qw(TM); use Class::Trait qw(TM::Serializable MyFormat); 1; # step 3) use it in your application my $tm = new MapWithMyFormat (url => 'file:map.myformat'); $tm->sync_in; # uses MyFormat to parse the content from the file
DESCRIPTION¶
This trait implements synchronizable resources using a serialized format. Examples are formats such as AsTMa 1.0, 2.0, LTM, CTM, XTM. The only thing these drivers have to provide are the methods "serialize" and "deserialize" which serialize maps to streams and vice-versa.
This trait provides the implementations for "source_in" and "source_out" triggering "deserialize" and "serialize", respectively.
INTERFACE¶
Methods¶
- source_in
- Uses the URL attached to the map object to trigger
"deserialize" on the stream content
behind the resource. All URLs of LWP are supported. If the URI is
"io:stdio" then content from STDIN is
consumed. This content can be consumed more than once (it is buffered
internally), so that you can read several times from
"io:stdin" getting the same input.
If the resource URI is "io:stdout", then nothing happens.
If the resource URI is "null:", then nothing happens.
[Since TM 1.53]: Any additional parameters are passed through to the underlying "deserialize" method.
- source_out
- This method triggers "serialize" on the
object. The contents will be copied to the resource identified by the URI
attached to the object. At the moment, only
"file:" URLs and
"io:stdout" is supported.
If the resource URI is "io:stdin", nothing happens.
If the resource URI is "null:", nothing happens.
If the resource URI is "inline:.." nothing happens.
[Since TM 1.53]: Any additional parameters are passed through to the underlying "serialize" method.
SEE ALSO¶
TM, TM::Synchronizable
AUTHOR INFORMATION¶
Copyright 20(0[2-6]|10), Robert Barta <drrho@cpan.org>, All rights reserved.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. http://www.perl.com/perl/misc/Artistic.html
2019-09-07 | perl v5.28.1 |