SILC Core Library
    SILC Auth API
    SILC Channel API
    SILC Command API
    SILC ID API
    SILC ID Cache API
    SILC Modes
    SILC Notify API
    SILC Packet API
    SILC Payload API
    SILC Private API
SILC Math Library
    SILC Math API
    SILC MP API
SILC SFTP Library
    SILC SFTP API
    SILC SFTP Filesystems
SILC Utility Library
    SILC Buffer API
    SILC Buffer Format API
    SILC Buffer Utility API
    SILC Hash Table API
    SILC Log and Debug API
    SILC Memory API
    SILC Mutex API
    SILC Thread API
    SILC Net API
    SILC Schedule API
    SILC Socket Connection API
    SILC Protocol API
    SILC Util API
    SILC Zip API
    SILC List API
    SILC Dynamic List API
SILC Key Exchange Library
    SILC SKE API
    SILC SKE Status
SILC Client Library
    SILC Client API
SILC Crypto Library
    SILC Cipher API
    SILC Hash API
    SILC HMAC API
    SILC PKCS API
    SILC RNG API
Function silc_schedule_task_add

SYNOPSIS

    SilcTask silc_schedule_task_add(SilcSchedule schedule, uint32 fd,
                                    SilcTaskCallback callback, 
                                    void *context, 
                                    long seconds, long useconds, 
                                    SilcTaskType type, 
                                    SilcTaskPriority priority);

DESCRIPTION

    Registers a new task to the scheduler. This same function is used
    to register all types of tasks. The `type' argument tells what type
    of the task is. Note that when registering non-timeout tasks one
    should also pass 0 as timeout, as the timeout will be ignored anyway. 
    Also, note, that one cannot register timeout task with 0 timeout.
    There cannot be zero timeouts, passing zero means no timeout is used
    for the task and SILC_TASK_FD is used as default task type in
    this case.

    The `schedule' is the scheduler context. The `fd' is the file
    descriptor of the task. On WIN32 systems the `fd' is not actual
    file descriptor but some WIN32 event handle. On WIN32 system the `fd'
    may be a socket created by the SILC Net API routines, WSAEVENT object
    created by Winsock2 network routines or arbitrary WIN32 HANDLE object.
    On Unix systems the `fd' is always the real file descriptor.

    The `callback' is the task callback that will be called when some
    event occurs for this task. The `context' is sent as argument to
    the task `callback' function. For timeout tasks the callback is
    called after the specified timeout has elapsed.

    If the `type' is SILC_TASK_TIMEOUT then `seconds' and `useconds'
    may be non-zero.  Otherwise they should be zero. The `priority'
    indicates the priority of the task.

    It is always safe to call this function in any place. New tasks
    may be added also in task callbacks, and in multi-threaded environment
    in other threads as well.
   
>> SilcScheduleAPI
>> SilcSchedule
>> SilcTask
>> SilcTaskType
>> SilcTaskEvent
>> SilcTaskPriority
>> SilcTaskCallback
>> SILC_ALL_TASKS
>> SILC_TASK_CALLBACK
>> SILC_TASK_CALLBACK_GLOBAL
>> silc_schedule_init
>> silc_schedule_uninit
>> silc_schedule_stop
>> silc_schedule
>> silc_schedule_one
>> silc_schedule_wakeup
>> silc_schedule_task_add
>> silc_schedule_task_del
>> silc_schedule_task_del_by_fd
>> silc_schedule_task_del_by_callback
>> silc_schedule_task_del_by_context
>> silc_schedule_set_listen_fd
>> silc_schedule_unset_listen_fd