org.eclipse.mat.hprof.IHprofParserHandler Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of haha Show documentation
Show all versions of haha Show documentation
Java library to automate the analysis of Android heap dumps.
/**
* ****************************************************************************
* Copyright (c) 2008 SAP AG.
* 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:
* SAP AG - initial API and implementation
* *****************************************************************************
*/
package org.eclipse.mat.hprof;
import java.io.IOException;
import java.util.List;
import org.eclipse.mat.SnapshotException;
import org.eclipse.mat.collect.ArrayLong;
import org.eclipse.mat.collect.HashMapLongObject;
import org.eclipse.mat.parser.IPreliminaryIndex;
import org.eclipse.mat.parser.index.IIndexReader.IOne2LongIndex;
import org.eclipse.mat.parser.model.ClassImpl;
import org.eclipse.mat.parser.model.XSnapshotInfo;
import org.eclipse.mat.snapshot.model.IClass;
import org.eclipse.mat.util.IProgressListener;
public interface IHprofParserHandler {
String IDENTIFIER_SIZE = "ID_SIZE"; //$NON-NLS-1$
String CREATION_DATE = "CREATION_DATE"; //$NON-NLS-1$
String VERSION = "VERSION";//$NON-NLS-1$
public class HeapObject {
public int objectId;
public long objectAddress;
public ClassImpl clazz;
public int usedHeapSize;
public ArrayLong references = new ArrayLong();
public boolean isArray = false;
public HeapObject(int objectId, long objectAddress, ClassImpl clazz, int usedHeapSize) {
super();
this.objectId = objectId;
this.objectAddress = objectAddress;
this.clazz = clazz;
this.usedHeapSize = usedHeapSize;
this.isArray = false;
}
}
// //////////////////////////////////////////////////////////////
// lifecycle
// //////////////////////////////////////////////////////////////
void beforePass1(XSnapshotInfo snapshotInfo) throws IOException;
void beforePass2(IProgressListener monitor) throws IOException, SnapshotException;
IOne2LongIndex fillIn(IPreliminaryIndex index) throws IOException;
void cancel();
// //////////////////////////////////////////////////////////////
// report parsed entities
// //////////////////////////////////////////////////////////////
void addProperty(String name, String value) throws IOException;
void addGCRoot(long id, long referrer, int rootType) throws IOException;
void addClass(ClassImpl clazz, long filePosition) throws IOException;
void addObject(HeapObject object, long filePosition) throws IOException;
void reportInstance(long id, long filePosition);
void reportRequiredObjectArray(long arrayClassID);
void reportRequiredPrimitiveArray(int arrayType);
// //////////////////////////////////////////////////////////////
// lookup heap infos
// //////////////////////////////////////////////////////////////
int getIdentifierSize();
HashMapLongObject getConstantPool();
IClass lookupClass(long classId);
IClass lookupClassByName(String name, boolean failOnMultipleInstances);
IClass lookupClassByIndex(int objIndex);
List resolveClassHierarchy(long classId);
int mapAddressToId(long address);
XSnapshotInfo getSnapshotInfo();
}