/*******************************************************************************
* Copyright (c) 2005, 2010 Freescale, Inc.
* 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:
* Freescale, Inc. - initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.debug.core.cdi.model;
import java.math.BigInteger;
import org.eclipse.cdt.debug.core.cdi.CDIException;
/**
* The memory space manager provides varous memory-space related operations.
* The backend implementation of ICDITarget should implement this interface
* as well if the target supports memory spaces.
*/
public interface ICDIMemorySpaceManagement extends ICDIObject {
/**
* Optionally provides the string encoding of a memory space qualified
* address. CDT provides a default encoding of
* <memory-space-id>:<address(hex)>. If this is adequate, the client can
* return null from this function.
*
* @param address
* a numeric address
* @param memorySpaceID
* a string which represents the memory space
* @return the encoded string representation of the address or null
* @deprecated CDI clients should implement ICDIMemorySpaceEncoder
*/
String addressToString(BigInteger address, String memorySpaceID);
/**
* The inverse of addressToString. Optionally decodes a memoryspace/address
* string to its components. Client must provide decoding if it provides
* encoding in addressToString. Conversely, it should return null if
* addressToString returns null.
*
* @param str
* the encoded string (contains memory space + hex address
* value)
* @param memorySpaceID_out
* the memory space ID
* @return the BigInteger part of str; client should return null if the
* default decoding provided by CDT is sufficient
* (<memory-space-id>:<address(hex)>)
* @throws CDIException
* if string is not in the expected format
* @deprecated CDI clients should implement ICDIMemorySpaceEncoder
*/
BigInteger stringToAddress(String str, StringBuffer memorySpaceID_out) throws CDIException;
/**
* Provides the memory spaces available.
*
* @return an array of memory space identifiers
*/
String [] getMemorySpaces();
}