changeset 982:dd71859780b9

rework gearsFile
author ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
date Thu, 21 Oct 2021 22:50:03 +0900
parents 449a78f0cddd
children d855932884b7 0034a63e9c85
files src/parallel_execution/examples/gearsFile/GearsFile.h src/parallel_execution/examples/gearsFile/GearsFileImpl.cbc src/parallel_execution/examples/gearsFile/GearsFileImpl.h src/parallel_execution/examples/gearsFile/GearsFile_test.cbc
diffstat 4 files changed, 31 insertions(+), 28 deletions(-) [+]
line wrap: on
line diff
--- 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;
--- 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){
--- 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;
--- 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){