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

NAME

       TM::Synchronizable::MapSphere - Topic Maps, trait for a syncing a hierarchical TM repository

SYNOPSIS

          use TM;
          use base qw(TM);
          use Class::Trait ('TM::MapSphere',
                            'TM::Synchronizable::MLDBM' => {
                                exclude => [ "sync_in", "sync_out" ]
                            },
                            'TM::Synchronizable::MapSphere');

DESCRIPTION

       This trait adds "sync_in" and "sync_out" functionality to a map sphere. The point here is that embedded
       child maps are also synced out or in.

   Map Meta Data

INTERFACE

   Methods
       sync_in
           $ms->sync_in ($path)

           A  whole  subtree  of  the  map  repository  can be sync'ed in, i.e. synchronized with contents in an
           associated resource. If this method is triggered with a particular path, then the map there  will  be
           (a)  synced  in,  (b) queried for sub-maps and (c) these sub-maps will be instantiated.  Recursively,
           these submaps will be sync'ed in, etc. All these sub maps will be mounted under this  branch  of  the
           tree.

           When  a map is instantiated, its implementation package will be extracted from the parent map using a
           "implementation" characteristic. The resource  URL  will  be  determined  from  one  of  the  subject
           indicators,  the  base  URI  will  be determined from the subject address of the map topic. If any of
           these are missing, this particular sub-map is ignored.

           Example:  Let  us  assume  that  a  map  has  a  "baseuri"  "http://whatever/"  and  a  resource  URL
           "http://example.org/here.xtm".  It is a materialized map using the XTM driver. If this map is mounted
           into a root map under "/foo/", then the entry will take the form (using AsTMa= 2.0 as notation):

              foo isa topicmap
              ~ http://example.org/here.xtm
              = http://whatever/
              implementation: TM::Materialized::XTM

           @@@ TODO: no path @@@@?

       sync_out
           $ms->sync_out ([ $path ], [ $depth ])

           This method syncs out not only the root map sphere object  (at  least  if  the  resource  "mtime"  is
           earlier that any change on the map sphere). The method also consults the mount tab to find child maps
           and will sync them out as well.

           The optional "path" parameter controls which subtree should be synced out. It defaults to "/".

           The  optional  $depth  controls  how  deep  the  subtree  should  be  followed  downwards. Default is
           "MAX_DEPTH" (see the source).

AUTHOR

       Robert Barta, <drrho@cpan.org>

COPYRIGHT AND LICENSE

       Copyright (C) 200[67] by Robert Barta

       This library is free software; you can redistribute it and/or modify it under  the  same  terms  as  Perl
       itself, either Perl version 5.8.4 or, at your option, any later version of Perl 5 you may have available.

perl v5.18.1                                       2008-04-09                 TM::Synchronizable::MapSphere(3pm)