*/
SWITCH_DECLARE(char *) switch_core_session_sprintf(_In_ switch_core_session_t *session, _In_z_ _Printf_format_string_ const char *fmt, ...);
+/*!
+ \brief printf-style style printing routine. The data is output to a string allocated from the session
+ \param session a session to use for allocation
+ \param fmt The format of the string
+ \param ap The arguments to use while printing the data
+ \return The new string
+*/
+SWITCH_DECLARE(char *) switch_core_session_vsprintf(switch_core_session_t *session, const char *fmt, va_list ap);
+
/*!
\brief printf-style style printing routine. The data is output to a string allocated from the pool
\param pool a pool to use for allocation
*/
SWITCH_DECLARE(char *) switch_core_sprintf(_In_ switch_memory_pool_t *pool, _In_z_ _Printf_format_string_ const char *fmt, ...);
+/*!
+ \brief printf-style style printing routine. The data is output to a string allocated from the pool
+ \param pool a pool to use for allocation
+ \param fmt The format of the string
+ \param ap The arguments to use while printing the data
+ \return The new string
+*/
+SWITCH_DECLARE(char *) switch_core_vsprintf(switch_memory_pool_t *pool, _In_z_ _Printf_format_string_ const char *fmt, va_list ap);
+
/*!
\brief Retrieve the memory pool from a session
\param session the session to retrieve the pool from
va_list ap;
char *result = NULL;
-#ifdef LOCK_MORE
-#ifdef USE_MEM_LOCK
- switch_mutex_lock(memory_manager.mem_lock);
-#endif
-#endif
-
- switch_assert(session != NULL);
- switch_assert(session->pool != NULL);
va_start(ap, fmt);
-
- result = apr_pvsprintf(session->pool, fmt, ap);
- switch_assert(result != NULL);
+ result = switch_core_vsprintf(session->pool, fmt, ap);
va_end(ap);
-#ifdef LOCK_MORE
-#ifdef USE_MEM_LOCK
- switch_mutex_unlock(memory_manager.mem_lock);
-#endif
-#endif
-
return result;
}
-SWITCH_DECLARE(char *) switch_core_sprintf(switch_memory_pool_t *pool, const char *fmt, ...)
+SWITCH_DECLARE(char *) switch_core_session_vsprintf(switch_core_session_t *session, const char *fmt, va_list ap)
+{
+ return switch_core_vsprintf(session->pool, fmt, ap);
+}
+
+SWITCH_DECLARE(char *) switch_core_vsprintf(switch_memory_pool_t *pool, const char *fmt, va_list ap)
{
- va_list ap;
char *result = NULL;
switch_assert(pool != NULL);
#endif
#endif
- va_start(ap, fmt);
-
result = apr_pvsprintf(pool, fmt, ap);
switch_assert(result != NULL);
- va_end(ap);
#ifdef LOCK_MORE
#ifdef USE_MEM_LOCK
return result;
}
+SWITCH_DECLARE(char *) switch_core_sprintf(switch_memory_pool_t *pool, const char *fmt, ...)
+{
+ va_list ap;
+ char *result;
+ va_start(ap, fmt);
+ result = switch_core_vsprintf(pool, fmt, ap);
+ va_end(ap);
+
+ return result;
+}
+
SWITCH_DECLARE(char *) switch_core_perform_session_strdup(switch_core_session_t *session, const char *todup, const char *file, const char *func, int line)
{
char *duped = NULL;