Cache-MemcachedBinary

 view release on metacpan or  search on metacpan

lib/Cache/MemcachedBinary.pm  view on Meta::CPAN

}

sub _socket_destroy {
    my $self = shift;
    $self->_log("socket destroy " . $self->socket);
    close($self->socket) if $self->socket;
    $self->set_socket(undef);
    return;
}

sub _log {
    my ($self, $str, $flag) = @_;
    return unless $str;

    $flag //= 0;

    if (! $self->logger) {
        $self->set_logger( sub { print STDERR shift() . "\n" } );
    }

    if (ref $self->logger ne 'CODE') {
        print STDERR "param 'logger' has type of reference not function\n";
        return;
    }

    if ($self->debug || $flag == ERROR_FLAG) {
        $self->logger->($str);
    }

    return;
}

sub host     {return $_[0]->{host}}
sub port     {return $_[0]->{port}}
sub timeout  {return $_[0]->{timeout}}
sub login    {return $_[0]->{login}}
sub password {return $_[0]->{password}}
sub socket   {return $_[0]->{socket}}
sub debug    {return $_[0]->{debug}}
sub logger   {return $_[0]->{logger}}
sub err      {return $_[0]->{err}}

sub set_host     { $_[0]->{err} = $_[1]; }
sub set_port     { $_[0]->{port} = $_[1]; }
sub set_timeout  { $_[0]->{timeout} = $_[1]; }
sub set_login    { $_[0]->{login} = $_[1]; }
sub set_password { $_[0]->{password} = $_[1]; }
sub set_socket   { $_[0]->{socket} = $_[1]; }
sub set_debug    { $_[0]->{debug} = $_[1]; }
sub set_logger   { $_[0]->{logger} = $_[1]; }
sub set_err      { $_[0]->{err} = $_[1]; }

1;
__END__
=head1 NAME

Cache::MemcachedBinary - Perl extension for Memcached server with binary protocol.

=head1 SYNOPSIS

    use Modern::Perl;
    use Cache::MemcachedBinary;

    my $logger = sub {say @_};
    my $obj_mem = Cache::MemcachedBinary->new(
        host     => '127.0.0.1',
        port     => 11211,
        timeout  => 2,
        login    => 'login',
        password => 'password',
        debug    => 1,
        logger   => $logger, # default print to STDERR
    );

    my $key = 'memcached_key';

    # get value
    my $value = $obj_mem->get($key);

    # add/set
    $obj_mem->add($key, 'my value' [, $exptime]);
    $obj_mem->set($key, 'my value' [, $exptime]);

    # delete
    $obj_mem->delete($key);

    # increment
    my $incr = $obj_mem->incr($key);

    # flush all memcached data
    $obj_mem->flush();

=head1 DESCRIPTION

This module is simple interface for Memcached server with binary protocol.

=head2 EXPORT

None.

=head1 AUTHOR

Konstantin Titov, E<lt>xmolex@cpan.orgE<gt>

=head1 COPYRIGHT AND LICENSE

Copyright (C) 2024 by Konstantin Titov

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

=cut

 view all matches for this distribution
 view release on metacpan -  search on metacpan

( run in 5.027 seconds using v1.00-cache-2.02-grep-82fe00e-cpan-72ae3ad1e6da )