#ifndef _UTILITY_H_
#define _UTILITY_H_

int get_string_by_name(char *p, const char *name, char *string, int max_len,
                       char **next);
int get_string_by_token(char *p, int num, char *string, int max_len,
                        char **next);
int get_quote_string_by_name(char *p, const char *name, char *string,
                             int max_len, char **next);
int get_int_val_by_name(char *p, const char *name, int *val, char **next);

struct channel_list_t *_create_channel_list(int num);
void _release_channel_list(struct channel_list_t *cl);
struct channel_list_t *_joint_channel_list(struct channel_list_t *cl1,
                                           struct channel_list_t *cl2);

#endif
