Export nl_dump_line() and automatically count lines while dumping
This commit is contained in:
parent
1240cd6635
commit
662887c052
4 changed files with 38 additions and 22 deletions
|
@ -119,7 +119,7 @@ static inline int __assert_error(const char *file, int line, char *func,
|
|||
#define nl_errno(E) nl_error(E, NULL)
|
||||
|
||||
/* backwards compat */
|
||||
#define dp_new_line(params, line) nl_new_line(params, line)
|
||||
#define dp_new_line(params, line) nl_new_line(params)
|
||||
#define dp_dump(params, fmt, arg...) nl_dump(params, fmt, ##arg)
|
||||
|
||||
static inline int __trans_list_add(int i, const char *a,
|
||||
|
@ -284,17 +284,7 @@ static inline void __dp_dump(struct nl_dump_params *parms, const char *fmt,
|
|||
}
|
||||
}
|
||||
|
||||
static inline void dp_dump_line(struct nl_dump_params *parms, int line,
|
||||
const char *fmt, ...)
|
||||
{
|
||||
va_list args;
|
||||
|
||||
nl_new_line(parms, line);
|
||||
|
||||
va_start(args, fmt);
|
||||
__dp_dump(parms, fmt, args);
|
||||
va_end(args);
|
||||
}
|
||||
#define dp_dump_line(params, line, fmt, arg...) nl_dump_line(params, fmt, ##arg)
|
||||
|
||||
static inline void dump_from_ops(struct nl_object *obj,
|
||||
struct nl_dump_params *params)
|
||||
|
@ -304,6 +294,8 @@ static inline void dump_from_ops(struct nl_object *obj,
|
|||
if (type < 0 || type > NL_DUMP_MAX)
|
||||
BUG();
|
||||
|
||||
params->dp_line = 0;
|
||||
|
||||
if (params->dp_dump_msgtype) {
|
||||
#if 0
|
||||
/* XXX */
|
||||
|
@ -317,7 +309,7 @@ static inline void dump_from_ops(struct nl_object *obj,
|
|||
#endif
|
||||
params->dp_pre_dump = 1;
|
||||
} else
|
||||
dp_new_line(params, 0);
|
||||
nl_new_line(params);
|
||||
|
||||
if (obj->ce_ops->oo_dump[type])
|
||||
obj->ce_ops->oo_dump[type](obj, params);
|
||||
|
|
|
@ -19,16 +19,19 @@
|
|||
* @ingroup utils
|
||||
*/
|
||||
enum nl_dump_type {
|
||||
NL_DUMP_BRIEF, /**< Dump object in a brief one-liner */
|
||||
NL_DUMP_FULL, /**< Dump all attributes but no statistics */
|
||||
NL_DUMP_ONELINE, /**< Dump object briefly on one line */
|
||||
NL_DUMP_DETAILS, /**< Dump all attributes but no statistics */
|
||||
NL_DUMP_STATS, /**< Dump all attributes including statistics */
|
||||
NL_DUMP_XML, /**< Dump all attribtes in XML format */
|
||||
NL_DUMP_ENV, /**< Dump all attribtues as env variables */
|
||||
NL_DUMP_EVENTS, /**< Dump event */
|
||||
__NL_DUMP_MAX,
|
||||
};
|
||||
#define NL_DUMP_MAX (__NL_DUMP_MAX - 1)
|
||||
|
||||
/* backards compat */
|
||||
#define NL_DUMP_BRIEF NL_DUMP_ONELINE
|
||||
#define NL_DUMP_FULL NL_DUMP_DETAILS
|
||||
|
||||
/**
|
||||
* Dumping parameters
|
||||
* @ingroup utils
|
||||
|
@ -100,6 +103,14 @@ struct nl_dump_params
|
|||
* Set if a dump was performed prior to the actual dump handler.
|
||||
*/
|
||||
int dp_pre_dump;
|
||||
|
||||
/**
|
||||
* PRIVATE
|
||||
* Owned by the current caller
|
||||
*/
|
||||
int dp_ivar;
|
||||
|
||||
unsigned int dp_line;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -70,9 +70,9 @@ extern char * nl_ip_proto2str(int, char *, size_t);
|
|||
extern int nl_str2ip_proto(const char *);
|
||||
|
||||
/* Dumping helpers */
|
||||
extern void nl_new_line(struct nl_dump_params *, int);
|
||||
extern void nl_new_line(struct nl_dump_params *);
|
||||
extern void nl_dump(struct nl_dump_params *, const char *, ...);
|
||||
extern void nl_dump_line(struct nl_dump_params *, int, const char *, ...);
|
||||
extern void nl_dump_line(struct nl_dump_params *, const char *, ...);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
21
lib/utils.c
21
lib/utils.c
|
@ -147,7 +147,7 @@ char *nl_geterror(void)
|
|||
if (nlerrno)
|
||||
return strerror(nlerrno);
|
||||
|
||||
return "Sucess\n";
|
||||
return "Success\n";
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -714,7 +714,6 @@ int nl_str2ip_proto(const char *name)
|
|||
/**
|
||||
* Handle a new line while dumping
|
||||
* @arg params Dumping parameters
|
||||
* @arg line Number of lines dumped already.
|
||||
*
|
||||
* This function must be called before dumping any onto a
|
||||
* new line. It will ensure proper prefixing as specified
|
||||
|
@ -722,8 +721,10 @@ int nl_str2ip_proto(const char *name)
|
|||
*
|
||||
* @note This function will NOT dump any newlines itself
|
||||
*/
|
||||
void nl_new_line(struct nl_dump_params *params, int line)
|
||||
void nl_new_line(struct nl_dump_params *params)
|
||||
{
|
||||
params->dp_line++;
|
||||
|
||||
if (params->dp_prefix) {
|
||||
int i;
|
||||
for (i = 0; i < params->dp_prefix; i++) {
|
||||
|
@ -737,7 +738,7 @@ void nl_new_line(struct nl_dump_params *params, int line)
|
|||
}
|
||||
|
||||
if (params->dp_nl_cb)
|
||||
params->dp_nl_cb(params, line);
|
||||
params->dp_nl_cb(params, params->dp_line);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -758,6 +759,18 @@ void nl_dump(struct nl_dump_params *params, const char *fmt, ...)
|
|||
va_end(args);
|
||||
}
|
||||
|
||||
void nl_dump_line(struct nl_dump_params *parms, const char *fmt, ...)
|
||||
{
|
||||
va_list args;
|
||||
|
||||
nl_new_line(parms);
|
||||
|
||||
va_start(args, fmt);
|
||||
__dp_dump(parms, fmt, args);
|
||||
va_end(args);
|
||||
}
|
||||
|
||||
|
||||
/** @} */
|
||||
|
||||
/** @} */
|
||||
|
|
Loading…
Add table
Reference in a new issue