mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2024-11-22 10:40:05 +08:00
CHECK宏支持自定义错误提示
This commit is contained in:
parent
11eb04f094
commit
b10fc52384
@ -21,12 +21,12 @@
|
|||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
extern void Assert_Throw(int failed, const char *exp, const char *func, const char *file, int line);
|
extern void Assert_Throw(int failed, const char *exp, const char *func, const char *file, int line, const char *str);
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define assert(exp) Assert_Throw(!(exp), #exp, __FUNCTION__, __FILE__, __LINE__)
|
#define assert(exp) Assert_Throw(!(exp), #exp, __FUNCTION__, __FILE__, __LINE__, NULL)
|
||||||
#else
|
#else
|
||||||
#define assert(e) ((void)0)
|
#define assert(e) ((void)0)
|
||||||
#endif//NDEBUG
|
#endif//NDEBUG
|
||||||
|
@ -307,22 +307,10 @@ const string kMediaTimeoutMS = "media_timeout_ms";
|
|||||||
const string kBeatIntervalMS = "beat_interval_ms";
|
const string kBeatIntervalMS = "beat_interval_ms";
|
||||||
const string kMaxAnalysisMS = "max_analysis_ms";
|
const string kMaxAnalysisMS = "max_analysis_ms";
|
||||||
const string kBenchmarkMode = "benchmark_mode";
|
const string kBenchmarkMode = "benchmark_mode";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace mediakit
|
} // namespace mediakit
|
||||||
|
|
||||||
extern "C" {
|
|
||||||
void Assert_Throw(int failed, const char *exp, const char *func, const char *file, int line) {
|
|
||||||
if (failed) {
|
|
||||||
_StrPrinter printer;
|
|
||||||
printer << "Assertion failed: (" << exp << "), function " << func << ", file " << file << ", line " << line
|
|
||||||
<< ".";
|
|
||||||
throw std::runtime_error(printer);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef ENABLE_MEM_DEBUG
|
#ifdef ENABLE_MEM_DEBUG
|
||||||
|
|
||||||
static atomic<uint64_t> mem_usage(0);
|
static atomic<uint64_t> mem_usage(0);
|
||||||
|
@ -9,11 +9,32 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "macros.h"
|
#include "macros.h"
|
||||||
|
#include "Util/util.h"
|
||||||
|
|
||||||
|
using namespace toolkit;
|
||||||
|
|
||||||
#if defined(ENABLE_VERSION)
|
#if defined(ENABLE_VERSION)
|
||||||
#include "Version.h"
|
#include "Version.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
void Assert_Throw(int failed, const char *exp, const char *func, const char *file, int line, const char *str) {
|
||||||
|
if (failed) {
|
||||||
|
_StrPrinter printer;
|
||||||
|
printer << "Assertion failed: (" << exp ;
|
||||||
|
if(str && *str){
|
||||||
|
printer << ", " << str;
|
||||||
|
}
|
||||||
|
printer << "), function " << func << ", file " << file << ", line " << line << ".";
|
||||||
|
throw std::runtime_error(printer);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace mediakit {
|
||||||
|
|
||||||
|
void printArgs(std::ostream &out) {}
|
||||||
|
|
||||||
//请遵循MIT协议,勿修改服务器声明
|
//请遵循MIT协议,勿修改服务器声明
|
||||||
#if !defined(ENABLE_VERSION)
|
#if !defined(ENABLE_VERSION)
|
||||||
const char SERVER_NAME[] = "ZLMediaKit-6.0(build in " __DATE__ " " __TIME__ ")";
|
const char SERVER_NAME[] = "ZLMediaKit-6.0(build in " __DATE__ " " __TIME__ ")";
|
||||||
@ -21,3 +42,4 @@ const char SERVER_NAME[] = "ZLMediaKit-6.0(build in " __DATE__ " " __TIME__ ")"
|
|||||||
const char SERVER_NAME[] = "ZLMediaKit(git hash:" COMMIT_HASH ",branch:" BRANCH_NAME ",build time:" __DATE__ " " __TIME__ ")";
|
const char SERVER_NAME[] = "ZLMediaKit(git hash:" COMMIT_HASH ",branch:" BRANCH_NAME ",build time:" __DATE__ " " __TIME__ ")";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
}//namespace mediakit
|
@ -11,6 +11,8 @@
|
|||||||
#ifndef ZLMEDIAKIT_MACROS_H
|
#ifndef ZLMEDIAKIT_MACROS_H
|
||||||
#define ZLMEDIAKIT_MACROS_H
|
#define ZLMEDIAKIT_MACROS_H
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
#include <sstream>
|
||||||
#if defined(__MACH__)
|
#if defined(__MACH__)
|
||||||
#include <arpa/inet.h>
|
#include <arpa/inet.h>
|
||||||
#include <machine/endian.h>
|
#include <machine/endian.h>
|
||||||
@ -38,7 +40,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef CHECK
|
#ifndef CHECK
|
||||||
#define CHECK(exp) Assert_Throw(!(exp), #exp, __FUNCTION__, __FILE__, __LINE__)
|
#define CHECK(exp,...) mediakit::Assert_ThrowCpp(!(exp), #exp, __FUNCTION__, __FILE__, __LINE__, ##__VA_ARGS__)
|
||||||
#endif//CHECK
|
#endif//CHECK
|
||||||
|
|
||||||
#ifndef MAX
|
#ifndef MAX
|
||||||
@ -62,14 +64,39 @@
|
|||||||
#define FMP4_SCHEMA "fmp4"
|
#define FMP4_SCHEMA "fmp4"
|
||||||
#define DEFAULT_VHOST "__defaultVhost__"
|
#define DEFAULT_VHOST "__defaultVhost__"
|
||||||
|
|
||||||
extern const char SERVER_NAME[];
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
extern void Assert_Throw(int failed, const char *exp, const char *func, const char *file, int line);
|
extern void Assert_Throw(int failed, const char *exp, const char *func, const char *file, int line, const char *str);
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
namespace mediakit {
|
||||||
|
|
||||||
|
extern const char SERVER_NAME[];
|
||||||
|
|
||||||
|
void printArgs(std::ostream &out);
|
||||||
|
|
||||||
|
template<typename First>
|
||||||
|
void printArgs(std::ostream &out, First &&first) {
|
||||||
|
out << std::forward<First>(first);
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename First, typename ...ARGS>
|
||||||
|
void printArgs(std::ostream &out, First &&first, ARGS &&...args) {
|
||||||
|
out << std::forward<First>(first);
|
||||||
|
printArgs(out, std::forward<ARGS>(args)...);
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename ...ARGS>
|
||||||
|
void Assert_ThrowCpp(int failed, const char *exp, const char *func, const char *file, int line, ARGS &&...args) {
|
||||||
|
if (failed) {
|
||||||
|
std::stringstream ss;
|
||||||
|
printArgs(ss, std::forward<ARGS>(args)...);
|
||||||
|
Assert_Throw(failed, exp, func, file, line, ss.str().data());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}//namespace mediakit
|
||||||
#endif //ZLMEDIAKIT_MACROS_H
|
#endif //ZLMEDIAKIT_MACROS_H
|
||||||
|
Loading…
Reference in New Issue
Block a user