Mercurial > hg > Members > nobuyasu > konoha
view konoha.test/#test_glue.h# @ 16:5e36456a291c draft
add konoha.test
author | Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 03 Jun 2012 01:38:13 +0900 |
parents | |
children |
line wrap: on
line source
/**************************************************************************** * Copyright (c) 2012, the Konoha project authors. All rights reserved. * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ***************************************************************************/ #include<stdio.h> #include<pthread.h> #include<unistd.h> #define Int_to(T, a) ((T)a.ivalue) #define Float_to(T, a) ((T)a.fvalue) static KMETHOD Test_print(CTX, ksfp_t *sfp _RIX) { if (Int_to(int, sfp[1]) < 1) { RETURNi_(printf("test: sfp[1] < 1\n")); } else { RETURNi_(printf("test: sfp[1] > 1 \n")); } } // -------------------------------------------------------------------------- #define _Public kMethod_Public #define _Const kMethod_Const #define _Coercion kMethod_Coercion #define _F(F) (intptr_t)(F) #define _KVf(T) "TEST_" #T, TY_Float, M_##T #define TY_Test (cTest->cid) static kbool_t test_initPackage(CTX, kKonohaSpace *ks, int argc, const char**args, kline_t pline) { static KDEFINE_CLASS TestDef = { .structname = "Test"/*structname*/, .cid = CLASS_newid/*cid*/, }; kclass_t *cTest = Konoha_addClassDef(ks->packid, ks->packdom, NULL, &TestDef, pline); int FN_x = FN_("x"); intptr_t MethodData[] = { // ’´Ø’¿ô’¥Ý’¥¤’¥ó’¥¿, ’ÊÖ’¤ê’ÃÍ,this ’¤Î’·¿,’´Ø’¿ô’̾,’°ú’¿ô’¤Î’¿ô,’°ú’¿ô’¤Î’·¿,’°ú’¿ô’¤Î’̾’Á°... // _P;ublicl_Const ’¤Ï Java ’¤Î annotation _Public|_Const, _F(Test_print), TY_Int, TY_Test, MN_("print"), 1, TY_Int, FN_x, // DEND ’¤Ç’¤ª’¤ï’¤ë DEND, }; // konoha ’¤Ø’¤Î’ÅÐ’Ï¿ kKonohaSpace_loadMethodData(ks, MethodData); return true; } static kbool_t test_setupPackage(CTX, kKonohaSpace *ks, kline_t pline) { // ’º£’¤Ï’»È’¤Ã’¤Æ’¤Ê’¤¤’¤¬’¡¢’´ð’ËÜtrue return true; } static kbool_t test_initKonohaSpace(CTX, kKonohaSpace *ks, kline_t pline) { // package ’¤Î’°Í’¸ return true; } static kbool_t test_setupKonohaSpace(CTX, kKonohaSpace *ks, kline_t pline) { // ’º£’¤Ï’»È’¤Ã’¤Æ’¤Ê’¤¤’¤¬,’´ð’ËÜtrue return true; }