1351290Sdim//===-- SBReproducer.h ------------------------------------------*- C++ -*-===// 2351290Sdim// 3351290Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4351290Sdim// See https://llvm.org/LICENSE.txt for license information. 5351290Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6351290Sdim// 7351290Sdim//===----------------------------------------------------------------------===// 8351290Sdim 9351290Sdim#ifndef LLDB_API_SBREPRODUCER_H 10351290Sdim#define LLDB_API_SBREPRODUCER_H 11351290Sdim 12351290Sdim#include "lldb/API/SBDefines.h" 13351290Sdim 14351290Sdimnamespace lldb { 15351290Sdim 16351290Sdim/// The SBReproducer class is special because it bootstraps the capture and 17351290Sdim/// replay of SB API calls. As a result we cannot rely on any other SB objects 18351290Sdim/// in the interface or implementation of this class. 19351290Sdimclass LLDB_API SBReproducer { 20351290Sdimpublic: 21351290Sdim static const char *Capture(); 22351290Sdim static const char *Capture(const char *path); 23351290Sdim static const char *Replay(const char *path); 24360784Sdim static const char *Replay(const char *path, bool skip_version_check); 25360784Sdim static const char *GetPath(); 26360784Sdim static bool Generate(); 27351290Sdim}; 28351290Sdim 29351290Sdim} // namespace lldb 30351290Sdim 31351290Sdim#endif 32