FreeSWITCH API Documentation  1.7.0
Data Structures | Macros | Typedefs | Enumerations | Functions
switch_apr.h File Reference

APR includes header. More...

#include <pthread.h>
+ Include dependency graph for switch_apr.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  switch_time_exp_t
 
struct  switch_uuid_t
 
struct  switch_array_header_t
 
union  switch_descriptor_t
 
struct  switch_pollfd
 

Macros

#define SWITCH_MUTEX_DEFAULT   0x0
 
#define SWITCH_MUTEX_NESTED   0x1
 
#define SWITCH_MUTEX_UNNESTED   0x2
 
#define SWITCH_UUID_FORMATTED_LENGTH   256
 
#define SWITCH_MD5_DIGESTSIZE   16
 
#define SWITCH_MD5_DIGEST_STRING_SIZE   33
 
#define SWITCH_SEEK_SET   SEEK_SET
 
#define SWITCH_SEEK_CUR   SEEK_CUR
 
#define SWITCH_SEEK_END   SEEK_END
 
#define SWITCH_FPROT_USETID   0x8000
 
#define SWITCH_FPROT_UREAD   0x0400
 
#define SWITCH_FPROT_UWRITE   0x0200
 
#define SWITCH_FPROT_UEXECUTE   0x0100
 
#define SWITCH_FPROT_GSETID   0x4000
 
#define SWITCH_FPROT_GREAD   0x0040
 
#define SWITCH_FPROT_GWRITE   0x0020
 
#define SWITCH_FPROT_GEXECUTE   0x0010
 
#define SWITCH_FPROT_WSTICKY   0x2000
 
#define SWITCH_FPROT_WREAD   0x0004
 
#define SWITCH_FPROT_WWRITE   0x0002
 
#define SWITCH_FPROT_WEXECUTE   0x0001
 
#define SWITCH_FPROT_OS_DEFAULT   0x0FFF
 
#define SWITCH_FPROT_FILE_SOURCE_PERMS   0x1000
 
#define SWITCH_FLOCK_SHARED   1
 
#define SWITCH_FLOCK_EXCLUSIVE   2
 
#define SWITCH_FLOCK_TYPEMASK   0x000F
 
#define SWITCH_FLOCK_NONBLOCK   0x0010
 
#define SWITCH_FOPEN_READ   0x00001
 
#define SWITCH_FOPEN_WRITE   0x00002
 
#define SWITCH_FOPEN_CREATE   0x00004
 
#define SWITCH_FOPEN_APPEND   0x00008
 
#define SWITCH_FOPEN_TRUNCATE   0x00010
 
#define SWITCH_FOPEN_BINARY   0x00020
 
#define SWITCH_FOPEN_EXCL   0x00040
 
#define SWITCH_FOPEN_BUFFERED   0x00080
 
#define SWITCH_FOPEN_DELONCLOSE   0x00100
 
#define SWITCH_FOPEN_XTHREAD   0x00200
 
#define SWITCH_FOPEN_SHARELOCK   0x00400
 
#define SWITCH_FOPEN_NOCLEANUP   0x00800
 
#define SWITCH_FOPEN_SENDFILE_ENABLED   0x01000
 
#define SWITCH_FOPEN_LARGEFILE   0x04000
 
#define SWITCH_SO_LINGER   1
 
#define SWITCH_SO_KEEPALIVE   2
 
#define SWITCH_SO_DEBUG   4
 
#define SWITCH_SO_NONBLOCK   8
 
#define SWITCH_SO_REUSEADDR   16
 
#define SWITCH_SO_SNDBUF   64
 
#define SWITCH_SO_RCVBUF   128
 
#define SWITCH_SO_DISCONNECTED   256
 
#define SWITCH_SO_TCP_NODELAY   512
 
#define SWITCH_SO_TCP_KEEPIDLE   520
 
#define SWITCH_SO_TCP_KEEPINTVL   530
 
#define SWITCH_INET   AF_INET
 
#define SWITCH_INET6   0
 
#define SWITCH_UNSPEC   0
 
#define SWITCH_PROTO_TCP   6
 
#define SWITCH_PROTO_UDP   17
 
#define SWITCH_PROTO_SCTP   132
 
#define SWITCH_POLLIN   0x001
 
#define SWITCH_POLLPRI   0x002
 
#define SWITCH_POLLOUT   0x004
 
#define SWITCH_POLLERR   0x010
 
#define SWITCH_POLLHUP   0x020
 
