1 |
## ------------------------------------------------------------------------- |
2 |
## |
3 |
## $Id: Sync.pm,v 1.16 2003/02/09 04:56:03 joko Exp $ |
4 |
## |
5 |
## Copyright (c) 2002, 2003 Andreas Motl <andreas.motl@ilo.de> |
6 |
## |
7 |
## This module is licensed under the same terms as Perl itself. |
8 |
## |
9 |
## ------------------------------------------------------------------------- |
10 |
## $Log: Sync.pm,v $ |
11 |
## Revision 1.16 2003/02/09 04:56:03 joko |
12 |
## + modified header |
13 |
## + api versioning mechanism |
14 |
## |
15 |
## Revision 1.15 2003/01/20 16:58:07 joko |
16 |
## + loading new plugin-modules on startup: 'Metadata' and 'StorageInterface' |
17 |
## both refactored from other - already established - plugin-modules |
18 |
## |
19 |
## Revision 1.14 2003/01/19 03:25:54 joko |
20 |
## + modified header |
21 |
## |
22 |
## Revision 1.13 2003/01/19 01:23:03 joko |
23 |
## + new from Data/Transfer/Sync.pm |
24 |
## ------------------------------------------------------------------------- |
25 |
|
26 |
|
27 |
# This module is a bootstrap container. |
28 |
# It doesn't contain any code, everything is loaded on (demand)/startup. |
29 |
# The magic behind that solves "Mix-in inheritance", implemented in Perl by |
30 |
# Michael G Schwern. You won't find any usage of "mixin.pm" itself inside here, |
31 |
# since it is encapsulated behind DesignPattern::Bridge->load("{module}"). |
32 |
# Please visit C<perldoc DesignPattern::Bridge>. |
33 |
|
34 |
package Data::Transfer::Sync; |
35 |
|
36 |
use strict; |
37 |
use warnings; |
38 |
|
39 |
use base qw( DesignPattern::Object ); |
40 |
use base qw( DesignPattern::Bridge ); |
41 |
|
42 |
|
43 |
use Data::Dumper; |
44 |
|
45 |
# get logger instance |
46 |
my $logger = Log::Dispatch::Config->instance; |
47 |
|
48 |
|
49 |
sub constructor { |
50 |
my $self = shift; |
51 |
|
52 |
# debug point |
53 |
#print Dumper($self); |
54 |
#exit; |
55 |
$logger->debug( __PACKAGE__ . "->constructor" ); |
56 |
|
57 |
# Load "plugin" modules. |
58 |
$self->load('Core'); |
59 |
$self->load('Metadata'); |
60 |
$self->load('API', { method => 'api_constructor' } ); |
61 |
$self->load('StorageInterface'); |
62 |
$self->load('Compare::Checksum'); |
63 |
# new of 2003-05-12: Split topic from Metadata module. |
64 |
$self->load('Map'); |
65 |
|
66 |
# Propagate all arguments. |
67 |
$self->configure(@_); |
68 |
} |
69 |
|
70 |
1; |
71 |
__END__ |