1<?php
2
3if (file_exists (dirname (__FILE__) . '/config.inc.local')) {
4	include dirname (__FILE__) . '/config.inc.local';
5}
6else {
7	define ("MEMC_SERVER_HOST", "127.0.0.1");
8	define ("MEMC_SERVER_PORT", 11211);
9
10	//define ("MEMC_SASL_SERVER_HOST", "127.0.0.1");
11	//define ("MEMC_SASL_SERVER_PORT", 11212);
12
13	//define ('MEMC_SASL_USER', 'memcached');
14	//define ('MEMC_SASL_PASS', 'test');
15}
16
17function memc_create_instance ($host, $port, array $opts = array (), $persistent_id = null)
18{
19	$memcached = new Memcached($persistent_id);
20	if ($memcached->setOptions ($opts) == false)
21		echo "Failed to set options" . PHP_EOL;
22
23	$memcached->addServer($host, $port);
24	if ($memcached->flush() === false) {
25		return NULL;
26	}
27	return $memcached;
28}
29
30function memc_get_instance (array $opts = array (), $persistent_id = null)
31{
32	return memc_create_instance(MEMC_SERVER_HOST, MEMC_SERVER_PORT, $opts, $persistent_id);
33}
34
35function memc_get_sasl_instance (array $opts = array (), $persistent_id = null)
36{
37	return memc_create_instance(MEMC_SASL_SERVER_HOST, MEMC_SASL_SERVER_PORT, $opts, $persistent_id);
38}
39
40function memc_run_test ($test_function, $options = array ())
41{
42	foreach ($options as $option_set) {
43		$memc = memc_get_instance ($option_set ['options']);
44		$test_function ($memc, $option_set);
45	}
46	echo "TEST DONE" . PHP_EOL;
47}
48
49function memc_create_combinations ($name, $serializer, $ignore_object_type = false)
50{
51	return array (
52			array (
53				'title' => "$name serializer, ascii protocol",
54				'options' => array (
55					Memcached::OPT_SERIALIZER => $serializer
56				),
57				'ignore_object_type' => $ignore_object_type
58			),
59			array (
60				'title' => "$name serializer, binary protocol",
61				'options' => array (
62					Memcached::OPT_BINARY_PROTOCOL => true,
63					Memcached::OPT_SERIALIZER => $serializer
64				),
65				'ignore_object_type' => $ignore_object_type
66			),
67	);
68}
69
70function memc_get_version($memc) {
71	$version = $memc->getVersion();
72	return array_pop($version);
73}
74