Mercurial > hg > Gears > Gears
view src/parallel_execution/examples/socketQueue/Remote_test.cbc @ 1022:635ccc391642
Organize repository
author | ichikitakahiro <e165713@ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 31 Mar 2022 13:23:08 +0900 |
parents | a4e57a764cac |
children | 793b21a8ea12 |
line wrap: on
line source
#include "../../../context.h" #interface "TQueue.h" #interface "Integer.h" #interface "FileString.h" #interface "DataTransfer.h" char* service_num; __code Task1(TQueue* remoteDGMQueue){ FileString* string = NEW(FileString); char data[1024] = "moziretsujugemegem"; memcpy(string->str, data, strlen(data)); string->size = 456; printf("%s\n", string->str); goto remoteDGMQueue->put(string, Task2); } __code Task1_stub(struct Context* context){ TQueue* remoteDGMQueue = createRemoteDGMQueue(context, service_num); goto Task1(context, remoteDGMQueue); } __code Task2(TQueue* remoteDGMQueue){ FileString* string = NEW(FileString); char data[1024] = "finish"; memcpy(string->str, data, strlen(data)); string->size = 789; printf("%s", string->str); goto remoteDGMQueue->put(string, Task4); } __code Task2_stub(struct Context* context){ TQueue* remoteDGMQueue = (struct TQueue*)Gearef(context, TQueue)->tQueue; goto Task4(context, remoteDGMQueue); } __code Task4(TQueue* remoteDGMQueue){ printf("exit\n"); goto exit_code(); } __code Task4_stub(struct Context* context){ TQueue* remoteDGMQueue = (struct TQueue*)Gearef(context, TQueue)->tQueue; goto Task4(context, remoteDGMQueue); } void init(int argc, char** argv) { for (int i = 1; argv[i]; ++i) { if (strcmp(argv[i], "-sn") == 0){ service_num = argv[i+1]; } } } int main(int argc, char** argv) { printf("main\n"); init(argc, argv); if (service_num == NULL){ service_num = "8080"; } goto Task1(); }