#include <dlog.h>
#include <livebox-errno.h>
+#include <livebox-service.h>
#include "debug.h"
#include "livebox.h"
#include "desc_parser.h"
#include "dlist.h"
#include "util.h"
-#include "critical_log.h"
#define TYPE_TEXT "text"
#define TYPE_IMAGE "image"
#define TYPE_SIGNAL "signal"
#define TYPE_INFO "info"
#define TYPE_DRAG "drag"
+#define TYPE_ACCESS "access"
+#define TYPE_OPERATE_ACCESS "access,operation"
#define INFO_SIZE "size"
#define INFO_CATEGORY "category"
return 0;
}
+static int update_access(struct livebox *handle, struct block *block, int is_pd)
+{
+ struct livebox_script_operators *ops;
+
+ if (!block) {
+ ErrPrint("Invalid argument\n");
+ return LB_STATUS_ERROR_INVALID;
+ }
+
+ ops = is_pd ? &handle->pd.data.ops : &handle->lb.data.ops;
+ if (ops->update_access) {
+ ops->update_access(handle, block->id, block->part, block->data, block->option);
+ }
+
+ return 0;
+}
+
+static int operate_access(struct livebox *handle, struct block *block, int is_pd)
+{
+ struct livebox_script_operators *ops;
+
+ if (!block) {
+ ErrPrint("Invalid argument\n");
+ return LB_STATUS_ERROR_INVALID;
+ }
+
+ ops = is_pd ? &handle->pd.data.ops : &handle->lb.data.ops;
+ if (ops->operate_access) {
+ ops->operate_access(handle, block->id, block->part, block->data, block->option);
+ }
+
+ return 0;
+}
+
static inline int update_begin(struct livebox *handle, int is_pd)
{
struct livebox_script_operators *ops;
.handler = update_info,
},
{
+ .type = TYPE_ACCESS,
+ .handler = update_access,
+ },
+ {
+ .type = TYPE_OPERATE_ACCESS,
+ .handler = operate_access,
+ },
+ {
.type = NULL,
.handler = NULL,
},
block = calloc(1, sizeof(*block));
if (!block) {
- CRITICAL_LOG("Heap: %s\n", strerror(errno));
+ ErrPrint("Heap: %s\n", strerror(errno));
update_end(handle, is_pd);
if (fclose(fp) != 0) {
ErrPrint("fclose: %s\n", strerror(errno));
block->type_len += 256;
block->type = realloc(block->type, block->type_len);
if (!block->type) {
- CRITICAL_LOG("Heap: %s\n", strerror(errno));
+ ErrPrint("Heap: %s\n", strerror(errno));
goto errout;
}
}
block->part_len += 256;
block->part = realloc(block->part, block->part_len);
if (!block->part) {
- CRITICAL_LOG("Heap: %s\n", strerror(errno));
+ ErrPrint("Heap: %s\n", strerror(errno));
goto errout;
}
}
block->data_len += 256;
block->data = realloc(block->data, block->data_len);
if (!block->data) {
- CRITICAL_LOG("Heap: %s\n", strerror(errno));
+ ErrPrint("Heap: %s\n", strerror(errno));
goto errout;
}
}
block->file_len += 256;
block->file = realloc(block->file, block->file_len);
if (!block->file) {
- CRITICAL_LOG("Heap: %s\n", strerror(errno));
+ ErrPrint("Heap: %s\n", strerror(errno));
goto errout;
}
}
block->option_len += 256;
block->option = realloc(block->option, block->option_len);
if (!block->option) {
- CRITICAL_LOG("Heap: %s\n", strerror(errno));
+ ErrPrint("Heap: %s\n", strerror(errno));
goto errout;
}
}
block->id_len += 256;
block->id = realloc(block->id, block->id_len);
if (!block->id) {
- CRITICAL_LOG("Heap: %s\n", strerror(errno));
+ ErrPrint("Heap: %s\n", strerror(errno));
goto errout;
}
}