O:39:"phpDocumentor\Descriptor\FileDescriptor":22:{s:7:" * hash";s:32:"664d44cfc2678ece5fde00dc40f6b395";s:7:" * path";s:34:"Producers/MixpanelBaseProducer.php";s:9:" * source";s:6340:"<?php
require_once(dirname(__FILE__) . "/../Base/MixpanelBase.php");
require_once(dirname(__FILE__) . "/../ConsumerStrategies/FileConsumer.php");
require_once(dirname(__FILE__) . "/../ConsumerStrategies/CurlConsumer.php");
require_once(dirname(__FILE__) . "/../ConsumerStrategies/SocketConsumer.php");

if (!function_exists('json_encode')) {
    throw new Exception('The JSON PHP extension is required.');
}

/**
 * Provides some base methods for use by a message Producer
 */
abstract class Producers_MixpanelBaseProducer extends Base_MixpanelBase {


    /**
     * @var string a token associated to a Mixpanel project
     */
    protected $_token;


    /**
     * @var array a queue to hold messages in memory before flushing in batches
     */
    private $_queue = array();


    /**
     * @var ConsumerStrategies_AbstractConsumer the consumer to use when flushing messages
     */
    private $_consumer = null;


    /**
     * @var array The list of available consumers
     */
    private $_consumers = array(
        "file"      =>  "ConsumerStrategies_FileConsumer",
        "curl"      =>  "ConsumerStrategies_CurlConsumer",
        "socket"    =>  "ConsumerStrategies_SocketConsumer"
    );


    /**
     * If the queue reaches this size we'll auto-flush to prevent out of memory errors
     * @var int
     */
    protected $_max_queue_size = 1000;


    /**
     * Creates a new MixpanelBaseProducer, assings Mixpanel project token, registers custom Consumers, and instantiates
     * the desired consumer
     * @param $token
     * @param array $options
     */
    public function __construct($token, $options = array()) {

        parent::__construct($options);

        // register any customer consumers
        if (array_key_exists("consumers", $options)) {
            $this->_consumers = array_merge($this->_consumers, $options['consumers']);
        }

        // set max queue size
        if (array_key_exists("max_queue_size", $options)) {
            $this->_max_queue_size = $options['max_queue_size'];
        }

        // associate token
        $this->_token = $token;

        if ($this->_debug()) {
            $this->_log("Using token: ".$this->_token);
        }

        // instantiate the chosen consumer
        $this->_consumer = $this->_getConsumer();

    }


    /**
     * Flush the queue when we destruct the client with retries
     */
    public function __destruct() {
        $attempts = 0;
        $max_attempts = 10;
        $success = false;
        while (!$success && $attempts < $max_attempts) {
            if ($this->_debug()) {
                $this->_log("destruct flush attempt #".($attempts+1));
            }
            $success = $this->flush();
            $attempts++;
        }
    }


    /**
     * Iterate the queue and write in batches using the instantiated Consumer Strategy
     * @param int $desired_batch_size
     * @return bool whether or not the flush was successful
     */
    public function flush($desired_batch_size = 50) {
        $queue_size = count($this->_queue);
        $succeeded = true;
        $num_threads = $this->_consumer->getNumThreads();

        if ($this->_debug()) {
            $this->_log("Flush called - queue size: ".$queue_size);
        }

        while($queue_size > 0 && $succeeded) {
            $batch_size = min(array($queue_size, $desired_batch_size*$num_threads, $this->_options['max_batch_size']*$num_threads));
            $batch = array_splice($this->_queue, 0, $batch_size);
            $succeeded = $this->_persist($batch);

            if (!$succeeded) {
                if ($this->_debug()) {
                    $this->_log("Batch consumption failed!");
                }
                $this->_queue = array_merge($batch, $this->_queue);

                if ($this->_debug()) {
                    $this->_log("added batch back to queue, queue size is now $queue_size");
                }
            }

            $queue_size = count($this->_queue);

            if ($this->_debug()) {
                $this->_log("Batch of $batch_size consumed, queue size is now $queue_size");
            }
        }
        return $succeeded;
    }


    /**
     * Empties the queue without persisting any of the messages
     */
    public function reset() {
        $this->_queue = array();
    }


    /**
     * Returns the in-memory queue
     * @return array
     */
    public function getQueue() {
        return $this->_queue;
    }

    /**
     * Returns the current Mixpanel project token
     * @return string
     */
    public function getToken() {
        return $this->_token;
    }


    /**
     * Given a strategy type, return a new PersistenceStrategy object
     * @return ConsumerStrategies_AbstractConsumer
     */
    protected function _getConsumer() {
        $key = $this->_options['consumer'];
        $Strategy = $this->_consumers[$key];
        if ($this->_debug()) {
            $this->_log("Using consumer: " . $key . " -> " . $Strategy);
        }
        $this->_options['endpoint'] = $this->_getEndpoint();

        return new $Strategy($this->_options);
    }


    /**
     * Add an array representing a message to be sent to Mixpanel to a queue.
     * @param array $message
     */
    public function enqueue($message = array()) {
        array_push($this->_queue, $message);

        // force a flush if we've reached our threshold
        if (count($this->_queue) > $this->_max_queue_size) {
            $this->flush();
        }

        if ($this->_debug()) {
            $this->_log("Queued message: ".json_encode($message));
        }
    }


    /**
     * Add an array representing a list of messages to be sent to Mixpanel to a queue.
     * @param array $messages
     */
    public function enqueueAll($messages = array()) {
        foreach($messages as $message) {
            $this->enqueue($message);
        }

    }


    /**
     * Given an array of messages, persist it with the instantiated Persistence Strategy
     * @param $message
     * @return mixed
     */
    protected function _persist($message) {
        return $this->_consumer->persist($message);
    }




    /**
     * Return the endpoint that should be used by a consumer that consumes messages produced by this producer.
     * @return string
     */
    abstract function _getEndpoint();

}";s:19:" * namespaceAliases";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:11:" * includes";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:4:{i:0;O:41:"phpDocumentor\Reflection\IncludeReflector":3:{s:7:" * node";O:28:"PhpParser\Node\Expr\Include_":4:{s:4:"expr";O:35:"PhpParser\Node\Expr\BinaryOp\Concat":4:{s:4:"left";O:28:"PhpParser\Node\Expr\FuncCall":4:{s:4:"name";O:19:"PhpParser\Node\Name":3:{s:5:"parts";a:1:{i:0;s:7:"dirname";}s:36:" PhpParser\NodeAbstract subNodeNames";N;s:13:" * attributes";a:2:{s:9:"startLine";i:2;s:7:"endLine";i:2;}}s:4:"args";a:1:{i:0;O:18:"PhpParser\Node\Arg":5:{s:5:"value";O:37:"PhpParser\Node\Scalar\MagicConst\File":2:{s:36:" PhpParser\NodeAbstract subNodeNames";N;s:13:" * attributes";a:2:{s:9:"startLine";i:2;s:7:"endLine";i:2;}}s:5:"byRef";b:0;s:6:"unpack";b:0;s:36:" PhpParser\NodeAbstract subNodeNames";N;s:13:" * attributes";a:2:{s:9:"startLine";i:2;s:7:"endLine";i:2;}}}s:36:" PhpParser\NodeAbstract subNodeNames";N;s:13:" * attributes";a:2:{s:9:"startLine";i:2;s:7:"endLine";i:2;}}s:5:"right";O:29:"PhpParser\Node\Scalar\String_":3:{s:5:"value";s:25:"/../Base/MixpanelBase.php";s:36:" PhpParser\NodeAbstract subNodeNames";N;s:13:" * attributes";a:3:{s:9:"startLine";i:2;s:7:"endLine";i:2;s:13:"originalValue";s:27:""/../Base/MixpanelBase.php"";}}s:36:" PhpParser\NodeAbstract subNodeNames";N;s:13:" * attributes";a:3:{s:9:"startLine";i:2;s:7:"endLine";i:2;s:13:"originalValue";s:27:""/../Base/MixpanelBase.php"";}}s:4:"type";i:4;s:36:" PhpParser\NodeAbstract subNodeNames";N;s:13:" * attributes";a:3:{s:9:"startLine";i:2;s:7:"endLine";i:2;s:8:"comments";a:0:{}}}s:23:" * default_package_name";s:0:"";s:10:" * context";O:41:"phpDocumentor\Reflection\DocBlock\Context":3:{s:12:" * namespace";s:0:"";s:20:" * namespace_aliases";a:0:{}s:7:" * lsen";s:0:"";}}i:1;O:41:"phpDocumentor\Reflection\IncludeReflector":3:{s:7:" * node";O:28:"PhpParser\Node\Expr\Include_":4:{s:4:"expr";O:35:"PhpParser\Node\Expr\BinaryOp\Concat":4:{s:4:"left";O:28:"PhpParser\Node\Expr\FuncCall":4:{s:4:"name";O:19:"PhpParser\Node\Name":3:{s:5:"parts";a:1:{i:0;s:7:"dirname";}s:36:" PhpParser\NodeAbstract subNodeNames";N;s:13:" * attributes";a:2:{s:9:"startLine";i:3;s:7:"endLine";i:3;}}s:4:"args";a:1:{i:0;O:18:"PhpParser\Node\Arg":5:{s:5:"value";O:37:"PhpParser\Node\Scalar\MagicConst\File":2:{s:36:" PhpParser\NodeAbstract subNodeNames";N;s:13:" * attributes";a:2:{s:9:"startLine";i:3;s:7:"endLine";i:3;}}s:5:"byRef";b:0;s:6:"unpack";b:0;s:36:" PhpParser\NodeAbstract subNodeNames";N;s:13:" * attributes";a:2:{s:9:"startLine";i:3;s:7:"endLine";i:3;}}}s:36:" PhpParser\NodeAbstract subNodeNames";N;s:13:" * attributes";a:2:{s:9:"startLine";i:3;s:7:"endLine";i:3;}}s:5:"right";O:29:"PhpParser\Node\Scalar\String_":3:{s:5:"value";s:39:"/../ConsumerStrategies/FileConsumer.php";s:36:" PhpParser\NodeAbstract subNodeNames";N;s:13:" * attributes";a:3:{s:9:"startLine";i:3;s:7:"endLine";i:3;s:13:"originalValue";s:41:""/../ConsumerStrategies/FileConsumer.php"";}}s:36:" PhpParser\NodeAbstract subNodeNames";N;s:13:" * attributes";a:3:{s:9:"startLine";i:3;s:7:"endLine";i:3;s:13:"originalValue";s:41:""/../ConsumerStrategies/FileConsumer.php"";}}s:4:"type";i:4;s:36:" PhpParser\NodeAbstract subNodeNames";N;s:13:" * attributes";a:2:{s:9:"startLine";i:3;s:7:"endLine";i:3;}}s:23:" * default_package_name";s:0:"";s:10:" * context";r:56;}i:2;O:41:"phpDocumentor\Reflection\IncludeReflector":3:{s:7:" * node";O:28:"PhpParser\Node\Expr\Include_":4:{s:4:"expr";O:35:"PhpParser\Node\Expr\BinaryOp\Concat":4:{s:4:"left";O:28:"PhpParser\Node\Expr\FuncCall":4:{s:4:"name";O:19:"PhpParser\Node\Name":3:{s:5:"parts";a:1:{i:0;s:7:"dirname";}s:36:" PhpParser\NodeAbstract subNodeNames";N;s:13:" * attributes";a:2:{s:9:"startLine";i:4;s:7:"endLine";i:4;}}s:4:"args";a:1:{i:0;O:18:"PhpParser\Node\Arg":5:{s:5:"value";O:37:"PhpParser\Node\Scalar\MagicConst\File":2:{s:36:" PhpParser\NodeAbstract subNodeNames";N;s:13:" * attributes";a:2:{s:9:"startLine";i:4;s:7:"endLine";i:4;}}s:5:"byRef";b:0;s:6:"unpack";b:0;s:36:" PhpParser\NodeAbstract subNodeNames";N;s:13:" * attributes";a:2:{s:9:"startLine";i:4;s:7:"endLine";i:4;}}}s:36:" PhpParser\NodeAbstract subNodeNames";N;s:13:" * attributes";a:2:{s:9:"startLine";i:4;s:7:"endLine";i:4;}}s:5:"right";O:29:"PhpParser\Node\Scalar\String_":3:{s:5:"value";s:39:"/../ConsumerStrategies/CurlConsumer.php";s:36:" PhpParser\NodeAbstract subNodeNames";N;s:13:" * attributes";a:3:{s:9:"startLine";i:4;s:7:"endLine";i:4;s:13:"originalValue";s:41:""/../ConsumerStrategies/CurlConsumer.php"";}}s:36:" PhpParser\NodeAbstract subNodeNames";N;s:13:" * attributes";a:3:{s:9:"startLine";i:4;s:7:"endLine";i:4;s:13:"originalValue";s:41:""/../ConsumerStrategies/CurlConsumer.php"";}}s:4:"type";i:4;s:36:" PhpParser\NodeAbstract subNodeNames";N;s:13:" * attributes";a:2:{s:9:"startLine";i:4;s:7:"endLine";i:4;}}s:23:" * default_package_name";s:0:"";s:10:" * context";r:56;}i:3;O:41:"phpDocumentor\Reflection\IncludeReflector":3:{s:7:" * node";O:28:"PhpParser\Node\Expr\Include_":4:{s:4:"expr";O:35:"PhpParser\Node\Expr\BinaryOp\Concat":4:{s:4:"left";O:28:"PhpParser\Node\Expr\FuncCall":4:{s:4:"name";O:19:"PhpParser\Node\Name":3:{s:5:"parts";a:1:{i:0;s:7:"dirname";}s:36:" PhpParser\NodeAbstract subNodeNames";N;s:13:" * attributes";a:2:{s:9:"startLine";i:5;s:7:"endLine";i:5;}}s:4:"args";a:1:{i:0;O:18:"PhpParser\Node\Arg":5:{s:5:"value";O:37:"PhpParser\Node\Scalar\MagicConst\File":2:{s:36:" PhpParser\NodeAbstract subNodeNames";N;s:13:" * attributes";a:2:{s:9:"startLine";i:5;s:7:"endLine";i:5;}}s:5:"byRef";b:0;s:6:"unpack";b:0;s:36:" PhpParser\NodeAbstract subNodeNames";N;s:13:" * attributes";a:2:{s:9:"startLine";i:5;s:7:"endLine";i:5;}}}s:36:" PhpParser\NodeAbstract subNodeNames";N;s:13:" * attributes";a:2:{s:9:"startLine";i:5;s:7:"endLine";i:5;}}s:5:"right";O:29:"PhpParser\Node\Scalar\String_":3:{s:5:"value";s:41:"/../ConsumerStrategies/SocketConsumer.php";s:36:" PhpParser\NodeAbstract subNodeNames";N;s:13:" * attributes";a:3:{s:9:"startLine";i:5;s:7:"endLine";i:5;s:13:"originalValue";s:43:""/../ConsumerStrategies/SocketConsumer.php"";}}s:36:" PhpParser\NodeAbstract subNodeNames";N;s:13:" * attributes";a:3:{s:9:"startLine";i:5;s:7:"endLine";i:5;s:13:"originalValue";s:43:""/../ConsumerStrategies/SocketConsumer.php"";}}s:4:"type";i:4;s:36:" PhpParser\NodeAbstract subNodeNames";N;s:13:" * attributes";a:2:{s:9:"startLine";i:5;s:7:"endLine";i:5;}}s:23:" * default_package_name";s:0:"";s:10:" * context";r:56;}}}s:12:" * constants";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:12:" * functions";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:10:" * classes";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{s:31:"\Producers_MixpanelBaseProducer";O:40:"phpDocumentor\Descriptor\ClassDescriptor":19:{s:9:" * parent";s:18:"\Base_MixpanelBase";s:13:" * implements";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:11:" * abstract";b:1;s:8:" * final";b:0;s:12:" * constants";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:13:" * properties";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:5:{s:6:"_token";O:43:"phpDocumentor\Descriptor\PropertyDescriptor":16:{s:9:" * parent";r:207;s:8:" * types";N;s:10:" * default";N;s:9:" * static";b:0;s:13:" * visibility";s:9:"protected";s:8:" * fqsen";s:39:"\Producers_MixpanelBaseProducer::_token";s:7:" * name";s:6:"_token";s:12:" * namespace";N;s:10:" * package";s:0:"";s:10:" * summary";s:0:"";s:14:" * description";s:0:"";s:17:" * fileDescriptor";N;s:7:" * line";i:20;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{s:3:"var";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:42:"phpDocumentor\Descriptor\Tag\VarDescriptor":5:{s:15:" * variableName";s:0:"";s:8:" * types";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:46:"phpDocumentor\Descriptor\Type\StringDescriptor":0:{}}}s:7:" * name";s:3:"var";s:14:" * description";s:40:"a token associated to a Mixpanel project";s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}}}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:19:" * inheritedElement";N;}s:6:"_queue";O:43:"phpDocumentor\Descriptor\PropertyDescriptor":16:{s:9:" * parent";r:207;s:8:" * types";N;s:10:" * default";s:7:"array()";s:9:" * static";b:0;s:13:" * visibility";s:7:"private";s:8:" * fqsen";s:39:"\Producers_MixpanelBaseProducer::_queue";s:7:" * name";s:6:"_queue";s:12:" * namespace";N;s:10:" * package";s:0:"";s:10:" * summary";s:0:"";s:14:" * description";s:0:"";s:17:" * fileDescriptor";N;s:7:" * line";i:26;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{s:3:"var";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:42:"phpDocumentor\Descriptor\Tag\VarDescriptor":5:{s:15:" * variableName";s:0:"";s:8:" * types";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:51:"phpDocumentor\Descriptor\Type\UnknownTypeDescriptor":1:{s:7:" * name";s:5:"array";}}}s:7:" * name";s:3:"var";s:14:" * description";s:61:"a queue to hold messages in memory before flushing in batches";s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}}}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:19:" * inheritedElement";N;}s:9:"_consumer";O:43:"phpDocumentor\Descriptor\PropertyDescriptor":16:{s:9:" * parent";r:207;s:8:" * types";N;s:10:" * default";s:4:"null";s:9:" * static";b:0;s:13:" * visibility";s:7:"private";s:8:" * fqsen";s:42:"\Producers_MixpanelBaseProducer::_consumer";s:7:" * name";s:9:"_consumer";s:12:" * namespace";N;s:10:" * package";s:0:"";s:10:" * summary";s:0:"";s:14:" * description";s:0:"";s:17:" * fileDescriptor";N;s:7:" * line";i:32;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{s:3:"var";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:42:"phpDocumentor\Descriptor\Tag\VarDescriptor":5:{s:15:" * variableName";s:0:"";s:8:" * types";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:51:"phpDocumentor\Descriptor\Type\UnknownTypeDescriptor":1:{s:7:" * name";s:36:"\ConsumerStrategies_AbstractConsumer";}}}s:7:" * name";s:3:"var";s:14:" * description";s:42:"the consumer to use when flushing messages";s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}}}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:19:" * inheritedElement";N;}s:10:"_consumers";O:43:"phpDocumentor\Descriptor\PropertyDescriptor":16:{s:9:" * parent";r:207;s:8:" * types";N;s:10:" * default";s:144:"array("file" => "ConsumerStrategies_FileConsumer", "curl" => "ConsumerStrategies_CurlConsumer", "socket" => "ConsumerStrategies_SocketConsumer")";s:9:" * static";b:0;s:13:" * visibility";s:7:"private";s:8:" * fqsen";s:43:"\Producers_MixpanelBaseProducer::_consumers";s:7:" * name";s:10:"_consumers";s:12:" * namespace";N;s:10:" * package";s:0:"";s:10:" * summary";s:0:"";s:14:" * description";s:0:"";s:17:" * fileDescriptor";N;s:7:" * line";i:38;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{s:3:"var";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:42:"phpDocumentor\Descriptor\Tag\VarDescriptor":5:{s:15:" * variableName";s:0:"";s:8:" * types";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:51:"phpDocumentor\Descriptor\Type\UnknownTypeDescriptor":1:{s:7:" * name";s:5:"array";}}}s:7:" * name";s:3:"var";s:14:" * description";s:31:"The list of available consumers";s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}}}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:19:" * inheritedElement";N;}s:15:"_max_queue_size";O:43:"phpDocumentor\Descriptor\PropertyDescriptor":16:{s:9:" * parent";r:207;s:8:" * types";N;s:10:" * default";s:4:"1000";s:9:" * static";b:0;s:13:" * visibility";s:9:"protected";s:8:" * fqsen";s:48:"\Producers_MixpanelBaseProducer::_max_queue_size";s:7:" * name";s:15:"_max_queue_size";s:12:" * namespace";N;s:10:" * package";s:0:"";s:10:" * summary";s:79:"If the queue reaches this size we'll auto-flush to prevent out of memory errors";s:14:" * description";s:0:"";s:17:" * fileDescriptor";N;s:7:" * line";i:49;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{s:3:"var";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:42:"phpDocumentor\Descriptor\Tag\VarDescriptor":5:{s:15:" * variableName";s:0:"";s:8:" * types";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:47:"phpDocumentor\Descriptor\Type\IntegerDescriptor":0:{}}}s:7:" * name";s:3:"var";s:14:" * description";s:0:"";s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}}}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:19:" * inheritedElement";N;}}}s:10:" * methods";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:11:{s:11:"__construct";O:41:"phpDocumentor\Descriptor\MethodDescriptor":17:{s:9:" * parent";r:207;s:11:" * abstract";b:0;s:8:" * final";b:0;s:9:" * static";b:0;s:13:" * visibility";s:6:"public";s:12:" * arguments";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:2:{s:6:"$token";O:43:"phpDocumentor\Descriptor\ArgumentDescriptor":16:{s:9:" * method";r:372;s:8:" * types";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:10:" * default";N;s:14:" * byReference";b:0;s:13:" * isVariadic";b:0;s:8:" * fqsen";s:0:"";s:7:" * name";s:6:"$token";s:12:" * namespace";N;s:10:" * package";s:0:"";s:10:" * summary";s:0:"";s:14:" * description";s:0:"";s:17:" * fileDescriptor";N;s:7:" * line";i:0;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:19:" * inheritedElement";N;}s:8:"$options";O:43:"phpDocumentor\Descriptor\ArgumentDescriptor":16:{s:9:" * method";r:372;s:8:" * types";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:51:"phpDocumentor\Descriptor\Type\UnknownTypeDescriptor":1:{s:7:" * name";s:5:"array";}}}s:10:" * default";s:7:"array()";s:14:" * byReference";b:0;s:13:" * isVariadic";b:0;s:8:" * fqsen";s:0:"";s:7:" * name";s:8:"$options";s:12:" * namespace";N;s:10:" * package";s:0:"";s:10:" * summary";s:0:"";s:14:" * description";s:0:"";s:17:" * fileDescriptor";N;s:7:" * line";i:0;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:19:" * inheritedElement";N;}}}s:8:" * fqsen";s:46:"\Producers_MixpanelBaseProducer::__construct()";s:7:" * name";s:11:"__construct";s:12:" * namespace";N;s:10:" * package";s:0:"";s:10:" * summary";s:133:"Creates a new MixpanelBaseProducer, assings Mixpanel project token, registers custom Consumers, and instantiates
the desired consumer";s:14:" * description";s:0:"";s:17:" * fileDescriptor";N;s:7:" * line";i:58;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:2:{s:5:"param";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:2:{i:0;O:44:"phpDocumentor\Descriptor\Tag\ParamDescriptor":5:{s:15:" * variableName";s:6:"$token";s:8:" * types";r:382;s:7:" * name";s:5:"param";s:14:" * description";s:0:"";s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}i:1;O:44:"phpDocumentor\Descriptor\Tag\ParamDescriptor":5:{s:15:" * variableName";s:8:"$options";s:8:" * types";r:402;s:7:" * name";s:5:"param";s:14:" * description";s:0:"";s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}}s:6:"return";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:19:" * inheritedElement";N;}s:10:"__destruct";O:41:"phpDocumentor\Descriptor\MethodDescriptor":17:{s:9:" * parent";r:207;s:11:" * abstract";b:0;s:8:" * final";b:0;s:9:" * static";b:0;s:13:" * visibility";s:6:"public";s:12:" * arguments";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:8:" * fqsen";s:45:"\Producers_MixpanelBaseProducer::__destruct()";s:7:" * name";s:10:"__destruct";s:12:" * namespace";N;s:10:" * package";s:0:"";s:10:" * summary";s:56:"Flush the queue when we destruct the client with retries";s:14:" * description";s:0:"";s:17:" * fileDescriptor";N;s:7:" * line";i:88;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:2:{s:6:"return";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:5:"param";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:19:" * inheritedElement";N;}s:5:"flush";O:41:"phpDocumentor\Descriptor\MethodDescriptor":17:{s:9:" * parent";r:207;s:11:" * abstract";b:0;s:8:" * final";b:0;s:9:" * static";b:0;s:13:" * visibility";s:6:"public";s:12:" * arguments";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{s:19:"$desired_batch_size";O:43:"phpDocumentor\Descriptor\ArgumentDescriptor":16:{s:9:" * method";r:478;s:8:" * types";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:47:"phpDocumentor\Descriptor\Type\IntegerDescriptor":0:{}}}s:10:" * default";s:2:"50";s:14:" * byReference";b:0;s:13:" * isVariadic";b:0;s:8:" * fqsen";s:0:"";s:7:" * name";s:19:"$desired_batch_size";s:12:" * namespace";N;s:10:" * package";s:0:"";s:10:" * summary";s:0:"";s:14:" * description";s:0:"";s:17:" * fileDescriptor";N;s:7:" * line";i:0;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:19:" * inheritedElement";N;}}}s:8:" * fqsen";s:40:"\Producers_MixpanelBaseProducer::flush()";s:7:" * name";s:5:"flush";s:12:" * namespace";N;s:10:" * package";s:0:"";s:10:" * summary";s:79:"Iterate the queue and write in batches using the instantiated Consumer Strategy";s:14:" * description";s:0:"";s:17:" * fileDescriptor";N;s:7:" * line";i:107;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:2:{s:5:"param";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:44:"phpDocumentor\Descriptor\Tag\ParamDescriptor":5:{s:15:" * variableName";s:19:"$desired_batch_size";s:8:" * types";r:488;s:7:" * name";s:5:"param";s:14:" * description";s:0:"";s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}}s:6:"return";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:45:"phpDocumentor\Descriptor\Tag\ReturnDescriptor":4:{s:8:" * types";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:47:"phpDocumentor\Descriptor\Type\BooleanDescriptor":0:{}}}s:7:" * name";s:6:"return";s:14:" * description";s:39:"whether or not the flush was successful";s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}}}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:19:" * inheritedElement";N;}s:5:"reset";O:41:"phpDocumentor\Descriptor\MethodDescriptor":17:{s:9:" * parent";r:207;s:11:" * abstract";b:0;s:8:" * final";b:0;s:9:" * static";b:0;s:13:" * visibility";s:6:"public";s:12:" * arguments";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:8:" * fqsen";s:40:"\Producers_MixpanelBaseProducer::reset()";s:7:" * name";s:5:"reset";s:12:" * namespace";N;s:10:" * package";s:0:"";s:10:" * summary";s:56:"Empties the queue without persisting any of the messages";s:14:" * description";s:0:"";s:17:" * fileDescriptor";N;s:7:" * line";i:145;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:2:{s:6:"return";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:5:"param";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:19:" * inheritedElement";N;}s:8:"getQueue";O:41:"phpDocumentor\Descriptor\MethodDescriptor":17:{s:9:" * parent";r:207;s:11:" * abstract";b:0;s:8:" * final";b:0;s:9:" * static";b:0;s:13:" * visibility";s:6:"public";s:12:" * arguments";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:8:" * fqsen";s:43:"\Producers_MixpanelBaseProducer::getQueue()";s:7:" * name";s:8:"getQueue";s:12:" * namespace";N;s:10:" * package";s:0:"";s:10:" * summary";s:27:"Returns the in-memory queue";s:14:" * description";s:0:"";s:17:" * fileDescriptor";N;s:7:" * line";i:154;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:2:{s:6:"return";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:45:"phpDocumentor\Descriptor\Tag\ReturnDescriptor":4:{s:8:" * types";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:51:"phpDocumentor\Descriptor\Type\UnknownTypeDescriptor":1:{s:7:" * name";s:5:"array";}}}s:7:" * name";s:6:"return";s:14:" * description";s:0:"";s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}}s:5:"param";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:19:" * inheritedElement";N;}s:8:"getToken";O:41:"phpDocumentor\Descriptor\MethodDescriptor":17:{s:9:" * parent";r:207;s:11:" * abstract";b:0;s:8:" * final";b:0;s:9:" * static";b:0;s:13:" * visibility";s:6:"public";s:12:" * arguments";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:8:" * fqsen";s:43:"\Producers_MixpanelBaseProducer::getToken()";s:7:" * name";s:8:"getToken";s:12:" * namespace";N;s:10:" * package";s:0:"";s:10:" * summary";s:42:"Returns the current Mixpanel project token";s:14:" * description";s:0:"";s:17:" * fileDescriptor";N;s:7:" * line";i:162;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:2:{s:6:"return";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:45:"phpDocumentor\Descriptor\Tag\ReturnDescriptor":4:{s:8:" * types";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:46:"phpDocumentor\Descriptor\Type\StringDescriptor":0:{}}}s:7:" * name";s:6:"return";s:14:" * description";s:0:"";s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}}s:5:"param";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:19:" * inheritedElement";N;}s:12:"_getConsumer";O:41:"phpDocumentor\Descriptor\MethodDescriptor":17:{s:9:" * parent";r:207;s:11:" * abstract";b:0;s:8:" * final";b:0;s:9:" * static";b:0;s:13:" * visibility";s:9:"protected";s:12:" * arguments";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:8:" * fqsen";s:47:"\Producers_MixpanelBaseProducer::_getConsumer()";s:7:" * name";s:12:"_getConsumer";s:12:" * namespace";N;s:10:" * package";s:0:"";s:10:" * summary";s:62:"Given a strategy type, return a new PersistenceStrategy object";s:14:" * description";s:0:"";s:17:" * fileDescriptor";N;s:7:" * line";i:171;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:2:{s:6:"return";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:45:"phpDocumentor\Descriptor\Tag\ReturnDescriptor":4:{s:8:" * types";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:51:"phpDocumentor\Descriptor\Type\UnknownTypeDescriptor":1:{s:7:" * name";s:36:"\ConsumerStrategies_AbstractConsumer";}}}s:7:" * name";s:6:"return";s:14:" * description";s:0:"";s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}}s:5:"param";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:19:" * inheritedElement";N;}s:7:"enqueue";O:41:"phpDocumentor\Descriptor\MethodDescriptor":17:{s:9:" * parent";r:207;s:11:" * abstract";b:0;s:8:" * final";b:0;s:9:" * static";b:0;s:13:" * visibility";s:6:"public";s:12:" * arguments";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{s:8:"$message";O:43:"phpDocumentor\Descriptor\ArgumentDescriptor":16:{s:9:" * method";r:665;s:8:" * types";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:51:"phpDocumentor\Descriptor\Type\UnknownTypeDescriptor":1:{s:7:" * name";s:5:"array";}}}s:10:" * default";s:7:"array()";s:14:" * byReference";b:0;s:13:" * isVariadic";b:0;s:8:" * fqsen";s:0:"";s:7:" * name";s:8:"$message";s:12:" * namespace";N;s:10:" * package";s:0:"";s:10:" * summary";s:0:"";s:14:" * description";s:0:"";s:17:" * fileDescriptor";N;s:7:" * line";i:0;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:19:" * inheritedElement";N;}}}s:8:" * fqsen";s:42:"\Producers_MixpanelBaseProducer::enqueue()";s:7:" * name";s:7:"enqueue";s:12:" * namespace";N;s:10:" * package";s:0:"";s:10:" * summary";s:70:"Add an array representing a message to be sent to Mixpanel to a queue.";s:14:" * description";s:0:"";s:17:" * fileDescriptor";N;s:7:" * line";i:187;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:2:{s:5:"param";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:44:"phpDocumentor\Descriptor\Tag\ParamDescriptor":5:{s:15:" * variableName";s:8:"$message";s:8:" * types";r:675;s:7:" * name";s:5:"param";s:14:" * description";s:0:"";s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}}s:6:"return";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:19:" * inheritedElement";N;}s:10:"enqueueAll";O:41:"phpDocumentor\Descriptor\MethodDescriptor":17:{s:9:" * parent";r:207;s:11:" * abstract";b:0;s:8:" * final";b:0;s:9:" * static";b:0;s:13:" * visibility";s:6:"public";s:12:" * arguments";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{s:9:"$messages";O:43:"phpDocumentor\Descriptor\ArgumentDescriptor":16:{s:9:" * method";r:719;s:8:" * types";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:51:"phpDocumentor\Descriptor\Type\UnknownTypeDescriptor":1:{s:7:" * name";s:5:"array";}}}s:10:" * default";s:7:"array()";s:14:" * byReference";b:0;s:13:" * isVariadic";b:0;s:8:" * fqsen";s:0:"";s:7:" * name";s:9:"$messages";s:12:" * namespace";N;s:10:" * package";s:0:"";s:10:" * summary";s:0:"";s:14:" * description";s:0:"";s:17:" * fileDescriptor";N;s:7:" * line";i:0;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:19:" * inheritedElement";N;}}}s:8:" * fqsen";s:45:"\Producers_MixpanelBaseProducer::enqueueAll()";s:7:" * name";s:10:"enqueueAll";s:12:" * namespace";N;s:10:" * package";s:0:"";s:10:" * summary";s:79:"Add an array representing a list of messages to be sent to Mixpanel to a queue.";s:14:" * description";s:0:"";s:17:" * fileDescriptor";N;s:7:" * line";i:205;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:2:{s:5:"param";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:44:"phpDocumentor\Descriptor\Tag\ParamDescriptor":5:{s:15:" * variableName";s:9:"$messages";s:8:" * types";r:729;s:7:" * name";s:5:"param";s:14:" * description";s:0:"";s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}}s:6:"return";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:19:" * inheritedElement";N;}s:8:"_persist";O:41:"phpDocumentor\Descriptor\MethodDescriptor":17:{s:9:" * parent";r:207;s:11:" * abstract";b:0;s:8:" * final";b:0;s:9:" * static";b:0;s:13:" * visibility";s:9:"protected";s:12:" * arguments";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{s:8:"$message";O:43:"phpDocumentor\Descriptor\ArgumentDescriptor":16:{s:9:" * method";r:773;s:8:" * types";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:10:" * default";N;s:14:" * byReference";b:0;s:13:" * isVariadic";b:0;s:8:" * fqsen";s:0:"";s:7:" * name";s:8:"$message";s:12:" * namespace";N;s:10:" * package";s:0:"";s:10:" * summary";s:0:"";s:14:" * description";s:0:"";s:17:" * fileDescriptor";N;s:7:" * line";i:0;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:19:" * inheritedElement";N;}}}s:8:" * fqsen";s:43:"\Producers_MixpanelBaseProducer::_persist()";s:7:" * name";s:8:"_persist";s:12:" * namespace";N;s:10:" * package";s:0:"";s:10:" * summary";s:81:"Given an array of messages, persist it with the instantiated Persistence Strategy";s:14:" * description";s:0:"";s:17:" * fileDescriptor";N;s:7:" * line";i:218;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:2:{s:5:"param";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:44:"phpDocumentor\Descriptor\Tag\ParamDescriptor":5:{s:15:" * variableName";s:8:"$message";s:8:" * types";r:783;s:7:" * name";s:5:"param";s:14:" * description";s:0:"";s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}}s:6:"return";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:45:"phpDocumentor\Descriptor\Tag\ReturnDescriptor":4:{s:8:" * types";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:51:"phpDocumentor\Descriptor\Type\UnknownTypeDescriptor":1:{s:7:" * name";s:5:"mixed";}}}s:7:" * name";s:6:"return";s:14:" * description";s:0:"";s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}}}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:19:" * inheritedElement";N;}s:12:"_getEndpoint";O:41:"phpDocumentor\Descriptor\MethodDescriptor":17:{s:9:" * parent";r:207;s:11:" * abstract";b:1;s:8:" * final";b:0;s:9:" * static";b:0;s:13:" * visibility";s:6:"public";s:12:" * arguments";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:8:" * fqsen";s:47:"\Producers_MixpanelBaseProducer::_getEndpoint()";s:7:" * name";s:12:"_getEndpoint";s:12:" * namespace";N;s:10:" * package";s:0:"";s:10:" * summary";s:103:"Return the endpoint that should be used by a consumer that consumes messages produced by this producer.";s:14:" * description";s:0:"";s:17:" * fileDescriptor";N;s:7:" * line";i:229;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:2:{s:6:"return";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:45:"phpDocumentor\Descriptor\Tag\ReturnDescriptor":4:{s:8:" * types";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:46:"phpDocumentor\Descriptor\Type\StringDescriptor":0:{}}}s:7:" * name";s:6:"return";s:14:" * description";s:0:"";s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}}s:5:"param";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:19:" * inheritedElement";N;}}}s:13:" * usedTraits";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:8:" * fqsen";s:31:"\Producers_MixpanelBaseProducer";s:7:" * name";s:30:"Producers_MixpanelBaseProducer";s:12:" * namespace";s:0:"";s:10:" * package";s:0:"";s:10:" * summary";s:56:"Provides some base methods for use by a message Producer";s:14:" * description";s:0:"";s:17:" * fileDescriptor";r:1;s:7:" * line";i:14;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:2:{s:7:"package";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:38:"phpDocumentor\Descriptor\TagDescriptor":3:{s:7:" * name";s:7:"package";s:14:" * description";s:7:"Default";s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}}s:10:"subpackage";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:19:" * inheritedElement";N;}}}s:13:" * interfaces";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:9:" * traits";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:10:" * markers";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:8:" * fqsen";s:0:"";s:7:" * name";s:24:"MixpanelBaseProducer.php";s:12:" * namespace";N;s:10:" * package";s:7:"Default";s:10:" * summary";s:0:"";s:14:" * description";s:0:"";s:17:" * fileDescriptor";N;s:7:" * line";i:0;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:2:{s:7:"package";r:879;s:10:"subpackage";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:40:"phpDocumentor\Descriptor\Validator\Error":4:{s:11:" * severity";s:5:"error";s:7:" * code";s:13:"PPC:ERR-50000";s:7:" * line";i:0;s:10:" * context";a:2:{s:11:"{{ value }}";s:2:"""";i:0;s:0:"";}}}}s:19:" * inheritedElement";N;}