Ejemplo n.º 1
0
void RhoRubyStart()
{
    const char* szRoot = rho_native_rhopath();
    //VALUE moduleRhom;
#ifdef HAVE_LOCALE_H
    setlocale(LC_CTYPE, "");
#endif
    {
#ifdef ENABLE_RUBY_VM_STAT
    g_collect_stat = 1; 
#endif    
    
    RUBY_INIT_STACK;
    ruby_init();
#if defined(WIN32)
    rb_w32_sysinit(NULL,NULL);
#endif

#if defined(DEBUG)
    //enable_gc_profile();
#endif
    //rb_funcall(rb_mGC, rb_intern("stress="), 1, Qtrue);

    ruby_init_loadpath(szRoot);
#ifdef RHODES_EMULATOR
    {
        VALUE load_path = GET_VM()->load_path;
        char* app_path = malloc(strlen(szRoot)+100);

        rb_ary_clear(load_path);

        strcpy(app_path, szRoot);
        strcat(app_path, "app");

        rb_ary_push(load_path, rb_str_new2(app_path) );

        strcpy(app_path, rho_rhodesapp_getrhodespath());
        strcat(app_path, "\\lib\\framework");
        rb_ary_push(load_path, rb_str_new2(app_path) );
    }

#endif

    Init_strscan();
    Init_sqlite3_api();
    Init_GeoLocation();
    Init_SyncEngine();
    Init_AsyncHttp();
    Init_System();
    Init_Phonebook();
    Init_WebView();
    Init_RhoConf();
    Init_Alert();
    Init_SignatureTool();
    Init_RhoBluetooth();	
	Init_RhodesNativeViewManager();	
    Init_Camera();
    Init_stringio();
    Init_DateTimePicker();
    Init_NativeBar();
    Init_RhoSupport();
    Init_MapView();
    Init_RingtoneManager();
    Init_socket();
    Init_NavBar();
    Init_RhoEvent();
    Init_Calendar();
    Init_Extensions();

#ifdef ENABLE_RUBY_VM_STAT
    struct timeval  start;
    struct timeval  end;

    gettimeofday (&start, NULL);
#endif

#ifdef RHODES_EMULATOR
    rb_const_set(rb_cObject, rb_intern("RHODES_EMULATOR"), Qtrue);
    require_compiled(rb_str_new2("rhoframework"), &framework );
    framework = rb_const_get(rb_cObject,rb_intern("RHO_FRAMEWORK"));
#else
    require_compiled(rb_str_new2("rhoframework"), &framework );
#endif //RHODES_EMULATOR

    if ( framework == 0 || framework == Qnil )
    {
        RAWLOG_FATAL("RHO framework creating failed. Application will exit.");
    }

#ifdef ENABLE_RUBY_VM_STAT
    gettimeofday (&end, NULL);

    if ( end.tv_sec > 0 )
        g_require_compiled_msec += (end.tv_sec  - start.tv_sec) * 1000;
    else
        g_require_compiled_msec += (end.tv_usec - start.tv_usec)/1000; 

#endif

    rb_gc_register_mark_object(framework);

    CONST_ID(framework_mid, "serve");
    CONST_ID(framework_mid2, "serve_index");
    CONST_ID(initApp_mid, "init_app");
    CONST_ID(onConfigConflicts_mid, "on_config_conflicts");
    CONST_ID(activateApp_mid, "activate_app");
    CONST_ID(deactivateApp_mid, "deactivate_app");
    CONST_ID(uiCreated_mid, "ui_created");
    CONST_ID(uiDestroyed_mid, "ui_destroyed");
    CONST_ID(loadServerSources_mid,"load_server_sources");
    CONST_ID(loadAllSyncSources_mid,"load_all_sync_sources");
    CONST_ID(resetDBOnSyncUserChanged_mid, "reset_db_on_sync_user_changed");

    //moduleRhom = rb_const_get(rb_cObject, rb_intern("Rhom"));

#ifdef ENABLE_RUBY_VM_STAT
    g_collect_stat = 0; 
#endif

    }
}
Ejemplo n.º 2
0
void RhoRubyStart()
{
    //VALUE moduleRhom;
#ifdef HAVE_LOCALE_H
    setlocale(LC_CTYPE, "");
#endif
    {
#ifdef ENABLE_RUBY_VM_STAT
        g_collect_stat = 1;
#endif

        RUBY_INIT_STACK;
        ruby_init();
#if defined(WIN32)
        rb_w32_sysinit(NULL,NULL);
#endif

#if defined(DEBUG)
        //enable_gc_profile();
#endif
        //rb_funcall(rb_mGC, rb_intern("stress="), 1, Qtrue);

        ruby_init_loadpath(rho_native_rhopath());
        Init_strscan();
        Init_sqlite3_api();
        Init_GeoLocation();
        Init_SyncEngine();
        Init_AsyncHttp();
        Init_System();
        Init_Phonebook();
        Init_WebView();
        Init_RhoConf();
        Init_Alert();
        Init_SignatureTool();
        Init_Camera();
        Init_stringio();
        Init_DateTimePicker();
        Init_NativeBar();
        Init_RhoSupport();
        Init_MapView();
        Init_RingtoneManager();
        Init_socket();
        Init_NavBar();
        Init_Extensions();

#ifdef ENABLE_RUBY_VM_STAT
        struct timeval  start;
        struct timeval  end;

        gettimeofday (&start, NULL);
#endif

        require_compiled(rb_str_new2("rhoframework"), &framework );

#ifdef ENABLE_RUBY_VM_STAT
        gettimeofday (&end, NULL);

        if ( end.tv_sec > 0 )
            g_require_compiled_msec += (end.tv_sec  - start.tv_sec) * 1000;
        else
            g_require_compiled_msec += (end.tv_usec - start.tv_usec)/1000;

#endif

        rb_gc_register_mark_object(framework);

        CONST_ID(framework_mid, "serve");
        CONST_ID(framework_mid2, "serve_index");
        CONST_ID(initApp_mid, "init_app");
        CONST_ID(activateApp_mid, "activate_app");
        CONST_ID(deactivateApp_mid, "deactivate_app");
        CONST_ID(loadServerSources_mid,"load_server_sources");

        //moduleRhom = rb_const_get(rb_cObject, rb_intern("Rhom"));

#ifdef ENABLE_RUBY_VM_STAT
        g_collect_stat = 0;
#endif

    }
}