blob: 615c96aabb37f9064a92c8c8ad7804c135906ece [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.mnemonic;
/**
* translate persistent memory address for allocator
*
*/
public interface AddressTranslator {
/**
* calculate the portable address
*
* @param addr
* the address to be calculated
*
* @return the portable address
*/
long getPortableAddress(long addr);
/**
* calculate the effective address
*
* @param addr
* the address to be calculated
*
* @return the effective address
*/
long getEffectiveAddress(long addr);
/**
* calculate the abstract address from portable address
*
* @param addr
* the portable address
*
* @return the abstract address
*/
byte[] getAbstractAddress(long addr);
/**
* set address translate table
*
* @param tbl
* specify a translate table
*/
void setTranslateTable(long[][] tbl);
/**
* get the address translate table
*
* @return the translate table
*/
long[][] getTranslateTable();
}