Re #1616: symbian port of ioqueue & timer

git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@4374 74dad513-b988-da41-8d7b-12977e46ad98
This commit is contained in:
Riza Sulistyo 2013-02-27 07:15:57 +00:00
parent 8ba9a4101d
commit dd6810f384
3 changed files with 236 additions and 191 deletions

View File

@ -130,194 +130,197 @@ EXPORTS
pj_ioqueue_recv @ 129 NONAME
pj_ioqueue_recvfrom @ 130 NONAME
pj_ioqueue_register_sock @ 131 NONAME
pj_ioqueue_send @ 132 NONAME
pj_ioqueue_sendto @ 133 NONAME
pj_ioqueue_set_lock @ 134 NONAME
pj_ioqueue_set_user_data @ 135 NONAME
pj_ioqueue_unregister @ 136 NONAME
pj_leave_critical_section @ 137 NONAME
pj_list_erase @ 138 NONAME
pj_list_find_node @ 139 NONAME
pj_list_insert_after @ 140 NONAME
pj_list_insert_before @ 141 NONAME
pj_list_insert_nodes_after @ 142 NONAME
pj_list_insert_nodes_before @ 143 NONAME
pj_list_merge_first @ 144 NONAME
pj_list_merge_last @ 145 NONAME
pj_list_search @ 146 NONAME
pj_list_size @ 147 NONAME
pj_lock_acquire @ 148 NONAME
pj_lock_create_null_mutex @ 149 NONAME
pj_lock_create_recursive_mutex @ 150 NONAME
pj_lock_create_semaphore @ 151 NONAME
pj_lock_create_simple_mutex @ 152 NONAME
pj_lock_destroy @ 153 NONAME
pj_lock_release @ 154 NONAME
pj_lock_tryacquire @ 155 NONAME
pj_log @ 156 NONAME
pj_log_1 @ 157 NONAME
pj_log_2 @ 158 NONAME
pj_log_3 @ 159 NONAME
pj_log_4 @ 160 NONAME
pj_log_5 @ 161 NONAME
pj_log_get_decor @ 162 NONAME
pj_log_get_level @ 163 NONAME
pj_log_get_log_func @ 164 NONAME
pj_log_set_decor @ 165 NONAME
pj_log_set_level @ 166 NONAME
pj_log_set_log_func @ 167 NONAME
pj_log_write @ 168 NONAME
pj_mutex_create @ 169 NONAME
pj_mutex_create_recursive @ 170 NONAME
pj_mutex_create_simple @ 171 NONAME
pj_mutex_destroy @ 172 NONAME
pj_mutex_lock @ 173 NONAME
pj_mutex_trylock @ 174 NONAME
pj_mutex_unlock @ 175 NONAME
pj_ntohl @ 176 NONAME
pj_ntohs @ 177 NONAME
pj_pool_alloc @ 178 NONAME
pj_pool_alloc_from_block @ 179 NONAME
pj_pool_allocate_find @ 180 NONAME
pj_pool_calloc @ 181 NONAME
pj_pool_create @ 182 NONAME
pj_pool_create_int @ 183 NONAME
pj_pool_create_on_buf @ 184 NONAME
pj_pool_destroy_int @ 185 NONAME
pj_pool_factory_default_policy @ 186 NONAME
pj_pool_factory_get_default_policy @ 187 NONAME
pj_pool_get_capacity @ 188 NONAME
pj_pool_get_used_size @ 189 NONAME
pj_pool_getobjname @ 190 NONAME
pj_pool_init_int @ 191 NONAME
pj_pool_release @ 192 NONAME
pj_pool_reset @ 193 NONAME
pj_rand @ 194 NONAME
pj_rbtree_erase @ 195 NONAME
pj_rbtree_find @ 196 NONAME
pj_rbtree_first @ 197 NONAME
pj_rbtree_init @ 198 NONAME
pj_rbtree_insert @ 199 NONAME
pj_rbtree_last @ 200 NONAME
pj_rbtree_max_height @ 201 NONAME
pj_rbtree_min_height @ 202 NONAME
pj_rbtree_next @ 203 NONAME
pj_rbtree_prev @ 204 NONAME
pj_register_strerror @ 205 NONAME
pj_rwmutex_create @ 206 NONAME
pj_rwmutex_destroy @ 207 NONAME
pj_rwmutex_lock_read @ 208 NONAME
pj_rwmutex_lock_write @ 209 NONAME
pj_rwmutex_unlock_read @ 210 NONAME
pj_rwmutex_unlock_write @ 211 NONAME
pj_sem_create @ 212 NONAME
pj_sem_destroy @ 213 NONAME
pj_sem_post @ 214 NONAME
pj_sem_trywait @ 215 NONAME
pj_sem_wait @ 216 NONAME
pj_set_netos_error @ 217 NONAME
pj_set_os_error @ 218 NONAME
pj_shutdown @ 219 NONAME
pj_sock_accept @ 220 NONAME
pj_sock_bind @ 221 NONAME
pj_sock_bind_in @ 222 NONAME
pj_sock_close @ 223 NONAME
pj_sock_connect @ 224 NONAME
pj_sock_getpeername @ 225 NONAME
pj_sock_getsockname @ 226 NONAME
pj_sock_getsockopt @ 227 NONAME
pj_sock_listen @ 228 NONAME
pj_sock_recv @ 229 NONAME
pj_sock_recvfrom @ 230 NONAME
pj_sock_select @ 231 NONAME
pj_sock_send @ 232 NONAME
pj_sock_sendto @ 233 NONAME
pj_sock_setsockopt @ 234 NONAME
pj_sock_shutdown @ 235 NONAME
pj_sock_socket @ 236 NONAME
pj_sockaddr_cmp @ 237 NONAME
pj_sockaddr_copy_addr @ 238 NONAME
pj_sockaddr_get_addr @ 239 NONAME
pj_sockaddr_get_addr_len @ 240 NONAME
pj_sockaddr_get_len @ 241 NONAME
pj_sockaddr_get_port @ 242 NONAME
pj_sockaddr_has_addr @ 243 NONAME
pj_sockaddr_in_get_addr @ 244 NONAME
pj_sockaddr_in_get_port @ 245 NONAME
pj_sockaddr_in_init @ 246 NONAME
pj_sockaddr_in_set_addr @ 247 NONAME
pj_sockaddr_in_set_port @ 248 NONAME
pj_sockaddr_in_set_str_addr @ 249 NONAME
pj_sockaddr_init @ 250 NONAME
pj_sockaddr_print @ 251 NONAME
pj_sockaddr_set_port @ 252 NONAME
pj_sockaddr_set_str_addr @ 253 NONAME
pj_srand @ 254 NONAME
pj_str @ 255 NONAME
pj_strassign @ 256 NONAME
pj_strcat @ 257 NONAME
pj_strcat2 @ 258 NONAME
pj_strcmp @ 259 NONAME
pj_strcmp2 @ 260 NONAME
pj_strcpy @ 261 NONAME
pj_strcpy2 @ 262 NONAME
pj_strdup @ 263 NONAME
pj_strdup2 @ 264 NONAME
pj_strdup2_with_null @ 265 NONAME
pj_strdup3 @ 266 NONAME
pj_strdup_with_null @ 267 NONAME
pj_strerror @ 268 NONAME
pj_stricmp @ 269 NONAME
pj_stricmp2 @ 270 NONAME
pj_strltrim @ 271 NONAME
pj_strncmp @ 272 NONAME
pj_strncmp2 @ 273 NONAME
pj_strncpy @ 274 NONAME
pj_strncpy_with_null @ 275 NONAME
pj_strnicmp @ 276 NONAME
pj_strnicmp2 @ 277 NONAME
pj_strrtrim @ 278 NONAME
pj_strtoul @ 279 NONAME
pj_strtoul2 @ 280 NONAME
pj_strtrim @ 281 NONAME
pj_symbianos_poll @ 282 NONAME
pj_symbianos_set_params @ 283 NONAME
pj_thread_check_stack @ 284 NONAME
pj_thread_create @ 285 NONAME
pj_thread_destroy @ 286 NONAME
pj_thread_get_name @ 287 NONAME
pj_thread_get_os_handle @ 288 NONAME
pj_thread_get_stack_info @ 289 NONAME
pj_thread_get_stack_max_usage @ 290 NONAME
pj_thread_is_registered @ 291 NONAME
pj_thread_join @ 292 NONAME
pj_thread_local_alloc @ 293 NONAME
pj_thread_local_free @ 294 NONAME
pj_thread_local_get @ 295 NONAME
pj_thread_local_set @ 296 NONAME
pj_thread_register @ 297 NONAME
pj_thread_resume @ 298 NONAME
pj_thread_sleep @ 299 NONAME
pj_thread_this @ 300 NONAME
pj_time_decode @ 301 NONAME
pj_time_encode @ 302 NONAME
pj_time_gmt_to_local @ 303 NONAME
pj_time_local_to_gmt @ 304 NONAME
pj_time_val_normalize @ 305 NONAME
pj_timer_entry_init @ 306 NONAME
pj_timer_heap_cancel @ 307 NONAME
pj_timer_heap_count @ 308 NONAME
pj_timer_heap_create @ 309 NONAME
pj_timer_heap_destroy @ 310 NONAME
pj_timer_heap_earliest_time @ 311 NONAME
pj_timer_heap_mem_size @ 312 NONAME
pj_timer_heap_poll @ 313 NONAME
pj_timer_heap_schedule @ 314 NONAME
pj_timer_heap_set_lock @ 315 NONAME
pj_timer_heap_set_max_timed_out_per_poll @ 316 NONAME
pj_unicode_to_ansi @ 317 NONAME
pj_utoa @ 318 NONAME
pj_utoa_pad @ 319 NONAME
platform_strerror @ 320 NONAME
snprintf @ 321 NONAME
vsnprintf @ 322 NONAME
pj_ioqueue_register_sock2 @ 132 NONAME
pj_ioqueue_send @ 133 NONAME
pj_ioqueue_sendto @ 134 NONAME
pj_ioqueue_set_lock @ 135 NONAME
pj_ioqueue_set_user_data @ 136 NONAME
pj_ioqueue_unregister @ 137 NONAME
pj_leave_critical_section @ 138 NONAME
pj_list_erase @ 139 NONAME
pj_list_find_node @ 140 NONAME
pj_list_insert_after @ 141 NONAME
pj_list_insert_before @ 142 NONAME
pj_list_insert_nodes_after @ 143 NONAME
pj_list_insert_nodes_before @ 144 NONAME
pj_list_merge_first @ 145 NONAME
pj_list_merge_last @ 146 NONAME
pj_list_search @ 147 NONAME
pj_list_size @ 148 NONAME
pj_lock_acquire @ 149 NONAME
pj_lock_create_null_mutex @ 150 NONAME
pj_lock_create_recursive_mutex @ 151 NONAME
pj_lock_create_semaphore @ 152 NONAME
pj_lock_create_simple_mutex @ 153 NONAME
pj_lock_destroy @ 154 NONAME
pj_lock_release @ 155 NONAME
pj_lock_tryacquire @ 156 NONAME
pj_log @ 157 NONAME
pj_log_1 @ 158 NONAME
pj_log_2 @ 159 NONAME
pj_log_3 @ 160 NONAME
pj_log_4 @ 161 NONAME
pj_log_5 @ 162 NONAME
pj_log_get_decor @ 163 NONAME
pj_log_get_level @ 164 NONAME
pj_log_get_log_func @ 165 NONAME
pj_log_set_decor @ 166 NONAME
pj_log_set_level @ 167 NONAME
pj_log_set_log_func @ 168 NONAME
pj_log_write @ 169 NONAME
pj_mutex_create @ 170 NONAME
pj_mutex_create_recursive @ 171 NONAME
pj_mutex_create_simple @ 172 NONAME
pj_mutex_destroy @ 173 NONAME
pj_mutex_lock @ 174 NONAME
pj_mutex_trylock @ 175 NONAME
pj_mutex_unlock @ 176 NONAME
pj_ntohl @ 177 NONAME
pj_ntohs @ 178 NONAME
pj_pool_alloc @ 179 NONAME
pj_pool_alloc_from_block @ 180 NONAME
pj_pool_allocate_find @ 181 NONAME
pj_pool_calloc @ 182 NONAME
pj_pool_create @ 183 NONAME
pj_pool_create_int @ 184 NONAME
pj_pool_create_on_buf @ 185 NONAME
pj_pool_destroy_int @ 186 NONAME
pj_pool_factory_default_policy @ 187 NONAME
pj_pool_factory_get_default_policy @ 188 NONAME
pj_pool_get_capacity @ 189 NONAME
pj_pool_get_used_size @ 190 NONAME
pj_pool_getobjname @ 191 NONAME
pj_pool_init_int @ 192 NONAME
pj_pool_release @ 193 NONAME
pj_pool_reset @ 194 NONAME
pj_rand @ 195 NONAME
pj_rbtree_erase @ 196 NONAME
pj_rbtree_find @ 197 NONAME
pj_rbtree_first @ 198 NONAME
pj_rbtree_init @ 199 NONAME
pj_rbtree_insert @ 200 NONAME
pj_rbtree_last @ 201 NONAME
pj_rbtree_max_height @ 202 NONAME
pj_rbtree_min_height @ 203 NONAME
pj_rbtree_next @ 204 NONAME
pj_rbtree_prev @ 205 NONAME
pj_register_strerror @ 206 NONAME
pj_rwmutex_create @ 207 NONAME
pj_rwmutex_destroy @ 208 NONAME
pj_rwmutex_lock_read @ 209 NONAME
pj_rwmutex_lock_write @ 210 NONAME
pj_rwmutex_unlock_read @ 211 NONAME
pj_rwmutex_unlock_write @ 212 NONAME
pj_sem_create @ 213 NONAME
pj_sem_destroy @ 214 NONAME
pj_sem_post @ 215 NONAME
pj_sem_trywait @ 216 NONAME
pj_sem_wait @ 217 NONAME
pj_set_netos_error @ 218 NONAME
pj_set_os_error @ 219 NONAME
pj_shutdown @ 220 NONAME
pj_sock_accept @ 221 NONAME
pj_sock_bind @ 222 NONAME
pj_sock_bind_in @ 223 NONAME
pj_sock_close @ 224 NONAME
pj_sock_connect @ 225 NONAME
pj_sock_getpeername @ 226 NONAME
pj_sock_getsockname @ 227 NONAME
pj_sock_getsockopt @ 228 NONAME
pj_sock_listen @ 229 NONAME
pj_sock_recv @ 230 NONAME
pj_sock_recvfrom @ 231 NONAME
pj_sock_select @ 232 NONAME
pj_sock_send @ 233 NONAME
pj_sock_sendto @ 234 NONAME
pj_sock_setsockopt @ 235 NONAME
pj_sock_shutdown @ 236 NONAME
pj_sock_socket @ 237 NONAME
pj_sockaddr_cmp @ 238 NONAME
pj_sockaddr_copy_addr @ 239 NONAME
pj_sockaddr_get_addr @ 240 NONAME
pj_sockaddr_get_addr_len @ 241 NONAME
pj_sockaddr_get_len @ 242 NONAME
pj_sockaddr_get_port @ 243 NONAME
pj_sockaddr_has_addr @ 244 NONAME
pj_sockaddr_in_get_addr @ 245 NONAME
pj_sockaddr_in_get_port @ 246 NONAME
pj_sockaddr_in_init @ 247 NONAME
pj_sockaddr_in_set_addr @ 248 NONAME
pj_sockaddr_in_set_port @ 249 NONAME
pj_sockaddr_in_set_str_addr @ 250 NONAME
pj_sockaddr_init @ 251 NONAME
pj_sockaddr_print @ 252 NONAME
pj_sockaddr_set_port @ 253 NONAME
pj_sockaddr_set_str_addr @ 254 NONAME
pj_srand @ 255 NONAME
pj_str @ 256 NONAME
pj_strassign @ 257 NONAME
pj_strcat @ 258 NONAME
pj_strcat2 @ 259 NONAME
pj_strcmp @ 260 NONAME
pj_strcmp2 @ 261 NONAME
pj_strcpy @ 262 NONAME
pj_strcpy2 @ 263 NONAME
pj_strdup @ 264 NONAME
pj_strdup2 @ 265 NONAME
pj_strdup2_with_null @ 266 NONAME
pj_strdup3 @ 267 NONAME
pj_strdup_with_null @ 268 NONAME
pj_strerror @ 269 NONAME
pj_stricmp @ 270 NONAME
pj_stricmp2 @ 271 NONAME
pj_strltrim @ 272 NONAME
pj_strncmp @ 273 NONAME
pj_strncmp2 @ 274 NONAME
pj_strncpy @ 275 NONAME
pj_strncpy_with_null @ 276 NONAME
pj_strnicmp @ 277 NONAME
pj_strnicmp2 @ 278 NONAME
pj_strrtrim @ 279 NONAME
pj_strtoul @ 280 NONAME
pj_strtoul2 @ 281 NONAME
pj_strtrim @ 282 NONAME
pj_symbianos_poll @ 283 NONAME
pj_symbianos_set_params @ 284 NONAME
pj_thread_check_stack @ 285 NONAME
pj_thread_create @ 286 NONAME
pj_thread_destroy @ 287 NONAME
pj_thread_get_name @ 288 NONAME
pj_thread_get_os_handle @ 289 NONAME
pj_thread_get_stack_info @ 290 NONAME
pj_thread_get_stack_max_usage @ 291 NONAME
pj_thread_is_registered @ 292 NONAME
pj_thread_join @ 293 NONAME
pj_thread_local_alloc @ 294 NONAME
pj_thread_local_free @ 295 NONAME
pj_thread_local_get @ 296 NONAME
pj_thread_local_set @ 297 NONAME
pj_thread_register @ 298 NONAME
pj_thread_resume @ 299 NONAME
pj_thread_sleep @ 300 NONAME
pj_thread_this @ 301 NONAME
pj_time_decode @ 302 NONAME
pj_time_encode @ 303 NONAME
pj_time_gmt_to_local @ 304 NONAME
pj_time_local_to_gmt @ 305 NONAME
pj_time_val_normalize @ 306 NONAME
pj_timer_entry_init @ 307 NONAME
pj_timer_heap_cancel @ 308 NONAME
pj_timer_heap_cancel_if_active @ 309 NONAME
pj_timer_heap_count @ 310 NONAME
pj_timer_heap_create @ 311 NONAME
pj_timer_heap_destroy @ 312 NONAME
pj_timer_heap_earliest_time @ 313 NONAME
pj_timer_heap_mem_size @ 314 NONAME
pj_timer_heap_poll @ 315 NONAME
pj_timer_heap_schedule @ 316 NONAME
pj_timer_heap_schedule_w_grp_lock @ 317 NONAME
pj_timer_heap_set_lock @ 318 NONAME
pj_timer_heap_set_max_timed_out_per_poll @ 319 NONAME
pj_unicode_to_ansi @ 320 NONAME
pj_utoa @ 321 NONAME
pj_utoa_pad @ 322 NONAME
platform_strerror @ 323 NONAME
snprintf @ 324 NONAME
vsnprintf @ 325 NONAME

