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.