DOKK / manpages / debian 12 / sympa / Sympa::DataSource.3sympa.en
Sympa::DataSource(3Sympa) sympa 6.2.70 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];
  }
  
  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.

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. Sympa::List instance and so on.
Optional or mandatory parameters.

Returns:

A new instance, or "undef" on failure.

Instance method. Closes backend and does cleanup.
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.
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.

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().
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.

2023-01-26 6.2.70