NAME

Mobile::Libwurfl - Perl bindings to the commercial wurfl library (from ScientiaMobile)

SYNOPSIS

use Wurfl;

$wurfl = Wurfl->new();

###
# optionally you can set the engine mode or the cache_provider
# (refer to libwurfl documentation for more details)

$err = $wurfl->set_engine(WURFL_ENGINE_TARGET_HIGH_PERFORMANCE);
if ($err != WURFL_OK) {
  die $wurfl->error_message;
}

$err = $wurfl->set_cache_provider(WURFL_CACHE_PROVIDER_DOUBLE_LRU, "10000,3000");
if ($err != WURFL_OK) {
  die $wurfl->error_message;
}
####


$wurfl->load("/usr/share/wurfl/wurfl.xml");

# you can also provide the database file directly to the constructor
# (default engine mode and cache provider will be used)
$wurfl = Wurfl->new("/usr/share/wurfl/wurfl.xml");

$device = $wurfl->lookup_useragent(USERAGENT);

# get an hashref with all known capabilities
$capabilities = $device->capabilities;

# or access a specific capability directly
$viewport_width = $device->get_capability('viewport_width');

All functions from libwurfl have been mapped, refer to the
Mobile::Libwurfl::Device documentation for a list of methods

DESCRIPTION

Perl bindings to the commercial C library to access wurfl databases

METHODS

  • new ($dbfile)

    Creates a new Wurfl object. if $dbfile is provided it will be immediately loaded using the default engine mode and cache provider

  • load ($dbfile)

    Load the database file at the path pointed by $dbfile

  • lookup_useragent ($ua_string)

    Returns a Mobile::Libwurfl::Device object representing the best match for the provided useragent string

  • get_device ($id)

    Returns a new Mobile::Libwurfl::Device object for the provided device id (if any)

  • set_engine ($mode)

    Sets the engine mode. This method can be called only before loading a database file. If called once a database file has been already loaded WURFL_ERROR_ALREADY_LOAD will be returned

    Valid values for the $mode argument are : WURFL_ENGINE_TARGET_HIGH_ACCURACY and WURFL_ENGINE_TARGET_HIGH_ACCURACY

  • set_cache_provider ($provider, $config)

    Sets and configure the cache provider. This method can be called only before loading a database file. If called once a database file has been already loaded WURFL_ERROR_ALREADY_LOAD will be returned

    Valid values for the $mode argument are : WURFL_CACHE_PROVIDER_NONE, WURFL_CACHE_PROVIDER_LRU and WURFL_CACHE_PROVIDER_DOUBLE_LRU

    Check libwurfl documnetation for further details on their meaning and what expected in the $config param.

  • error_message ()

  • has_error_message ()

  • clear_error_message ()

  • add_patch ($patch_file)

EXPORT

WURFL_CACHE_PROVIDER_DOUBLE_LRU
WURFL_CACHE_PROVIDER_LRU
WURFL_CACHE_PROVIDER_NONE
WURFL_ENGINE_TARGET_HIGH_ACCURACY
WURFL_ENGINE_TARGET_HIGH_PERFORMANCE
WURFL_ERROR_ALREADY_LOAD
WURFL_ERROR_CANT_LOAD_CAPABILITY_NOT_FOUND
WURFL_ERROR_CANT_LOAD_VIRTUAL_CAPABILITY_NOT_FOUND
WURFL_ERROR_CAPABILITY_GROUP_MISMATCH
WURFL_ERROR_CAPABILITY_GROUP_NOT_FOUND
WURFL_ERROR_CAPABILITY_NOT_FOUND
WURFL_ERROR_DEVICE_ALREADY_DEFINED
WURFL_ERROR_DEVICE_HIERARCHY_CIRCULAR_REFERENCE
WURFL_ERROR_DEVICE_NOT_FOUND
WURFL_ERROR_EMPTY_ID
WURFL_ERROR_FILE_NOT_FOUND
WURFL_ERROR_INPUT_OUTPUT_FAILURE
WURFL_ERROR_INVALID_CAPABILITY_VALUE
WURFL_ERROR_INVALID_HANDLE
WURFL_ERROR_INVALID_PARAMETER
WURFL_ERROR_UNEXPECTED_END_OF_FILE
WURFL_ERROR_UNKNOWN
WURFL_ERROR_USERAGENT_ALREADY_DEFINED
WURFL_ERROR_VIRTUAL_CAPABILITY_NOT_FOUND
WURFL_MATCH_TYPE_CACHED
WURFL_MATCH_TYPE_CATCHALL
WURFL_MATCH_TYPE_CONCLUSIVE
WURFL_MATCH_TYPE_EXACT
WURFL_MATCH_TYPE_HIGHPERFORMANCE
WURFL_MATCH_TYPE_NONE
WURFL_MATCH_TYPE_RECOVERY
WURFL_OK

SEE ALSO

Mobile::Libwurfl::Device

AUTHOR

Andrea Guzzo, <xant@xant.net>

COPYRIGHT AND LICENSE

Copyright (C) 2013 by Andrea Guzzo

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.14.2 or, at your option, any later version of Perl 5 you may have available.

1 POD Error

The following errors were encountered while parsing the POD:

Around line 276:

You forgot a '=back' before '=head2'