Copyright © 2001 - 2002 SILC Project SILC Project Website | SILC Toolkit Reference Manual

SILC Toolkit Reference Manual SILC Core Library SILC Authentication Interface SILC Channel Interface SILC Command Interface SILC ID Interface SILC ID Cache Interface SILC Modes SILC Notify Interface SILC Argument Interface SILC Private Message Interface Packet Protocol Interface SILC Math Library SILC MP Interface SILC Math Interface SILC SFTP Library SILC SFTP Interface SFTP Filesystems Interface SILC Utility Library SILC Buffer Interface SILC Buffer Format Interface SILC Hash Table Interface SILC Logging Interface SILC Memory Interface SILC Mutex Interface SILC Thread Interface SILC Network Interface SILC Schedule Interface SILC Socket Interface SILC Protocol Interface SILC Config Interface SILC File Util Interface SILC Util Interface SILC List Interface SILC Dynamic List Interface SILC Zip API SILC Key Exchange Library SILC SKE Interface SKE Status Types SKE Diffie Hellman Groups SKE Payloads SILC Client Library Using SILC Client Library Client Library Interface SILC Crypto Library Introduction to SILC RNG SILC RNG Interface SILC Cipher API SILC Hash API SILC HMAC API SILC PKCS API Resource Links SILC Project Website SILC Protocol Documentation SILC White Paper SILC FAQ
Function silc_schedule_task_add SYNOPSIS
        SilcTask silc_schedule_task_add(SilcSchedule schedule, SilcUInt32 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_reinit 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

Copyright © 2001 - 2002 SILC Project SILC Project Website | SILC Toolkit Reference Manual