mirror of https://github.com/yandex/odyssey.git
odissey: implement detached error object
This commit is contained in:
parent
610cf23c7c
commit
5b29494781
|
@ -18,6 +18,7 @@
|
||||||
|
|
||||||
#include "sources/macro.h"
|
#include "sources/macro.h"
|
||||||
#include "sources/version.h"
|
#include "sources/version.h"
|
||||||
|
#include "sources/error.h"
|
||||||
#include "sources/atomic.h"
|
#include "sources/atomic.h"
|
||||||
#include "sources/list.h"
|
#include "sources/list.h"
|
||||||
#include "sources/pid.h"
|
#include "sources/pid.h"
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
|
|
||||||
#include "sources/macro.h"
|
#include "sources/macro.h"
|
||||||
#include "sources/version.h"
|
#include "sources/version.h"
|
||||||
|
#include "sources/error.h"
|
||||||
#include "sources/atomic.h"
|
#include "sources/atomic.h"
|
||||||
#include "sources/list.h"
|
#include "sources/list.h"
|
||||||
#include "sources/pid.h"
|
#include "sources/pid.h"
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
|
|
||||||
#include "sources/macro.h"
|
#include "sources/macro.h"
|
||||||
#include "sources/version.h"
|
#include "sources/version.h"
|
||||||
|
#include "sources/error.h"
|
||||||
#include "sources/atomic.h"
|
#include "sources/atomic.h"
|
||||||
#include "sources/list.h"
|
#include "sources/list.h"
|
||||||
#include "sources/pid.h"
|
#include "sources/pid.h"
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
|
|
||||||
#include "sources/macro.h"
|
#include "sources/macro.h"
|
||||||
#include "sources/version.h"
|
#include "sources/version.h"
|
||||||
|
#include "sources/error.h"
|
||||||
#include "sources/atomic.h"
|
#include "sources/atomic.h"
|
||||||
#include "sources/list.h"
|
#include "sources/list.h"
|
||||||
#include "sources/pid.h"
|
#include "sources/pid.h"
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
|
|
||||||
#include "sources/macro.h"
|
#include "sources/macro.h"
|
||||||
#include "sources/version.h"
|
#include "sources/version.h"
|
||||||
|
#include "sources/error.h"
|
||||||
#include "sources/atomic.h"
|
#include "sources/atomic.h"
|
||||||
#include "sources/list.h"
|
#include "sources/list.h"
|
||||||
#include "sources/pid.h"
|
#include "sources/pid.h"
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
|
|
||||||
#include "sources/macro.h"
|
#include "sources/macro.h"
|
||||||
#include "sources/version.h"
|
#include "sources/version.h"
|
||||||
|
#include "sources/error.h"
|
||||||
#include "sources/atomic.h"
|
#include "sources/atomic.h"
|
||||||
#include "sources/list.h"
|
#include "sources/list.h"
|
||||||
#include "sources/pid.h"
|
#include "sources/pid.h"
|
||||||
|
|
|
@ -0,0 +1,67 @@
|
||||||
|
#ifndef OD_ERROR_H
|
||||||
|
#define OD_ERROR_H
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Odissey.
|
||||||
|
*
|
||||||
|
* Advanced PostgreSQL connection pooler.
|
||||||
|
*/
|
||||||
|
|
||||||
|
typedef struct od_error od_error_t;
|
||||||
|
|
||||||
|
struct od_error
|
||||||
|
{
|
||||||
|
char file[256];
|
||||||
|
int file_len;
|
||||||
|
char function[128];
|
||||||
|
int function_len;
|
||||||
|
char error[256];
|
||||||
|
int error_len;
|
||||||
|
int line;
|
||||||
|
};
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
od_error_init(od_error_t *error)
|
||||||
|
{
|
||||||
|
error->file[0] = 0;
|
||||||
|
error->file_len = 0;
|
||||||
|
error->function[0] = 0;
|
||||||
|
error->function_len = 0;
|
||||||
|
error->error[0] = 0;
|
||||||
|
error->error_len = 0;
|
||||||
|
error->line = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
od_error_setv(od_error_t *error,
|
||||||
|
const char *file,
|
||||||
|
const char *function, int line,
|
||||||
|
char *fmt, va_list args)
|
||||||
|
{
|
||||||
|
error->file_len =
|
||||||
|
snprintf(error->file, sizeof(error->file), "%s", file);
|
||||||
|
error->function_len =
|
||||||
|
snprintf(error->function, sizeof(error->function), "%s", function);
|
||||||
|
error->line = line;
|
||||||
|
int len;
|
||||||
|
len = vsnprintf(error->error, sizeof(error->error), fmt, args);
|
||||||
|
error->error_len = len;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline int
|
||||||
|
od_error_set(od_error_t *error,
|
||||||
|
const char *file,
|
||||||
|
const char *function, int line,
|
||||||
|
char *fmt, ...)
|
||||||
|
{
|
||||||
|
va_list args;
|
||||||
|
va_start(args, fmt);
|
||||||
|
od_error_setv(error, file, function, line, fmt, args);
|
||||||
|
va_end(args);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define od_errorf(error, fmt, ...) \
|
||||||
|
od_error_set(error, __FILE__, __func__, __LINE__, fmt, __VA_ARGS__)
|
||||||
|
|
||||||
|
#endif /* OD_ERROR_H */
|
|
@ -18,6 +18,7 @@
|
||||||
|
|
||||||
#include "sources/macro.h"
|
#include "sources/macro.h"
|
||||||
#include "sources/version.h"
|
#include "sources/version.h"
|
||||||
|
#include "sources/error.h"
|
||||||
#include "sources/atomic.h"
|
#include "sources/atomic.h"
|
||||||
#include "sources/list.h"
|
#include "sources/list.h"
|
||||||
#include "sources/pid.h"
|
#include "sources/pid.h"
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
|
|
||||||
#include "sources/macro.h"
|
#include "sources/macro.h"
|
||||||
#include "sources/version.h"
|
#include "sources/version.h"
|
||||||
|
#include "sources/error.h"
|
||||||
#include "sources/atomic.h"
|
#include "sources/atomic.h"
|
||||||
#include "sources/list.h"
|
#include "sources/list.h"
|
||||||
#include "sources/pid.h"
|
#include "sources/pid.h"
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
|
|
||||||
#include "sources/macro.h"
|
#include "sources/macro.h"
|
||||||
#include "sources/version.h"
|
#include "sources/version.h"
|
||||||
|
#include "sources/error.h"
|
||||||
#include "sources/atomic.h"
|
#include "sources/atomic.h"
|
||||||
#include "sources/list.h"
|
#include "sources/list.h"
|
||||||
#include "sources/pid.h"
|
#include "sources/pid.h"
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
|
|
||||||
#include "sources/macro.h"
|
#include "sources/macro.h"
|
||||||
#include "sources/version.h"
|
#include "sources/version.h"
|
||||||
|
#include "sources/error.h"
|
||||||
#include "sources/atomic.h"
|
#include "sources/atomic.h"
|
||||||
#include "sources/list.h"
|
#include "sources/list.h"
|
||||||
#include "sources/pid.h"
|
#include "sources/pid.h"
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
|
|
||||||
#include "sources/macro.h"
|
#include "sources/macro.h"
|
||||||
#include "sources/version.h"
|
#include "sources/version.h"
|
||||||
|
#include "sources/error.h"
|
||||||
#include "sources/atomic.h"
|
#include "sources/atomic.h"
|
||||||
#include "sources/list.h"
|
#include "sources/list.h"
|
||||||
#include "sources/pid.h"
|
#include "sources/pid.h"
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
|
|
||||||
#include "sources/macro.h"
|
#include "sources/macro.h"
|
||||||
#include "sources/version.h"
|
#include "sources/version.h"
|
||||||
|
#include "sources/error.h"
|
||||||
#include "sources/atomic.h"
|
#include "sources/atomic.h"
|
||||||
#include "sources/list.h"
|
#include "sources/list.h"
|
||||||
#include "sources/pid.h"
|
#include "sources/pid.h"
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
|
|
||||||
#include "sources/macro.h"
|
#include "sources/macro.h"
|
||||||
#include "sources/version.h"
|
#include "sources/version.h"
|
||||||
|
#include "sources/error.h"
|
||||||
#include "sources/atomic.h"
|
#include "sources/atomic.h"
|
||||||
#include "sources/list.h"
|
#include "sources/list.h"
|
||||||
#include "sources/pid.h"
|
#include "sources/pid.h"
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
|
|
||||||
#include "sources/macro.h"
|
#include "sources/macro.h"
|
||||||
#include "sources/version.h"
|
#include "sources/version.h"
|
||||||
|
#include "sources/error.h"
|
||||||
#include "sources/atomic.h"
|
#include "sources/atomic.h"
|
||||||
#include "sources/list.h"
|
#include "sources/list.h"
|
||||||
#include "sources/pid.h"
|
#include "sources/pid.h"
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
#include <machinarium.h>
|
#include <machinarium.h>
|
||||||
|
|
||||||
#include "sources/macro.h"
|
#include "sources/macro.h"
|
||||||
|
#include "sources/error.h"
|
||||||
#include "sources/list.h"
|
#include "sources/list.h"
|
||||||
#include "sources/pid.h"
|
#include "sources/pid.h"
|
||||||
#include "sources/id.h"
|
#include "sources/id.h"
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
|
|
||||||
#include "sources/macro.h"
|
#include "sources/macro.h"
|
||||||
#include "sources/version.h"
|
#include "sources/version.h"
|
||||||
|
#include "sources/error.h"
|
||||||
#include "sources/atomic.h"
|
#include "sources/atomic.h"
|
||||||
#include "sources/list.h"
|
#include "sources/list.h"
|
||||||
#include "sources/pid.h"
|
#include "sources/pid.h"
|
||||||
|
|
Loading…
Reference in New Issue