| 495 | |
| 496 | |
| 497 | class FieldModelOrder(fbe.FieldModel): |
| 498 | __slots__ = "_id", "_symbol", "_side", "_type", "_price", "_volume", |
| 499 | |
| 500 | def __init__(self, buffer, offset): |
| 501 | super().__init__(buffer, offset) |
| 502 | self._id = fbe.FieldModelInt32(buffer, 4 + 4) |
| 503 | self._symbol = fbe.FieldModelString(buffer, self._id.fbe_offset + self._id.fbe_size) |
| 504 | self._side = FieldModelOrderSide(buffer, self._symbol.fbe_offset + self._symbol.fbe_size) |
| 505 | self._type = FieldModelOrderType(buffer, self._side.fbe_offset + self._side.fbe_size) |
| 506 | self._price = fbe.FieldModelDouble(buffer, self._type.fbe_offset + self._type.fbe_size) |
| 507 | self._volume = fbe.FieldModelDouble(buffer, self._price.fbe_offset + self._price.fbe_size) |
| 508 | |
| 509 | @property |
| 510 | def id(self): |
| 511 | return self._id |
| 512 | |
| 513 | @property |
| 514 | def symbol(self): |
| 515 | return self._symbol |
| 516 | |
| 517 | @property |
| 518 | def side(self): |
| 519 | return self._side |
| 520 | |
| 521 | @property |
| 522 | def type(self): |
| 523 | return self._type |
| 524 | |
| 525 | @property |
| 526 | def price(self): |
| 527 | return self._price |
| 528 | |
| 529 | @property |
| 530 | def volume(self): |
| 531 | return self._volume |
| 532 | |
| 533 | # Get the field size |
| 534 | @property |
| 535 | def fbe_size(self): |
| 536 | return 4 |
| 537 | |
| 538 | # Get the field body size |
| 539 | @property |
| 540 | def fbe_body(self): |
| 541 | fbe_result = 4 + 4 \ |
| 542 | + self.id.fbe_size \ |
| 543 | + self.symbol.fbe_size \ |
| 544 | + self.side.fbe_size \ |
| 545 | + self.type.fbe_size \ |
| 546 | + self.price.fbe_size \ |
| 547 | + self.volume.fbe_size \ |
| 548 | |
| 549 | return fbe_result |
| 550 | |
| 551 | # Get the field extra size |
| 552 | @property |
| 553 | def fbe_extra(self): |
| 554 | if (self._buffer.offset + self.fbe_offset + self.fbe_size) > self._buffer.size: |