~tcuthbert/wordpress/openstack-objectstorage-k8s

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
<?php
namespace GuzzleHttp;

/**
 * Represents the result of a batch operation. This result container is
 * iterable, countable, and you can can get a result by value using the
 * getResult function.
 *
 * Successful results are anything other than exceptions. Failure results are
 * exceptions.
 *
 * @package GuzzleHttp
 */
class BatchResults implements \Countable, \IteratorAggregate, \ArrayAccess
{
    private $hash;

    /**
     * @param \SplObjectStorage $hash Hash of key objects to result values.
     */
    public function __construct(\SplObjectStorage $hash)
    {
        $this->hash = $hash;
    }

    /**
     * Get the keys that are available on the batch result.
     *
     * @return array
     */
    public function getKeys()
    {
        return iterator_to_array($this->hash);
    }

    /**
     * Gets a result from the container for the given object. When getting
     * results for a batch of requests, provide the request object.
     *
     * @param object $forObject Object to retrieve the result for.
     *
     * @return mixed|null
     */
    public function getResult($forObject)
    {
        return isset($this->hash[$forObject]) ? $this->hash[$forObject] : null;
    }

    /**
     * Get an array of successful results.
     *
     * @return array
     */
    public function getSuccessful()
    {
        $results = [];
        foreach ($this->hash as $key) {
            if (!($this->hash[$key] instanceof \Exception)) {
                $results[] = $this->hash[$key];
            }
        }

        return $results;
    }

    /**
     * Get an array of failed results.
     *
     * @return array
     */
    public function getFailures()
    {
        $results = [];
        foreach ($this->hash as $key) {
            if ($this->hash[$key] instanceof \Exception) {
                $results[] = $this->hash[$key];
            }
        }

        return $results;
    }

    /**
     * Allows iteration over all batch result values.
     *
     * @return \ArrayIterator
     */
    public function getIterator()
    {
        $results = [];
        foreach ($this->hash as $key) {
            $results[] = $this->hash[$key];
        }

        return new \ArrayIterator($results);
    }

    /**
     * Counts the number of elements in the batch result.
     *
     * @return int
     */
    public function count()
    {
        return count($this->hash);
    }

    /**
     * Checks if the batch contains a specific numerical array index.
     *
     * @param int $key Index to access
     *
     * @return bool
     */
    public function offsetExists($key)
    {
        return $key < count($this->hash);
    }

    /**
     * Allows access of the batch using a numerical array index.
     *
     * @param int $key Index to access.
     *
     * @return mixed|null
     */
    public function offsetGet($key)
    {
        $i = -1;
        foreach ($this->hash as $obj) {
            if ($key === ++$i) {
                return $this->hash[$obj];
            }
        }

        return null;
    }

    public function offsetUnset($key)
    {
        throw new \RuntimeException('Not implemented');
    }

    public function offsetSet($key, $value)
    {
        throw new \RuntimeException('Not implemented');
    }
}