Ignore:
Timestamp:
Mar 15, 2011, 7:17:48 PM (12 years ago)
Author:
Oleksandr Motsak <motsak@…>
Branches:
(u'spielwiese', '828514cf6e480e4bafc26df99217bf2a1ed1ef45')
Children:
f247337dd844f01e85a8379ff9c1e26fe7eea863
Parents:
92e0ebb492f002a11e78b302b3758d32aedea17e
Message:
ADD: dynamic module stuff...

From: Oleksandr Motsak <motsak@mathematik.uni-kl.de>

git-svn-id: file:///usr/local/Singular/svn/trunk@13980 2c84dea3-7e68-4137-9b89-c4e89433aadc
File:
1 edited

Legend:

Unmodified
Added
Removed
  • dyn_modules/bigintm/mod_main.cc

    r92e0eb r5cdbfe  
    2424
    2525/// listing all blackbox types (debug stuff)
    26 BOOLEAN printBlackboxTypes(leftv __res, leftv __v)
     26BOOLEAN printBlackboxTypes0(leftv __res, leftv __v)
    2727{
    2828  NoReturn(__res);
     
    3232
    3333/// init the bigintm (a sample blackbox) type
    34 BOOLEAN bigintm_setup(leftv __res, leftv __v)
     34BOOLEAN bigintm_setup0(leftv __res, leftv __v)
    3535{
    3636  NoReturn(__res);
     
    3838}
    3939
     40static long int load_counter = -1;
     41
     42/// init the bigintm (a sample blackbox) type
     43BOOLEAN print_load_counter(leftv __res, leftv __v)
     44{
     45  Print("print_load_counter: load counter: %ld", load_counter);
     46  Print(", printBlackboxTypes: %p", (void*)(printBlackboxTypes0));
     47  Print(", bigintm_setup: %p", (void*)(bigintm_setup0));
     48  PrintLn();
     49
     50  NoReturn(__res);
     51  return FALSE;
     52}
     53
     54
    4055extern "C"
    4156{
    4257  int mod_init(SModulFunctions* psModulFunctions)
    4358  {
    44     psModulFunctions->iiAddCproc(currPack->libname,(char*)"printBlackboxTypes",FALSE, printBlackboxTypes);
    45     psModulFunctions->iiAddCproc(currPack->libname,(char*)"bigintm_setup",FALSE, bigintm_setup);
    46     return 0;
     59    load_counter++;
     60   
     61    if( !load_counter)
     62    {
     63     
     64      psModulFunctions->iiAddCproc(currPack->libname,(char*)"printBlackboxTypes",FALSE, printBlackboxTypes0);
     65      psModulFunctions->iiAddCproc(currPack->libname,(char*)"bigintm_setup",FALSE, bigintm_setup0);
     66      psModulFunctions->iiAddCproc(currPack->libname,(char*)"bigintm_print_load_counter",FALSE, print_load_counter);
     67
     68      // Q: should we call 'bigintm_setup' here??!?!?
     69      return 0;
     70    }
     71    else
     72    {
     73      PrintS("ERROR: Sorry this dynamic module was already loaded...!!!");
     74      PrintLn();
     75      // Q: what about loading this module multipple times...?
     76      return 0; // -1? - No difference!!!
     77
     78    }
     79     
    4780  }
    4881}
Note: See TracChangeset for help on using the changeset viewer.