MCPcopy Create free account
hub / github.com/chronoxor/FastBinaryEncoding / BalanceModel

Class BalanceModel

projects/Python/proto/protoex.py:1516–1589  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1514
1515# Fast Binary Encoding Balance model
1516class BalanceModel(fbe.Model):
1517 __slots__ = "_model",
1518
1519 def __init__(self, buffer=None):
1520 super().__init__(buffer)
1521 self._model = FieldModelBalance(self.buffer, 4)
1522
1523 @property
1524 def model(self):
1525 return self._model
1526
1527 # Get the model size
1528 @property
1529 def fbe_size(self):
1530 return self._model.fbe_size + self._model.fbe_extra
1531
1532 # Get the model type
1533 @property
1534 def fbe_type(self):
1535 return self.TYPE
1536
1537 TYPE = FieldModelBalance.TYPE
1538
1539 # Check if the struct value is valid
1540 def verify(self):
1541 if (self.buffer.offset + self._model.fbe_offset - 4) > self.buffer.size:
1542 return False
1543
1544 fbe_full_size = self.read_uint32(self._model.fbe_offset - 4)
1545 if fbe_full_size < self._model.fbe_size:
1546 return False
1547
1548 return self._model.verify()
1549
1550 # Create a new model (begin phase)
1551 def create_begin(self):
1552 fbe_begin = self.buffer.allocate(4 + self._model.fbe_size)
1553 return fbe_begin
1554
1555 # Create a new model (end phase)
1556 def create_end(self, fbe_begin):
1557 fbe_end = self.buffer.size
1558 fbe_full_size = fbe_end - fbe_begin
1559 self.write_uint32(self._model.fbe_offset - 4, fbe_full_size)
1560 return fbe_full_size
1561
1562 # Serialize the struct value
1563 def serialize(self, value):
1564 fbe_begin = self.create_begin()
1565 self._model.set(value)
1566 fbe_full_size = self.create_end(fbe_begin)
1567 return fbe_full_size
1568
1569 # Deserialize the struct value
1570 def deserialize(self, value=None):
1571 if value is None:
1572 value = Balance()
1573

Callers 1

cloneMethod · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected