Memcached::Client::Request - Base class for Memcached::Client request drivers
version 2.01
Memcached::Client::Request and its subclasses are responsible for managing the completion of a given request to the memcached cluster.
generate
Returns a reference to an anonymous subroutine that creates a new object in a Memcache::Client::Request subclass, currying in the command that is specified as the argument to generate, and expecting to be invoked as a method on a Memcache::Client object.
Memcache::Client::Request
Memcache::Client
Each subclass of Memcache::Client::Request is responsible for using generate to install whatever commands it knows how to implement into the Memcached::Client namespace.
Memcached::Client
The resulting subroutine takes a Memcache::Client object as its first parameter, since it is expected to be called in that context.
It then examines the last argument in the argument list, and if it's a coderef or an AnyEvent::CondVar, it is removed and stored for use on completion of the request. Otherwise, an AnyEvent::CondVar is created, and the request is marked as needing to manage its own event looping.
coderef
AnyEvent::CondVar
The request's process routine is then called with the remainder of the arguments, and any returned objects are then handled by the __submit routine in Memcached::Client.
process
__submit
If process returns no objects, then the submission is assumed to have failed and the objects complete routine is called to return a result.
complete
Finally, if the request is marked as needing to manage its own event looping, it will wait on the AnyEvent::CondVar that it created earlier.
log
Log the specified message with an appropriate prefix derived from the class name.
result
Intended to be called by the protocol methods, result records the result value that it is given, if it is given one.
complete is called when the request is finished---regardless of whether it succeeded or failed---and it is responsible for invoking the callback to submit the results to their consumer.
If there has been no result gathered, it will return the default if there is one, otherwise it will return undef.
process accepts a key, value and expiration. It does some housekeeping, and assuming the arguments look appropriate, it returns a reference to itself.
process accepts a reference to an array of arrays containing key, value and expiration tuples. For each tuple, it attempts to construct a M::C::Request::Add object that has a callback that will recognize when all outstanding requests are in and return the aggregate result.
M::C::Request::Add
process accepts a key, delta and initial value. It does some housekeeping, and assuming the arguments look appropriate, it returns a reference to itself.
process accepts a reference to an array of arrays of key, delta and initial value tuples. For each tuple, it attempts to construct a M::C::Request::Decr object that has a callback that will recognize when all outstanding requests are in and return the aggregate result.
M::C::Request::Decr
process accepts a key. It does some housekeeping, and assuming the arguments look appropriate, it returns a reference to itself.
process accepts a reference to an array of keys. For each key, it attempts to construct a M::C::Request::Delete object that has a callback that will recognize when all outstanding requests are in and return the aggregate result.
M::C::Request::Delete
process accepts a reference to an array of keys. For each key, it attempts to construct a M::C::Request::Get object that has a callback that will recognize when all outstanding requests are in and return the aggregate result.
M::C::Request::Get
process accepts a command and arguments. It returns it self assuming a command was specified.
process accepts a command and arguments. It returns a reference to itself assuming a command was specified.
server
server creates a new M::C::Request::Broadcast object encapsulating the command for a given server.
M::C::Request::Broadcast
server creates a new M::C::Request::Connect object encapsulating the command for a given server.
M::C::Request::Connect
Michael Alan Dorman <mdorman@ironicdesign.com>
This software is copyright (c) 2010 by Michael Alan Dorman.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
To install Memcached::Client, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Memcached::Client
CPAN shell
perl -MCPAN -e shell install Memcached::Client
For more information on module installation, please visit the detailed CPAN module installation guide.