ciClassList.hpp revision 1522
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering/*
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved.
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering *
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering * This code is free software; you can redistribute it and/or modify it
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering * under the terms of the GNU General Public License version 2 only, as
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering * published by the Free Software Foundation.
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering *
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering * This code is distributed in the hope that it will be useful, but WITHOUT
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering * version 2 for more details (a copy is included in the LICENSE file that
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering * accompanied this code).
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering *
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering * You should have received a copy of the GNU General Public License version
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering * 2 along with this work; if not, write to the Free Software Foundation,
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering *
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering * or visit www.oracle.com if you need additional information or have any
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering * questions.
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering *
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering */
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringclass ciEnv;
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringclass ciObjectFactory;
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringclass ciConstantPoolCache;
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringclass ciCPCache;
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringclass ciField;
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringclass ciConstant;
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringclass ciFlags;
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringclass ciExceptionHandler;
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringclass ciCallProfile;
9473414219330b9febc1d0712bbf49ad74cf962fLennart Poetteringclass ciSignature;
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringclass ciBytecodeStream;
9473414219330b9febc1d0712bbf49ad74cf962fLennart Poetteringclass ciSignatureStream;
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringclass ciExceptionHandlerStream;
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringclass ciTypeFlow;
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringclass ciObject;
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringclass ciNullObject;
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringclass ciInstance;
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringclass ciCallSite;
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringclass ciMethodHandle;
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringclass ciMethod;
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringclass ciMethodData;
0d0f0c50d3a1d90f03972a6abb82e6413daaa583Shawn Landdenclass ciReceiverTypeData; // part of ciMethodData
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringclass ciSymbol;
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringclass ciArray;
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringclass ciObjArray;
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringclass ciTypeArray;
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringclass ciType;
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringclass ciReturnAddress;
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringclass ciKlass;
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringclass ciInstanceKlass;
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringclass ciMethodKlass;
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringclass ciSymbolKlass;
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringclass ciArrayKlass;
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringclass ciObjArrayKlass;
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringclass ciTypeArrayKlass;
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringclass ciKlassKlass;
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringclass ciInstanceKlassKlass;
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringclass ciArrayKlassKlass;
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringclass ciObjArrayKlassKlass;
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringclass ciTypeArrayKlassKlass;
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering// Simulate Java Language style package-private access with
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering// friend declarations.
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering// This is a great idea but gcc and other C++ compilers give an
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering// error for being friends with yourself, so this macro does not
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering// compile on some platforms.
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering// Everyone gives access to ciObjectFactory
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering#define CI_PACKAGE_ACCESS \
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringfriend class ciObjectFactory;
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering// These are the packages that have access to ciEnv
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering// Any more access must be given explicitly.
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering#define CI_PACKAGE_ACCESS_TO \
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringfriend class ciObjectFactory; \
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringfriend class ciCallSite; \
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringfriend class ciConstantPoolCache; \
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringfriend class ciField; \
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringfriend class ciConstant; \
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringfriend class ciCPCache; \
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringfriend class ciFlags; \
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringfriend class ciExceptionHandler; \
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringfriend class ciCallProfile; \
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringfriend class ciSignature; \
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringfriend class ciBytecodeStream; \
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringfriend class ciSignatureStream; \
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringfriend class ciExceptionHandlerStream; \
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringfriend class ciObject; \
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringfriend class ciNullObject; \
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringfriend class ciInstance; \
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringfriend class ciMethod; \
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringfriend class ciMethodData; \
0d0f0c50d3a1d90f03972a6abb82e6413daaa583Shawn Landdenfriend class ciMethodHandle; \
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringfriend class ciReceiverTypeData; \
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringfriend class ciSymbol; \
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringfriend class ciArray; \
b7def684941808600c344f0be7a2b9fcdda97e0fLennart Poetteringfriend class ciObjArray; \
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringfriend class ciTypeArray; \
0d0f0c50d3a1d90f03972a6abb82e6413daaa583Shawn Landdenfriend class ciType; \
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringfriend class ciReturnAddress; \
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringfriend class ciKlass; \
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringfriend class ciInstanceKlass; \
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringfriend class ciMethodKlass; \
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringfriend class ciSymbolKlass; \
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringfriend class ciArrayKlass; \
67ab5f761f9b854d8ce85f9ee47b298e497f8bd9Tom Gundersenfriend class ciObjArrayKlass; \
67ab5f761f9b854d8ce85f9ee47b298e497f8bd9Tom Gundersenfriend class ciTypeArrayKlass; \
67ab5f761f9b854d8ce85f9ee47b298e497f8bd9Tom Gundersenfriend class ciKlassKlass; \
67ab5f761f9b854d8ce85f9ee47b298e497f8bd9Tom Gundersenfriend class ciInstanceKlassKlass; \
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringfriend class ciArrayKlassKlass; \
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringfriend class ciObjArrayKlassKlass; \
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poetteringfriend class ciTypeArrayKlassKlass;
6b1dc2bd3cdb3bd932b0692be636ddd2879edb92Lennart Poettering