Mercurial > hg > Gears > Gears
view src/parallel_execution/examples/socketQueue/Local_test.cbc @ 1022:635ccc391642
Organize repository
author | ichikitakahiro <e165713@ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 31 Mar 2022 13:23:08 +0900 |
parents | 9ca9c36a4633 |
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; int wordNum = 0; int numOfLine = 0; __code Task1(TQueue* localDGMQueue){ goto gData(); } __code Task1_stub(struct Context* context){ TQueue* localDGMQueue = createLocalDGMQueue(context, service_num); Gearef(context, TQueue)->tQueue = localDGMQueue; goto Task1(context, localDGMQueue); } __code gData(TQueue* localDGMQueue){ goto localDGMQueue->getData(Task2, getEOF); } __code gData_stub(struct Context* context){ TQueue* localDGMQueue = (struct TQueue*)Gearef(context, TQueue)->tQueue; goto gData(context, localDGMQueue); } __code Task2(TQueue* localDGMQueue){ goto localDGMQueue->take(Task3); } __code Task2_stub(struct Context* context){ TQueue* localDGMQueue = (struct TQueue*)Gearef(context, TQueue)->tQueue; goto Task2(context, localDGMQueue); } __code Task3(TQueue* localDGMQueue, FileString* string){ printf("take[%s] [num:%d]\n", string->str, string->size); numOfLine += 1; wordNum += strlen(string->str); goto gData(); //goto localDGMQueue->isEmpty(noEmp, whenEmp); } __code Task3_stub(struct Context* context) { TQueue* localDGMQueue = Gearef(context, TQueue); FileString* string = Gearef(context, TQueue)->data; goto Task3(context, localDGMQueue, string); } __code whenEmp(TQueue* localDGMQueue){ printf("wordNum=[%d] & end\n", wordNum); goto exit_code(); } __code noEmp(TQueue* localDGMQueue){ goto Task2(); } __code getEOF(TQueue* localDGMQueue){ printf("wordNum=[%d] lineNum = [%d] & end\n", wordNum, numOfLine); printf("EOF & end\n"); goto exit_code(); } 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(); }