object.h

作者: 李潇南 | 来源:发表于2017-09-11 09:48 被阅读23次
OS_OBJECT_DECL_CLASS(dispatch_object);

void
_dispatch_object_validate(dispatch_object_t object) {
    void *isa = *(void* volatile*)(OS_OBJECT_BRIDGE void*)object;
    (void)isa;
}

typedef struct dispatch_object_s {
private:
    dispatch_object_s();
    ~dispatch_object_s();
    dispatch_object_s(const dispatch_object_s &);
    void operator=(const dispatch_object_s &);
} *dispatch_object_t;


typedef union {
    struct _os_object_s *_os_obj;
    struct dispatch_object_s *_do;
    struct dispatch_continuation_s *_dc;
    struct dispatch_queue_s *_dq;
    struct dispatch_queue_attr_s *_dqa;
    struct dispatch_group_s *_dg;
    struct dispatch_source_s *_ds;
    struct dispatch_mach_s *_dm;
    struct dispatch_mach_msg_s *_dmsg;
    struct dispatch_timer_aggregate_s *_dta;
    struct dispatch_source_attr_s *_dsa;
    struct dispatch_semaphore_s *_dsema;
    struct dispatch_data_s *_ddata;
    struct dispatch_io_s *_dchannel;
    struct dispatch_operation_s *_doperation;
    struct dispatch_disk_s *_ddisk;
} dispatch_object_t __attribute__((__transparent_union__));

 */
typedef void (^dispatch_block_t)(void);

void
dispatch_retain(dispatch_object_t object);

void
dispatch_release(dispatch_object_t object);

void *_Nullable
dispatch_get_context(dispatch_object_t object);

void
dispatch_set_context(dispatch_object_t object, void *_Nullable context);

void
dispatch_set_finalizer_f(dispatch_object_t object,
        dispatch_function_t _Nullable finalizer);

void
dispatch_activate(dispatch_object_t object);

void
dispatch_suspend(dispatch_object_t object);

void
dispatch_resume(dispatch_object_t object);

long
dispatch_wait(void *object, dispatch_time_t timeout);

void
dispatch_notify(void *object, dispatch_object_t queue,
        dispatch_block_t notification_block);

void
dispatch_cancel(void *object);

long
dispatch_testcancel(void *object);

__attribute__((__format__(printf,2,3)))
void
dispatch_debug(dispatch_object_t object, const char *message, ...);

__attribute__((__format__(printf,2,0)))
void
dispatch_debugv(dispatch_object_t object, const char *message, va_list ap);


相关文章

  • object.h

  • KVC 的发现

    废话不多收,直接上代码 .m文件 #import"Object.h" @inte...

  • dispatch object.h

    版本:iOS13.5 object.h dispatch其他文件通道 索引 增加调度对象object的引用计数di...

  • dispatch_object_t详解

    定义在object.h中,是dispatch系列数据结构的基础结构,类似于NSObject基类,如dispatch...

  • (二十五)静态成员

    static定义全局变量 static变量的几个要素 变量声明放在类体(Object.h)大括号内,不能加初始值 ...

  • dispatch_block_t详解

    概览 定义在object.h中,如上,就是一个参数和返回值都为空的block,苹果为其封装了一系列方法,定义在bl...

网友评论

      本文标题:object.h

      本文链接:https://www.haomeiwen.com/subject/iapxsxtx.html