#define SWITCH_POLLNVAL   0x040
 

Typedefs

typedef pthread_t switch_thread_id_t
 
typedef int64_t switch_time_t
 
typedef int64_t switch_interval_time_t
 
typedef struct switch_time_exp_t switch_time_exp_t
 
typedef struct apr_thread_mutex_t switch_mutex_t
 
typedef uint32_t switch_atomic_t
 
typedef struct apr_thread_rwlock_t switch_thread_rwlock_t
 
typedef struct apr_thread_cond_t switch_thread_cond_t
 
typedef struct apr_queue_t switch_queue_t
 
typedef struct apr_file_t switch_file_t
 
typedef int32_t switch_fileperms_t
 
typedef int switch_seek_where_t
 
typedef struct switch_dir switch_dir_t
 
typedef struct
switch_array_header_t 
switch_array_header_t
 
typedef struct apr_thread_t switch_thread_t
 
typedef struct apr_threadattr_t switch_threadattr_t
 
typedef void *SWITCH_THREAD_FUNCswitch_thread_start_t (switch_thread_t *, void *)
 
typedef struct apr_socket_t switch_socket_t
 
typedef struct apr_sockaddr_t switch_sockaddr_t
 
typedef struct switch_pollfd switch_pollfd_t
 
typedef struct apr_pollset_t switch_pollset_t
 

Enumerations

enum  switch_shutdown_how_e { SWITCH_SHUTDOWN_READ, SWITCH_SHUTDOWN_WRITE, SWITCH_SHUTDOWN_READWRITE }
 
enum  switch_pollset_type_t { SWITCH_NO_DESC, SWITCH_POLL_SOCKET, SWITCH_POLL_FILE, SWITCH_POLL_LASTDESC }
 

Functions

SWITCH_BEGIN_EXTERN_C int switch_status_is_timeup (int status)
 
switch_thread_id_t switch_thread_self (void)
 
int switch_thread_equal (switch_thread_id_t tid1, switch_thread_id_t tid2)
 Compare two thread ids. More...
 
void switch_pool_clear (switch_memory_pool_t *pool)
 
int switch_snprintf (_Out_z_cap_(len) char *buf, _In_ switch_size_t len, _In_z_ _Printf_format_string_ const char *format,...)
 
int switch_vasprintf (_Out_opt_ char **buf, _In_z_ _Printf_format_string_ const char *format, _In_ va_list ap)
 
int switch_vsnprintf (char *buf, switch_size_t len, const char *format, va_list ap)
 
char * switch_copy_string (_Out_z_cap_(dst_size) char *dst, _In_z_ const char *src, _In_ switch_size_t dst_size)
 
unsigned int switch_hashfunc_default (const char *key, switch_ssize_t *klen)
 
unsigned int switch_ci_hashfunc_default (const char *char_key, switch_ssize_t *klen)
 
switch_time_t switch_time_make (switch_time_t sec, int32_t usec)
 
switch_time_t switch_time_now (void)
 
switch_status_t switch_time_exp_gmt_get (switch_time_t *result, switch_time_exp_t *input)
 
switch_status_t switch_strftime (char *s, switch_size_t *retsize, switch_size_t max, const char *format, switch_time_exp_t *tm)
 
switch_status_t switch_strftime_nocheck (char *s, switch_size_t *retsize, switch_size_t max, const char *format, switch_time_exp_t *tm)
 
switch_status_t switch_rfc822_date (char *date_str, switch_time_t t)
 
switch_status_t switch_time_exp_gmt (switch_time_exp_t *result, switch_time_t input)
 
switch_status_t switch_time_exp_get (switch_time_t *result, switch_time_exp_t *input)
 
switch_status_t switch_time_exp_lt (switch_time_exp_t *result, switch_time_t input)
 
switch_status_t switch_time_exp_tz (switch_time_exp_t *result, switch_time_t input, switch_int32_t offs)
 
void switch_sleep (switch_interval_time_t t)
 
void switch_micro_sleep (switch_interval_time_t t)
 
switch_status_t switch_mutex_init (switch_mutex_t **lock, unsigned int flags, switch_memory_pool_t *pool)
 
switch_status_t switch_mutex_destroy (switch_mutex_t *lock)
 
switch_status_t switch_mutex_lock (switch_mutex_t *lock)
 
switch_status_t switch_mutex_unlock (switch_mutex_t *lock)
 
switch_status_t switch_mutex_trylock (switch_mutex_t *lock)
 
