dswardstrom at remotelink.com
Fri May 21 08:58:37 PDT 2010
This system uses external post-processing code that processes "event" type data for billing and other purposes and I need to provide equivalent event data.
As part of this effort, I need a counter that is guarantied unique when there is a possibility that multiple calls may access the counter. The proprietary code, this unique counter is provided by using InterlockedIncrement().
However, I decided to look at the code to see exactly what was being done to implement this. I found was that there was no code at all to implement the 3rd optional parameter.
I would like to implement this capability but extend the capability to truly provide a unique counter. To accomplish this, support must be provided by the switch core.
I would like to provide a new routine into switch_core.c:
<Following is the text for switch_core.h>
\brief Conditionally add a global variable to the core
\param varname the name of the variable
\param value the value of the variable
\param val2 the value of the variable to verify against
\ If the global did not exist and val2=="", add global with value, return true
\ If the global exists with the value of val2, replace it, return true
\ If the global exists with a value other than val2, return false
SWITCH_DECLARE(switch_bool_t) switch_core_set_var_conditional(_In_z_ const char *varname, _In_opt_z_ const char *value, _In_opt_z_ const char *val2);
Then the code in mod_spidermonkey.c can be modified to use this new switch core capability.
Note: I have implemented this in my local version and have tested it.
More information about the FreeSWITCH-dev