Subversion-Projekte lars-tiefland.laravel_shop

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
148 lars 1
<?php
2
 
3
/**
4
 * This file is part of the ramsey/uuid library
5
 *
6
 * For the full copyright and license information, please view the LICENSE
7
 * file that was distributed with this source code.
8
 *
9
 * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>
10
 * @license http://opensource.org/licenses/MIT MIT
11
 */
12
 
13
declare(strict_types=1);
14
 
15
namespace Ramsey\Uuid\Converter;
16
 
17
use Ramsey\Uuid\Type\Hexadecimal;
18
use Ramsey\Uuid\Type\Time;
19
 
20
/**
21
 * A time converter converts timestamps into representations that may be used
22
 * in UUIDs
23
 *
24
 * @psalm-immutable
25
 */
26
interface TimeConverterInterface
27
{
28
    /**
29
     * Uses the provided seconds and micro-seconds to calculate the count of
30
     * 100-nanosecond intervals since UTC 00:00:00.00, 15 October 1582, for
31
     * RFC 4122 variant UUIDs
32
     *
33
     * @link http://tools.ietf.org/html/rfc4122#section-4.2.2 RFC 4122, § 4.2.2: Generation Details
34
     *
35
     * @param string $seconds A string representation of the number of seconds
36
     *     since the Unix epoch for the time to calculate
37
     * @param string $microseconds A string representation of the micro-seconds
38
     *     associated with the time to calculate
39
     *
40
     * @return Hexadecimal The full UUID timestamp as a Hexadecimal value
41
     *
42
     * @psalm-pure
43
     */
44
    public function calculateTime(string $seconds, string $microseconds): Hexadecimal;
45
 
46
    /**
47
     * Converts a timestamp extracted from a UUID to a Unix timestamp
48
     *
49
     * @param Hexadecimal $uuidTimestamp A hexadecimal representation of a UUID
50
     *     timestamp; a UUID timestamp is a count of 100-nanosecond intervals
51
     *     since UTC 00:00:00.00, 15 October 1582.
52
     *
53
     * @return Time An instance of {@see Time}
54
     *
55
     * @psalm-pure
56
     */
57
    public function convertTime(Hexadecimal $uuidTimestamp): Time;
58
}