switch_status_t switch_atomic_init (switch_memory_pool_t *pool)
 
uint32_t switch_atomic_read (volatile switch_atomic_t *mem)
 
void switch_atomic_set (volatile switch_atomic_t *mem, uint32_t val)
 
void switch_atomic_add (volatile switch_atomic_t *mem, uint32_t val)
 
void switch_atomic_inc (volatile switch_atomic_t *mem)
 
int switch_atomic_dec (volatile switch_atomic_t *mem)
 
switch_status_t switch_thread_rwlock_create (switch_thread_rwlock_t **rwlock, switch_memory_pool_t *pool)
 
switch_status_t switch_thread_rwlock_destroy (switch_thread_rwlock_t *rwlock)
 
switch_memory_pool_tswitch_thread_rwlock_pool_get (switch_thread_rwlock_t *rwlock)
 
switch_status_t switch_thread_rwlock_rdlock (switch_thread_rwlock_t *rwlock)
 
switch_status_t switch_thread_rwlock_tryrdlock (switch_thread_rwlock_t *rwlock)
 
switch_status_t switch_thread_rwlock_wrlock (switch_thread_rwlock_t *rwlock)
 
switch_status_t switch_thread_rwlock_trywrlock (switch_thread_rwlock_t *rwlock)
 
switch_status_t switch_thread_rwlock_trywrlock_timeout (switch_thread_rwlock_t *rwlock, int timeout)
 
switch_status_t switch_thread_rwlock_unlock (switch_thread_rwlock_t *rwlock)
 
switch_status_t switch_thread_cond_create (switch_thread_cond_t **cond, switch_memory_pool_t *pool)
 
switch_status_t switch_thread_cond_wait (switch_thread_cond_t *cond, switch_mutex_t *mutex)
 
switch_status_t switch_thread_cond_timedwait (switch_thread_cond_t *cond, switch_mutex_t *mutex, switch_interval_time_t timeout)
 
switch_status_t switch_thread_cond_signal (switch_thread_cond_t *cond)
 
switch_status_t switch_thread_cond_broadcast (switch_thread_cond_t *cond)
 
switch_status_t switch_thread_cond_destroy (switch_thread_cond_t *cond)
 
void switch_uuid_format (char *buffer, const switch_uuid_t *uuid)
 
void switch_uuid_get (switch_uuid_t *uuid)
 
switch_status_t switch_uuid_parse (switch_uuid_t *uuid, const char *uuid_str)
 
switch_status_t switch_md5 (unsigned char digest[SWITCH_MD5_DIGESTSIZE], const void *input, switch_size_t inputLen)
 
switch_status_t switch_md5_string (char digest_str[SWITCH_MD5_DIGEST_STRING_SIZE], const void *input, switch_size_t inputLen)
 
switch_status_t switch_queue_create (switch_queue_t **queue, unsigned int queue_capacity, switch_memory_pool_t *pool)
 
switch_status_t switch_queue_pop (switch_queue_t *queue, void **data)
 
switch_status_t switch_queue_pop_timeout (switch_queue_t *queue, void **data, switch_interval_time_t timeout)
 
switch_status_t switch_queue_push (switch_queue_t *queue, void *data)
 
unsigned int switch_queue_size (switch_queue_t *queue)
 
switch_status_t switch_queue_trypop (switch_queue_t *queue, void **data)
 
switch_status_t switch_queue_interrupt_all (switch_queue_t *queue)
 
switch_status_t switch_queue_term (switch_queue_t *queue)
 
switch_status_t switch_queue_trypush (switch_queue_t *queue, void *data)
 
switch_status_t switch_file_open (switch_file_t **newf, const char *fname, int32_t flag, switch_fileperms_t perm, switch_memory_pool_t *pool)
 
switch_status_t switch_file_seek (switch_file_t *thefile, switch_seek_where_t where, int64_t *offset)
 
switch_status_t switch_file_copy (const char *from_path, const char *to_path, switch_fileperms_t perms, switch_memory_pool_t *pool)
 
switch_status_t switch_file_close (switch_file_t *thefile)
 
switch_status_t switch_file_trunc (switch_file_t *thefile, int64_t offset)
 
switch_status_t switch_file_lock (switch_file_t *thefile, int type)
 
switch_status_t switch_file_remove (const char *path, switch_memory_pool_t *pool)
 
switch_status_t switch_file_rename (const char *from_path, const char *to_path, switch_memory_pool_t *pool)
 
