#include "mmi-api-handler.h"
#include "mmi-manager-dbg.h"
+#include "mmi-client.h"
+#include <stdlib.h>
#include <rpc-port.h>
#include <rpc-port-internal.h>
static bool _init_done = false;
-static rpc_port_stub_mmifw_context_h _context_h = NULL;
static const char* _stub_appid = "mmi-manager";
static void _on_create(rpc_port_stub_mmifw_context_h context, void *user_data)
{
- LOGI("...");
+ int r;
+ char *sender = NULL;
+ mmi_client *mc = NULL;
+
+ r = rpc_port_stub_mmifw_context_get_sender(context, &sender);
+ if (r || !sender)
+ {
+ LOGE("Failed to get sender from context ! (error:%d)\n", r);
+ goto err;
+ }
+
+ LOGI("Client(%s) has been connected !\n", sender);
+
+ mc = client_manager_client_add(sender);
+
+ if (!mc)
+ {
+ LOGE("Failed to add client info to client hash !\n");
+ goto err;
+ }
+
+ //TODO: set additional information of client
+
+ free(sender);
+ return;
+err:
+ if (sender)
+ free(sender);
+ if (mc)
+ free(mc);
}
static void _on_terminate(rpc_port_stub_mmifw_context_h context, void *user_data)
{
- LOGI("...");
+ int r;
+ char *sender;
+
+ r = rpc_port_stub_mmifw_context_get_sender(context, &sender);
+ if (r || !sender)
+ {
+ LOGE("Failed to get sender from context ! (error:%d)\n", r);
+ return;
+ }
+
+ LOGI("Client(%s) has been disconnected !\n", sender);
+
+ client_manager_client_remove(sender);
}
static int _register_cb(rpc_port_stub_mmifw_context_h context, rpc_port_mmifw_focus_event_cb_h focus_cb, rpc_port_mmifw_state_change_event_cb_h state_cb, rpc_port_mmifw_wakeup_event_cb_h wakeup_cb, rpc_port_mmifw_key_event_cb_h key_cb, rpc_port_mmifw_gesture_event_cb_h gesture_cb, rpc_port_mmifw_voice_event_cb_h voice_cb, rpc_port_mmifw_action_event_cb_h action_cb, rpc_port_mmifw_feedback_event_cb_h feedback_cb, void *user_data)