Update contrib.
2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
4 * This component and the accompanying materials are made available
5 * under the terms of "Eclipse Public License v1.0"
6 * which accompanies this distribution, and is available
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
9 * Initial Contributors:
10 * Nokia Corporation - initial contribution.
20 #include "test-utils.h"
23 #include<unistd.h> // sleep function is defined in this header file
24 #define TEST_BUS_NAME_TEMP "Test.Method.Call1"
25 dbus_bool_t message_is_error;
28 void called_file_writecontact(DBusMessage* msg,DBusConnection* connection)
36 DBusMessageIter sub_iter;
38 dbus_message_iter_init(msg, &iter);
41 fp = fopen("c:\\data.txt","a+");
43 switch(dbus_message_iter_get_arg_type(&iter))
48 case DBUS_TYPE_STRUCT:
49 dbus_message_iter_recurse(&iter, &sub_iter);
51 switch(dbus_message_iter_get_arg_type(&sub_iter))
54 dbus_message_iter_get_basic(&sub_iter, &cnt);
55 fwrite(&cnt, sizeof(cnt),1,fp);
57 case DBUS_TYPE_STRING:
58 dbus_message_iter_get_basic(&sub_iter, &str);
59 fwrite(str, strlen(str),1,fp);
61 fwrite("\n", strlen("\n"),1,fp);
62 }while(dbus_message_iter_next(&sub_iter));
66 fprintf(stdout,"no input");
69 }while(dbus_message_iter_next(&iter));
70 reply = dbus_message_new_method_return(msg);
72 dbus_message_append_args(reply, DBUS_TYPE_INT32, &cnt, DBUS_TYPE_INVALID);
73 dbus_connection_send(connection, reply, NULL);
74 dbus_connection_flush(connection);
77 void called_dbus_connection_borrow_message0(DBusMessage* msg,DBusConnection* connection)
80 dbus_int32_t return_value = 9090;
82 reply = dbus_message_new_method_return(msg);
84 dbus_message_append_args(reply, DBUS_TYPE_INT32, &return_value, DBUS_TYPE_INVALID);
85 dbus_connection_send(connection, reply, NULL);
86 dbus_connection_flush(connection);
88 void called_dbus_connection_pop_message0(DBusMessage* msg,DBusConnection* connection)
91 dbus_int32_t return_value = 9090;
93 reply = dbus_message_new_method_return(msg);
95 dbus_message_append_args(reply, DBUS_TYPE_INT32, &return_value, DBUS_TYPE_INVALID);
96 dbus_connection_send(connection, reply, NULL);
97 dbus_connection_flush(connection);
99 void called_dbus_connection_steal_borrowed_message0(DBusMessage* msg,DBusConnection* connection)
102 dbus_int32_t return_value = 9090;
104 reply = dbus_message_new_method_return(msg);
106 dbus_message_append_args(reply, DBUS_TYPE_INT32, &return_value, DBUS_TYPE_INVALID);
107 dbus_connection_send(connection, reply, NULL);
108 dbus_connection_flush(connection);
110 void called_dbus_connection_return_message0(DBusMessage* msg,DBusConnection* connection)
114 reply = dbus_message_new_method_return(msg);
116 dbus_connection_send(connection, reply, NULL);
117 dbus_connection_flush(connection);
119 void called_dbus_message_new_error_printf0(DBusMessage* msg,DBusConnection* connection)
121 char err_succes[]={"ERROR IS SAME"};
123 char err_failed[]= {"MISMATCH IN ERROR"};//'M','i','s','m','a','t','c','h',' ','i','n',' ' ,'e','r','r','o','r'
124 const char* errorname;
127 DBusMessage* err_msg;
128 const char* error_name;
129 const char* error_message;
130 dbus_int32_t return_value =9090;
131 errorname = "dbus.test.error1";
132 /* change the error name so that err_failed is printed
133 * for eg: errorname = "dbus.test.error1"
137 error_name = "dbus.test.error";
138 error_message = "dbus.message";
140 fp = fopen("c:\\method1newerror.txt","w");
142 err_msg = dbus_message_new_error(msg,error_name,error_message);
143 message_is_error=dbus_message_is_error(err_msg ,errorname);
146 fwrite(err_succes,1,sizeof(err_succes),fp);
152 fwrite(err_failed,1,sizeof(err_failed),fp);
159 dbus_connection_send(connection, err_msg, NULL);
160 dbus_connection_flush(connection);
163 void called_dbus_message_get_no_reply0(DBusMessage* msg,DBusConnection* connection)
165 dbus_bool_t nomsg = FALSE;
166 char err_succes[]={"Set reply is set/reply not required"};
167 char err_fail[]={"Set reply is not been set/reply may be sent"};
169 dbus_int32_t return_value = 9090;
171 fp = fopen("c:\\msggetnorply.txt","w");
175 nomsg = dbus_message_get_no_reply(msg) ;
178 fwrite(err_succes,1,sizeof(err_succes),fp);
183 fwrite(err_fail,1,sizeof(err_fail),fp);
188 dbus_connection_flush(connection);
198 DBusConnection* connection;
200 DBusObjectPathVTable vtable;
202 dbus_error_init(&error);
203 dbus_error_init(&error1);
204 fprintf(stdout, "Starting Method");
206 connection = dbus_bus_get(DBUS_BUS_SESSION, &error);
208 if(dbus_error_is_set(&error))
210 fprintf(stdout, "Error Occured :: %s", error.name);
216 if(dbus_connection_register_object_path (connection, "/Test/Method/Object", &vtable, NULL))
218 fprintf(stdout, "Object Path registered.");
222 fprintf(stdout, "Object Path not able to register.");
228 if(dbus_bus_request_name (connection, TEST_BUS_NAME_TEMP, DBUS_NAME_FLAG_ALLOW_REPLACEMENT, &error1) == -1)
230 fprintf(stdout, "Not able to request name.");
234 fprintf(stdout, "Name Request Successful");
239 dbus_connection_read_write(connection, 0);
241 msg = dbus_connection_pop_message(connection);
249 fprintf(stdout, "Message Detected");
251 if(DBUS_MESSAGE_TYPE_SIGNAL == dbus_message_get_type(msg))
253 fprintf(stdout, "Message is Signal.");
256 if(DBUS_MESSAGE_TYPE_METHOD_CALL == dbus_message_get_type(msg))
258 fprintf(stdout, "Message is Method call.");
260 if(dbus_message_is_method_call(msg, "test.Method.Call", "file_writecontact"))
263 called_file_writecontact(msg, connection);
269 if(dbus_message_is_method_call(msg, "test.Method.Call", "dbus_connection_borrow_message0"))
272 called_dbus_connection_borrow_message0(msg, connection);
276 if(dbus_message_is_method_call(msg, "test.Method.Call", "dbus_connection_pop_message0"))
279 called_dbus_connection_pop_message0(msg, connection);
283 if(dbus_message_is_method_call(msg, "test.Method.Call", "dbus_connection_steal_borrowed_message0"))
286 called_dbus_connection_steal_borrowed_message0(msg, connection);
289 if(dbus_message_is_method_call(msg, "test.Method.Call", "dbus_connection_return_message0"))
292 called_dbus_connection_return_message0(msg, connection);
295 if(dbus_message_is_method_call(msg, "test.Method.Call", "dbus_message_new_error_printf0"))
297 called_dbus_message_new_error_printf0(msg, connection);
303 if(dbus_message_is_method_call(msg, "test.Method.Call", "dbus_message_get_no_reply0"))
306 called_dbus_message_get_no_reply0(msg, connection);
309 dbus_message_unref(msg);
312 dbus_connection_unref(connection);