47 lines
1.4 KiB
Python
47 lines
1.4 KiB
Python
from dataclasses import dataclass
|
|
from typing import Optional
|
|
|
|
from frostfs_sdk.models.dto.version import Version, DEFAULT_MAJOR_VERSION, DEFAULT_MINOR_VERSION
|
|
|
|
|
|
class MetaHeader:
|
|
def __init__(self, version=None, epoch: int = 0, ttl: int = 2):
|
|
"""
|
|
Initializes a MetaHeader object.
|
|
|
|
:param version: A Version object representing the version.
|
|
:param epoch: An integer representing the epoch (default: 0).
|
|
:param ttl: An integer representing the time-to-live (default: 2).
|
|
"""
|
|
self._version = None
|
|
self._epoch = None
|
|
self._ttl = None
|
|
|
|
# Set default values if not provided
|
|
self.set_version(version or Version(DEFAULT_MAJOR_VERSION, DEFAULT_MINOR_VERSION))
|
|
self.set_epoch(epoch)
|
|
self.set_ttl(ttl)
|
|
|
|
def get_version(self):
|
|
return self._version
|
|
|
|
def get_epoch(self):
|
|
return self._epoch
|
|
|
|
def get_ttl(self):
|
|
return self._ttl
|
|
|
|
def set_version(self, version):
|
|
if version is None:
|
|
raise ValueError(f"Input parameter is missing: {Version.__name__}")
|
|
self._version = version
|
|
|
|
def set_epoch(self, epoch: int):
|
|
if epoch < 0:
|
|
raise ValueError("Epoch must be greater than or equal to zero")
|
|
self._epoch = epoch
|
|
|
|
def set_ttl(self, ttl: int):
|
|
if ttl <= 0:
|
|
raise ValueError("TTL must be greater than zero")
|
|
self._ttl = ttl
|