1
/*******************************************************************************
2
* Copyright (c) 2008 ARM Limited and others.
3
* All rights reserved. This program and the accompanying materials
4
* are made available under the terms of the Eclipse Public License v1.0
5
* which accompanies this distribution, and is available at
6
* http://www.eclipse.org/legal/epl-v10.html
9
* ARM Limited - Initial API and implementation
10
*******************************************************************************/
12
package org.eclipse.cdt.debug.internal.core.disassembly;
15
import java.util.concurrent.CopyOnWriteArraySet;
17
import org.eclipse.cdt.debug.core.disassembly.IDisassemblyContextListener;
18
import org.eclipse.cdt.debug.core.disassembly.IDisassemblyContextService;
19
import org.eclipse.core.runtime.ListenerList;
21
public class DisassemblyContextService implements IDisassemblyContextService {
23
private ListenerList fListeners;
24
private Set<Object> fContexts;
26
public DisassemblyContextService() {
27
fContexts = new CopyOnWriteArraySet<Object>();
28
fListeners = new ListenerList();
32
* @see org.eclipse.cdt.debug.core.disassembly.IDisassemblyContextService#addDisassemblyContextListener(org.eclipse.cdt.debug.core.disassembly.IDisassemblyContextListener)
34
public void addDisassemblyContextListener( IDisassemblyContextListener listener ) {
35
fListeners.add( listener );
39
* @see org.eclipse.cdt.debug.core.disassembly.IDisassemblyContextService#removeDisassemblyContextListener(org.eclipse.cdt.debug.core.disassembly.IDisassemblyContextListener)
41
public void removeDisassemblyContextListener( IDisassemblyContextListener listener ) {
42
fListeners.remove( listener );
46
* @see org.eclipse.cdt.debug.core.disassembly.IDisassemblyContextService#register(java.lang.Object)
48
public void register( Object context ) {
49
fContexts.add( context );
50
for( Object listener : fListeners.getListeners() ) {
51
((IDisassemblyContextListener)listener).contextAdded( context );
56
* @see org.eclipse.cdt.debug.core.disassembly.IDisassemblyContextService#unregister(java.lang.Object)
58
public void unregister( Object context ) {
59
fContexts.remove( context );
60
for( Object listener : fListeners.getListeners() ) {
61
((IDisassemblyContextListener)listener).contextRemoved( context );
65
public void dispose() {
66
for( Object context : fContexts ) {
67
for( Object listener : fListeners.getListeners() ) {
68
((IDisassemblyContextListener)listener).contextRemoved( context );