mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 15:17:36 +00:00
AK: Move some of LogStream out of line & add overloads for smart pointers.
This commit is contained in:
parent
07d11a9b6b
commit
1b013ba699
9 changed files with 87 additions and 31 deletions
|
@ -2,8 +2,9 @@
|
||||||
|
|
||||||
#include "StdLibExtras.h"
|
#include "StdLibExtras.h"
|
||||||
#include "Types.h"
|
#include "Types.h"
|
||||||
#include <AK/RefPtr.h>
|
#include <AK/NonnullRefPtr.h>
|
||||||
#include <AK/RefCounted.h>
|
#include <AK/RefCounted.h>
|
||||||
|
#include <AK/RefPtr.h>
|
||||||
#include <AK/kmalloc.h>
|
#include <AK/kmalloc.h>
|
||||||
|
|
||||||
namespace AK {
|
namespace AK {
|
||||||
|
|
34
AK/LogStream.cpp
Normal file
34
AK/LogStream.cpp
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
#include <AK/AKString.h>
|
||||||
|
#include <AK/LogStream.h>
|
||||||
|
#include <AK/StringView.h>
|
||||||
|
|
||||||
|
namespace AK {
|
||||||
|
|
||||||
|
inline const LogStream& operator<<(const LogStream& stream, const String& value)
|
||||||
|
{
|
||||||
|
stream.write(value.characters(), value.length());
|
||||||
|
return stream;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline const LogStream& operator<<(const LogStream& stream, const StringView& value)
|
||||||
|
{
|
||||||
|
stream.write(value.characters(), value.length());
|
||||||
|
return stream;
|
||||||
|
}
|
||||||
|
|
||||||
|
const LogStream& operator<<(const LogStream& stream, int value)
|
||||||
|
{
|
||||||
|
return stream << String::number(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
const LogStream& operator<<(const LogStream& stream, unsigned value)
|
||||||
|
{
|
||||||
|
return stream << String::number(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
const LogStream& operator<<(const LogStream& stream, const void* value)
|
||||||
|
{
|
||||||
|
return stream << String::format("%p", value);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -1,9 +1,12 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <AK/AKString.h>
|
|
||||||
#include <AK/StringView.h>
|
|
||||||
#include <AK/kstdio.h>
|
#include <AK/kstdio.h>
|
||||||
|
|
||||||
|
namespace AK {
|
||||||
|
|
||||||
|
class String;
|
||||||
|
class StringView;
|
||||||
|
|
||||||
class LogStream {
|
class LogStream {
|
||||||
public:
|
public:
|
||||||
LogStream() {}
|
LogStream() {}
|
||||||
|
@ -35,21 +38,19 @@ inline DebugLogStream dbg()
|
||||||
|
|
||||||
inline const LogStream& operator<<(const LogStream& stream, const char* value)
|
inline const LogStream& operator<<(const LogStream& stream, const char* value)
|
||||||
{
|
{
|
||||||
stream.write(value, strlen(value));
|
int length = 0;
|
||||||
|
const char* p = value;
|
||||||
|
while (*(p++))
|
||||||
|
++length;
|
||||||
|
stream.write(value, length);
|
||||||
return stream;
|
return stream;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline const LogStream& operator<<(const LogStream& stream, const String& value)
|
const LogStream& operator<<(const LogStream&, const String&);
|
||||||
{
|
const LogStream& operator<<(const LogStream&, const StringView&);
|
||||||
stream.write(value.characters(), value.length());
|
const LogStream& operator<<(const LogStream&, int);
|
||||||
return stream;
|
const LogStream& operator<<(const LogStream&, unsigned);
|
||||||
}
|
const LogStream& operator<<(const LogStream&, const void*);
|
||||||
|
|
||||||
inline const LogStream& operator<<(const LogStream& stream, const StringView& value)
|
|
||||||
{
|
|
||||||
stream.write(value.characters(), value.length());
|
|
||||||
return stream;
|
|
||||||
}
|
|
||||||
|
|
||||||
inline const LogStream& operator<<(const LogStream& stream, char value)
|
inline const LogStream& operator<<(const LogStream& stream, char value)
|
||||||
{
|
{
|
||||||
|
@ -62,17 +63,7 @@ inline const LogStream& operator<<(const LogStream& stream, bool value)
|
||||||
return stream << (value ? "true" : "false");
|
return stream << (value ? "true" : "false");
|
||||||
}
|
}
|
||||||
|
|
||||||
inline const LogStream& operator<<(const LogStream& stream, int value)
|
|
||||||
{
|
|
||||||
return stream << String::number(value);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
inline const LogStream& operator<<(const LogStream& stream, unsigned value)
|
using AK::LogStream;
|
||||||
{
|
using AK::dbg;
|
||||||
return stream << String::number(value);
|
|
||||||
}
|
|
||||||
|
|
||||||
inline const LogStream& operator<<(const LogStream& stream, const void* value)
|
|
||||||
{
|
|
||||||
return stream << String::format("%p", value);
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <AK/Assertions.h>
|
#include <AK/Assertions.h>
|
||||||
|
#include <AK/LogStream.h>
|
||||||
#include <AK/Types.h>
|
#include <AK/Types.h>
|
||||||
|
|
||||||
#ifdef __clang__
|
#ifdef __clang__
|
||||||
|
@ -239,6 +240,12 @@ inline NonnullRefPtr<T> adopt(T& object)
|
||||||
return NonnullRefPtr<T>(NonnullRefPtr<T>::Adopt, object);
|
return NonnullRefPtr<T>(NonnullRefPtr<T>::Adopt, object);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
inline const LogStream& operator<<(const LogStream& stream, const NonnullRefPtr<T>& value)
|
||||||
|
{
|
||||||
|
return stream << value.ptr();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
using AK::adopt;
|
using AK::adopt;
|
||||||
|
|
13
AK/OwnPtr.h
13
AK/OwnPtr.h
|
@ -1,8 +1,9 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "StdLibExtras.h"
|
#include <AK/LogStream.h>
|
||||||
#include "Traits.h"
|
#include <AK/StdLibExtras.h>
|
||||||
#include "Types.h"
|
#include <AK/Traits.h>
|
||||||
|
#include <AK/Types.h>
|
||||||
|
|
||||||
namespace AK {
|
namespace AK {
|
||||||
|
|
||||||
|
@ -115,6 +116,12 @@ struct Traits<OwnPtr<T>> : public GenericTraits<OwnPtr<T>> {
|
||||||
static bool equals(const OwnPtr<T>& a, const OwnPtr<T>& b) { return a.ptr() == b.ptr(); }
|
static bool equals(const OwnPtr<T>& a, const OwnPtr<T>& b) { return a.ptr() == b.ptr(); }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
inline const LogStream& operator<<(const LogStream& stream, const OwnPtr<T>& value)
|
||||||
|
{
|
||||||
|
return stream << value.ptr();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
using AK::make;
|
using AK::make;
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include <AK/LogStream.h>
|
||||||
#include <AK/NonnullRefPtr.h>
|
#include <AK/NonnullRefPtr.h>
|
||||||
#include <AK/Types.h>
|
#include <AK/Types.h>
|
||||||
|
|
||||||
|
@ -203,6 +204,12 @@ private:
|
||||||
T* m_ptr = nullptr;
|
T* m_ptr = nullptr;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
inline const LogStream& operator<<(const LogStream& stream, const RefPtr<T>& value)
|
||||||
|
{
|
||||||
|
return stream << value.ptr();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
using AK::RefPtr;
|
using AK::RefPtr;
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "Weakable.h"
|
#include <AK/LogStream.h>
|
||||||
|
#include <AK/Weakable.h>
|
||||||
|
|
||||||
namespace AK {
|
namespace AK {
|
||||||
|
|
||||||
|
@ -66,6 +67,12 @@ inline WeakPtr<T> Weakable<T>::make_weak_ptr()
|
||||||
return WeakPtr<T>(m_link.copy_ref());
|
return WeakPtr<T>(m_link.copy_ref());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
inline const LogStream& operator<<(const LogStream& stream, const WeakPtr<T>& value)
|
||||||
|
{
|
||||||
|
return stream << value.ptr();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
using AK::WeakPtr;
|
using AK::WeakPtr;
|
||||||
|
|
|
@ -88,6 +88,7 @@ AK_OBJS = \
|
||||||
../AK/JsonValue.o \
|
../AK/JsonValue.o \
|
||||||
../AK/JsonArray.o \
|
../AK/JsonArray.o \
|
||||||
../AK/JsonParser.o \
|
../AK/JsonParser.o \
|
||||||
|
../AK/LogStream.o \
|
||||||
../AK/ELF/ELFImage.o \
|
../AK/ELF/ELFImage.o \
|
||||||
../AK/ELF/ELFLoader.o
|
../AK/ELF/ELFLoader.o
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,7 @@ AK_OBJS = \
|
||||||
../AK/JsonArray.o \
|
../AK/JsonArray.o \
|
||||||
../AK/JsonObject.o \
|
../AK/JsonObject.o \
|
||||||
../AK/JsonParser.o \
|
../AK/JsonParser.o \
|
||||||
|
../AK/LogStream.o \
|
||||||
../AK/MappedFile.o
|
../AK/MappedFile.o
|
||||||
|
|
||||||
LIBC_OBJS = \
|
LIBC_OBJS = \
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue