Main Page | Namespace List | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals | Related Pages

method.h

Go to the documentation of this file.
00001 #ifndef _method_h_included_
00002 #define _method_h_included_
00003 
00004 /*!
00005  * @file method.h
00006  *
00007  * @brief Method management functions for the JVM.
00008  *
00009  *
00010  * @section Control
00011  *
00012  * \$URL: https://svn.apache.org/path/name/method.h $ \$Id: method.h 0 09/28/2005 dlydick $
00013  *
00014  * Copyright 2005 The Apache Software Foundation
00015  * or its licensors, as applicable.
00016  *
00017  * Licensed under the Apache License, Version 2.0 ("the License");
00018  * you may not use this file except in compliance with the License.
00019  * You may obtain a copy of the License at
00020  *
00021  *     http://www.apache.org/licenses/LICENSE-2.0
00022  *
00023  * Unless required by applicable law or agreed to in writing,
00024  * software distributed under the License is distributed on an
00025  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
00026  * either express or implied.
00027  *
00028  * See the License for the specific language governing permissions
00029  * and limitations under the License.
00030  *
00031  * @version \$LastChangedRevision: 0 $
00032  *
00033  * @date \$LastChangedDate: 09/28/2005 $
00034  *
00035  * @author \$LastChangedBy: dlydick $
00036  *         Original code contributed by Daniel Lydick on 09/28/2005.
00037  *
00038  * @section Reference
00039  *
00040  */
00041 
00042 ARCH_COPYRIGHT_APACHE(method, h, "$URL: https://svn.apache.org/path/name/method.h $ $Id: method.h 0 09/28/2005 dlydick $");
00043 
00044 
00045 /*!
00046  * @def METHOD
00047  * @brief Access structures of a class' method table at certain index.
00048  *
00049  * Each class has a table of methods, divided into virtual methods
00050  * @e within the Java code and native methods referenced @e from the
00051  * Java code and implemented in some outside object library.
00052  * They may be distinquished by the @link #ACC_NATIVE ACC_NATIVE@endlink
00053  * status bit in @link #rclass.status rclass.status@endlink
00054  * This macro references one of them using the @p @b clsidx index for
00055  * the class and @p @b mthidx for the method table entry in that class.
00056  *
00057  * @param clsidx  Class table index into the global
00058  * @link #rjvm.class rjvm.class[]@endlink array (via
00059  * @link #pjvm pjvm->class[]@endlink).
00060  * 
00061  * @param mthidx  Index into method table for this class.
00062  * 
00063  * @returns pointer to a method table entry
00064  * 
00065  */
00066 #define METHOD(clsidx, mthidx) \
00067     (CLASS_OBJECT_LINKAGE(clsidx)->pcfs->methods[mthidx])
00068 
00069 
00070 /* Prototypes for functions in 'method.c' */
00071 
00072 extern
00073     jvm_method_index method_find_by_cp_entry(jvm_class_index  clsidx,
00074                                              cp_info_dup    *mthname,
00075                                              cp_info_dup    *mthdesc);
00076 
00077 extern jvm_method_index method_find_by_prchar(jvm_class_index  clsidx,
00078                                               rchar           *mthname,
00079                                               rchar           *mthdesc);
00080 
00081 extern jvm_basetype method_return_type(jvm_class_index      clsidx,
00082                                     jvm_constant_pool_index mthdescidx);
00083 
00084 #endif /* _method_h_included_ */
00085 
00086 /* EOF */
00087 

Generated on Fri Sep 30 18:59:32 2005 by  doxygen 1.4.4