/******************************************************************************* * Copyright (c) 2014 Ericsson 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: * Alvaro Sanchez-Leon (Ericsson) - First API (Bug 235747) *******************************************************************************/ package org.eclipse.cdt.dsf.debug.service; import org.eclipse.cdt.dsf.concurrent.DataRequestMonitor; import org.eclipse.cdt.dsf.concurrent.RequestMonitor; import org.eclipse.cdt.dsf.datamodel.IDMContext; /** * Service extension of IRegisters to manage user defined Register Groups * @since 2.6 */ public interface IRegisters2 extends IRegisters { /** * Returns a boolean indicating if it is allowed to add a new register group with the given selected context * * @param rm - monitor encapsulating the response */ public void canAddRegisterGroup(IDMContext ctx, DataRequestMonitor<Boolean> rm); /** * Add a Register group referencing the given registers * * @param ctx - A context containing a parent group context e.g. IContainerDMContext * @param name - register group name * @param registers - registers part of this new group * @param rm - request monitor */ public void addRegisterGroup(IDMContext ctx, String name, IRegisterDMContext[] registers, RequestMonitor rm); /** * Returns a boolean indicating if it is allowed to edit the given group * * @param rm - monitor encapsulating the response */ public void canEditRegisterGroup(IRegisterGroupDMContext group, DataRequestMonitor<Boolean> rm); /** * Edit the given register group and update its name and associated registers * * @param group - group to be edited * @param groupName - new group name or null if name is not to be changed * @param registers - new list of registers for this group or null if the list of registers is not be changed * @param rm - request monitor */ public void editRegisterGroup(IRegisterGroupDMContext group, String groupName, IRegisterDMContext[] registers, RequestMonitor rm); /** * Returns a boolean indicating if it is allowed to remove the given registers groups * @param groups - list of register group contexts to be removed * @param rm */ public void canRemoveRegisterGroups(IRegisterGroupDMContext[] groups, DataRequestMonitor<Boolean> rm); /** * Remove the given register groups * * @param groups - groups that shall be removed * @param rm - request monitor */ public void removeRegisterGroups(IRegisterGroupDMContext[] groups, RequestMonitor rm); /** * Returns a boolean indicating if it is allowed to restore to the default groups * @param ctx * @param rm */ public void canRestoreDefaultGroups(IDMContext ctx, DataRequestMonitor<Boolean> rm); /** * Remove all the user defined register groups and restore the default ones to their * original state. * * @param rm - request monitor */ public void restoreDefaultGroups(IDMContext selectionContext, RequestMonitor rm); }