NAME¶
TM::Synchronizable - Topic Maps, trait for synchronizable resources
SYNOPSIS¶
# you write an input/output driver
# see for example TM::Synchronizable::MLDBM
package My::WhatEver;
# provides source_in and/or source_out methods
sub source_in { .... }
sub source_out { .... }
1;
# you construct your map class
package MySyncableMap;
use TM;
use base qw(TM);
use Class::Trait qw(TM::ResourceAble TM::Synchronizable My::WhatEver);
1;
# you then use that
my $tm = MySyncableMap (url => 'file:/where/ever');
$tm->sync_in;
# work with the map, etc...
$tm->sync_out;
DESCRIPTION¶
This trait implements the abstract synchronization between in-memory topic maps
and the resources which are attached to them, i.e. files, web pages, etc.
whatever can be addressed via a URI. Consequently, this trait inherits from
TM::ResourceAble, although Class::Trait does not do this for you (sadly).
The trait provides the methods "sync_in" and "sync_out" to
implement the synchronization. In this process it uses the timestamp of the
map ("last_mod") and that of the resource "mtime".
Unfortunately, the granularity of the two are different (at least on current
UNIX systems): for the
last modification time values from Time::HiRes
is used. UNIX resources only use an integer.
Note: This needs a bit of consideration from the user's side.
INTERFACE¶
Methods¶
- sync_in
- $tm->sync_in
This method provides only the main logic, whether a synchronisation from the
resource into the in-memory map should occur. If the last modification
date of the resource ("mtime") is more recent than that of the
map ("last_mod"), then synchronisation from the resource to the
in-memory map will be triggered. For this, a method "source_in"
has to exist for the map object; that will be invoked.
[Since TM 1.53]: Any additional parameters are passed through to the
underlying "source_in" method.
- sync_out
- $tm->sync_out
This method provides the logic, whether synchronisation from the in-memory
map towards the attached resource should occur or not. If the last
modification date of the map ("last_mod") is more recent than
that of the resource ("mtime"), then a method
"source_out" for the object is triggered.
[Since TM 1.53]: Any additional parameters are passed through to the
underlying "source_out" method.
SEE ALSO¶
TM, TM::ResourceAble
Copyright 20(0[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