erlang各种有用的函数包括一些有用nif封装,还有一些性能测试case。
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

27 行
680 B

  1. #include "nif_utils.h"
  2. #include "epqueue_nif.h"
  3. #include <string.h>
  4. ERL_NIF_TERM make_atom(ErlNifEnv* env, const char* name)
  5. {
  6. ERL_NIF_TERM ret;
  7. if(enif_make_existing_atom(env, name, &ret, ERL_NIF_LATIN1))
  8. return ret;
  9. return enif_make_atom(env, name);
  10. }
  11. ERL_NIF_TERM make_binary(ErlNifEnv* env, const char* buff, size_t length)
  12. {
  13. ERL_NIF_TERM term;
  14. unsigned char *destination_buffer = enif_make_new_binary(env, length, &term);
  15. memcpy(destination_buffer, buff, length);
  16. return term;
  17. }
  18. ERL_NIF_TERM make_error(ErlNifEnv* env, const char* error)
  19. {
  20. return enif_make_tuple2(env, ATOMS.atomError, make_binary(env, error, strlen(error)));
  21. }