Files
clang-p2996/lldb/source/Plugins/StructuredData/DarwinLog/StructuredDataDarwinLog.h
Jonas Devlieghere 8b3af63b89 [NFC] Remove ASCII lines from comments
A lot of comments in LLDB are surrounded by an ASCII line to delimit the
begging and end of the comment.

Its use is not really consistent across the code base, sometimes the
lines are longer, sometimes they are shorter and sometimes they are
omitted. Furthermore, it looks kind of weird with the 80 column limit,
where the comment actually extends past the line, but not by much.
Furthermore, when /// is used for Doxygen comments, it looks
particularly odd. And when // is used, it incorrectly gives the
impression that it's actually a Doxygen comment.

I assume these lines were added to improve distinguishing between
comments and code. However, given that todays editors and IDEs do a
great job at highlighting comments, I think it's worth to drop this for
the sake of consistency. The alternative is fixing all the
inconsistencies, which would create a lot more churn.

Differential revision: https://reviews.llvm.org/D60508

llvm-svn: 358135
2019-04-10 20:48:55 +00:00

119 lines
3.3 KiB
C++

//===-- StructuredDataDarwinLog.h -------------------------------*- C++ -*-===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
#ifndef StructuredDataDarwinLog_h
#define StructuredDataDarwinLog_h
#include "lldb/Target/StructuredDataPlugin.h"
#include <mutex>
// Forward declarations
namespace sddarwinlog_private {
class EnableCommand;
}
namespace lldb_private {
class StructuredDataDarwinLog : public StructuredDataPlugin {
friend sddarwinlog_private::EnableCommand;
public:
// Public static API
static void Initialize();
static void Terminate();
static ConstString GetStaticPluginName();
/// Return whether the DarwinLog functionality is enabled.
///
/// The DarwinLog functionality is enabled if the user expicitly enabled
/// it with the enable command, or if the user has the setting set
/// that controls if we always enable it for newly created/attached
/// processes.
///
/// \return
/// True if DarwinLog support is/will be enabled for existing or
/// newly launched/attached processes.
static bool IsEnabled();
// PluginInterface API
ConstString GetPluginName() override;
uint32_t GetPluginVersion() override;
// StructuredDataPlugin API
bool SupportsStructuredDataType(ConstString type_name) override;
void HandleArrivalOfStructuredData(
Process &process, ConstString type_name,
const StructuredData::ObjectSP &object_sp) override;
Status GetDescription(const StructuredData::ObjectSP &object_sp,
lldb_private::Stream &stream) override;
bool GetEnabled(ConstString type_name) const override;
void ModulesDidLoad(Process &process, ModuleList &module_list) override;
~StructuredDataDarwinLog();
private:
// Private constructors
StructuredDataDarwinLog(const lldb::ProcessWP &process_wp);
// Private static methods
static lldb::StructuredDataPluginSP CreateInstance(Process &process);
static void DebuggerInitialize(Debugger &debugger);
static bool InitCompletionHookCallback(void *baton,
StoppointCallbackContext *context,
lldb::user_id_t break_id,
lldb::user_id_t break_loc_id);
static Status FilterLaunchInfo(ProcessLaunchInfo &launch_info,
Target *target);
// Internal helper methods used by friend classes
void SetEnabled(bool enabled);
void AddInitCompletionHook(Process &process);
// Private methods
void DumpTimestamp(Stream &stream, uint64_t timestamp);
size_t DumpHeader(Stream &stream, const StructuredData::Dictionary &event);
size_t HandleDisplayOfEvent(const StructuredData::Dictionary &event,
Stream &stream);
/// Call the enable command again, using whatever settings were initially
/// made.
void EnableNow();
// Private data
bool m_recorded_first_timestamp;
uint64_t m_first_timestamp_seen;
bool m_is_enabled;
std::mutex m_added_breakpoint_mutex;
bool m_added_breakpoint;
lldb::user_id_t m_breakpoint_id;
};
}
#endif /* StructuredDataPluginDarwinLog_hpp */