summaryrefslogtreecommitdiff
path: root/examples/cxx/parser/multiroot/protocol-pimpl.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'examples/cxx/parser/multiroot/protocol-pimpl.hxx')
-rw-r--r--examples/cxx/parser/multiroot/protocol-pimpl.hxx49
1 files changed, 49 insertions, 0 deletions
diff --git a/examples/cxx/parser/multiroot/protocol-pimpl.hxx b/examples/cxx/parser/multiroot/protocol-pimpl.hxx
new file mode 100644
index 0000000..0531790
--- /dev/null
+++ b/examples/cxx/parser/multiroot/protocol-pimpl.hxx
@@ -0,0 +1,49 @@
+// file : examples/cxx/parser/multiroot/protocol-pimpl.hxx
+// author : Boris Kolpackov <boris@codesynthesis.com>
+// copyright : not copyrighted - public domain
+
+#ifndef PROTOCOL_PIMPL_HXX
+#define PROTOCOL_PIMPL_HXX
+
+#include "protocol.hxx"
+#include "protocol-pskel.hxx"
+
+namespace protocol
+{
+ class request_pimpl: public virtual request_pskel
+ {
+ public:
+ virtual void
+ account (unsigned int);
+
+ virtual request*
+ post_request ();
+
+ protected:
+ unsigned int account_;
+ };
+
+ class balance_pimpl: public virtual balance_pskel,
+ public request_pimpl
+ {
+ public:
+ virtual balance*
+ post_balance ();
+ };
+
+ class withdraw_pimpl: public virtual withdraw_pskel,
+ public request_pimpl
+ {
+ public:
+ virtual void
+ amount (unsigned int);
+
+ virtual withdraw*
+ post_withdraw ();
+
+ private:
+ unsigned int amount_;
+ };
+}
+
+#endif // PROTOCOL_PIMPL_HXX