Sympa::DataSource - Base class of Sympa data source subclasses
# To implemnt Sympa::DataSource::Foo:
package Sympa::DataSource::Foo;
use base qw(Sympa::DataSource);
sub _open {
my $self = shift;
...
return $handle;
}
sub _next {
my $self = shift;
...
return [$email, $gecos];
}
1;
# To use Sympa::DataSource::Foo:
usr Sympa::DataSource;
$ds = Sympa::DataSource->new('Foo', 'member', context => $list,
key => val, ...);
if ($ds and $ds->open) {
while (my $member = $ds->next) {
...
}
$ds->close;
}
TBD.
- new ( $type, $role, context
=> $that, [ key => val, ... ] )
- Constructor. Creates a new instance of Sympa::DataSource.
Parameters:
- $type
- Type of data source. This corresponds to implemented subclasses.
- $role
- Role of data source. 'member',
'owner', 'editor' or
'custom_attribute'.
- context =>
$that
- Context. Sympa::List instance and so on.
- key => val,
...
- Optional or mandatory parameters.
Returns:
A new instance, or "undef" on
failure.
- close ( )
- Instance method. Closes backend and does cleanup.
- is_external (
)
- Instance method. Returns true value if the data source is external
data source. "External" means that it is not
"include_sympa_list" (the instance of
Sympa::DataSource::List) or not including any lists on local domain.
Known bug:
- •
- If a data source is a list included from the other external data
source(s), this method will treat it as non-external so that some requests
not allowed for external data sources, such as
"move_user" request, on corresponding
users may be allowed.
- next ( )
- Instance method. Returns the next entry in data source. Data source
should have been opened.
- open ( )
- Instance method. Opens backend and returns handle.
- get_id ( )
- Instance method. Gets unique ID of the instance.
- get_short_id (
)
- Instance method. Gets data source ID, a hexadecimal string with 8
columns.
- name ( )
- Instance method. Gets human-readable name of data source. Typically
it is value of {name} attribute or result of get_short_id().
- role ( )
- Instance method. Returns $role set by
new().
- __dsh ( )
- Instance method, protected. Returns native query handle
which _open() returned. This may be used only at inside of each
subclass.
- required_modules
- Class or instance method. TBD.
- _open ( [ options... ] )
- Instance mthod. TBD.
- _next ( [ options... ] )
- Instance method, mandatory. TBD.
- _next_ca ( [ options... ] )
- Instance method, mandatory if the data source supports
custom attribute. TBD.
- _close ( )
- Instance method. TBD.
- {context}
- Context of the data source set by new().
- Others
- The other options set by new() may be accessed as attributes.
Sympa::DataSource appeared on Sympa 6.2.45b. See also
"HISTORY" in Sympa::Request::Handler::include.