summaryrefslogtreecommitdiff
path: root/include/package.h
blob: 9735fa27235b8bfe19484ed67c1e0c7b609a5cf9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
/*
 * Copyright 2013  Samsung Electronics Co., Ltd
 *
 * Licensed under the Flora License, Version 1.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://floralicense.org/license/
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

enum lb_type {
	LB_TYPE_NONE = 0x0,
	LB_TYPE_SCRIPT,
	LB_TYPE_FILE,
	LB_TYPE_TEXT,
	LB_TYPE_BUFFER,
};

enum pd_type {
	PD_TYPE_NONE = 0x0,
	PD_TYPE_SCRIPT,
	PD_TYPE_TEXT,
	PD_TYPE_BUFFER,
};

enum alter_type {
	ALTER_CREATE,
	ALTER_DESTROY,
};

struct pkg_info;
struct inst_info;
struct context_info;
struct slave_node;

/*!
 * \brief
 * Construction & Destruction
 */
extern struct pkg_info *package_create(const char *pkgname);
extern int package_destroy(struct pkg_info *info);
extern char *package_lb_pkgname(const char *pkgname);
extern int package_is_lb_pkgname(const char *pkgname);
extern struct pkg_info *package_find(const char *pkgname);
extern const char *package_find_by_secured_slave(struct slave_node *slave);
extern struct inst_info *package_find_instance_by_id(const char *pkgname, const char *id);
extern struct inst_info *package_find_instance_by_timestamp(const char *pkgname, double timestamp);
extern int package_dump_fault_info(struct pkg_info *info);
extern int package_set_fault_info(struct pkg_info *info, double timestamp, const char *filename, const char *function);
extern int package_get_fault_info(struct pkg_info *info, double *timestmap, const char **filename, const char **function);

/*!
 * \brief
 * Readonly functions
 */
extern const int const package_is_fault(const struct pkg_info *info);
extern struct slave_node * const package_slave(const struct pkg_info *info);
extern const int const package_timeout(const struct pkg_info *info);
extern const double const package_period(const struct pkg_info *info);
extern const int const package_secured(const struct pkg_info *info);
extern const char * const package_script(const struct pkg_info *info);
extern const char * const package_abi(const struct pkg_info *info);
extern const char * const package_lb_path(const struct pkg_info *info);
extern const char * const package_lb_group(const struct pkg_info *info);
extern const char * const package_pd_path(const struct pkg_info *info);
extern const char * const package_pd_group(const struct pkg_info *info);
extern const int const package_pinup(const struct pkg_info *info);
extern const char * const package_auto_launch(const struct pkg_info *info);
extern const unsigned int const package_size_list(const struct pkg_info *info);
extern const int const package_pd_width(const struct pkg_info *info);
extern const int const package_pd_height(const struct pkg_info *info);
extern const char * const package_name(const struct pkg_info *info);
extern const char * const package_libexec(struct pkg_info *info);
extern int package_network(struct pkg_info *info);
extern Eina_List *package_ctx_info(struct pkg_info *pkginfo);

extern int package_set_libexec(struct pkg_info *info, const char *libexec);
extern void package_set_pinup(struct pkg_info *info, int pinup);
extern void package_set_auto_launch(struct pkg_info *info, const char *auto_launch);
extern void package_set_size_list(struct pkg_info *info, unsigned int size_list);
extern void package_set_lb_type(struct pkg_info *info, enum lb_type type);
extern void package_set_pd_type(struct pkg_info *info, enum pd_type type);
extern int package_set_lb_group(struct pkg_info *info, const char *group);
extern int package_set_lb_path(struct pkg_info *info, const char *path);
extern int package_set_pd_group(struct pkg_info *info, const char *group);
extern int package_set_pd_path(struct pkg_info *info, const char *path);
extern int package_set_script(struct pkg_info *info, const char *script);
extern void package_set_secured(struct pkg_info *info, int secured);
extern void package_set_period(struct pkg_info *info, double period);
extern void package_set_timeout(struct pkg_info *info, int timeout);
extern void package_set_network(struct pkg_info *info, int network);
extern void package_set_pd_height(struct pkg_info *info, int height);
extern void package_set_pd_width(struct pkg_info *info, int width);
extern int package_set_abi(struct pkg_info *info, const char *abi);
extern void package_add_ctx_info(struct pkg_info *pkginfo, struct context_info *info);

/*!
 * \brief
 * Reference counter
 */
extern struct pkg_info * const package_ref(struct pkg_info *info);
extern struct pkg_info * const package_unref(struct pkg_info *info);
extern const int const package_refcnt(const struct pkg_info *info);

extern const enum pd_type const package_pd_type(const struct pkg_info *info);
extern const enum lb_type const package_lb_type(const struct pkg_info *info);

extern int package_add_instance(struct pkg_info *info, struct inst_info *inst);
extern int package_del_instance(struct pkg_info *info, struct inst_info *inst);
extern Eina_List *package_instance_list(struct pkg_info *info);

extern int package_clear_fault(struct pkg_info *info);
extern int package_alter_instances_to_client(struct client_node *client, enum alter_type alter);

extern const Eina_List *package_list(void);
extern int const package_fault_count(struct pkg_info *info);

extern int package_init(void);
extern int package_fini(void);

/* End of a file */