| 571 | } |
| 572 | |
| 573 | void MsgToValue(MsgTypedValue const & msg, TypedValue & tv, void * tvVmt) |
| 574 | { |
| 575 | tv.VMT = tvVmt; |
| 576 | tv.TypeId = msg.type_id(); |
| 577 | switch ((ValueType)msg.type_id()) { |
| 578 | case ValueType::None: |
| 579 | break; |
| 580 | |
| 581 | case ValueType::Integer: |
| 582 | tv.Value.Val.Int32 = (int32_t)msg.intval(); |
| 583 | break; |
| 584 | |
| 585 | case ValueType::Integer64: |
| 586 | tv.Value.Val.Int64 = msg.intval(); |
| 587 | break; |
| 588 | |
| 589 | case ValueType::Real: |
| 590 | tv.Value.Val.Float = msg.floatval(); |
| 591 | break; |
| 592 | |
| 593 | case ValueType::String: |
| 594 | case ValueType::GuidString: |
| 595 | default: |
| 596 | tv.Value.Val.String = _strdup(msg.stringval().c_str()); |
| 597 | break; |
| 598 | } |
| 599 | } |
| 600 | |
| 601 | void MsgToTuple(MsgTuple const & msg, VirtTupleLL & tuple, void * tvVmt) |
| 602 | { |