X-Git-Url: https://git.saurik.com/apple/libdispatch.git/blobdiff_plain/00abc8588ccfc6d910a4ae103bbb45112e917d4c..e85f44377864e428703fb21503e29f422c11288f:/src/base.h?ds=inline diff --git a/src/base.h b/src/base.h deleted file mode 100644 index 3799a9a..0000000 --- a/src/base.h +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Copyright (c) 2008-2009 Apple Inc. All rights reserved. - * - * @APPLE_APACHE_LICENSE_HEADER_START@ - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * @APPLE_APACHE_LICENSE_HEADER_END@ - */ - -#ifndef __DISPATCH_BASE__ -#define __DISPATCH_BASE__ - -#ifndef __DISPATCH_INDIRECT__ -#error "Please #include instead of this file directly." -#endif - -#ifdef __cplusplus -/* - * Dispatch objects are NOT C++ objects. Nevertheless, we can at least keep C++ - * aware of type compatibility. - */ -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; -#else -typedef union { - 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_source_attr_s *_dsa; - struct dispatch_semaphore_s *_dsema; -} dispatch_object_t __attribute__((transparent_union)); -#endif - -typedef void (*dispatch_function_t)(void *); - -#ifdef __cplusplus -#define DISPATCH_DECL(name) typedef struct name##_s : public dispatch_object_s {} *name##_t; -#else -/*! @parseOnly */ -#define DISPATCH_DECL(name) typedef struct name##_s *name##_t; -#endif - -#ifdef __GNUC__ -#define DISPATCH_NORETURN __attribute__((__noreturn__)) -#define DISPATCH_NOTHROW __attribute__((__nothrow__)) -#define DISPATCH_NONNULL1 __attribute__((__nonnull__(1))) -#define DISPATCH_NONNULL2 __attribute__((__nonnull__(2))) -#define DISPATCH_NONNULL3 __attribute__((__nonnull__(3))) -#define DISPATCH_NONNULL4 __attribute__((__nonnull__(4))) -#define DISPATCH_NONNULL5 __attribute__((__nonnull__(5))) -#define DISPATCH_NONNULL6 __attribute__((__nonnull__(6))) -#define DISPATCH_NONNULL7 __attribute__((__nonnull__(7))) -#if __clang__ -// rdar://problem/6857843 -#define DISPATCH_NONNULL_ALL -#else -#define DISPATCH_NONNULL_ALL __attribute__((__nonnull__)) -#endif -#define DISPATCH_SENTINEL __attribute__((__sentinel__)) -#define DISPATCH_PURE __attribute__((__pure__)) -#define DISPATCH_WARN_RESULT __attribute__((__warn_unused_result__)) -#define DISPATCH_MALLOC __attribute__((__malloc__)) -#else -/*! @parseOnly */ -#define DISPATCH_NORETURN -/*! @parseOnly */ -#define DISPATCH_NOTHROW -/*! @parseOnly */ -#define DISPATCH_NONNULL1 -/*! @parseOnly */ -#define DISPATCH_NONNULL2 -/*! @parseOnly */ -#define DISPATCH_NONNULL3 -/*! @parseOnly */ -#define DISPATCH_NONNULL4 -/*! @parseOnly */ -#define DISPATCH_NONNULL5 -/*! @parseOnly */ -#define DISPATCH_NONNULL6 -/*! @parseOnly */ -#define DISPATCH_NONNULL7 -/*! @parseOnly */ -#define DISPATCH_NONNULL_ALL -/*! @parseOnly */ -#define DISPATCH_SENTINEL -/*! @parseOnly */ -#define DISPATCH_PURE -/*! @parseOnly */ -#define DISPATCH_WARN_RESULT -/*! @parseOnly */ -#define DISPATCH_MALLOC -#endif - -#endif