- Timestamp:
- 09/03/19 19:40:51 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LATMOS-Accounts/lib/LATMOS/Accounts/SynchAccess/base.pm
r2175 r2283 36 36 } 37 37 38 =head2 new( \@bases )38 =head2 new( \@bases, %config ) 39 39 40 40 Create a new SynchAccess instance over given bases 41 42 C<%config>: 43 44 =over 4 45 46 =item cb 47 48 Callback, see L<SetCB> 49 50 =back 41 51 42 52 =cut 43 53 44 54 sub new { 45 my ($class, $bases ) = @_;55 my ($class, $bases, %config) = @_; 46 56 bless { 47 57 bases => [ @{ $bases } ], 58 %config 48 59 }, $class; 49 60 } … … 60 71 } 61 72 73 =head2 SetCB ( $callback ) 74 75 Set a callback to receive the object being call, return the previous one. 76 77 =cut 78 79 sub SetCB { 80 my ( $self, $cb ) = @_; 81 82 my $oldCB = $self->{cb}; 83 $self->{cb} = $cb; 84 return $oldCB; 85 } 86 62 87 sub _return_all { 63 88 my ($self, $sub, @args) = @_; 64 map { $_->$sub(@args) } $self->bases 89 my @allres; 90 foreach my $ba ($self->bases) { 91 my @res = $_->$sub(@args); 92 $self->{cb}->($ba, @res) if($self->{cb}); 93 push(@allres, @res); 94 } 95 @allres; 65 96 } 66 97 … … 82 113 my $failure = 0; 83 114 foreach ($self->bases) { 84 $_->$sub(@args) or do { 115 my $res = $_->$sub(@args); 116 $self->{cb}->($_, $res) if($self->{cb}); 117 $res or do { 85 118 la_log(LA_ERR, "SyncA: Erreur call $sub() for %s", $_); 86 119 $failure = 1; … … 94 127 my $failure = 0; 95 128 foreach ($self->bases) { 96 $_->$sub(@args) and $failure = 1; 129 my $res = $_->$sub(@args) and $failure = 1; 130 $self->{cb}->($_, $res) if($self->{cb}); 97 131 } 98 132 $failure ? 0 : 1; … … 107 141 foreach ($self->bases) { 108 142 if ($_->is_supported_object($otype)) { 109 $_->rename_object($otype, $uid, $newuid) or do { 143 my $res = $_->rename_object($otype, $uid, $newuid); 144 $self->{cb}->($_, $res) if($self->{cb}); 145 $res or do { 110 146 la_log(LA_ERR, 111 147 "Cannot get object $otype/$uid in %s/%s",
Note: See TracChangeset
for help on using the changeset viewer.