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

Class OrderModel

projects/Python/proto/protoex.py:840–913  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

838
839# Fast Binary Encoding Order model
840class OrderModel(fbe.Model):
841 __slots__ = "_model",
842
843 def __init__(self, buffer=None):
844 super().__init__(buffer)
845 self._model = FieldModelOrder(self.buffer, 4)
846
847 @property
848 def model(self):
849 return self._model
850
851 # Get the model size
852 @property
853 def fbe_size(self):
854 return self._model.fbe_size + self._model.fbe_extra
855
856 # Get the model type
857 @property
858 def fbe_type(self):
859 return self.TYPE
860
861 TYPE = FieldModelOrder.TYPE
862
863 # Check if the struct value is valid
864 def verify(self):
865 if (self.buffer.offset + self._model.fbe_offset - 4) > self.buffer.size:
866 return False
867
868 fbe_full_size = self.read_uint32(self._model.fbe_offset - 4)
869 if fbe_full_size < self._model.fbe_size:
870 return False
871
872 return self._model.verify()
873
874 # Create a new model (begin phase)
875 def create_begin(self):
876 fbe_begin = self.buffer.allocate(4 + self._model.fbe_size)
877 return fbe_begin
878
879 # Create a new model (end phase)
880 def create_end(self, fbe_begin):
881 fbe_end = self.buffer.size
882 fbe_full_size = fbe_end - fbe_begin
883 self.write_uint32(self._model.fbe_offset - 4, fbe_full_size)
884 return fbe_full_size
885
886 # Serialize the struct value
887 def serialize(self, value):
888 fbe_begin = self.create_begin()
889 self._model.set(value)
890 fbe_full_size = self.create_end(fbe_begin)
891 return fbe_full_size
892
893 # Deserialize the struct value
894 def deserialize(self, value=None):
895 if value is None:
896 value = Order()
897

Callers 1

cloneMethod · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected