#include <stdio.h>
#include <WScom.h>
#include <WSCbase.h>
#include <WSCprocedure.h>
#include <ruby.h>

extern VALUE mMpfc;

void _procedure_handler(char* fname,WSCbase* ptr){
  VALUE  klass = rb_const_get(mMpfc, rb_intern(ptr->getClassName()));
  VALUE  obj = Data_Wrap_Struct(klass, 0, 0, ptr->cast(ptr->getClassName()));
  rb_funcall(NULL,rb_intern(fname),1,obj);
//printf("_procedure_handler...\n");
}

class _ruby_proc_init{
  public: _ruby_proc_init(){
    WSGFsetProcedureHandler((void*)_procedure_handler);
//printf("_ruby_proc_init...\n");
  };
};
_ruby_proc_init _exec_ruby_init;
