Provided by: libtm-perl_1.56-7_all bug

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

AUTHOR INFORMATION

       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