# NAME

AnyEvent::DNS::Cache::Simple - Simple cache for AnyEvent::DNS

# SYNOPSIS

   use AnyEvent::DNS::Cache::Simple;

   my $guard = AnyEvent::DNS::Cache::Simple->register(
       ttl => 60,
       negative_ttl => 5,
       timeout => [1,1]
   );


   for my $i ( 1..3 ) {
       my $cv = AE::cv;
       AnyEvent::DNS::a "example.com", sub {
           say join " | ",@_;
           $cv->send;
       };
       $cv->recv;
   }


   undef $guard;

# DESCRIPTION

AnyEvent::DNS::Cache::Simple provides simple cache capability for AnyEvent::DNS

CPAN already has AnyEvent::CacheDNS module. It also provides simple cache.
AnyEvent::DNS::Cache::Simple support ttl, negative\_ttl and can use with any cache module.
And AnyEvent::DNS::Cache::Simple does not use AnyEvent->timer for purging cache.

# METHOD

## register

Register cache to `$AnyEvent::DNS::RESOLVER`. This method returns guard object.
If the guard object is destroyed, original resolver will be restored

register can accept all `AnyEvent::DNS-`new> arguments and has some additional arguments.

- ttl: Int

   maximum positive cache ttl in seconds. (default: 5)

- negative\_ttl: Int

   negative cache ttl in seconds. (default: 1)

- cache: Object

   Cache object, requires support get, set and remove methods.
   default: Cache::Memory::Simple is used

# SEE ALSO

[AnyEvent::DNS](http://search.cpan.org/perldoc?AnyEvent::DNS), [AnyEvent::Socket](http://search.cpan.org/perldoc?AnyEvent::Socket), [AnyEvent::CacheDNS](http://search.cpan.org/perldoc?AnyEvent::CacheDNS), [Cache::Memory::Simple](http://search.cpan.org/perldoc?Cache::Memory::Simple)

# LICENSE

Copyright (C) Masahiro Nagano.

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

# AUTHOR

Masahiro Nagano <[email protected]>