Ignore:
Timestamp:
Jul 20, 2007 8:08:30 AM (12 years ago)
Author:
bennylp
Message:

Ticket #354: build PJLIB as dynamic libraries (.DSO) in Symbian

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjlib/include/pj/os.h

    r1124 r1405  
    237237/* **************************************************************************/ 
    238238/** 
     239 * @defgroup PJ_SYMBIAN_OS Symbian OS Specific 
     240 * @ingroup PJ_OS 
     241 * @{ 
     242 * Functionalities specific to Symbian OS. 
     243 * 
     244 * Symbian OS strongly discourages the use of polling since this wastes 
     245 * CPU power, and instead provides Active Object and Active Scheduler 
     246 * pattern to allow application (in this case, PJLIB) to register asynchronous 
     247 * tasks. PJLIB port for Symbian complies to this recommended behavior. 
     248 * As the result, few things have been changed in PJLIB for Symbian: 
     249 *      - the timer heap (see @ref PJ_TIMER) is implemented with active 
     250 *        object framework, and each timer entry registered to the timer  
     251 *        heap will register an Active Object to the Active Scheduler. 
     252 *        Because of this, polling the timer heap with pj_timer_heap_poll() 
     253 *        is no longer necessary, and this function will just evaluate 
     254 *        to nothing. 
     255 *      - the ioqueue (see @ref PJ_IOQUEUE) is also implemented with 
     256 *        active object framework, with each asynchronous operation will 
     257 *        register an Active Object to the Active Scheduler. Because of 
     258 *        this, polling the ioqueue with pj_ioqueue_poll() is no longer 
     259 *        necessary, and this function will just evaluate to nothing. 
     260 * 
     261 * Since timer heap and ioqueue polling are no longer necessary, Symbian 
     262 * application can now poll for all events by calling  
     263 * \a User::WaitForAnyRequest() and \a CActiveScheduler::RunIfReady(). 
     264 * PJLIB provides a thin wrapper which calls these two functions, 
     265 * called pj_symbianos_poll(). 
     266 */ 
     267  
     268/** 
     269 * Wait the completion of any Symbian active objects. When the timeout 
     270 * value is not specified (the \a ms_timeout argument is -1), this  
     271 * function is a thin wrapper which calls \a User::WaitForAnyRequest()  
     272 * and \a CActiveScheduler::RunIfReady(). If the timeout value is 
     273 * specified, this function will schedule a timer entry to the timer 
     274 * heap (which is an Active Object), to limit the wait time for event 
     275 * occurences. Scheduling a timer entry is an expensive operation, 
     276 * therefore application should only specify a timeout value when it's 
     277 * really necessary (for example, when it's not sure there are other 
     278 * Active Objects currently running in the application). 
     279 * 
     280 * @param priority      The minimum priority of the Active Objects to 
     281 *                      poll, which values are from CActive::TPriority 
     282 *                      constants. If -1 is given, CActive::EPriorityStandard. 
     283 *                      priority will be used. 
     284 * @param ms_timeout    Optional timeout to wait. Application should 
     285 *                      specify -1 to let the function wait indefinitely 
     286 *                      for any events. 
     287 * 
     288 * @return              PJ_TRUE if there have been any events executed 
     289 *                      during the polling. This function will only return 
     290 *                      PJ_FALSE if \a ms_timeout argument is specified 
     291 *                      (i.e. the value is not -1) and there was no event 
     292 *                      executed when the timeout timer elapsed. 
     293 */ 
     294PJ_DECL(pj_bool_t) pj_symbianos_poll(int priority, int ms_timeout); 
     295 
     296/** 
     297 * @} 
     298 */ 
     299  
     300/* **************************************************************************/ 
     301/** 
    239302 * @defgroup PJ_TLS Thread Local Storage. 
    240303 * @ingroup PJ_OS 
     
    406469 *  - PJ_MUTEX_DEFAULT: default mutex type, which is system dependent. 
    407470 *  - PJ_MUTEX_SIMPLE: non-recursive mutex. 
    408  *  - PJ_MUTEX_RECURSIVE: recursive mutex. 
     471 *  - PJ_MUTEX_RECURSE: recursive mutex. 
    409472 */ 
    410473typedef enum pj_mutex_type_e 
Note: See TracChangeset for help on using the changeset viewer.