Scroll to navigation

Sympa::DataSource(3Sympa) sympa 6.2.58 Sympa::DataSource(3Sympa)


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];
  # 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) {




Constructor. Creates a new instance of Sympa::DataSource.


Type of data source. This corresponds to impemented subclasses.
Role of data source. 'member', 'owner', 'editor' or 'custom_attribute'.
Context. Sympa::List instance and so on.
Optional or mandatory parameters.


A new instance, or "undef" on failure.

Instance method. Closes backend and does cleanup.
Instance method. Returns the next entry in data source. Data source should have been opened.
Instance method. Opens backend and returns handle.
Instance method. Gets unique ID of the instance.
Instance method. Gets data source ID, a hexadecimal string with 8 columns.
Instance method. Gets human-readable name of data source. Typically it is value of {name} attribute or result of get_short_id().
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

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 of the data source set by new().
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.

2020-12-30 6.2.58