Back to index

lightning-sunbird  0.9+nobinonly
TestModule.cpp
Go to the documentation of this file.
00001 #include <stdio.h>
00002 #include "ipcModuleUtil.h"
00003 
00004 #define TEST_MODULE_ID                                \
00005 { /* e628fc6e-a6a7-48c7-adba-f241d1128fb8 */          \
00006     0xe628fc6e,                                       \
00007     0xa6a7,                                           \
00008     0x48c7,                                           \
00009     {0xad, 0xba, 0xf2, 0x41, 0xd1, 0x12, 0x8f, 0xb8}  \
00010 }
00011 static const nsID kTestModuleID = TEST_MODULE_ID;
00012 
00013 struct TestModule
00014 {
00015     static void Init()
00016     {
00017         printf("*** TestModule::Init\n");
00018     }
00019 
00020     static void Shutdown()
00021     {
00022         printf("*** TestModule::Shutdown\n");
00023     }
00024 
00025     static void HandleMsg(ipcClientHandle client,
00026                           const nsID     &target,
00027                           const void     *data,
00028                           PRUint32        dataLen)
00029     {
00030         printf("*** TestModule::HandleMsg [%s]\n", (const char *) data);
00031 
00032         static const char buf[] = "pong";
00033         IPC_SendMsg(client, kTestModuleID, buf, sizeof(buf));
00034     }
00035 
00036     static void ClientUp(ipcClientHandle client)
00037     {
00038         printf("*** TestModule::ClientUp [%u]\n", IPC_GetClientID(client));
00039     }
00040 
00041     static void ClientDown(ipcClientHandle client)
00042     {
00043         printf("*** TestModule::ClientDown [%u]\n", IPC_GetClientID(client));
00044     }
00045 };
00046 
00047 static ipcModuleMethods gTestMethods =
00048 {
00049     IPC_MODULE_METHODS_VERSION,
00050     TestModule::Init,
00051     TestModule::Shutdown,
00052     TestModule::HandleMsg,
00053     TestModule::ClientUp,
00054     TestModule::ClientDown
00055 };
00056 
00057 static ipcModuleEntry gTestModuleEntry[] =
00058 {
00059     { TEST_MODULE_ID, &gTestMethods }
00060 };
00061 
00062 IPC_IMPL_GETMODULES(TestModule, gTestModuleEntry)