The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Net::WURFL::ScientiaMobile::Cache - Role that all Cache providers must implement to be compatible with the WURFL Cloud Client

SYNOPSIS

    package Net::WURFL::ScientiaMobile::Cache::MyProvider;
    use Moo;

    with 'Net::WURFL::ScientiaMobile::Cache';

    sub getDevice {
        my $self = shift;
        my ($user_agent) = @_;
        ...
        return $capabilities;
    }
    ....

DESCRIPTION

This Moo::Role class defines the methods that all Cache providers must implement to be used with the Net::WURFL::ScientiaMobile module.

The following implementations are currently available, but you can write your own:

Net::WURFL::ScientiaMobile::Cache::Null
Net::WURFL::ScientiaMobile::Cache::Cache
Net::WURFL::ScientiaMobile::Cache::Cookie

REQUIRED METHODS

getDevice

    my $capabilities = $cache->getDevice($user_agent);

Get the device capabilities for the given user agent from the cache provider. It accepts the user agent name as a string and returns the capabilities as a hashref, or false if the device wasn't found in cache.

getDeviceFromID

    my $capabilities = $cache->getDeviceFromID($wurfl_device_id);

Get the device capabilities for the given user agent from the cache provider. It accepts the device ID as a string and returns the capabilities as a hashref, or false if the device wasn't found in cache.

setDevice

    $cache->setDevice($user_agent, $capabilities);

Stores the given user agent with the given device capabilities in the cache provider for the given time period.

setDeviceFromID

    $cache->setDeviceFromID($wurfl_device_id, $capabilities);

Stores the given user agent with the given device capabilities in the cache provider for the given time period.

getMtime

    my $time = $cache->getMtime;

Gets the last loaded WURFL timestamp from the cache provider - this is used to detect when a new WURFL has been loaded on the server.

setMtime

    $cache->setMtime($time);

Sets the last loaded WURFL timestamp in the cache provider.

purge

    $cache->purge;

Deletes all the cached devices and the mtime from the cache provider.

incrementHit

    $cache->incrementHit;

Increments the count of cache hits.

incrementMiss

    $cache->incrementMiss;

Increments the count of cache misses.

incrementError

    $cache->incrementError;

Increments the count of errors.

getCounters

    my $counters = $cache->getCounters;

Returns an array of all the counters.

resetCounters

    $cache->resetCounters;

Resets the counters to zero.

getReportAge

    my $seconds = $cache->getReportAge;

Returns the number of seconds since the counters report was last sent.

resetReportAge

    $cache->resetReportAge;

Resets the report age to zero.

stats

    my $stats = $cache->stats;

Gets statistics from the cache provider like memory usage and number of cached devices.

close

    $cache->close;

Close the connection to the cache provider.

SEE ALSO

Net::WURFL::ScientiaMobile

AUTHOR

Alessandro Ranellucci <aar@cpan.org>

COPYRIGHT & LICENSE

Copyright 2012, ScientiaMobile, Inc.

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