Main Page   Packages   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Search  

C:/temp/src/j2k/QNX4/MsgTestBGE.cpp

Go to the documentation of this file.
00001 #include "message.hh"
00002 
00003 struct int_int_t
00004 {
00005     int a, b;
00006 };
00007 
00008 struct int_int_m
00009 {
00010     int msg;
00011     int_int_t data;
00012 };
00013 
00014 int unmarshal_int_int_rint( Message_thread*,
00015                             Message_thread::method_type,
00016                             int,
00017                             char*,
00018                             Message_thread::pid_type);
00019 
00020 struct charp_t
00021 {
00022     char* p;
00023 };
00024 
00025 struct charp_m
00026 {
00027     int msg;
00028     charp_t data;
00029 };
00030 
00031 int unmarshal_charp_rnone( Message_thread*,
00032                            Message_thread::method_type,
00033                            int,
00034                            char*,
00035                            Message_thread::pid_type);
00036 
00037 class Message_test : public Message_thread
00038 {
00039 public:
00040     int add(int a, int b);
00041     int subtract(int a, int b);
00042     void print(const char* s);
00043     
00044     enum message_t
00045     {
00046         END,
00047         ADD,                    // int a, b
00048         SUBTRACT,               // int a, b
00049         PRINT                   // char* message
00050     };
00051 protected:
00052     DECLARE_MESSAGE_TABLE;
00053 
00054 };
00055 
00056 class Message_test_proxy 
00057 {
00058     Message_test mt;
00059 public:
00060     Message_test_proxy()
00061     {
00062         mt.start();
00063     }
00064     ~Message_test_proxy()
00065     {
00066         const int terminate = Message_test::END;
00067         mt.send(&terminate, sizeof(terminate), NULL, 0);
00068     }
00069     int add(int a, int b)
00070     {
00071         int_int_m buffer;
00072         int reply;
00073    buffer.msg = Message_test::ADD;
00074         buffer.data.a = a;
00075         buffer.data.b = b;
00076         mt.send(&buffer, sizeof(buffer), &reply, sizeof(reply));
00077         return reply;
00078     }
00079     int subtract(int a, int b)
00080     {
00081         int_int_m buffer;
00082         int reply;
00083    buffer.msg = Message_test::SUBTRACT;
00084         buffer.data.a = a;
00085         buffer.data.b = b;
00086         mt.send(&buffer, sizeof(buffer), &reply, sizeof(reply));
00087         return reply;
00088     }
00089     void print(char* p)
00090     {
00091         charp_m buffer;
00092         int reply;
00093    buffer.msg = Message_test::PRINT;
00094         buffer.data.p = p;
00095         mt.send(&buffer, sizeof(buffer), &reply, sizeof(reply));
00096     }
00097 };

Generated on Sun Oct 14 18:46:42 2001 for Standard J2K Library by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001