X-Git-Url: https://git.llucax.com/z.facultad/75.68/celdas.git/blobdiff_plain/b3f18bf057bda6df83d7ce7abec0372fd0f101b7..07a7e06dfcbacb8647f8bffdb117fc7e5f416ba8:/trunk/src/plugin.cpp diff --git a/trunk/src/plugin.cpp b/trunk/src/plugin.cpp index c91f570..a1098e6 100644 --- a/trunk/src/plugin.cpp +++ b/trunk/src/plugin.cpp @@ -4,15 +4,12 @@ /////////////////////////// CTeoria ///////////////////////// -double NoOp(CEntorno&) { return 0.0; } // FIXME (hack horrible porque no puedo usar ptr a fun) - // pointer{Teoria} TeoriaNew(string, string, int, int) int SAbrTeoriaNew(brEval args[], brEval* result, void* data) { result->set(new CTeoria( BRSTRING(args), - NoOp, // FIXME (no hay puntero a funcion, poner BRINT(args+1)) - //BRSTRING(args+1), + BRSTRING(args+1), BRINT(args+2), BRINT(args+3))); return EC_OK; @@ -85,29 +82,43 @@ int SAbrSistemaAutonomoSetValue(brEval args[], brEval* result, void* data) return EC_OK; } +// void SistemaAutonomoSetDatoFinal(pointer{SistemaAutonomo}, string, float) +int SAbrSistemaAutonomoSetDatoFinal(brEval args[], brEval* result, void* data) +{ + CSistemaAutonomo* sa = (CSistemaAutonomo*) BRPOINTER(args); + sa->m_datos_finales.set_val(BRSTRING(args+1), BRDOUBLE(args+2)); + return EC_OK; +} + // void SistemaAutonomoPlan(pointer{SistemaAutonomo}) int SAbrSistemaAutonomoPlan(brEval args[], brEval* result, void* data) { - // TODO CSistemaAutonomo* sa = (CSistemaAutonomo*) BRPOINTER(args); - // TODO sa->plan(); + CSistemaAutonomo* sa = (CSistemaAutonomo*) BRPOINTER(args); + sa->plan(); return EC_OK; } -// pointer SistemaAutonomoGetNextTheory(pointer{SistemaAutonomo}) +// bool SistemaAutonomoHasNextTheory(pointer{SistemaAutonomo}) +int SAbrSistemaAutonomoHasNextTheory(brEval args[], brEval* result, void* data) +{ + CSistemaAutonomo* sa = (CSistemaAutonomo*) BRPOINTER(args); + result->set(sa->has_next_theory()); + return EC_OK; +} + +// pointer{Teoria} SistemaAutonomoGetNextTheory(pointer{SistemaAutonomo}) int SAbrSistemaAutonomoGetNextTheory(brEval args[], brEval* result, void* data) { - // TODO CSistemaAutonomo* sa = (CSistemaAutonomo*) BRPOINTER(args); - // TODO result->set(sa->get_next_theory()); - result->set(new CTeoria("test", NoOp, 1, 1)); // FIXME + CSistemaAutonomo* sa = (CSistemaAutonomo*) BRPOINTER(args); + result->set(sa->get_next_theory()); return EC_OK; } // bool SistemaAutonomoValidateTheory(pointer{SistemaAutonomo}, pointer{Teoria}) int SAbrSistemaAutonomoValidateTheory(brEval args[], brEval* result, void* data) { - // TODO CSistemaAutonomo* sa = (CSistemaAutonomo*) BRPOINTER(args); - // TODO result->set(sa->validate_theory((CTeoria*) BRPOINTER(args+1))); - result->set(true); // FIXME + CSistemaAutonomo* sa = (CSistemaAutonomo*) BRPOINTER(args); + result->set(sa->validate_theory((CTeoria*) BRPOINTER(args+1))); return EC_OK; } @@ -139,8 +150,12 @@ DLLEXPORT void SAbrFunctions(void *data) AT_NULL, AT_POINTER, AT_POINTER, 0); brNewBreveCall(data, "SistemaAutonomoSetValue", SAbrSistemaAutonomoSetValue, AT_NULL, AT_POINTER, AT_STRING, AT_DOUBLE, 0); + brNewBreveCall(data, "SistemaAutonomoSetDatoFinal", SAbrSistemaAutonomoSetDatoFinal, + AT_NULL, AT_POINTER, AT_STRING, AT_DOUBLE, 0); brNewBreveCall(data, "SistemaAutonomoPlan", SAbrSistemaAutonomoPlan, AT_NULL, AT_POINTER, 0); + brNewBreveCall(data, "SistemaAutonomoHasNextTheory", SAbrSistemaAutonomoHasNextTheory, + AT_INT, AT_POINTER, 0); brNewBreveCall(data, "SistemaAutonomoGetNextTheory", SAbrSistemaAutonomoGetNextTheory, AT_POINTER, AT_POINTER, 0); brNewBreveCall(data, "SistemaAutonomoValidateTheory", SAbrSistemaAutonomoValidateTheory,