Collaboration diagram for Buffer Routines:
Functions | |
| switch_status_t | switch_buffer_create (_In_ switch_memory_pool_t *pool, _Out_ switch_buffer_t **buffer, _In_ switch_size_t max_len) |
| Allocate a new switch_buffer. | |
| switch_status_t | switch_buffer_create_dynamic (_Out_ switch_buffer_t **buffer, _In_ switch_size_t blocksize, _In_ switch_size_t start_len, _In_ switch_size_t max_len) |
| Allocate a new dynamic switch_buffer. | |
| void | switch_buffer_add_mutex (_In_ switch_buffer_t *buffer, _In_ switch_mutex_t *mutex) |
| void | switch_buffer_lock (_In_ switch_buffer_t *buffer) |
| switch_status_t | switch_buffer_trylock (_In_ switch_buffer_t *buffer) |
| void | switch_buffer_unlock (_In_ switch_buffer_t *buffer) |
| switch_size_t | switch_buffer_len (_In_ switch_buffer_t *buffer) |
| Get the length of a switch_buffer_t. | |
| switch_size_t | switch_buffer_freespace (_In_ switch_buffer_t *buffer) |
| Get the freespace of a switch_buffer_t. | |
| switch_size_t | switch_buffer_inuse (_In_ switch_buffer_t *buffer) |
| Get the in use amount of a switch_buffer_t. | |
| switch_size_t | switch_buffer_read (_In_ switch_buffer_t *buffer, _In_ void *data, _In_ switch_size_t datalen) |
| Read data from a switch_buffer_t up to the ammount of datalen if it is available. Remove read data from buffer. | |
| switch_size_t | switch_buffer_peek (_In_ switch_buffer_t *buffer, _In_ void *data, _In_ switch_size_t datalen) |
| Read data from a switch_buffer_t up to the ammount of datalen if it is available, without removing read data from buffer. | |
| switch_size_t | switch_buffer_peek_zerocopy (_In_ switch_buffer_t *buffer, _Out_ const void **ptr) |
| switch_size_t | switch_buffer_read_loop (_In_ switch_buffer_t *buffer, _In_ void *data, _In_ switch_size_t datalen) |
| Read data endlessly from a switch_buffer_t. | |
| void | switch_buffer_set_loops (_In_ switch_buffer_t *buffer, _In_ int32_t loops) |
| Assign a number of loops to read. | |
| switch_size_t | switch_buffer_write (_In_ switch_buffer_t *buffer, _In_bytecount_(datalen) const void *data, _In_ switch_size_t datalen) |
| Write data into a switch_buffer_t up to the length of datalen. | |
| switch_size_t | switch_buffer_toss (_In_ switch_buffer_t *buffer, _In_ switch_size_t datalen) |
| Remove data from the buffer. | |
| void | switch_buffer_zero (_In_ switch_buffer_t *buffer) |
| Remove all data from the buffer. | |
| switch_size_t | switch_buffer_slide_write (switch_buffer_t *buffer, const void *data, switch_size_t datalen) |
| void | switch_buffer_destroy (switch_buffer_t **buffer) |
| Destroy the buffer. | |
| switch_size_t | switch_buffer_zwrite (_In_ switch_buffer_t *buffer, _In_bytecount_(datalen) const void *data, _In_ switch_size_t datalen) |
| void switch_buffer_add_mutex | ( | _In_ switch_buffer_t * | buffer, | |
| _In_ switch_mutex_t * | mutex | |||
| ) |
Referenced by switch_ivr_eavesdrop_session().
| switch_status_t switch_buffer_create | ( | _In_ switch_memory_pool_t * | pool, | |
| _Out_ switch_buffer_t ** | buffer, | |||
| _In_ switch_size_t | max_len | |||
| ) |
Allocate a new switch_buffer.
| pool | Pool to allocate the buffer from | |
| buffer | returned pointer to the new buffer | |
| max_len | length required by the buffer |
| switch_status_t switch_buffer_create_dynamic | ( | _Out_ switch_buffer_t ** | buffer, | |
| _In_ switch_size_t | blocksize, | |||
| _In_ switch_size_t | start_len, | |||
| _In_ switch_size_t | max_len | |||
| ) |
Allocate a new dynamic switch_buffer.
| buffer | returned pointer to the new buffer | |
| blocksize | length to realloc by as data is added | |
| start_len | ammount of memory to reserve initially | |
| max_len | length the buffer is allowed to grow to |
Referenced by inband_dtmf_generate_callback(), setup_ringback(), switch_core_file_read(), switch_core_media_bug_add(), switch_core_perform_file_open(), switch_core_session_write_frame(), switch_core_speech_read_tts(), switch_ivr_eavesdrop_session(), switch_ivr_gentones(), switch_ivr_play_file(), and switch_ivr_wait_for_answer().
| void switch_buffer_destroy | ( | switch_buffer_t ** | buffer | ) |
Destroy the buffer.
| buffer | buffer to destroy |
Definition at line 329 of file switch_buffer.c.
References SWITCH_BUFFER_FLAG_DYNAMIC, switch_safe_free, and switch_test_flag.
Referenced by inband_dtmf_generate_callback(), setup_ringback(), switch_core_file_close(), switch_core_media_bug_destroy(), switch_core_session_perform_destroy(), switch_core_session_reset(), switch_core_speech_close(), switch_ivr_eavesdrop_session(), switch_ivr_gentones(), switch_ivr_play_file(), and switch_ivr_wait_for_answer().
00330 { 00331 if (buffer && *buffer) { 00332 if ((switch_test_flag((*buffer), SWITCH_BUFFER_FLAG_DYNAMIC))) { 00333 switch_safe_free((*buffer)->data); 00334 free(*buffer); 00335 } 00336 *buffer = NULL; 00337 } 00338 }
| switch_size_t switch_buffer_freespace | ( | _In_ switch_buffer_t * | buffer | ) |
Get the freespace of a switch_buffer_t.
| buffer | any buffer of type switch_buffer_t |
| switch_size_t switch_buffer_inuse | ( | _In_ switch_buffer_t * | buffer | ) |
Get the in use amount of a switch_buffer_t.
| buffer | any buffer of type switch_buffer_t |
Referenced by eavesdrop_callback(), generate_on_dtmf(), inband_dtmf_generate_callback(), switch_core_file_close(), switch_core_file_read(), switch_core_file_write(), switch_core_media_bug_inuse(), switch_core_media_bug_read(), switch_core_session_write_frame(), switch_core_speech_read_tts(), switch_ivr_eavesdrop_session(), and switch_ivr_play_file().
| switch_size_t switch_buffer_len | ( | _In_ switch_buffer_t * | buffer | ) |
Get the length of a switch_buffer_t.
| buffer | any buffer of type switch_buffer_t |
| void switch_buffer_lock | ( | _In_ switch_buffer_t * | buffer | ) |
Referenced by eavesdrop_callback(), and switch_ivr_eavesdrop_session().
| switch_size_t switch_buffer_peek | ( | _In_ switch_buffer_t * | buffer, | |
| _In_ void * | data, | |||
| _In_ switch_size_t | datalen | |||
| ) |
Read data from a switch_buffer_t up to the ammount of datalen if it is available, without removing read data from buffer.
| buffer | any buffer of type switch_buffer_t | |
| data | pointer to the read data to be returned | |
| datalen | amount of data to be returned |
| switch_size_t switch_buffer_peek_zerocopy | ( | _In_ switch_buffer_t * | buffer, | |
| _Out_ const void ** | ptr | |||
| ) |
| switch_size_t switch_buffer_read | ( | _In_ switch_buffer_t * | buffer, | |
| _In_ void * | data, | |||
| _In_ switch_size_t | datalen | |||
| ) |
Read data from a switch_buffer_t up to the ammount of datalen if it is available. Remove read data from buffer.
| buffer | any buffer of type switch_buffer_t | |
| data | pointer to the read data to be returned | |
| datalen | amount of data to be returned |
Referenced by eavesdrop_callback(), inband_dtmf_generate_callback(), switch_buffer_read_loop(), switch_core_file_close(), switch_core_file_read(), switch_core_file_write(), switch_core_media_bug_read(), switch_core_session_write_frame(), switch_core_speech_read_tts(), switch_ivr_eavesdrop_session(), and switch_ivr_play_file().
| switch_size_t switch_buffer_read_loop | ( | _In_ switch_buffer_t * | buffer, | |
| _In_ void * | data, | |||
| _In_ switch_size_t | datalen | |||
| ) |
Read data endlessly from a switch_buffer_t.
| buffer | any buffer of type switch_buffer_t | |
| data | pointer to the read data to be returned | |
| datalen | amount of data to be returned |
Referenced by switch_ivr_gentones(), and switch_ivr_wait_for_answer().
| void switch_buffer_set_loops | ( | _In_ switch_buffer_t * | buffer, | |
| _In_ int32_t | loops | |||
| ) |
Assign a number of loops to read.
| buffer | any buffer of type switch_buffer_t | |
| loops | the number of loops (-1 for infinite) |
Referenced by setup_ringback(), switch_ivr_gentones(), and switch_ivr_wait_for_answer().
| switch_size_t switch_buffer_slide_write | ( | switch_buffer_t * | buffer, | |
| const void * | data, | |||
| switch_size_t | datalen | |||
| ) |
Definition at line 317 of file switch_buffer.c.
References switch_buffer_toss(), and switch_buffer_write().
00318 { 00319 switch_size_t w; 00320 00321 if (!(w = switch_buffer_write(buffer, data, datalen))) { 00322 switch_buffer_toss(buffer, datalen); 00323 return switch_buffer_write(buffer, data, datalen); 00324 } 00325 00326 return w; 00327 }
| switch_size_t switch_buffer_toss | ( | _In_ switch_buffer_t * | buffer, | |
| _In_ switch_size_t | datalen | |||
| ) |
Remove data from the buffer.
| buffer | any buffer of type switch_buffer_t | |
| datalen | amount of data to be removed |
Referenced by switch_buffer_slide_write().
| switch_status_t switch_buffer_trylock | ( | _In_ switch_buffer_t * | buffer | ) |
| void switch_buffer_unlock | ( | _In_ switch_buffer_t * | buffer | ) |
Referenced by eavesdrop_callback(), and switch_ivr_eavesdrop_session().
| switch_size_t switch_buffer_write | ( | _In_ switch_buffer_t * | buffer, | |
| _In_bytecount_(datalen) const void * | data, | |||
| _In_ switch_size_t | datalen | |||
| ) |
Write data into a switch_buffer_t up to the length of datalen.
| buffer | any buffer of type switch_buffer_t | |
| data | pointer to the data to be written | |
| datalen | amount of data to be written |
Referenced by early_thread_run(), switch_buffer_slide_write(), switch_buffer_zwrite(), switch_core_file_read(), switch_core_file_write(), switch_core_session_write_frame(), switch_core_speech_read_tts(), switch_ivr_play_file(), teletone_dtmf_generate_handler(), and teletone_handler().
| void switch_buffer_zero | ( | _In_ switch_buffer_t * | buffer | ) |
Remove all data from the buffer.
| buffer | any buffer of type switch_buffer_t |
Referenced by switch_buffer_zwrite(), switch_core_file_seek(), switch_core_file_truncate(), switch_core_media_bug_flush(), switch_ivr_eavesdrop_session(), and switch_ivr_play_file().
| switch_size_t switch_buffer_zwrite | ( | _In_ switch_buffer_t * | buffer, | |
| _In_bytecount_(datalen) const void * | data, | |||
| _In_ switch_size_t | datalen | |||
| ) |
Referenced by eavesdrop_callback(), and switch_ivr_eavesdrop_session().
1.4.7