Sympa::DataSource.3Sympa - Man Page
Base class of Sympa data source subclasses
Synopsis
# 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; }
Description
TBD.
Methods
- 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.
- 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
- 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.
Methods subclass should implement
- 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.
Attributes
- {context}
Context of the data source set by new().
- Others
The other options set by new() may be accessed as attributes.
History
Sympa::DataSource appeared on Sympa 6.2.45b. See also "HISTORY" in Sympa::Request::Handler::include.