TM::Synchronizable::MLDBM(3pm) User Contributed Perl Documentation TM::Synchronizable::MLDBM(3pm)NAME
TM::Synchronizable::MLDBM - Topic Maps, trait for DBM Storage, synchronous
DESCRIPTION
This package subclasses TM::Synchronizable with a MLDBM store. The methods "source_in" and "source_out" do the obvious things of copying
between the DBM file and the in-memory representation. Only during the synchronisation the DBM file is locked. Otherwise the two copies are
independent. The synchronisation is quite performant, certainly faster than using a text representation of the map.
SEE ALSO
TM::ResourceAble, TM::Synchronizable
AUTHOR INFORMATION
Copyright 200[68], 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
perl v5.10.1 2012-06-05 TM::Synchronizable::MLDBM(3pm)
Check Out this Related Man Page
TM::Synchronizable::MapSphere(3pm) User Contributed Perl Documentation TM::Synchronizable::MapSphere(3pm)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.10.1 2008-04-10 TM::Synchronizable::MapSphere(3pm)