GSM 04.11 7.3.1 */
| 575 | |
| 576 | /** GSM 04.11 7.3.1 */ |
| 577 | class RPData : public RPMessage { |
| 578 | |
| 579 | private: |
| 580 | |
| 581 | RPAddress mOriginator; ///< originating SMSC |
| 582 | RPAddress mDestination; ///< destination SMSC |
| 583 | public: |
| 584 | RPUserData mUserData; ///< payload |
| 585 | |
| 586 | |
| 587 | RPData():RPMessage() {} |
| 588 | |
| 589 | /** This is a constructor for the downlink version of the message. */ |
| 590 | RPData(unsigned ref, const RPAddress& wOriginator, const TLMessage& TLM) |
| 591 | :RPMessage(ref), |
| 592 | mOriginator(wOriginator),mUserData(TLM) |
| 593 | {} |
| 594 | |
| 595 | const TLFrame& TPDU() const { return mUserData.TPDU(); } |
| 596 | |
| 597 | int MTI() const { return Data; } |
| 598 | void parseBody( const RLFrame& frame, size_t &rp); |
| 599 | void writeBody( RLFrame & frame, size_t &wp ) const; |
| 600 | |
| 601 | size_t l2BodyLength() const |
| 602 | { return mOriginator.lengthLV() + mDestination.lengthLV() + mUserData.lengthLV(); } |
| 603 | |
| 604 | void text(std::ostream&) const; |
| 605 | }; |
| 606 | |
| 607 | |
| 608 | /** GSM 04.11 7.3.2 */ |