38 lines
891 B
C
38 lines
891 B
C
|
|
#ifndef STREAM_HANDLER_H
|
|||
|
|
#define STREAM_HANDLER_H
|
|||
|
|
|
|||
|
|
#include <iosfwd>
|
|||
|
|
#include <iostream>
|
|||
|
|
#include <sstream>
|
|||
|
|
|
|||
|
|
#ifdef __OHOS__
|
|||
|
|
#define CC_OHOS_ 1
|
|||
|
|
#include "hilog/log.h"
|
|||
|
|
#undef LOG_DOMAIN
|
|||
|
|
#undef LOG_TAG
|
|||
|
|
#define LOG_DOMAIN 0x0728 // 全局domain宏,标识业务领域
|
|||
|
|
#define LOG_TAG "CC_SDK" // 全局tag宏,标识模块日志tag
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
class StreamHandler {
|
|||
|
|
public:
|
|||
|
|
// 构造函数
|
|||
|
|
explicit StreamHandler(std::ostream& stream) : os(stream) {}
|
|||
|
|
// 重载 << 操作符,处理输入值
|
|||
|
|
template <typename T>
|
|||
|
|
StreamHandler& operator<<(const T& value) {
|
|||
|
|
os << value;
|
|||
|
|
return *this;
|
|||
|
|
}
|
|||
|
|
// 专门处理函数触发逻辑
|
|||
|
|
StreamHandler& operator<<(std::ostream& (*func)(std::ostream&)) {
|
|||
|
|
func(os); // 调用传入的函数
|
|||
|
|
return *this;
|
|||
|
|
}
|
|||
|
|
private:
|
|||
|
|
std::ostream& os;
|
|||
|
|
};
|
|||
|
|
inline StreamHandler customCout(std::cout);
|
|||
|
|
|
|||
|
|
#endif
|