From f77720c83919e621cce2431d0745ca660646fcef Mon Sep 17 00:00:00 2001 From: Yiqingbin <7709723+yiqingbin@user.noreply.gitee.com> Date: Wed, 24 May 2023 10:15:14 +0000 Subject: [PATCH 1/3] =?UTF-8?q?add=20Container-mig=20=E8=BF=81=E7=A7=BB?= =?UTF-8?q?=E5=A4=84=E7=90=86=E8=BF=9B=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Yiqingbin <7709723+yiqingbin@user.noreply.gitee.com> --- cc-resource-pooling/container-mig/dbuslt.c | 280 +++++++++++++++++++++ 1 file changed, 280 insertions(+) create mode 100644 cc-resource-pooling/container-mig/dbuslt.c diff --git a/cc-resource-pooling/container-mig/dbuslt.c b/cc-resource-pooling/container-mig/dbuslt.c new file mode 100644 index 0000000..c09211d --- /dev/null +++ b/cc-resource-pooling/container-mig/dbuslt.c @@ -0,0 +1,280 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#define DBUSLT_ERROR -1; + +int dbusmethodcall_live_transfer( +) +{ + DBusConnection *conn = NULL; + DBusMessage *msg; + DBusMessageIter args; + DBusError err; + DBusPendingCall *pending; + dbus_bool_t bResult; + int ret; + int iType; + + DBusMessageIter structIter; + dbus_uint32_t retcode; + + // initialiset the errors + dbus_error_init(&err); + + char dbusname[1024]; + if (conn == NULL) + { + // connect to the system bus and check for errors + conn = dbus_bus_get_private(DBUS_BUS_SESSION, &err); + if (dbus_error_is_set(&err)) + { + fprintf(stderr, "Connection Error (%s)\n", err.message); + dbus_error_free(&err); + } + if (NULL == conn) + { + return DBUSLT_ERROR; + } + + memset((uint8_t *) dbusname, 0, 1024); + struct timeval tv; + gettimeofday(&tv, NULL); + uint64_t u64time = (long unsigned int) (tv.tv_sec * 1000000 + tv.tv_usec); + srand(u64time); + sprintf(dbusname, + "%s.method.caller%16.16lx%16.16lx", + "live_transfer", + u64time, + (long unsigned int) rand() + ); + // request our name on the bus + ret = + dbus_bus_request_name( + conn, + dbusname, + DBUS_NAME_FLAG_REPLACE_EXISTING, + &err + ); + if (dbus_error_is_set(&err)) + { + fprintf(stderr, "Name Error (%s)\n", err.message); + dbus_error_free(&err); + dbus_connection_flush(conn); + dbus_connection_close(conn); + dbus_connection_unref(conn); + return DBUSLT_ERROR; + } + if (DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER != ret) + { + dbus_connection_flush(conn); + dbus_connection_close(conn); + dbus_connection_unref(conn); + return DBUSLT_ERROR; + } + } + + // create a new method call and check for errors + char objname[1024]; + char interfacename[1024]; + memset((uint8_t *) dbusname, 0, 1024); + sprintf(dbusname, "%s.method.server", "live_transfer"); + memset((uint8_t *) objname, 0, 1024); + sprintf(objname, "/%s/method/Object", "live_transfer"); + memset((uint8_t *) interfacename, 0, 1024); + sprintf(interfacename, "%s.method.Type", "live_transfer"); + msg = + dbus_message_new_method_call( + // "test.method.server", // target for the method call + dbusname, + // "/test/method/Object", // object to call on + objname, + // "test.method.Type", // interface to call on + interfacename, + "live_transfer" // method name + ); + if (NULL == msg) + { + fprintf(stderr, "Message Null \n"); + dbus_connection_flush(conn); + dbus_connection_close(conn); + dbus_connection_unref(conn); + return DBUSLT_ERROR; + } + + dbus_message_set_destination(msg, "live_transfer.method.server"); + // append arguments + dbus_message_iter_init_append(msg, &args); + ; + DBusMessage *reply; + reply = dbus_connection_send_with_reply_and_block(conn, msg, -1, &err); + + if (dbus_error_is_set(&err)) + { + fprintf(stderr, "live_transfer: live_transfer send_with_reply_and_block error %s \n", err.message); + dbus_error_free(&err); + + dbus_message_unref(msg); + dbus_connection_flush(conn); + dbus_connection_close(conn); + dbus_connection_unref(conn); + return DBUSLT_ERROR; + } + if (reply == NULL) + { + fprintf(stderr, "live_transfer: live_transfer dbus reply error \n"); + dbus_message_unref(msg); + dbus_connection_flush(conn); + dbus_connection_close(conn); + dbus_connection_unref(conn); + return DBUSLT_ERROR; + } + + dbus_message_unref(msg); + dbus_connection_flush(conn); + msg = reply; + + // read the parameters + bResult = + dbus_message_iter_init( + msg, + &args + ); + + if (!bResult) + { + fprintf(stderr, "Message has no arguments. \n"); + dbus_message_unref(msg); + dbus_connection_close(conn); + dbus_connection_unref(conn); + return DBUSLT_ERROR; + } + + dbus_message_iter_recurse( + &args, + &structIter + ); + + iType = + dbus_message_iter_get_arg_type( + &structIter + ); + if ( + iType != DBUS_TYPE_UINT32 + ) + { + fprintf(stderr, "Argument is not UINT32. \n"); + dbus_message_unref(msg); + dbus_connection_close(conn); + dbus_connection_unref(conn); + return DBUSLT_ERROR; + } + + dbus_message_iter_get_basic( + &structIter, + &retcode + ); + + // free reply + dbus_message_unref(msg); + + dbus_connection_close(conn); + dbus_connection_unref(conn); + + return retcode; +} + +int +send_signal( +) +{ + DBusMessage *msg; + DBusMessageIter args; + DBusConnection *conn; + DBusError err; + int ret; + dbus_uint32_t sigserial = 0; + int sigvalue = 0; + printf("Sending signal with value %d\n", sigvalue); + + // initialise the error value + dbus_error_init(&err); + + // connect to the DBUS system bus, and check for errors + conn = dbus_bus_get(DBUS_BUS_SESSION, &err); + if (dbus_error_is_set(&err)) + { + fprintf(stderr, "Connection Error (%s)\n", err.message); + dbus_error_free(&err); + } + if (NULL == conn) + { + exit(1); + } + char dbusname[1024]; + char objname[1024]; + char interfacename[1024]; + memset((uint8_t *) dbusname, 0, 1024); + sprintf(dbusname, "%s.signal.server", "live_transfer"); + memset((uint8_t *) objname, 0, 1024); + sprintf(objname, "/%s/signal/Object", "live_transfer"); + memset((uint8_t *) interfacename, 0, 1024); + sprintf(interfacename, "%s.signal.Type", "live_transfer"); + + // register our name on the bus, and check for errors + ret = dbus_bus_request_name(conn, "live_transfer.signal.source", DBUS_NAME_FLAG_REPLACE_EXISTING, &err); + if (dbus_error_is_set(&err)) + { + fprintf(stderr, "Name Error (%s)\n", err.message); + dbus_error_free(&err); + } + if (DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER != ret) + { + exit(1); + } + + // create a signal & check for errors + msg = dbus_message_new_signal(objname, // object name of the signal + interfacename, // interface name of the signal + "live_transfer"); // name of the signal + if (NULL == msg) + { + fprintf(stderr, "Message Null\n"); + exit(1); + } + + // append arguments onto signal + dbus_message_iter_init_append(msg, &args); + if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &sigvalue)) + { + fprintf(stderr, "Out Of Memory!\n"); + exit(1); + } + + // send the message and flush the connection + if (!dbus_connection_send(conn, msg, &sigserial)) + { + fprintf(stderr, "Out Of Memory!\n"); + exit(1); + } + dbus_connection_flush(conn); + + printf("Signal Sent\n"); + + // free the message + dbus_message_unref(msg); + return 0; +} +int main() +{ + /* int retcode = -1; + retcode = dbusmethodcall_live_transfer(); + printf("%d\n",retcode);*/ + send_signal(); + return 0; +} + -- Gitee From a8c5262543938fd7fad0829bb2d51d809a5d0255 Mon Sep 17 00:00:00 2001 From: Yiqingbin Date: Wed, 24 May 2023 10:48:35 +0000 Subject: [PATCH 2/3] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20cc-r?= =?UTF-8?q?esource-pooling/container-mig/dbuslt.c?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cc-resource-pooling/container-mig/dbuslt.c | 280 --------------------- 1 file changed, 280 deletions(-) delete mode 100644 cc-resource-pooling/container-mig/dbuslt.c diff --git a/cc-resource-pooling/container-mig/dbuslt.c b/cc-resource-pooling/container-mig/dbuslt.c deleted file mode 100644 index c09211d..0000000 --- a/cc-resource-pooling/container-mig/dbuslt.c +++ /dev/null @@ -1,280 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#define DBUSLT_ERROR -1; - -int dbusmethodcall_live_transfer( -) -{ - DBusConnection *conn = NULL; - DBusMessage *msg; - DBusMessageIter args; - DBusError err; - DBusPendingCall *pending; - dbus_bool_t bResult; - int ret; - int iType; - - DBusMessageIter structIter; - dbus_uint32_t retcode; - - // initialiset the errors - dbus_error_init(&err); - - char dbusname[1024]; - if (conn == NULL) - { - // connect to the system bus and check for errors - conn = dbus_bus_get_private(DBUS_BUS_SESSION, &err); - if (dbus_error_is_set(&err)) - { - fprintf(stderr, "Connection Error (%s)\n", err.message); - dbus_error_free(&err); - } - if (NULL == conn) - { - return DBUSLT_ERROR; - } - - memset((uint8_t *) dbusname, 0, 1024); - struct timeval tv; - gettimeofday(&tv, NULL); - uint64_t u64time = (long unsigned int) (tv.tv_sec * 1000000 + tv.tv_usec); - srand(u64time); - sprintf(dbusname, - "%s.method.caller%16.16lx%16.16lx", - "live_transfer", - u64time, - (long unsigned int) rand() - ); - // request our name on the bus - ret = - dbus_bus_request_name( - conn, - dbusname, - DBUS_NAME_FLAG_REPLACE_EXISTING, - &err - ); - if (dbus_error_is_set(&err)) - { - fprintf(stderr, "Name Error (%s)\n", err.message); - dbus_error_free(&err); - dbus_connection_flush(conn); - dbus_connection_close(conn); - dbus_connection_unref(conn); - return DBUSLT_ERROR; - } - if (DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER != ret) - { - dbus_connection_flush(conn); - dbus_connection_close(conn); - dbus_connection_unref(conn); - return DBUSLT_ERROR; - } - } - - // create a new method call and check for errors - char objname[1024]; - char interfacename[1024]; - memset((uint8_t *) dbusname, 0, 1024); - sprintf(dbusname, "%s.method.server", "live_transfer"); - memset((uint8_t *) objname, 0, 1024); - sprintf(objname, "/%s/method/Object", "live_transfer"); - memset((uint8_t *) interfacename, 0, 1024); - sprintf(interfacename, "%s.method.Type", "live_transfer"); - msg = - dbus_message_new_method_call( - // "test.method.server", // target for the method call - dbusname, - // "/test/method/Object", // object to call on - objname, - // "test.method.Type", // interface to call on - interfacename, - "live_transfer" // method name - ); - if (NULL == msg) - { - fprintf(stderr, "Message Null \n"); - dbus_connection_flush(conn); - dbus_connection_close(conn); - dbus_connection_unref(conn); - return DBUSLT_ERROR; - } - - dbus_message_set_destination(msg, "live_transfer.method.server"); - // append arguments - dbus_message_iter_init_append(msg, &args); - ; - DBusMessage *reply; - reply = dbus_connection_send_with_reply_and_block(conn, msg, -1, &err); - - if (dbus_error_is_set(&err)) - { - fprintf(stderr, "live_transfer: live_transfer send_with_reply_and_block error %s \n", err.message); - dbus_error_free(&err); - - dbus_message_unref(msg); - dbus_connection_flush(conn); - dbus_connection_close(conn); - dbus_connection_unref(conn); - return DBUSLT_ERROR; - } - if (reply == NULL) - { - fprintf(stderr, "live_transfer: live_transfer dbus reply error \n"); - dbus_message_unref(msg); - dbus_connection_flush(conn); - dbus_connection_close(conn); - dbus_connection_unref(conn); - return DBUSLT_ERROR; - } - - dbus_message_unref(msg); - dbus_connection_flush(conn); - msg = reply; - - // read the parameters - bResult = - dbus_message_iter_init( - msg, - &args - ); - - if (!bResult) - { - fprintf(stderr, "Message has no arguments. \n"); - dbus_message_unref(msg); - dbus_connection_close(conn); - dbus_connection_unref(conn); - return DBUSLT_ERROR; - } - - dbus_message_iter_recurse( - &args, - &structIter - ); - - iType = - dbus_message_iter_get_arg_type( - &structIter - ); - if ( - iType != DBUS_TYPE_UINT32 - ) - { - fprintf(stderr, "Argument is not UINT32. \n"); - dbus_message_unref(msg); - dbus_connection_close(conn); - dbus_connection_unref(conn); - return DBUSLT_ERROR; - } - - dbus_message_iter_get_basic( - &structIter, - &retcode - ); - - // free reply - dbus_message_unref(msg); - - dbus_connection_close(conn); - dbus_connection_unref(conn); - - return retcode; -} - -int -send_signal( -) -{ - DBusMessage *msg; - DBusMessageIter args; - DBusConnection *conn; - DBusError err; - int ret; - dbus_uint32_t sigserial = 0; - int sigvalue = 0; - printf("Sending signal with value %d\n", sigvalue); - - // initialise the error value - dbus_error_init(&err); - - // connect to the DBUS system bus, and check for errors - conn = dbus_bus_get(DBUS_BUS_SESSION, &err); - if (dbus_error_is_set(&err)) - { - fprintf(stderr, "Connection Error (%s)\n", err.message); - dbus_error_free(&err); - } - if (NULL == conn) - { - exit(1); - } - char dbusname[1024]; - char objname[1024]; - char interfacename[1024]; - memset((uint8_t *) dbusname, 0, 1024); - sprintf(dbusname, "%s.signal.server", "live_transfer"); - memset((uint8_t *) objname, 0, 1024); - sprintf(objname, "/%s/signal/Object", "live_transfer"); - memset((uint8_t *) interfacename, 0, 1024); - sprintf(interfacename, "%s.signal.Type", "live_transfer"); - - // register our name on the bus, and check for errors - ret = dbus_bus_request_name(conn, "live_transfer.signal.source", DBUS_NAME_FLAG_REPLACE_EXISTING, &err); - if (dbus_error_is_set(&err)) - { - fprintf(stderr, "Name Error (%s)\n", err.message); - dbus_error_free(&err); - } - if (DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER != ret) - { - exit(1); - } - - // create a signal & check for errors - msg = dbus_message_new_signal(objname, // object name of the signal - interfacename, // interface name of the signal - "live_transfer"); // name of the signal - if (NULL == msg) - { - fprintf(stderr, "Message Null\n"); - exit(1); - } - - // append arguments onto signal - dbus_message_iter_init_append(msg, &args); - if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &sigvalue)) - { - fprintf(stderr, "Out Of Memory!\n"); - exit(1); - } - - // send the message and flush the connection - if (!dbus_connection_send(conn, msg, &sigserial)) - { - fprintf(stderr, "Out Of Memory!\n"); - exit(1); - } - dbus_connection_flush(conn); - - printf("Signal Sent\n"); - - // free the message - dbus_message_unref(msg); - return 0; -} -int main() -{ - /* int retcode = -1; - retcode = dbusmethodcall_live_transfer(); - printf("%d\n",retcode);*/ - send_signal(); - return 0; -} - -- Gitee From dd8a56dc1beb76f6772f549dcb2ac61decc52c6b Mon Sep 17 00:00:00 2001 From: Yiqingbin Date: Wed, 24 May 2023 10:48:55 +0000 Subject: [PATCH 3/3] add Container-mig Signed-off-by: Yiqingbin --- cc-resource-pooling/container-mig/dbuslt.c | 280 +++++++++++++++++++++ 1 file changed, 280 insertions(+) create mode 100644 cc-resource-pooling/container-mig/dbuslt.c diff --git a/cc-resource-pooling/container-mig/dbuslt.c b/cc-resource-pooling/container-mig/dbuslt.c new file mode 100644 index 0000000..c09211d --- /dev/null +++ b/cc-resource-pooling/container-mig/dbuslt.c @@ -0,0 +1,280 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#define DBUSLT_ERROR -1; + +int dbusmethodcall_live_transfer( +) +{ + DBusConnection *conn = NULL; + DBusMessage *msg; + DBusMessageIter args; + DBusError err; + DBusPendingCall *pending; + dbus_bool_t bResult; + int ret; + int iType; + + DBusMessageIter structIter; + dbus_uint32_t retcode; + + // initialiset the errors + dbus_error_init(&err); + + char dbusname[1024]; + if (conn == NULL) + { + // connect to the system bus and check for errors + conn = dbus_bus_get_private(DBUS_BUS_SESSION, &err); + if (dbus_error_is_set(&err)) + { + fprintf(stderr, "Connection Error (%s)\n", err.message); + dbus_error_free(&err); + } + if (NULL == conn) + { + return DBUSLT_ERROR; + } + + memset((uint8_t *) dbusname, 0, 1024); + struct timeval tv; + gettimeofday(&tv, NULL); + uint64_t u64time = (long unsigned int) (tv.tv_sec * 1000000 + tv.tv_usec); + srand(u64time); + sprintf(dbusname, + "%s.method.caller%16.16lx%16.16lx", + "live_transfer", + u64time, + (long unsigned int) rand() + ); + // request our name on the bus + ret = + dbus_bus_request_name( + conn, + dbusname, + DBUS_NAME_FLAG_REPLACE_EXISTING, + &err + ); + if (dbus_error_is_set(&err)) + { + fprintf(stderr, "Name Error (%s)\n", err.message); + dbus_error_free(&err); + dbus_connection_flush(conn); + dbus_connection_close(conn); + dbus_connection_unref(conn); + return DBUSLT_ERROR; + } + if (DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER != ret) + { + dbus_connection_flush(conn); + dbus_connection_close(conn); + dbus_connection_unref(conn); + return DBUSLT_ERROR; + } + } + + // create a new method call and check for errors + char objname[1024]; + char interfacename[1024]; + memset((uint8_t *) dbusname, 0, 1024); + sprintf(dbusname, "%s.method.server", "live_transfer"); + memset((uint8_t *) objname, 0, 1024); + sprintf(objname, "/%s/method/Object", "live_transfer"); + memset((uint8_t *) interfacename, 0, 1024); + sprintf(interfacename, "%s.method.Type", "live_transfer"); + msg = + dbus_message_new_method_call( + // "test.method.server", // target for the method call + dbusname, + // "/test/method/Object", // object to call on + objname, + // "test.method.Type", // interface to call on + interfacename, + "live_transfer" // method name + ); + if (NULL == msg) + { + fprintf(stderr, "Message Null \n"); + dbus_connection_flush(conn); + dbus_connection_close(conn); + dbus_connection_unref(conn); + return DBUSLT_ERROR; + } + + dbus_message_set_destination(msg, "live_transfer.method.server"); + // append arguments + dbus_message_iter_init_append(msg, &args); + ; + DBusMessage *reply; + reply = dbus_connection_send_with_reply_and_block(conn, msg, -1, &err); + + if (dbus_error_is_set(&err)) + { + fprintf(stderr, "live_transfer: live_transfer send_with_reply_and_block error %s \n", err.message); + dbus_error_free(&err); + + dbus_message_unref(msg); + dbus_connection_flush(conn); + dbus_connection_close(conn); + dbus_connection_unref(conn); + return DBUSLT_ERROR; + } + if (reply == NULL) + { + fprintf(stderr, "live_transfer: live_transfer dbus reply error \n"); + dbus_message_unref(msg); + dbus_connection_flush(conn); + dbus_connection_close(conn); + dbus_connection_unref(conn); + return DBUSLT_ERROR; + } + + dbus_message_unref(msg); + dbus_connection_flush(conn); + msg = reply; + + // read the parameters + bResult = + dbus_message_iter_init( + msg, + &args + ); + + if (!bResult) + { + fprintf(stderr, "Message has no arguments. \n"); + dbus_message_unref(msg); + dbus_connection_close(conn); + dbus_connection_unref(conn); + return DBUSLT_ERROR; + } + + dbus_message_iter_recurse( + &args, + &structIter + ); + + iType = + dbus_message_iter_get_arg_type( + &structIter + ); + if ( + iType != DBUS_TYPE_UINT32 + ) + { + fprintf(stderr, "Argument is not UINT32. \n"); + dbus_message_unref(msg); + dbus_connection_close(conn); + dbus_connection_unref(conn); + return DBUSLT_ERROR; + } + + dbus_message_iter_get_basic( + &structIter, + &retcode + ); + + // free reply + dbus_message_unref(msg); + + dbus_connection_close(conn); + dbus_connection_unref(conn); + + return retcode; +} + +int +send_signal( +) +{ + DBusMessage *msg; + DBusMessageIter args; + DBusConnection *conn; + DBusError err; + int ret; + dbus_uint32_t sigserial = 0; + int sigvalue = 0; + printf("Sending signal with value %d\n", sigvalue); + + // initialise the error value + dbus_error_init(&err); + + // connect to the DBUS system bus, and check for errors + conn = dbus_bus_get(DBUS_BUS_SESSION, &err); + if (dbus_error_is_set(&err)) + { + fprintf(stderr, "Connection Error (%s)\n", err.message); + dbus_error_free(&err); + } + if (NULL == conn) + { + exit(1); + } + char dbusname[1024]; + char objname[1024]; + char interfacename[1024]; + memset((uint8_t *) dbusname, 0, 1024); + sprintf(dbusname, "%s.signal.server", "live_transfer"); + memset((uint8_t *) objname, 0, 1024); + sprintf(objname, "/%s/signal/Object", "live_transfer"); + memset((uint8_t *) interfacename, 0, 1024); + sprintf(interfacename, "%s.signal.Type", "live_transfer"); + + // register our name on the bus, and check for errors + ret = dbus_bus_request_name(conn, "live_transfer.signal.source", DBUS_NAME_FLAG_REPLACE_EXISTING, &err); + if (dbus_error_is_set(&err)) + { + fprintf(stderr, "Name Error (%s)\n", err.message); + dbus_error_free(&err); + } + if (DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER != ret) + { + exit(1); + } + + // create a signal & check for errors + msg = dbus_message_new_signal(objname, // object name of the signal + interfacename, // interface name of the signal + "live_transfer"); // name of the signal + if (NULL == msg) + { + fprintf(stderr, "Message Null\n"); + exit(1); + } + + // append arguments onto signal + dbus_message_iter_init_append(msg, &args); + if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &sigvalue)) + { + fprintf(stderr, "Out Of Memory!\n"); + exit(1); + } + + // send the message and flush the connection + if (!dbus_connection_send(conn, msg, &sigserial)) + { + fprintf(stderr, "Out Of Memory!\n"); + exit(1); + } + dbus_connection_flush(conn); + + printf("Signal Sent\n"); + + // free the message + dbus_message_unref(msg); + return 0; +} +int main() +{ + /* int retcode = -1; + retcode = dbusmethodcall_live_transfer(); + printf("%d\n",retcode);*/ + send_signal(); + return 0; +} + -- Gitee