diff options
author | Ed Maste <emaste@FreeBSD.org> | 2014-11-25 21:00:58 +0000 |
---|---|---|
committer | Ed Maste <emaste@FreeBSD.org> | 2014-11-25 21:00:58 +0000 |
commit | 0cac4ca3916ac24ab6139d03cbfd18db9e715bfe (patch) | |
tree | c94307da318be46e5aeea1a325c1e91749506e4f /tools/lldb-mi/MICmdMgrSetCmdDeleteCallback.h | |
parent | 03b99097822ca3ac69252d9afae716a584ed56c4 (diff) | |
download | src-0cac4ca3916ac24ab6139d03cbfd18db9e715bfe.tar.gz src-0cac4ca3916ac24ab6139d03cbfd18db9e715bfe.zip |
Import LLDB as of upstream SVN r216948 (git 50f7fe44)vendor/lldb/lldb-r216948
This corresponds with the branchpoint for the 3.5 release.
A number of files not required for the FreeBSD build have been removed.
Sponsored by: DARPA, AFRL
Notes
Notes:
svn path=/vendor/lldb/dist/; revision=275072
svn path=/vendor/lldb/lldb-r216948/; revision=275074; tag=vendor/lldb/lldb-r216948
Diffstat (limited to 'tools/lldb-mi/MICmdMgrSetCmdDeleteCallback.h')
-rw-r--r-- | tools/lldb-mi/MICmdMgrSetCmdDeleteCallback.h | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/tools/lldb-mi/MICmdMgrSetCmdDeleteCallback.h b/tools/lldb-mi/MICmdMgrSetCmdDeleteCallback.h new file mode 100644 index 000000000000..3579d3582615 --- /dev/null +++ b/tools/lldb-mi/MICmdMgrSetCmdDeleteCallback.h @@ -0,0 +1,88 @@ +//===-- MICmdMgrSetCmdDeleteCallback.h --------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +//++ +// File: MICmdMgrSetCmdDeleteCallback.h +// +// Overview: ICallback interface. +// CSetClients interface. +// +// Environment: Compilers: Visual C++ 12. +// gcc (Ubuntu/Linaro 4.8.1-10ubuntu9) 4.8.1 +// Libraries: See MIReadmetxt. +// +// Copyright: None. +//-- + +#pragma once + +// Third party headers: +#include <set> + +// In-house headers: +#include "MICmnBase.h" + +// Declarations: +struct SMICmdData; + +namespace CMICmdMgrSetCmdDeleteCallback +{ + +//++ ============================================================================ +// Details: MI Command Manager interface for client call back. +// Objects that want to be notified of a command being deleted +// inherit this interface and register interest in command object +// deletion. An object deleting a command must not do it itself but call +// the Command Manager CmdDelete() function to delete a command object. +// Gotchas: None. +// Authors: Illya Rudkin 21/02/2014. +// Changes: None. +//-- +class ICallback +{ +public: + virtual void Delete( SMICmdData & vCmd ) = 0; + + /* dtor */ virtual ~ICallback( void ) {}; +}; + +//++ ============================================================================ +// Details: MI Command Manager container for clients registered interest in command +// objects being deleted. Objects register an interest so when a command +// is to be deleted that object wanting the delete calls the Command +// Manager to delete the command object. In so do all other registered +// objects get called to about the deletion including the object wanting +// to do the delete in the first place. +// Gotchas: None. +// Authors: Illya Rudkin 21/02/2014. +// Changes: None. +//-- +class CSetClients +: public std::set< class ICallback * > +, public CMICmnBase +{ +// Methods: +public: + /* ctor */ CSetClients( void ); + + bool Register( class ICallback & vObject ); + bool Unregister( class ICallback & vObject ); + void Delete( SMICmdData & vCmdData ); + +// Overridden: +public: + // From CMICmnBase + /* dtor */ virtual ~CSetClients( void ); + +// Attributes: +private: + bool m_bClientUnregistered; // True = yes while deleting a client unregistered, false = no client unregistered during deletion +}; + +} // namespace CMICmdMgrSetCmdDeleteCallback |