Back to Swoole Src

API

docs/API.md

6.2.03.3 KB
Original Source

Basic C API

These functions enable you to obtain the spool version and insert some hooks into the spool, such as SW_GLOBAL_HOOK_BEFORE_SERVER_START. The set function is called when the server starts.

The header file is swoole_api.h. The symbol of this file will export the function name in C format, not C++. Similarly, functions in the Coroutine API are also exported as C functions.

  • swoole_version() Get the current version of Swoole
  • swoole_add_hook() Add a hook function to the specified hook point

Coroutine C API

These functions are similar to the C function in unistd.h, for example, read corresponds to swoole_coroutine_read() in the coroutine environment.

In addition to the POSIX API like functions, some additional functions can be provided. For example, the swoole_coroutine_get_current_id() can obtain the ID of the coroutine, which is equivalent to the getpid() of the process.

The function similar to creating a process or thread is swoole_coroutine_create(), which can be used to create a coroutine.

The header file is swoole_coroutine_api.h.

C MACRO HOOK

Use C/C++ macros to automatically replace read/write and other synchronously blocked unistd C functions as non blocking coroutine functions (starts with swoole_coroutine_). This method enables C++ network client code to be used in the swoole coroutine environment.

Including network and file system:

  • swoole_file_hook.h Replace file system related functions, such as open(), mkdir(), etc
  • swoole_socket_hook.h Replace network related functions, such as socket(), recv(), send(), etc

C++ API

In addition to the above header files, others are only used in C++ code.

Independent header file

These header files have no dependencies. They can only contain C standard library header files, C++ header files, and platform related or basic library header files.

  • swoole_config.h: Buffer size, string, constant, etc
  • swoole_version.h: Swoole version information
  • swoole_atomic.h: Atomic operations
  • swoole_asm_context.h: Assembly context switching
  • swoole_util.h: Common utility functions
  • swoole_log.h: Log related functions
  • swoole_memory.h: Memory pool related functions
  • swoole_base64.h: Base64 encoding and decoding
  • swoole_error.h: Error code related functions
  • and more ...

Core header file

  • swoole.h: Core class and function declarations
  • swoole_string.h: String class and function declarations
  • swoole_coroutine.h: Coroutine class and function declarations
  • swoole_async.h: Asynchronous IO class and function declarations
  • swoole_process_pool.h: Process pool class and function declarations
  • swoole_signal.h: Signal handling class and function declarations
  • swoole_timer.h: Timer class and function declarations
  • swoole_reactor.h: Reactor class and function declarations
  • and more ...

Facade header file

These header files depend on the core header files and provide a higher level of abstraction.

  • swoole_server.h: Server side class and function declarations
  • swoole_client.h: Client side class and function declarations
  • swoole_coroutine_socket.h: Coroutine socket class and function declarations
  • swoole_coroutine_system.h: Coroutine system API class and function declarations
  • swoole_coroutine_channel.h: Coroutine channel class and function declarations