Пример #1
0
static int
load(ErlNifEnv* env, void** priv, ERL_NIF_TERM load_info)
{
  MmapResource = enif_open_resource_type(env, NULL, "mmap_resource", mmap_destructor, ERL_NIF_RT_CREATE|ERL_NIF_RT_TAKEOVER, NULL);
  return 0;
}
Пример #2
0
int set_ecsv_parser_type(ErlNifEnv *env) {
    ecsv_parser_type = enif_open_resource_type(
            env, NULL, "ecsv_parser", release_ecsv_parser,
            ERL_NIF_RT_CREATE | ERL_NIF_RT_TAKEOVER, NULL);
    return !ecsv_parser_type;
}
Пример #3
0
int i18n_date_load(ErlNifEnv *env, void ** /*priv_data*/, 
    ERL_NIF_TERM /*load_info*/)
{
    ErlNifResourceFlags flags = (ErlNifResourceFlags)(ERL_NIF_RT_CREATE |
        ERL_NIF_RT_TAKEOVER);

    calendar_type = enif_open_resource_type(env, NULL, "calendar_type",
        calendar_dtor, flags, NULL); 
    if (calendar_type == NULL) return 6;

    int i = 0;
    int f;
    for (; i < UCAL_FIELD_COUNT; i++)
        field_to_pos[i] = -1;

    /* SELECT * FROM types ORDER BY duration DESC, max_count DESC; */

    i = 0;
    f = UCAL_ERA; 
    pos_to_field[i] = f;
    field_to_pos[f] = i;
    i++;

    /* Use UCAL_EXTENDED_YEAR instead of UCAL_YEAR */
    f = UCAL_EXTENDED_YEAR;
    pos_to_field[i] = f;
    field_to_pos[f] = i;

    f = UCAL_YEAR;
    field_to_pos[f] = i;
    i++;

    f = UCAL_MONTH;
    pos_to_field[i] = f;
    field_to_pos[f] = i;
    i++;

    f = UCAL_WEEK_OF_MONTH;
    pos_to_field[i] = f;
    field_to_pos[f] = i;
    i++;


    f = UCAL_WEEK_OF_YEAR;
    pos_to_field[i] = f;
    field_to_pos[f] = i;
    i++;

    f = UCAL_DAY_OF_WEEK;
    pos_to_field[i] = f;
    field_to_pos[f] = i;
    i++;

    f = UCAL_DAY_OF_MONTH;
    pos_to_field[i] = f;
    field_to_pos[f] = i;
    i++;

    f = UCAL_DAY_OF_YEAR;
    pos_to_field[i] = f;
    field_to_pos[f] = i;
    i++;

    f = UCAL_AM_PM;
    pos_to_field[i] = f;
    field_to_pos[f] = i;
    i++;

    f = UCAL_HOUR_OF_DAY;
    pos_to_field[i] = f;
    field_to_pos[f] = i;
    i++;

    f = UCAL_HOUR;
    pos_to_field[i] = f;
    field_to_pos[f] = i;
    i++;

    f = UCAL_MINUTE;
    pos_to_field[i] = f;
    field_to_pos[f] = i;
    i++;

    f = UCAL_SECOND;
    pos_to_field[i] = f;
    field_to_pos[f] = i;
    i++;

    f = UCAL_MILLISECONDS_IN_DAY;
    pos_to_field[i] = f;
    field_to_pos[f] = i;
    i++;

    f = UCAL_MILLISECOND;
    pos_to_field[i] = f;
    field_to_pos[f] = i;
    i++;
    
    POS_MAX = i;


//  [UCAL_DAY_OF_WEEK_IN_MONTH] = i++;



    global_date_env = enif_alloc_env();
    available_locales = generate_available(global_date_env, 
        ucal_getAvailable, ucal_countAvailable());

    available_timezones = get_timezone_ids(env);
    available_timezones = reverse_list(env, available_timezones);
    available_timezones = enif_make_copy(global_date_env, available_timezones);



    return 0;
}
Пример #4
0
int load(ErlNifEnv* env, void** priv_data, ERL_NIF_TERM load_info) {
  ErlNifResourceFlags flags = ERL_NIF_RT_CREATE | ERL_NIF_RT_TAKEOVER;
  *priv_data = enif_open_resource_type(env, NULL, "stream_resource", NULL, ERL_NIF_RT_CREATE, NULL);

  return 0;
}
static int
keccakf1600_nif_upgrade(ErlNifEnv *env, void **priv_data, void **old_priv_data, ERL_NIF_TERM load_info)
{
	*priv_data = enif_open_resource_type(env, NULL, "keccakf1600_sponge", NULL, ERL_NIF_RT_TAKEOVER, NULL);
	return 0;
}