001/**************************************************************************** 002 * Copyright/Copyleft: 003 * 004 * For this source the LGPL Lesser General Public License, 005 * published by the Free Software Foundation is valid. 006 * It means: 007 * 1) You can use this source without any restriction for any desired purpose. 008 * 2) You can redistribute copies of this source to everybody. 009 * 3) Every user of this source, also the user of redistribute copies 010 * with or without payment, must accept this license for further using. 011 * 4) But the LPGL is not appropriate for a whole software product, 012 * if this source is only a part of them. It means, the user 013 * must publish this part of source, 014 * but don't need to publish the whole source of the own product. 015 * 5) You can study and modify (improve) this source 016 * for own using or for redistribution, but you have to license the 017 * modified sources likewise under this LGPL Lesser General Public License. 018 * You mustn't delete this Copyright/Copyleft inscription in this source file. 019 * 020 * @author Hartmut Schorrig: hartmut.schorrig@vishia.de, www.vishia.org 021 * @version 0.93 2011-01-05 (year-month-day) 022 *******************************************************************************/ 023package org.vishia.java2C.test; 024 025public interface Ifc2 026{ 027 /**Example for an interface method with the same name but other parameter types, 028 * which is implemented together with {@link Ifc#processIfcMethod(int)} in {@link ImplIfc}. 029 * In Java that are two different methods of course, and also in C. 030 * In both interfaces, this methods are independent, this method is declared with an method type 031 * in its headerFile, adequate to the other method in Ifc: 032 * <pre class="CCode"> 033 * typedef float MT_processIfcMethod_Ifc2_Test(ObjectJc* ithis, float input, ThCxt* _thCxt); 034 * </pre> 035 */ 036 float processIfcMethod(float input); 037 038 /**Another method. */ 039 float testIfc2(float input); 040 041 /**Example for an interface method, which has the same name and same paremeters like the method 042 * {@link Ifc#anotherIfcmethod(float)}. Therefore only one implementation is necessary. 043 * In this interface the method type 044 * <pre class="CCode"> 045 * METHOD_C float anotherIfcmethod_Ifc2_Test(ObjectJc* ithis, float input, ThCxt* _thCxt); 046 * </pre> 047 * is declared for it. In opposite the method type of the same method {@link Ifc#anotherIfcmethod(float)} is 048 * <pre class="CCode"> 049 * METHOD_C float anotherIfcmethod_f_Ifc_Test(ObjectJc* ithis, float input, ThCxt* _thCxt); 050 * </pre> 051 * Both declarations are independent, because the interface definitions are so. But the implementation 052 * for both methods are the same, and the implementation are compatible to both declarations of function type. 053 * See {@link ImplIfc#anotherIfcmethod(float)}. 054 */ 055 float anotherIfcmethod(float input); 056 057 058}