struct buffer_info *buffer;
} canvas;
- const char *auto_launch;
- int timeout;
double period;
} lb;
inst->pd.width, inst->pd.height,
inst->cluster, inst->category,
lb_file, pd_file,
- inst->lb.auto_launch,
+ package_auto_launch(inst->info),
inst->lb.priority,
package_size_list(inst->info),
!!inst->client,
inst->pd.width, inst->pd.height,
inst->cluster, inst->category,
lb_file, pd_file,
- inst->lb.auto_launch,
+ package_auto_launch(inst->info),
inst->lb.priority,
package_size_list(inst->info),
!!inst->client,
DbgFree(tag_item);
}
- /*!
- * \note
- *
- * inst->lb.auto_launch
- *
- * will be released by the package object
- * it is readonly value for instances
- */
EINA_LIST_FREE(inst->delete_event_list, item) {
DbgFree(item);
}
}
snprintf(inst->id, len, SCHEMA_FILE "%s%s_%d_%lf.png", IMAGE_PATH, package_name(info), client_pid(inst->client), inst->timestamp);
- inst->lb.auto_launch = package_auto_launch(info);
instance_set_pd_size(inst, package_pd_width(info), package_pd_height(info));
- inst->lb.timeout = package_timeout(info);
inst->lb.period = package_period(info);
inst->info = info;
return slave_rpc_async_request(package_slave(inst->info), package_name(inst->info), packet, deactivate_cb, instance_ref(inst), 0);
}
+HAPI int instance_reload(struct inst_info *inst, enum instance_destroy_type type)
+{
+ struct packet *packet;
+ int ret;
+
+ DbgPrint("Reload instance (%s)\n", instance_id(inst));
+
+ if (!inst) {
+ ErrPrint("Invalid instance handle\n");
+ return LB_STATUS_ERROR_INVALID;
+ }
+
+ switch (inst->state) {
+ case INST_REQUEST_TO_ACTIVATE:
+ case INST_REQUEST_TO_REACTIVATE:
+ return LB_STATUS_SUCCESS;
+ case INST_INIT:
+ ret = instance_activate(inst);
+ if (ret < 0) {
+ ErrPrint("Failed to activate instance: %d (%s)\n", ret, instance_id(inst));
+ }
+ return LB_STATUS_SUCCESS;
+ case INST_DESTROYED:
+ case INST_REQUEST_TO_DESTROY:
+ DbgPrint("Instance is destroying now\n");
+ return LB_STATUS_SUCCESS;
+ default:
+ break;
+ }
+
+ packet = packet_create("delete", "ssi", package_name(inst->info), inst->id, type);
+ if (!packet) {
+ ErrPrint("Failed to build a packet for %s\n", package_name(inst->info));
+ return LB_STATUS_ERROR_FAULT;
+ }
+
+ inst->destroy_type = type;
+ inst->requested_state = INST_ACTIVATED;
+ inst->state = INST_REQUEST_TO_DESTROY;
+ inst->changing_state = 1;
+ return slave_rpc_async_request(package_slave(inst->info), package_name(inst->info), packet, deactivate_cb, instance_ref(inst), 0);
+}
+
/* Client Deactivated Callback */
static int pd_buffer_close_cb(struct client_node *client, void *inst)
{
package_name(inst->info),
inst->id,
inst->content,
- inst->lb.timeout,
+ package_timeout(inst->info),
!!package_lb_path(inst->info),
inst->lb.period,
inst->cluster,
package_name(inst->info),
inst->id,
inst->content,
- inst->lb.timeout,
+ package_timeout(inst->info),
!!package_lb_path(inst->info),
inst->lb.period,
inst->cluster,
HAPI const char * const instance_auto_launch(const struct inst_info *inst)
{
- return inst->lb.auto_launch;
+ return package_auto_launch(inst->info);
}
HAPI const int const instance_priority(const struct inst_info *inst)
HAPI const int const instance_timeout(const struct inst_info *inst)
{
- return inst->lb.timeout;
+ return package_timeout(inst->info);
}
HAPI const double const instance_period(const struct inst_info *inst)
struct inst_info *inst;
DbgPrint("Already exists, try to update it\n");
- /*!
- * \note
- * Without "is_uninstalled", the package will be kept
- */
- EINA_LIST_FOREACH_SAFE(info->inst_list, l, n, inst) {
- instance_destroy(inst, INSTANCE_DESTROY_PKGMGR);
- }
group_del_livebox(info->pkgname);
package_clear_fault(info);
* Nested DB I/O
*/
io_load_package_db(info);
+
+ /*!
+ * \note
+ * Without "is_uninstalled", the package will be kept
+ */
+ EINA_LIST_FOREACH_SAFE(info->inst_list, l, n, inst) {
+ instance_reload(inst, INSTANCE_DESTROY_PKGMGR);
+ }
}
static int io_install_cb(const char *pkgname, int prime, void *data)