switch_status_t switch_file_read (switch_file_t *thefile, void *buf, switch_size_t *nbytes)
 
switch_status_t switch_file_write (switch_file_t *thefile, const void *buf, switch_size_t *nbytes)
 
int switch_file_printf (switch_file_t *thefile, const char *format,...)
 
switch_status_t switch_file_mktemp (switch_file_t **thefile, char *templ, int32_t flags, switch_memory_pool_t *pool)
 
switch_size_t switch_file_get_size (switch_file_t *thefile)
 
switch_status_t switch_file_exists (const char *filename, switch_memory_pool_t *pool)
 
switch_status_t switch_directory_exists (const char *dirname, switch_memory_pool_t *pool)
 
switch_status_t switch_dir_make (const char *path, switch_fileperms_t perm, switch_memory_pool_t *pool)
 
switch_status_t switch_dir_make_recursive (const char *path, switch_fileperms_t perm, switch_memory_pool_t *pool)
 
switch_status_t switch_dir_open (switch_dir_t **new_dir, const char *dirname, switch_memory_pool_t *pool)
 
switch_status_t switch_dir_close (switch_dir_t *thedir)
 
const char * switch_dir_next_file (switch_dir_t *thedir, char *buf, switch_size_t len)
 
uint32_t switch_dir_count (switch_dir_t *thedir)
 
switch_status_t switch_threadattr_stacksize_set (switch_threadattr_t *attr, switch_size_t stacksize)
 
switch_status_t switch_threadattr_priority_set (switch_threadattr_t *attr, switch_thread_priority_t priority)
 
switch_status_t switch_threadattr_create (switch_threadattr_t **new_attr, switch_memory_pool_t *pool)
 
switch_status_t switch_threadattr_detach_set (switch_threadattr_t *attr, int32_t on)
 
switch_status_t switch_thread_create (switch_thread_t **new_thread, switch_threadattr_t *attr, switch_thread_start_t func, void *data, switch_memory_pool_t *cont)
 
switch_status_t switch_socket_create (switch_socket_t **new_sock, int family, int type, int protocol, switch_memory_pool_t *pool)
 
switch_status_t switch_socket_shutdown (switch_socket_t *sock, switch_shutdown_how_e how)
 
switch_status_t switch_socket_close (switch_socket_t *sock)
 
switch_status_t switch_socket_bind (switch_socket_t *sock, switch_sockaddr_t *sa)
 
switch_status_t switch_socket_listen (switch_socket_t *sock, int32_t backlog)
 
switch_status_t switch_socket_accept (switch_socket_t **new_sock, switch_socket_t *sock, switch_memory_pool_t *pool)
 
switch_status_t switch_socket_connect (switch_socket_t *sock, switch_sockaddr_t *sa)
 
int switch_socket_fd_get (switch_socket_t *sock)
 
uint16_t switch_sockaddr_get_port (switch_sockaddr_t *sa)
 
const char * switch_get_addr (char *buf, switch_size_t len, switch_sockaddr_t *in)
 
switch_status_t switch_getnameinfo (char **hostname, switch_sockaddr_t *sa, int32_t flags)
 
int32_t switch_sockaddr_get_family (switch_sockaddr_t *sa)
 
switch_status_t switch_sockaddr_ip_get (char **addr, switch_sockaddr_t *sa)
 
int switch_sockaddr_equal (const switch_sockaddr_t *sa1, const switch_sockaddr_t *sa2)
 
switch_status_t switch_sockaddr_info_get (switch_sockaddr_t **sa, const char *hostname, int32_t family, switch_port_t port, int32_t flags, switch_memory_pool_t *pool)
 
switch_status_t switch_sockaddr_create (switch_sockaddr_t **sa, switch_memory_pool_t *pool)
 
switch_status_t switch_socket_send (switch_socket_t *sock, const char *buf, switch_size_t *len)
 
switch_status_t switch_socket_sendto (switch_socket_t *sock, switch_sockaddr_t *where, int32_t flags, const char *buf, switch_size_t *len)
 
switch_status_t switch_socket_send_nonblock (switch_socket_t *sock, const char *buf, switch_size_t *len)
 
switch_status_t switch_socket_recvfrom (switch_sockaddr_t *from, switch_socket_t *sock, int32_t flags, char *buf, size_t *len)
 
switch_status_t switch_socket_atmark (switch_socket_t *sock, int *atmark)
 
switch_status_t switch_socket_recv (switch_socket_t *sock, char *buf, switch_size_t *len)
 
