diff -r 000000000000 -r e4d67989cc36 ofdbus/dbus/tsrc/testapps/method/src/method.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ofdbus/dbus/tsrc/testapps/method/src/method.c Tue Feb 02 02:01:42 2010 +0200 @@ -0,0 +1,470 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#include +#include "test-utils.h" +#include +#include +#include +#define TEST_BUS_NAME_TEMP "Test.Method.Call" + +void called_method(DBusMessage* msg, DBusConnection* connection) +{ + DBusMessage* reply; + DBusMessageIter args; + DBusMessageIter in_args; + + char* in_str; + DBusError error; + + dbus_uint32_t status = 94; + + dbus_error_init(&error); + dbus_message_iter_init(msg, &in_args); + + reply = dbus_message_new_method_return(msg); + dbus_message_iter_init_append(reply, &args); + + do{ + dbus_message_iter_get_basic(&in_args, &in_str); + + dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &in_str); + + }while(dbus_message_iter_next(&in_args)); + + dbus_connection_send(connection, reply, NULL); + + dbus_connection_flush(connection); +} + + +void called_variable_args_method(DBusMessage* msg, DBusConnection* connection) +{ + DBusMessage* reply; + DBusMessageIter iter; + DBusMessageIter sub_iter; + void* arg = malloc(20); + char* str; + int no; + int i; + dbus_int32_t* array; + dbus_int32_t return_value = 0; + dbus_bool_t valid_flag = TRUE; + + + + + reply = dbus_message_new_method_return(msg); + dbus_message_iter_init(msg, &iter); + + do{ + switch(dbus_message_iter_get_arg_type(&iter)) + { + case DBUS_TYPE_BOOLEAN: + dbus_message_iter_get_basic(&iter, arg); + if(*(dbus_bool_t*)arg != TRUE) + valid_flag = FALSE; + break; + case DBUS_TYPE_INT16: + dbus_message_iter_get_basic(&iter, arg); + if(*(dbus_int16_t*)arg != -16) + valid_flag = FALSE; + break; + case DBUS_TYPE_INT32: + dbus_message_iter_get_basic(&iter, arg); + if(*(dbus_int32_t*)arg != -32) + valid_flag = FALSE; + break; + case DBUS_TYPE_INT64: + dbus_message_iter_get_basic(&iter, arg); + if(*(dbus_int64_t*)arg != -64) + valid_flag = FALSE; + break; + case DBUS_TYPE_UINT16: + dbus_message_iter_get_basic(&iter, arg); + if(*(dbus_uint16_t*)arg != 16) + valid_flag = FALSE; + break; + case DBUS_TYPE_UINT32: + dbus_message_iter_get_basic(&iter, arg); + if(*(dbus_uint32_t*)arg != 32) + valid_flag = FALSE; + break; + case DBUS_TYPE_UINT64: + dbus_message_iter_get_basic(&iter, arg); + if(*(dbus_uint64_t*)arg != 64) + valid_flag = FALSE; + break; + case DBUS_TYPE_DOUBLE: + dbus_message_iter_get_basic(&iter, arg); + if(*(double*)arg != 12.34567) + valid_flag = FALSE; + break; + case DBUS_TYPE_STRING: + dbus_message_iter_get_basic(&iter, &str); + if(strcmp("DBus Testing", str)) + valid_flag = FALSE; + break; + case DBUS_TYPE_ARRAY: + dbus_message_iter_recurse(&iter, &sub_iter); + no = dbus_message_iter_get_array_len(&sub_iter); + dbus_message_iter_get_fixed_array(&sub_iter, &array, &no); + for(i=0;i