View File

@ -528,6 +528,19 @@ PJ_DEF(pj_status_t) pj_ioqueue_register_sock( pj_pool_t *pool,
return PJ_SUCCESS;
}
PJ_DEF(pj_status_t) pj_ioqueue_register_sock2(pj_pool_t *pool,
pj_ioqueue_t *ioqueue,
pj_sock_t sock,
pj_grp_lock_t *grp_lock,
void *user_data,
const pj_ioqueue_callback *cb,
pj_ioqueue_key_t **p_key)
{
PJ_UNUSED_ARG(grp_lock);
return pj_ioqueue_register_sock(pool, ioqueue, sock, user_data, cb, p_key);
}
/*
* Unregister from the I/O Queue framework.
*/

View File

@ -392,6 +392,24 @@ PJ_DEF(pj_status_t) pj_timer_heap_schedule( pj_timer_heap_t *ht,
return PJ_SUCCESS;
}
PJ_DEF(pj_status_t) pj_timer_heap_schedule_w_grp_lock(pj_timer_heap_t *ht,
pj_timer_entry *entry,
const pj_time_val *delay,
int id_val,
pj_grp_lock_t *grp_lock)
{
pj_status_t status;
PJ_UNUSED_ARG(grp_lock);
status = pj_timer_heap_schedule(ht, entry, delay);
if (status == PJ_SUCCESS)
entry->id = id_val;
return status;
}
PJ_DEF(int) pj_timer_heap_cancel( pj_timer_heap_t *ht,
pj_timer_entry *entry)
{
@ -411,6 +429,17 @@ PJ_DEF(int) pj_timer_heap_cancel( pj_timer_heap_t *ht,
}
}
PJ_DEF(int) pj_timer_heap_cancel_if_active(pj_timer_heap_t *ht,
pj_timer_entry *entry,
int id_val)
{
int count = pj_timer_heap_cancel(ht, entry);
if (count == 1)
entry->id = id_val;
return count;
}
PJ_DEF(unsigned) pj_timer_heap_poll( pj_timer_heap_t *ht,
pj_time_val *next_delay )
{