# HG changeset patch # User ichikitakahiro # Date 1634824203 -32400 # Node ID dd71859780b9274ce6cc37f741de0b84505aaaf9 # Parent 449a78f0cdddaa4fde71911b3111fab3862aadc8 rework gearsFile diff -r 449a78f0cddd -r dd71859780b9 src/parallel_execution/examples/gearsFile/GearsFile.h --- a/src/parallel_execution/examples/gearsFile/GearsFile.h Thu Oct 21 14:44:00 2021 +0900 +++ b/src/parallel_execution/examples/gearsFile/GearsFile.h Thu Oct 21 22:50:03 2021 +0900 @@ -1,12 +1,11 @@ typedef struct GearsFile <> { union Data* gearsFile; union Data* data; - struct Queue* inputStreamQueue; - struct Queue* outputStreamQueue; - struct Queue* dataQueue; + union Data* queue; struct FileData* fileData; - __code readData(Impl* gearsFile, Queue* outputStreamQueue,__code next(...)); - __code writeData(Impl* gearsFile, Queue* inputStreamQueue, __code next(...)); + __code readData(Impl* gearsFile, __code next(...)); + __code writeData(Impl* gearsFile, __code next(...)); + __code takeStream(Impl* gearsFile, Queue* queue, __code next(...)); __code test(Impl* gearsFile, FileData* fileData, __code next(...)); __code next(...); } GearsFile; diff -r 449a78f0cddd -r dd71859780b9 src/parallel_execution/examples/gearsFile/GearsFileImpl.cbc --- a/src/parallel_execution/examples/gearsFile/GearsFileImpl.cbc Thu Oct 21 14:44:00 2021 +0900 +++ b/src/parallel_execution/examples/gearsFile/GearsFileImpl.cbc Thu Oct 21 22:50:03 2021 +0900 @@ -15,41 +15,43 @@ struct GearsFile* gearsFile = new GearsFile(); struct GearsFileImpl* gears_file_impl = new GearsFileImpl(); gearsFile->gearsFile = (union Data*)gears_file_impl; - - Queue* inputQueue = createSingleLinkedQueue(context); - gearsFile->inputStreamQueue = inputQueue; - Queue* outputQueue = createSynchronizedQueue(context); - gearsFile->outputStreamQueue = outputQueue; - Queue* DQueue = createSingleLinkedQueue(context); - gearsFile->dataQueue = DQueue; - + + gears_file_impl->inputQueue = createSingleLinkedQueue(context); + gears_file_impl->outputQueue = createSingleLinkedQueue(context); + gears_file_impl->mainQueue = createSingleLinkedQueue(context); + gearsFile->readData = C_readDataGearsFileImpl; gearsFile->writeData = C_writeDataGearsFileImpl; gearsFile->test = C_testGearsFileImpl; return gearsFile; } -__code readData(struct GearsFileImpl* gearsFile, Queue* outputStreamQueue, __code next(...)) { - printf("readData\n"); - - goto outputStreamQueue->take(test); +__code readData(struct GearsFileImpl* gearsFile, __code next(...)) { + struct Queue* iQueue = gearsFile->inputQueue; + goto iQueue->take(test); } -__code writeData(struct GearsFileImpl* gearsFile, Queue* inputStreamQueue, __code next(...)) { - //struct Queue* inputStreamQueue = createSingleLinkedQueue(context); +__code writeData(struct GearsFileImpl* gearsFile, __code next(...)) { + printf("writeData\n"); + struct Queue* queue = gearsFile->inputQueue; FileData* fileData = NEW(FileData); fileData->string = "tsts"; - printf("writeData\n"); - goto inputStreamQueue->put(fileData, next(...)); + goto queue->put(fileData, next(...)); +} + + +__code takeStreamQueue(struct GearsFileImpl* gearsFile, Queue* queue, __code next(...)){ + printf("takeStreamQueue\n"); } __code test(struct GearsFileImpl* gearsFile, FileData* fileData, __code next(...)) { - if (fileData ==NULL){ + if (fileData == NULL){ printf("End of File\n"); + goto exit_code(); } else { printf("%s\n", fileData->string); + goto next(...); } - goto next(...); } __code testGearsFileImpl_stub(struct Context* context){ diff -r 449a78f0cddd -r dd71859780b9 src/parallel_execution/examples/gearsFile/GearsFileImpl.h --- a/src/parallel_execution/examples/gearsFile/GearsFileImpl.h Thu Oct 21 14:44:00 2021 +0900 +++ b/src/parallel_execution/examples/gearsFile/GearsFileImpl.h Thu Oct 21 22:50:03 2021 +0900 @@ -1,3 +1,6 @@ -typedef struct GearsFileImpl <> impl GearsFile { +typedef struct GearsFileImpl <> impl GearsFile { + struct Queue* inputQueue; + struct Queue* outputQueue; + struct Queue* mainQueue; __code next(...); } GearsFileImpl; diff -r 449a78f0cddd -r dd71859780b9 src/parallel_execution/examples/gearsFile/GearsFile_test.cbc --- a/src/parallel_execution/examples/gearsFile/GearsFile_test.cbc Thu Oct 21 14:44:00 2021 +0900 +++ b/src/parallel_execution/examples/gearsFile/GearsFile_test.cbc Thu Oct 21 22:50:03 2021 +0900 @@ -3,8 +3,8 @@ -__code fileTask1(GearsFile* gearsFile){ - goto gearsFile->writeData(gearsFile->inputStreamQueue ,fileTask2); +__code fileTask1(GearsFile* gearsFile){ + goto gearsFile->writeData(fileTask2); } __code fileTask1_stub(struct Context* context){ @@ -13,8 +13,7 @@ } __code fileTask2(GearsFile* gearsFile){ - printf("Task2\n"); - goto gearsFile->readData(gearsFile->inputStreamQueue, exit_code); + goto gearsFile->readData(fileTask2); } __code fileTask2_stub(struct Context* context){