Is there an equivalent of driver_output_term in the other direction, i.e. sending an Erlang term to the driver without converting it to an iolist first? If not, I presumably should convert my term using term_to_binary and parse it on the C side with ei; any good examples?
Sending terms instead of iolists to an Erlang driver
444 Views Asked by Alexey Romanov At
1
There are 1 best solutions below
Related Questions in ERLANG
- Using gleam, cannot import 'gleam/otp/process'
- Zig Concurrency Vs Erlang Concurrency, is Zig less efficient than Erlang?
- Creaating a new Key Value dict from previous dict
- How to execute an exit function before closing rebar3 shell?
- rebar3 does not compile anything in `src` directory
- Ejabberd Migration from 23 to 24
- How to use compiled erlang modules in an elixir project?
- ejabberd_sql:handle_reconnect/2:491 odbc connection failed ejabberd
- Lisp Flavored Erlang: Can't find include lib include/ltest-macros.lfe
- Signing key for RabbitMQ
- Rabbitmq fails to start and getting Erlang eaacces error
- Erlang: binary_to_term explanation
- How to extend emqx clientInfo to get more fields during HTTP Authorization
- Transforming `erl_parse:abstract_form()` to `erl_syntax:syntaxTree()`
- Who is the sender of Erlang's trace messages and what can I assume based on it?
Related Questions in ERLANG-DRIVER
- Enif_send function from created thread issue
- Message passing between processes in erlang?
- What is the best way of doing computationally intensive tasks in Erlang w/o scalability sacrifices?
- Erlang driver erl_errno issue
- 'Bad Connection Handle' in aerospike ejabberd integration
- Pre-R16B driver_async_port_key alternative
- C variadic function behavior differs from expected equivalent code in an Erlang driver
- Are there macros which can be used to test Erlang version in driver C code?
- Erlang - Parse data from the enclosed curly braces
- Something about erlang log framework
- How to run cassandra erlang client through command line?
- How to continue last session, after network disconnect?
- Could not install mysql driver Erlang : src/mysql_auth.erl:178: crypto:sha/1 is deprecated and will be removed in in a future
- Short Circuit Erlang Port Mapper Daemon
- How to compile an Erlang driver?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
According to the docs, you can only send stuff that's in
iodata()format.If all you want send to the driver is integers and strings, it might be more efficient (and a lot easier) to use your own term-to-iodata encoding, as in this tutorial from the Erlang documentation. They use a function to convert their calls to a mapping that can be sent to the driver directly and therefore doesn't need to be encoded using
term_to_binary().This mapping is feasible if
XandYare assumed to be small integers. On the C side, the first byte of the input buffer is switched upon to call the appropriate function using the second byte as the argument: