From 57316d3144f598943fd121260398541a04719cda Mon Sep 17 00:00:00 2001 From: Mikhail Khodjaiants Date: Sat, 15 Mar 2008 18:18:14 +0000 Subject: [PATCH] Added disassembly context related interfaces. --- .../IDisassemblyContextListener.java | 42 +++++++++++++ .../IDisassemblyContextProvider.java | 32 ++++++++++ .../IDisassemblyContextService.java | 61 +++++++++++++++++++ 3 files changed, 135 insertions(+) create mode 100644 debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/disassembly/IDisassemblyContextListener.java create mode 100644 debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/disassembly/IDisassemblyContextProvider.java create mode 100644 debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/disassembly/IDisassemblyContextService.java diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/disassembly/IDisassemblyContextListener.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/disassembly/IDisassemblyContextListener.java new file mode 100644 index 00000000000..37d5d5f47db --- /dev/null +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/disassembly/IDisassemblyContextListener.java @@ -0,0 +1,42 @@ +/******************************************************************************* + * Copyright (c) 2008 ARM Limited and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * ARM Limited - Initial API and implementation + *******************************************************************************/ + +package org.eclipse.cdt.debug.core.disassembly; + +/** + * The instances of this interface are notified when + * a disassembly context is registered or unregistered + * with IDisassemblyContextService. + *

+ * This interface is used by the disassembly UI components. + *

+ *

+ * The clients may implement this interface. + *

+ */ +public interface IDisassemblyContextListener { + + /** + * Indicates that context has been registered + * with IDisassemblyContextService. + * + * @param context the disassembly context that is registered + */ + public void contextAdded( Object context ); + + /** + * Indicates that context has been unregistered + * with IDisassemblyContextService. + * + * @param context the disassembly context that is unregistered + */ + public void contextRemoved( Object context ); +} diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/disassembly/IDisassemblyContextProvider.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/disassembly/IDisassemblyContextProvider.java new file mode 100644 index 00000000000..35a3b05da81 --- /dev/null +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/disassembly/IDisassemblyContextProvider.java @@ -0,0 +1,32 @@ +/******************************************************************************* + * Copyright (c) 2008 ARM Limited and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * ARM Limited - Initial API and implementation + *******************************************************************************/ + +package org.eclipse.cdt.debug.core.disassembly; + +/** + * Provides disassembly context for given element. + *

+ * Clients must implements this interface to plug into + * the diassembly framework. + *

+ */ +public interface IDisassemblyContextProvider { + + /** + * Returns the disassembly context object for element + * + * @param element the element being queried for disassembly context + * @return an object that represents the disassembly context + * for the given element, or null if the given element + * doesn't provide a disassembly context + */ + public Object getDisassemblyContext( Object element ); +} diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/disassembly/IDisassemblyContextService.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/disassembly/IDisassemblyContextService.java new file mode 100644 index 00000000000..94f904607e2 --- /dev/null +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/disassembly/IDisassemblyContextService.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2008 ARM Limited and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * ARM Limited - Initial API and implementation + *******************************************************************************/ + +package org.eclipse.cdt.debug.core.disassembly; + +/** + * Interface for registering the disassembly context objects. + *

+ * Clients interested in the context change notifications + * may register a listener. + *

+ *

+ * This interface is not intended to be implemented by clients. + * It can be accessed from CDebugCorePlugin. + *

+ * @see org.eclipse.cdt.debug.core.IDisassemblyContextListener + */ +public interface IDisassemblyContextService { + + /** + * Adds the given listener to the collection of registered listeners. + * Has no effect if an identical listener is already registered. + * + * @param listener the listener to add + */ + public void addDisassemblyContextListener( IDisassemblyContextListener listener ); + + /** + * Removes the given listener from the collection of registered listeners. + * Has no effect if an identical listener is not already registered. + * + * @param listener the listener to remove + */ + public void removeDisassemblyContextListener( IDisassemblyContextListener listener ); + + /** + * Registers the given context with this service. + * Has no effect if an identical context has already been registered. + * The corresponding notifications will be sent to all registered listeners. + * + * @param disassemblyContext the context to register. + */ + public void register( Object disassemblyContext ); + + /** + * Unregisters the given context with this service. + * Has no effect if an identical context has not been registered. + * The corresponding notifications will be sent to all registered listeners. + * + * @param disassemblyContext the context to unregister. + */ + public void unregister( Object disassemblyContext ); +}