switch_status_t switch_socket_opt_set (switch_socket_t *sock, int32_t opt, int32_t on)
 
switch_status_t switch_socket_timeout_set (switch_socket_t *sock, switch_interval_time_t t)
 
switch_status_t switch_mcast_join (switch_socket_t *sock, switch_sockaddr_t *join, switch_sockaddr_t *iface, switch_sockaddr_t *source)
 
switch_status_t switch_mcast_hops (switch_socket_t *sock, uint8_t ttl)
 
switch_status_t switch_mcast_loopback (switch_socket_t *sock, uint8_t opt)
 
switch_status_t switch_mcast_interface (switch_socket_t *sock, switch_sockaddr_t *iface)
 
switch_status_t switch_pollset_create (switch_pollset_t **pollset, uint32_t size, switch_memory_pool_t *pool, uint32_t flags)
 
switch_status_t switch_pollset_add (switch_pollset_t *pollset, const switch_pollfd_t *descriptor)
 
switch_status_t switch_pollset_remove (switch_pollset_t *pollset, const switch_pollfd_t *descriptor)
 
switch_status_t switch_poll (switch_pollfd_t *aprset, int32_t numsock, int32_t *nsds, switch_interval_time_t timeout)
 
switch_status_t switch_pollset_poll (switch_pollset_t *pollset, switch_interval_time_t timeout, int32_t *num, const switch_pollfd_t **descriptors)
 
switch_status_t switch_socket_create_pollset (switch_pollfd_t **poll, switch_socket_t *sock, int16_t flags, switch_memory_pool_t *pool)
 Create a set of file descriptors to poll from a socket. More...
 
switch_interval_time_t switch_interval_time_from_timeval (struct timeval *tvp)
 
switch_status_t switch_socket_create_pollfd (switch_pollfd_t **pollfd, switch_socket_t *sock, int16_t flags, void *client_data, switch_memory_pool_t *pool)
 Create a pollfd out of a socket. More...
 
switch_status_t switch_match_glob (const char *pattern, switch_array_header_t **result, switch_memory_pool_t *pool)
 
switch_status_t switch_os_sock_get (switch_os_socket_t *thesock, switch_socket_t *sock)
 
switch_status_t switch_os_sock_put (switch_socket_t **sock, switch_os_socket_t *thesock, switch_memory_pool_t *pool)
 
switch_status_t switch_socket_addr_get (switch_sockaddr_t **sa, switch_bool_t remote, switch_socket_t *sock)
 
switch_status_t switch_file_pipe_create (switch_file_t **in, switch_file_t **out, switch_memory_pool_t *pool)
 
switch_status_t switch_file_pipe_timeout_get (switch_file_t *thepipe, switch_interval_time_t *timeout)
 
switch_status_t switch_file_pipe_timeout_set (switch_file_t *thepipe, switch_interval_time_t timeout)
 
switch_status_t switch_thread_exit (switch_thread_t *thd, switch_status_t retval)
 
switch_status_t switch_thread_join (switch_status_t *retval, switch_thread_t *thd)
 
char * switch_strerror (switch_status_t statcode, char *buf, switch_size_t bufsize)
 

Detailed Description

APR includes header.

The things powered by APR are renamed into the switch_ namespace to provide a cleaner look to things and helps me to document what parts of APR I am using I'd like to take this opportunity to thank APR for all the awesome stuff it does and for making my life much easier.

Definition in file switch_apr.h.

Typedef Documentation

typedef pthread_t switch_thread_id_t

Definition at line 51 of file switch_apr.h.

Function Documentation

SWITCH_BEGIN_EXTERN_C int switch_status_is_timeup ( int  status)

Definition at line 72 of file switch_apr.c.

Referenced by switch_core_session_thread_pool_worker().

73 {
74  return APR_STATUS_IS_TIMEUP(status);
75 }
int switch_thread_equal ( switch_thread_id_t  tid1,
switch_thread_id_t  tid2 
)

Compare two thread ids.

Parameters
tid11st Thread ID to compare
tid22nd Thread ID to compare

Definition at line 88 of file switch_apr.c.

Referenced by switch_core_session_in_thread(), and switch_core_session_in_video_thread().

89 {
90 #ifdef WIN32
91  return (tid1 == tid2);
92 #else
93  return apr_os_thread_equal(tid1, tid2);
94 #endif
95 
96 }
switch_thread_id_t switch_thread_self ( void  )