alhc 0.2.2

Async Lightweight HTTP Client: A async http client library that using system library to reduce binary size if possible. (Currently under heavy development)
Documentation
#![allow(unused)]
#![allow(non_snake_case)]
#![allow(non_upper_case_globals)]

use std::ffi::c_void;

use core_foundation::{
    base::{Boolean, CFOptionFlags},
    error::CFErrorRef,
    mach_port::CFIndex,
    runloop::{CFRunLoopMode, CFRunLoopRef},
    string::CFStringRef,
    url::CFURLRef,
};

use super::{
    cf_network::{CFReadStreamRef, CFStreamClientContext},
    cf_stream::CFStreamEventType,
};

pub type CFReadStreamClientCallBack = ::core::option::Option<
    unsafe extern "C" fn(
        stream: CFReadStreamRef,
        event_type: CFStreamEventType,
        clientCallBackInfo: *mut c_void,
    ),
>;

#[link(name = "CoreFoundation", kind = "framework")]
extern "C" {
    pub fn CFReadStreamSetClient(
        stream: CFReadStreamRef,
        streamEvents: CFOptionFlags,
        clientCB: CFReadStreamClientCallBack,
        clientContext: *const CFStreamClientContext,
    ) -> Boolean;
    pub fn CFReadStreamGetStatus(stream: CFReadStreamRef) -> CFIndex;
    pub fn CFReadStreamScheduleWithRunLoop(
        stream: CFReadStreamRef,
        runLoop: CFRunLoopRef,
        runLoopMode: CFRunLoopMode,
    );
    pub fn CFReadStreamUnscheduleFromRunLoop(
        stream: CFReadStreamRef,
        runLoop: CFRunLoopRef,
        runLoopMode: CFRunLoopMode,
    );
    pub fn CFReadStreamOpen(stream: CFReadStreamRef) -> Boolean;
    pub fn CFReadStreamClose(stream: CFReadStreamRef) -> Boolean;
    pub fn CFReadStreamHasBytesAvailable(stream: CFReadStreamRef) -> Boolean;
    pub fn CFReadStreamCopyError(stream: CFReadStreamRef) -> CFErrorRef;
    pub fn CFReadStreamRead(
        stream: CFReadStreamRef,
        buffer: *mut u8,
        bufferLength: CFIndex,
    ) -> CFIndex;
    pub fn CFReadStreamSetProperty(
        stream: CFReadStreamRef,
        key: CFStringRef,
        value: *const c_void,
    ) -> Boolean;
}