summaryrefslogtreecommitdiff
path: root/xsd/examples/cxx/parser/multiroot/protocol.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'xsd/examples/cxx/parser/multiroot/protocol.hxx')
-rw-r--r--xsd/examples/cxx/parser/multiroot/protocol.hxx62
1 files changed, 62 insertions, 0 deletions
diff --git a/xsd/examples/cxx/parser/multiroot/protocol.hxx b/xsd/examples/cxx/parser/multiroot/protocol.hxx
new file mode 100644
index 0000000..f076140
--- /dev/null
+++ b/xsd/examples/cxx/parser/multiroot/protocol.hxx
@@ -0,0 +1,62 @@
+// file : examples/cxx/parser/multiroot/protocol.hxx
+// author : Boris Kolpackov <boris@codesynthesis.com>
+// copyright : not copyrighted - public domain
+
+#ifndef PROTOCOL_HXX
+#define PROTOCOL_HXX
+
+namespace protocol
+{
+ class request
+ {
+ public:
+ virtual
+ ~request ()
+ {
+ }
+
+ unsigned int
+ account () const
+ {
+ return account_;
+ }
+
+ protected:
+ request (unsigned int account)
+ : account_ (account)
+ {
+ }
+
+ private:
+ unsigned int account_;
+ };
+
+ class balance: public request
+ {
+ public:
+ balance (unsigned int account)
+ : request (account)
+ {
+ }
+ };
+
+ class withdraw: public request
+ {
+ public:
+ withdraw (unsigned int account, unsigned int amount)
+ : request (account), amount_ (amount)
+ {
+ }
+
+ unsigned int
+ amount () const
+ {
+ return amount_;
+ }
+
+ private:
+ unsigned int amount_;
+ };
+}
+
+#endif // PROTOCOL_HXX