1 /*******************************************************************************
2 * Copyright (c) 2011, 2013 Ericsson, Ecole Polytechnique de Montreal and others
4 * All rights reserved. This program and the accompanying materials are made
5 * available under the terms of the Eclipse Public License v1.0 which
6 * accompanies this distribution, and is available at
7 * http://www.eclipse.org/legal/epl-v10.html
9 * Contributors: Matthew Khouzam - Initial API and implementation
10 * Contributors: Simon Marchi - Initial API and implementation
11 *******************************************************************************/
13 package org
.eclipse
.linuxtools
.ctf
.core
.event
.types
;
15 import org
.eclipse
.jdt
.annotation
.NonNull
;
16 import org
.eclipse
.linuxtools
.ctf
.core
.event
.io
.BitBuffer
;
17 import org
.eclipse
.linuxtools
.ctf
.core
.event
.scope
.IDefinitionScope
;
18 import org
.eclipse
.linuxtools
.ctf
.core
.event
.scope
.LexicalScope
;
19 import org
.eclipse
.linuxtools
.ctf
.core
.trace
.CTFReaderException
;
22 * A CTF data type declaration.
26 * <b>int</b> is the declaration.<br>
27 * <b>i</b> is the definition.<br>
28 * <b>0</b> is the value assigned to the definition, not the declaration.<br>
31 * @author Matthew Khouzam
32 * @author Simon Marchi
34 public interface IDeclaration
{
37 * Create a definition from this declaration
39 * @param definitionScope
40 * the definition scope, the parent where the definition will be
43 * the name of the definition
45 * a bitbuffer to read from
46 * @return a reference to the definition
47 * @throws CTFReaderException
51 Definition
createDefinition(IDefinitionScope definitionScope
, @NonNull String fieldName
, @NonNull BitBuffer input
) throws CTFReaderException
;
54 * Get the path of a definition
56 * @param definitionScope
57 * the scope of the definition
59 * the name of the definition
60 * @return the path of the definition
63 public @NonNull LexicalScope
getPath(IDefinitionScope definitionScope
, @NonNull String fieldName
);
66 * The minimum alignment. if the field is 32 bits, the definition will pad
67 * all the data up to (position%32==0)
69 * @return the alignment in bits
74 * The MAXIMUM size of this declaration
76 * @return the maximum size