1 // file : examples/cxx/parser/multiroot/protocol-pimpl.hxx 2 // copyright : not copyrighted - public domain 3 4 #ifndef PROTOCOL_PIMPL_HXX 5 #define PROTOCOL_PIMPL_HXX 6 7 #include "protocol.hxx" 8 #include "protocol-pskel.hxx" 9 10 namespace protocol 11 { 12 class request_pimpl: public virtual request_pskel 13 { 14 public: 15 virtual void 16 account (unsigned int); 17 18 virtual request* 19 post_request (); 20 21 protected: 22 unsigned int account_; 23 }; 24 25 class balance_pimpl: public virtual balance_pskel, 26 public request_pimpl 27 { 28 public: 29 virtual balance* 30 post_balance (); 31 }; 32 33 class withdraw_pimpl: public virtual withdraw_pskel, 34 public request_pimpl 35 { 36 public: 37 virtual void 38 amount (unsigned int); 39 40 virtual withdraw* 41 post_withdraw (); 42 43 private: 44 unsigned int amount_; 45 }; 46 } 47 48 #endif // PROTOCOL_PIMPL_HXX 49