changeset 1014:a9c630cc1c65

tweak
author ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
date Sat, 15 Jan 2022 17:43:04 +0900
parents 9ca9c36a4633
children e6778c866876 635ccc391642
files src/parallel_execution/examples/socketQueue/FileString.h src/parallel_execution/examples/socketQueue/LocalDGMQueue.cbc src/parallel_execution/examples/socketQueue/RemoteDGMQueue.cbc src/parallel_execution/examples/socketQueue/TQueue.h
diffstat 4 files changed, 23 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/src/parallel_execution/examples/socketQueue/FileString.h	Sat Jan 15 16:13:59 2022 +0900
+++ b/src/parallel_execution/examples/socketQueue/FileString.h	Sat Jan 15 17:43:04 2022 +0900
@@ -1,4 +1,4 @@
 typedef struct FileString <> {
   char str[1024];
-  int* size;
+  int size;
 } FileString;
--- a/src/parallel_execution/examples/socketQueue/LocalDGMQueue.cbc	Sat Jan 15 16:13:59 2022 +0900
+++ b/src/parallel_execution/examples/socketQueue/LocalDGMQueue.cbc	Sat Jan 15 17:43:04 2022 +0900
@@ -182,9 +182,10 @@
     char recv_buf[BUF_SIZE], send_buf;
 
     /* クライアントから文字列を受信 */
-    FileString* fileString = NEW(FileString);
-    recv_size = recv(tQueue->socket, fileString, sizeof(struct FileString), 0);
-    printf("[%s] [%d]\n", fileString->str, fileString->size);
+    union Data* recv_data;
+    recv_size = recv(tQueue->socket, recv_data, sizeof(union Data), 0);
+    //printf("[%s] [%d]\n", fileString->str, fileString->size);
+    printf("size is %d\n", sizeof(union Data));
     if (recv_size == -1) {
         printf("recv error\n");
         goto exit_code();
@@ -198,8 +199,11 @@
 
 
     /* 文字列が"finish"ならクライアントとの接続終了 */
+
+    FileString* fileString = NEW(FileString);
+    fileString = recv_data;
     if (strcmp(fileString->str, "finish") == 0) {
-        /* 接続終了を表す0を送信 */
+       /* 接続終了を表す0を送信 */
         send_buf = 0;
         send_size = send(tQueue->socket, &send_buf, 1, 0);
         if (send_size == -1) {
@@ -216,9 +220,11 @@
         }
     }
 
-    Gearef(context, TQueue)->data = fileString;
+
+
+    Gearef(context, TQueue)->data = recv_data;
     
-    goto putLocalDGMQueue(fileString, next);
+    goto putLocalDGMQueue(recv_data, next);
 }
 
 __code sendData(struct RemoteDGMQueue* tQueue, struct FileString* string, __code next(...)){
--- a/src/parallel_execution/examples/socketQueue/RemoteDGMQueue.cbc	Sat Jan 15 16:13:59 2022 +0900
+++ b/src/parallel_execution/examples/socketQueue/RemoteDGMQueue.cbc	Sat Jan 15 17:43:04 2022 +0900
@@ -161,16 +161,16 @@
     goto next(...);
 }
 
-__code sendData(struct RemoteDGMQueue* tQueue, FileString* string, __code next(...)){
+__code sendData(struct RemoteDGMQueue* tQueue, union Data* data, __code next(...)){
     char send_buf[BUF_SIZE], recv_buf;
     int send_size, recv_size;
 
 
     /* サーバーに送る文字列を取得 */
-    memcpy(send_buf, string->str, sizeof(send_buf));
+    //memcpy(send_buf, string->str, sizeof(send_buf));
 
     /* 文字列を送信 */
-    send_size = send(tQueue->socket, string, sizeof(struct FileString), 0);
+    send_size = send(tQueue->socket, data, sizeof(union Data), 0);
     if (send_size == -1) {
         printf("send error\n");
         close(tQueue->socket);
@@ -204,11 +204,15 @@
 
 __code sendDataRemoteDGMQueue_stub(struct Context* context) {
 	RemoteDGMQueue* tQueue = (RemoteDGMQueue*)GearImpl(context, TQueue, tQueue);
-	FileString* string = Gearef(context, TQueue)->data;
+	union Data* data = Gearef(context, TQueue)->data;
 	enum Code next = Gearef(context, TQueue)->next;
-	goto sendDataRemoteDGMQueue(context, tQueue, string, next);
+	goto sendDataRemoteDGMQueue(context, tQueue, data, next);
 }
 
 __code getData(struct RemoteDGMQueue* tQueue, __code next(...), __code whenEOF(...)){
 
 }
+
+__code closeSocket(struct RemoteDGMQueue* tQueue, __code next(...)){
+
+}
\ No newline at end of file
--- a/src/parallel_execution/examples/socketQueue/TQueue.h	Sat Jan 15 16:13:59 2022 +0900
+++ b/src/parallel_execution/examples/socketQueue/TQueue.h	Sat Jan 15 17:43:04 2022 +0900
@@ -10,7 +10,7 @@
     __code take(Impl* tQueue, __code next(union Data* data, ...));
     __code isEmpty(Impl* tQueue, __code next(...), __code whenEmpty(...));
 
-    __code sendData(Impl* tQueue, FileString* string, __code next(...));
+    __code sendData(Impl* tQueue, union Data* data, __code next(...));
     __code getData(Impl* tQueue, __code next(...), __code whenEOF(...));
     __code next(...);
 } TQueue;