summaryrefslogtreecommitdiff
path: root/platform/darwin/src/MGLFoundation_Private.h
blob: db81bde3deead1449fb1828892f588be9ff14b25 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#import "MGLFoundation.h"

#include <mbgl/util/run_loop.hpp>

void MGLInitializeRunLoop();

/* Using a compound statement (GNU Extension, supported by clang) */
#define MGL_OBJC_DYNAMIC_CAST(object, type) \
    ({ \
        __typeof__( object ) temp##__LINE__ = (object); \
        (type *)([temp##__LINE__ isKindOfClass:[type class]] ? temp##__LINE__ : nil); \
    })

#define MGL_OBJC_DYNAMIC_CAST_AS_PROTOCOL(object, proto) \
    ({ \
        __typeof__( object ) temp##__LINE__ = (object); \
        (id< proto >)([temp##__LINE__ conformsToProtocol:@protocol( proto )] ? temp##__LINE__ : nil); \
    })