This commit is contained in:
28
src/bucketresources.py
Normal file
28
src/bucketresources.py
Normal file
@@ -0,0 +1,28 @@
|
||||
from enum import Enum
|
||||
|
||||
|
||||
class BucketResourceType(Enum):
|
||||
NetworkLink = 'network_link'
|
||||
CpuResource = 'cpu_resource'
|
||||
|
||||
|
||||
class BucketResource:
|
||||
type: BucketResourceType = BucketResourceType.NetworkLink
|
||||
currentUsage: int = 0
|
||||
capacity: int = 0
|
||||
|
||||
def reserve(self, resource: int) -> bool:
|
||||
if self.capacity == self.currentUsage or resource > self.capacity - self.currentUsage:
|
||||
return False
|
||||
else:
|
||||
return True
|
||||
|
||||
def release(self, resource: int) -> bool:
|
||||
if self.currentUsage == 0 or self.currentUsage - resource < 0:
|
||||
return False
|
||||
else:
|
||||
return True
|
||||
|
||||
def releaseAll(self) -> bool:
|
||||
self.currentUsage = 0
|
||||
return True
|
||||
Reference in New Issue
Block a user