Commit 020d9341 authored by Andrew Twyman's avatar Andrew Twyman

Merge pull request #186 from tiwoc/typetag-tests

Tests for typeid tags in the proxy cache map
parents 4fbab35f 963b3555
......@@ -10,3 +10,4 @@
@import "test.djinni"
@import "primtypes.djinni"
@import "constants.djinni"
@import "listeners.djinni"
first_listener = interface +o {
first();
}
second_listener = interface +o {
second();
}
listener_caller = interface +c {
static init(first_l: first_listener, second_l: second_listener): listener_caller;
callFirst();
callSecond();
}
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from listeners.djinni
#pragma once
namespace testsuite {
class FirstListener {
public:
virtual ~FirstListener() {}
virtual void first() = 0;
};
} // namespace testsuite
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from listeners.djinni
#pragma once
#include <memory>
namespace testsuite {
class FirstListener;
class SecondListener;
class ListenerCaller {
public:
virtual ~ListenerCaller() {}
static std::shared_ptr<ListenerCaller> init(const std::shared_ptr<FirstListener> & first_l, const std::shared_ptr<SecondListener> & second_l);
virtual void callFirst() = 0;
virtual void callSecond() = 0;
};
} // namespace testsuite
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from listeners.djinni
#pragma once
namespace testsuite {
class SecondListener {
public:
virtual ~SecondListener() {}
virtual void second() = 0;
};
} // namespace testsuite
......@@ -12,6 +12,7 @@ djinni/user_token.djinni
djinni/test.djinni
djinni/primtypes.djinni
djinni/constants.djinni
djinni/listeners.djinni
djinni/date.djinni
djinni/date.yaml
djinni/duration.djinni
......
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from listeners.djinni
package com.dropbox.djinni.test;
import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
public abstract class FirstListener {
public abstract void first();
}
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from listeners.djinni
package com.dropbox.djinni.test;
import java.util.concurrent.atomic.AtomicBoolean;
import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
public abstract class ListenerCaller {
public abstract void callFirst();
public abstract void callSecond();
@CheckForNull
public static native ListenerCaller init(@CheckForNull FirstListener firstL, @CheckForNull SecondListener secondL);
private static final class CppProxy extends ListenerCaller
{
private final long nativeRef;
private final AtomicBoolean destroyed = new AtomicBoolean(false);
private CppProxy(long nativeRef)
{
if (nativeRef == 0) throw new RuntimeException("nativeRef is zero");
this.nativeRef = nativeRef;
}
private native void nativeDestroy(long nativeRef);
public void destroy()
{
boolean destroyed = this.destroyed.getAndSet(true);
if (!destroyed) nativeDestroy(this.nativeRef);
}
protected void finalize() throws java.lang.Throwable
{
destroy();
super.finalize();
}
@Override
public void callFirst()
{
assert !this.destroyed.get() : "trying to use a destroyed object";
native_callFirst(this.nativeRef);
}
private native void native_callFirst(long _nativeRef);
@Override
public void callSecond()
{
assert !this.destroyed.get() : "trying to use a destroyed object";
native_callSecond(this.nativeRef);
}
private native void native_callSecond(long _nativeRef);
}
}
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from listeners.djinni
package com.dropbox.djinni.test;
import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
public abstract class SecondListener {
public abstract void second();
}
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from listeners.djinni
#include "NativeFirstListener.hpp" // my header
namespace djinni_generated {
NativeFirstListener::NativeFirstListener() : ::djinni::JniInterface<::testsuite::FirstListener, NativeFirstListener>() {}
NativeFirstListener::~NativeFirstListener() = default;
} // namespace djinni_generated
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from listeners.djinni
#pragma once
#include "djinni_support.hpp"
#include "first_listener.hpp"
namespace djinni_generated {
class NativeFirstListener final : ::djinni::JniInterface<::testsuite::FirstListener, NativeFirstListener> {
public:
using CppType = std::shared_ptr<::testsuite::FirstListener>;
using CppOptType = std::shared_ptr<::testsuite::FirstListener>;
using JniType = jobject;
using Boxed = NativeFirstListener;
~NativeFirstListener();
static CppType toCpp(JNIEnv* jniEnv, JniType j) { return ::djinni::JniClass<NativeFirstListener>::get()._fromJava(jniEnv, j); }
static ::djinni::LocalRef<JniType> fromCppOpt(JNIEnv* jniEnv, const CppOptType& c) { return {jniEnv, ::djinni::JniClass<NativeFirstListener>::get()._toJava(jniEnv, c)}; }
static ::djinni::LocalRef<JniType> fromCpp(JNIEnv* jniEnv, const CppType& c) { return fromCppOpt(jniEnv, c); }
private:
NativeFirstListener();
friend ::djinni::JniClass<NativeFirstListener>;
friend ::djinni::JniInterface<::testsuite::FirstListener, NativeFirstListener>;
};
} // namespace djinni_generated
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from listeners.djinni
#include "NativeListenerCaller.hpp" // my header
#include "NativeFirstListener.hpp"
#include "NativeListenerCaller.hpp"
#include "NativeSecondListener.hpp"
namespace djinni_generated {
NativeListenerCaller::NativeListenerCaller() : ::djinni::JniInterface<::testsuite::ListenerCaller, NativeListenerCaller>("com/dropbox/djinni/test/ListenerCaller$CppProxy") {}
NativeListenerCaller::~NativeListenerCaller() = default;
CJNIEXPORT void JNICALL Java_com_dropbox_djinni_test_ListenerCaller_00024CppProxy_nativeDestroy(JNIEnv* jniEnv, jobject /*this*/, jlong nativeRef)
{
try {
DJINNI_FUNCTION_PROLOGUE1(jniEnv, nativeRef);
delete reinterpret_cast<djinni::CppProxyHandle<::testsuite::ListenerCaller>*>(nativeRef);
} JNI_TRANSLATE_EXCEPTIONS_RETURN(jniEnv, )
}
CJNIEXPORT jobject JNICALL Java_com_dropbox_djinni_test_ListenerCaller_init(JNIEnv* jniEnv, jobject /*this*/, jobject j_firstL, jobject j_secondL)
{
try {
DJINNI_FUNCTION_PROLOGUE0(jniEnv);
auto r = ::testsuite::ListenerCaller::init(::djinni_generated::NativeFirstListener::toCpp(jniEnv, j_firstL),
::djinni_generated::NativeSecondListener::toCpp(jniEnv, j_secondL));
return ::djinni::release(::djinni_generated::NativeListenerCaller::fromCpp(jniEnv, r));
} JNI_TRANSLATE_EXCEPTIONS_RETURN(jniEnv, 0 /* value doesn't matter */)
}
CJNIEXPORT void JNICALL Java_com_dropbox_djinni_test_ListenerCaller_00024CppProxy_native_1callFirst(JNIEnv* jniEnv, jobject /*this*/, jlong nativeRef)
{
try {
DJINNI_FUNCTION_PROLOGUE1(jniEnv, nativeRef);
const auto& ref = ::djinni::objectFromHandleAddress<::testsuite::ListenerCaller>(nativeRef);
ref->callFirst();
} JNI_TRANSLATE_EXCEPTIONS_RETURN(jniEnv, )
}
CJNIEXPORT void JNICALL Java_com_dropbox_djinni_test_ListenerCaller_00024CppProxy_native_1callSecond(JNIEnv* jniEnv, jobject /*this*/, jlong nativeRef)
{
try {
DJINNI_FUNCTION_PROLOGUE1(jniEnv, nativeRef);
const auto& ref = ::djinni::objectFromHandleAddress<::testsuite::ListenerCaller>(nativeRef);
ref->callSecond();
} JNI_TRANSLATE_EXCEPTIONS_RETURN(jniEnv, )
}
} // namespace djinni_generated
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from listeners.djinni
#pragma once
#include "djinni_support.hpp"
#include "listener_caller.hpp"
namespace djinni_generated {
class NativeListenerCaller final : ::djinni::JniInterface<::testsuite::ListenerCaller, NativeListenerCaller> {
public:
using CppType = std::shared_ptr<::testsuite::ListenerCaller>;
using CppOptType = std::shared_ptr<::testsuite::ListenerCaller>;
using JniType = jobject;
using Boxed = NativeListenerCaller;
~NativeListenerCaller();
static CppType toCpp(JNIEnv* jniEnv, JniType j) { return ::djinni::JniClass<NativeListenerCaller>::get()._fromJava(jniEnv, j); }
static ::djinni::LocalRef<JniType> fromCppOpt(JNIEnv* jniEnv, const CppOptType& c) { return {jniEnv, ::djinni::JniClass<NativeListenerCaller>::get()._toJava(jniEnv, c)}; }
static ::djinni::LocalRef<JniType> fromCpp(JNIEnv* jniEnv, const CppType& c) { return fromCppOpt(jniEnv, c); }
private:
NativeListenerCaller();
friend ::djinni::JniClass<NativeListenerCaller>;
friend ::djinni::JniInterface<::testsuite::ListenerCaller, NativeListenerCaller>;
};
} // namespace djinni_generated
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from listeners.djinni
#include "NativeSecondListener.hpp" // my header
namespace djinni_generated {
NativeSecondListener::NativeSecondListener() : ::djinni::JniInterface<::testsuite::SecondListener, NativeSecondListener>() {}
NativeSecondListener::~NativeSecondListener() = default;
} // namespace djinni_generated
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from listeners.djinni
#pragma once
#include "djinni_support.hpp"
#include "second_listener.hpp"
namespace djinni_generated {
class NativeSecondListener final : ::djinni::JniInterface<::testsuite::SecondListener, NativeSecondListener> {
public:
using CppType = std::shared_ptr<::testsuite::SecondListener>;
using CppOptType = std::shared_ptr<::testsuite::SecondListener>;
using JniType = jobject;
using Boxed = NativeSecondListener;
~NativeSecondListener();
static CppType toCpp(JNIEnv* jniEnv, JniType j) { return ::djinni::JniClass<NativeSecondListener>::get()._fromJava(jniEnv, j); }
static ::djinni::LocalRef<JniType> fromCppOpt(JNIEnv* jniEnv, const CppOptType& c) { return {jniEnv, ::djinni::JniClass<NativeSecondListener>::get()._toJava(jniEnv, c)}; }
static ::djinni::LocalRef<JniType> fromCpp(JNIEnv* jniEnv, const CppType& c) { return fromCppOpt(jniEnv, c); }
private:
NativeSecondListener();
friend ::djinni::JniClass<NativeSecondListener>;
friend ::djinni::JniInterface<::testsuite::SecondListener, NativeSecondListener>;
};
} // namespace djinni_generated
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from listeners.djinni
#include "first_listener.hpp"
#include <memory>
static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file");
@protocol DBFirstListener;
namespace djinni_generated {
class FirstListener
{
public:
using CppType = std::shared_ptr<::testsuite::FirstListener>;
using CppOptType = std::shared_ptr<::testsuite::FirstListener>;
using ObjcType = id<DBFirstListener>;
using Boxed = FirstListener;
static CppType toCpp(ObjcType objc);
static ObjcType fromCppOpt(const CppOptType& cpp);
static ObjcType fromCpp(const CppType& cpp) { return fromCppOpt(cpp); }
private:
class ObjcProxy;
};
} // namespace djinni_generated
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from listeners.djinni
#import "DBFirstListener+Private.h"
#import "DBFirstListener.h"
#import "DJIObjcWrapperCache+Private.h"
static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file");
namespace djinni_generated {
class FirstListener::ObjcProxy final
: public ::testsuite::FirstListener
, public ::djinni::ObjcProxyCache::Handle<ObjcType>
{
public:
using Handle::Handle;
void first() override
{
@autoreleasepool {
[Handle::get() first];
}
}
};
} // namespace djinni_generated
namespace djinni_generated {
auto FirstListener::toCpp(ObjcType objc) -> CppType
{
if (!objc) {
return nullptr;
}
return ::djinni::get_objc_proxy<ObjcProxy>(objc);
}
auto FirstListener::fromCppOpt(const CppOptType& cpp) -> ObjcType
{
if (!cpp) {
return nil;
}
return dynamic_cast<ObjcProxy&>(*cpp).Handle::get();
}
} // namespace djinni_generated
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from listeners.djinni
#import <Foundation/Foundation.h>
@protocol DBFirstListener
- (void)first;
@end
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from listeners.djinni
#include "listener_caller.hpp"
#include <memory>
static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file");
@class DBListenerCaller;
namespace djinni_generated {
class ListenerCaller
{
public:
using CppType = std::shared_ptr<::testsuite::ListenerCaller>;
using CppOptType = std::shared_ptr<::testsuite::ListenerCaller>;
using ObjcType = DBListenerCaller*;
using Boxed = ListenerCaller;
static CppType toCpp(ObjcType objc);
static ObjcType fromCppOpt(const CppOptType& cpp);
static ObjcType fromCpp(const CppType& cpp) { return fromCppOpt(cpp); }
private:
class ObjcProxy;
};
} // namespace djinni_generated
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from listeners.djinni
#import "DBListenerCaller+Private.h"
#import "DBListenerCaller.h"
#import "DBFirstListener+Private.h"
#import "DBListenerCaller+Private.h"
#import "DBSecondListener+Private.h"
#import "DJICppWrapperCache+Private.h"
#import "DJIError.h"
#include <exception>
#include <utility>
static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file");
@interface DBListenerCaller ()
- (id)initWithCpp:(const std::shared_ptr<::testsuite::ListenerCaller>&)cppRef;
@end
@implementation DBListenerCaller {
::djinni::CppProxyCache::Handle<std::shared_ptr<::testsuite::ListenerCaller>> _cppRefHandle;
}
- (id)initWithCpp:(const std::shared_ptr<::testsuite::ListenerCaller>&)cppRef
{
if (self = [super init]) {
_cppRefHandle.assign(cppRef);
}
return self;
}
+ (nullable DBListenerCaller *)init:(nullable id<DBFirstListener>)firstL
secondL:(nullable id<DBSecondListener>)secondL {
try {
auto r = ::testsuite::ListenerCaller::init(::djinni_generated::FirstListener::toCpp(firstL),
::djinni_generated::SecondListener::toCpp(secondL));
return ::djinni_generated::ListenerCaller::fromCpp(r);
} DJINNI_TRANSLATE_EXCEPTIONS()
}
- (void)callFirst {
try {
_cppRefHandle.get()->callFirst();
} DJINNI_TRANSLATE_EXCEPTIONS()
}
- (void)callSecond {
try {
_cppRefHandle.get()->callSecond();
} DJINNI_TRANSLATE_EXCEPTIONS()
}
namespace djinni_generated {
auto ListenerCaller::toCpp(ObjcType objc) -> CppType
{
if (!objc) {
return nullptr;
}
return objc->_cppRefHandle.get();
}
auto ListenerCaller::fromCppOpt(const CppOptType& cpp) -> ObjcType
{
if (!cpp) {
return nil;
}
return ::djinni::get_cpp_proxy<DBListenerCaller>(cpp);
}
} // namespace djinni_generated
@end
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from listeners.djinni
#import <Foundation/Foundation.h>
@class DBListenerCaller;
@protocol DBFirstListener;
@protocol DBSecondListener;
@interface DBListenerCaller : NSObject
+ (nullable DBListenerCaller *)init:(nullable id<DBFirstListener>)firstL
secondL:(nullable id<DBSecondListener>)secondL;
- (void)callFirst;
- (void)callSecond;
@end
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from listeners.djinni
#include "second_listener.hpp"
#include <memory>
static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file");
@protocol DBSecondListener;
namespace djinni_generated {
class SecondListener
{
public:
using CppType = std::shared_ptr<::testsuite::SecondListener>;
using CppOptType = std::shared_ptr<::testsuite::SecondListener>;
using ObjcType = id<DBSecondListener>;
using Boxed = SecondListener;
static CppType toCpp(ObjcType objc);
static ObjcType fromCppOpt(const CppOptType& cpp);
static ObjcType fromCpp(const CppType& cpp) { return fromCppOpt(cpp); }
private:
class ObjcProxy;
};
} // namespace djinni_generated
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from listeners.djinni
#import "DBSecondListener+Private.h"
#import "DBSecondListener.h"
#import "DJIObjcWrapperCache+Private.h"
static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file");
namespace djinni_generated {
class SecondListener::ObjcProxy final
: public ::testsuite::SecondListener
, public ::djinni::ObjcProxyCache::Handle<ObjcType>
{
public:
using Handle::Handle;
void second() override
{
@autoreleasepool {
[Handle::get() second];
}
}
};
} // namespace djinni_generated
namespace djinni_generated {
auto SecondListener::toCpp(ObjcType objc) -> CppType
{
if (!objc) {
return nullptr;
}
return ::djinni::get_objc_proxy<ObjcProxy>(objc);
}
auto SecondListener::fromCppOpt(const CppOptType& cpp) -> ObjcType
{
if (!cpp) {
return nil;
}
return dynamic_cast<ObjcProxy&>(*cpp).Handle::get();
}
} // namespace djinni_generated
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from listeners.djinni
#import <Foundation/Foundation.h>
@protocol DBSecondListener
- (void)second;
@end
......@@ -4,6 +4,9 @@ djinni-output-temp/cpp/record_with_duration_and_derivings.cpp
djinni-output-temp/cpp/date_record.hpp
djinni-output-temp/cpp/date_record.cpp
djinni-output-temp/cpp/map_date_record.hpp
djinni-output-temp/cpp/first_listener.hpp
djinni-output-temp/cpp/second_listener.hpp
djinni-output-temp/cpp/listener_caller.hpp
djinni-output-temp/cpp/constant_record.hpp
djinni-output-temp/cpp/constants.hpp
djinni-output-temp/cpp/constants.cpp
......@@ -33,6 +36,9 @@ djinni-output-temp/java/TestDuration.java
djinni-output-temp/java/RecordWithDurationAndDerivings.java
djinni-output-temp/java/DateRecord.java
djinni-output-temp/java/MapDateRecord.java
djinni-output-temp/java/FirstListener.java
djinni-output-temp/java/SecondListener.java
djinni-output-temp/java/ListenerCaller.java
djinni-output-temp/java/ConstantRecord.java
djinni-output-temp/java/Constants.java
djinni-output-temp/java/ConstantsInterface.java
......@@ -61,6 +67,12 @@ djinni-output-temp/jni/NativeDateRecord.hpp
djinni-output-temp/jni/NativeDateRecord.cpp
djinni-output-temp/jni/NativeMapDateRecord.hpp
djinni-output-temp/jni/NativeMapDateRecord.cpp
djinni-output-temp/jni/NativeFirstListener.hpp
djinni-output-temp/jni/NativeFirstListener.cpp
djinni-output-temp/jni/NativeSecondListener.hpp
djinni-output-temp/jni/NativeSecondListener.cpp
djinni-output-temp/jni/NativeListenerCaller.hpp
djinni-output-temp/jni/NativeListenerCaller.cpp
djinni-output-temp/jni/NativeConstantRecord.hpp
djinni-output-temp/jni/NativeConstantRecord.cpp
djinni-output-temp/jni/NativeConstants.hpp
......@@ -107,6 +119,9 @@ djinni-output-temp/objc/DBDateRecord.h
djinni-output-temp/objc/DBDateRecord.mm
djinni-output-temp/objc/DBMapDateRecord.h
djinni-output-temp/objc/DBMapDateRecord.mm
djinni-output-temp/objc/DBFirstListener.h
djinni-output-temp/objc/DBSecondListener.h
djinni-output-temp/objc/DBListenerCaller.h
djinni-output-temp/objc/DBConstantRecord.h
djinni-output-temp/objc/DBConstantRecord.mm
djinni-output-temp/objc/DBConstants.h
......@@ -149,6 +164,12 @@ djinni-output-temp/objc/DBDateRecord+Private.h
djinni-output-temp/objc/DBDateRecord+Private.mm
djinni-output-temp/objc/DBMapDateRecord+Private.h
djinni-output-temp/objc/DBMapDateRecord+Private.mm
djinni-output-temp/objc/DBFirstListener+Private.h
djinni-output-temp/objc/DBFirstListener+Private.mm
djinni-output-temp/objc/DBSecondListener+Private.h
djinni-output-temp/objc/DBSecondListener+Private.mm
djinni-output-temp/objc/DBListenerCaller+Private.h
djinni-output-temp/objc/DBListenerCaller+Private.mm
djinni-output-temp/objc/DBConstantRecord+Private.h
djinni-output-temp/objc/DBConstantRecord+Private.mm
djinni-output-temp/objc/DBConstants+Private.h
......
#include "listener_caller.hpp"
#include "first_listener.hpp"
#include "second_listener.hpp"
namespace testsuite {
class ListenerCallerImpl : public ListenerCaller {
public:
ListenerCallerImpl(const std::shared_ptr<FirstListener> &firstListener, const std::shared_ptr<SecondListener> &secondListener)
: firstListener(firstListener), secondListener(secondListener)
{}
void callFirst() override {
firstListener->first();
}
void callSecond() override {
secondListener->second();
}
private:
std::shared_ptr<FirstListener> firstListener;
std::shared_ptr<SecondListener> secondListener;
};
std::shared_ptr<ListenerCaller> ListenerCaller::init(
const std::shared_ptr<FirstListener> &firstListener,
const std::shared_ptr<SecondListener> &secondListener) {
return std::make_shared<ListenerCallerImpl>(firstListener, secondListener);
}
} // namespace testsuite
#import <XCTest/XCTest.h>
#include "DBFirstListener.h"
#include "DBSecondListener.h"
#include "DBListenerCaller.h"
@interface Listener : NSObject <DBFirstListener, DBSecondListener>
@property bool firstCalled;
@property bool secondCalled;
@end
@implementation Listener
- (id) init {
self = [super init];
if (self != nil) {
self.firstCalled = FALSE;
self.secondCalled = FALSE;
}
return self;
}
- (void)first {
self.firstCalled = TRUE;
}
- (void)second {
self.secondCalled = TRUE;
}
@end
@interface DBListenerCallerTest : XCTestCase
@end
@implementation DBListenerCallerTest {
Listener *listener;
DBListenerCaller *caller;
}
- (void)setUp {
[super setUp];
listener = [Listener new];
caller = [DBListenerCaller init:listener secondL:listener];
}
- (void)testCallFirst {
[caller callFirst];
XCTAssert(listener.firstCalled);
}
- (void)testCallSecond {
[caller callSecond];
XCTAssert(listener.secondCalled);
}
@end
......@@ -7,6 +7,9 @@
objects = {
/* Begin PBXBuildFile section */
650CA05A1C2AB48E007ADDDB /* DBListenerCaller+Private.mm in Sources */ = {isa = PBXBuildFile; fileRef = 650CA0571C2AB48E007ADDDB /* DBListenerCaller+Private.mm */; };
650CA05E1C2AB5AB007ADDDB /* ListenerCaller.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 650CA05D1C2AB5AB007ADDDB /* ListenerCaller.cpp */; };
650CA0601C2AB6DB007ADDDB /* DBListenerCallerTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 650CA05B1C2AB524007ADDDB /* DBListenerCallerTest.m */; };
6536CD7419A6C96C00DD7715 /* DBClientInterfaceImpl.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6536CD7219A6C96C00DD7715 /* DBClientInterfaceImpl.mm */; };
6536CD7819A6C98800DD7715 /* cpp_exception_impl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6536CD7619A6C98800DD7715 /* cpp_exception_impl.cpp */; };
6536CD8D19A6C9A800DD7715 /* DBClientInterfaceTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6536CD7A19A6C99800DD7715 /* DBClientInterfaceTests.mm */; };
......@@ -17,6 +20,8 @@
6536CD9219A6C9A800DD7715 /* DBRecordWithDerivingsCppTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6536CD7F19A6C99800DD7715 /* DBRecordWithDerivingsCppTests.mm */; };
6536CD9319A6C9A800DD7715 /* DBRecordWithDerivingsObjcTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6536CD8019A6C99800DD7715 /* DBRecordWithDerivingsObjcTests.mm */; };
6536CD9419A6C9A800DD7715 /* DBSetRecordTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6536CD8119A6C99800DD7715 /* DBSetRecordTests.mm */; };
655168421C404B81003682A4 /* DBFirstListener+Private.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6551683E1C404B81003682A4 /* DBFirstListener+Private.mm */; };
655168431C404B81003682A4 /* DBSecondListener+Private.mm in Sources */ = {isa = PBXBuildFile; fileRef = 655168411C404B81003682A4 /* DBSecondListener+Private.mm */; };
65868B4E1989FE4200D60EEE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 65868B4D1989FE4200D60EEE /* Foundation.framework */; };
65868B5C1989FE4200D60EEE /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 65868B5B1989FE4200D60EEE /* XCTest.framework */; };
65868B5D1989FE4200D60EEE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 65868B4D1989FE4200D60EEE /* Foundation.framework */; };
......@@ -127,6 +132,12 @@
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
650CA04E1C2AB460007ADDDB /* listener_caller.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = listener_caller.hpp; sourceTree = "<group>"; };
650CA0551C2AB48E007ADDDB /* DBListenerCaller.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DBListenerCaller.h; sourceTree = "<group>"; };
650CA0561C2AB48E007ADDDB /* DBListenerCaller+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "DBListenerCaller+Private.h"; sourceTree = "<group>"; };
650CA0571C2AB48E007ADDDB /* DBListenerCaller+Private.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "DBListenerCaller+Private.mm"; sourceTree = "<group>"; };
650CA05B1C2AB524007ADDDB /* DBListenerCallerTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DBListenerCallerTest.m; sourceTree = "<group>"; };
650CA05D1C2AB5AB007ADDDB /* ListenerCaller.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ListenerCaller.cpp; sourceTree = "<group>"; };
6536CD6A19A6C82200DD7715 /* DJIError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DJIError.h; sourceTree = "<group>"; };
6536CD6C19A6C82200DD7715 /* DJIProxyCaches.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DJIProxyCaches.mm; sourceTree = "<group>"; };
6536CD6D19A6C82200DD7715 /* DJICppWrapperCache+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "DJICppWrapperCache+Private.h"; sourceTree = "<group>"; };
......@@ -145,6 +156,14 @@
6536CD8119A6C99800DD7715 /* DBSetRecordTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DBSetRecordTests.mm; sourceTree = "<group>"; };
6536CD8319A6C99800DD7715 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
6536CD8419A6C99800DD7715 /* DjinniObjcTestTests-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "DjinniObjcTestTests-Info.plist"; sourceTree = "<group>"; };
6551683A1C404B58003682A4 /* first_listener.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = first_listener.hpp; sourceTree = "<group>"; };
6551683B1C404B58003682A4 /* second_listener.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = second_listener.hpp; sourceTree = "<group>"; };
6551683C1C404B81003682A4 /* DBFirstListener.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DBFirstListener.h; sourceTree = "<group>"; };
6551683D1C404B81003682A4 /* DBFirstListener+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "DBFirstListener+Private.h"; sourceTree = "<group>"; };
6551683E1C404B81003682A4 /* DBFirstListener+Private.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "DBFirstListener+Private.mm"; sourceTree = "<group>"; };
6551683F1C404B81003682A4 /* DBSecondListener.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DBSecondListener.h; sourceTree = "<group>"; };
655168401C404B81003682A4 /* DBSecondListener+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "DBSecondListener+Private.h"; sourceTree = "<group>"; };
655168411C404B81003682A4 /* DBSecondListener+Private.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "DBSecondListener+Private.mm"; sourceTree = "<group>"; };
65868B4A1989FE4200D60EEE /* libDjinniObjcTest.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libDjinniObjcTest.a; sourceTree = BUILT_PRODUCTS_DIR; };
65868B4D1989FE4200D60EEE /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
65868B5A1989FE4200D60EEE /* DjinniObjcTestTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DjinniObjcTestTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
......@@ -353,6 +372,7 @@
6536CD7719A6C98800DD7715 /* cpp_exception_impl.hpp */,
CFC5DA101B15B5FB00BF2DF8 /* Duration-jni.hpp */,
CFC5D9FA1B152D4400BF2DF8 /* Duration-objc.hpp */,
650CA05D1C2AB5AB007ADDDB /* ListenerCaller.cpp */,
A278D45219BA3601006FD937 /* test_helpers.cpp */,
CFC5D9FB1B152E4300BF2DF8 /* TranslateDuration.cpp */,
);
......@@ -368,6 +388,7 @@
6536CD7B19A6C99800DD7715 /* DBCppExceptionTests.mm */,
CFEFA65B1B25CFEA008EE2D0 /* DBDateRecordTests.mm */,
CFC5D9F11B15276900BF2DF8 /* DBDurationTests.m */,
650CA05B1C2AB524007ADDDB /* DBListenerCallerTest.m */,
6536CD7C19A6C99800DD7715 /* DBMapRecordTests.mm */,
6536CD7D19A6C99800DD7715 /* DBNestedCollectionTests.mm */,
6536CD7E19A6C99800DD7715 /* DBPrimitiveListTests.mm */,
......@@ -471,6 +492,12 @@
CFAED8721B54291900E3B8A3 /* DBEmptyRecord.mm */,
CFAED8731B54291900E3B8A3 /* DBEmptyRecord+Private.h */,
CFAED8741B54291900E3B8A3 /* DBEmptyRecord+Private.mm */,
6551683C1C404B81003682A4 /* DBFirstListener.h */,
6551683D1C404B81003682A4 /* DBFirstListener+Private.h */,
6551683E1C404B81003682A4 /* DBFirstListener+Private.mm */,
650CA0551C2AB48E007ADDDB /* DBListenerCaller.h */,
650CA0561C2AB48E007ADDDB /* DBListenerCaller+Private.h */,
650CA0571C2AB48E007ADDDB /* DBListenerCaller+Private.mm */,
A242492F1AF192E0003BF8F0 /* DBMapDateRecord.h */,
A248501E1AF96EBC00AFE907 /* DBMapDateRecord.mm */,
A242492E1AF192E0003BF8F0 /* DBMapDateRecord+Private.h */,
......@@ -503,6 +530,9 @@
A24850241AF96EBC00AFE907 /* DBRecordWithNestedDerivings.mm */,
A24249401AF192E0003BF8F0 /* DBRecordWithNestedDerivings+Private.h */,
A238CA881AF84B7100CDDCE5 /* DBRecordWithNestedDerivings+Private.mm */,
6551683F1C404B81003682A4 /* DBSecondListener.h */,
655168401C404B81003682A4 /* DBSecondListener+Private.h */,
655168411C404B81003682A4 /* DBSecondListener+Private.mm */,
A24249441AF192E0003BF8F0 /* DBSetRecord.h */,
A24850251AF96EBC00AFE907 /* DBSetRecord.mm */,
A24249431AF192E0003BF8F0 /* DBSetRecord+Private.h */,
......@@ -544,6 +574,8 @@
CFC5D9E11B1513D800BF2DF8 /* extern_interface_2.hpp */,
CFC5D9CE1B15105100BF2DF8 /* extern_record_with_derivings.cpp */,
CFC5D9CF1B15105100BF2DF8 /* extern_record_with_derivings.hpp */,
6551683A1C404B58003682A4 /* first_listener.hpp */,
650CA04E1C2AB460007ADDDB /* listener_caller.hpp */,
A24249671AF192FC003BF8F0 /* map_date_record.hpp */,
A24249681AF192FC003BF8F0 /* map_list_record.hpp */,
A24249691AF192FC003BF8F0 /* map_record.hpp */,
......@@ -555,6 +587,7 @@
CFC5DA0D1B15330000BF2DF8 /* record_with_duration_and_derivings.hpp */,
A242496E1AF192FC003BF8F0 /* record_with_nested_derivings.cpp */,
A242496F1AF192FC003BF8F0 /* record_with_nested_derivings.hpp */,
6551683B1C404B58003682A4 /* second_listener.hpp */,
A24249701AF192FC003BF8F0 /* set_record.hpp */,
CFC5DA031B15319600BF2DF8 /* test_duration.hpp */,
A24249711AF192FC003BF8F0 /* test_helpers.hpp */,
......@@ -650,6 +683,7 @@
B5D8FC361C23E2F40045ADCF /* DBConstantRecord.mm in Sources */,
A24850311AF96EBC00AFE907 /* DBSetRecord.mm in Sources */,
CFAED8761B54291900E3B8A3 /* DBEmptyRecord+Private.mm in Sources */,
655168421C404B81003682A4 /* DBFirstListener+Private.mm in Sources */,
A24850271AF96EBC00AFE907 /* DBClientReturnedRecord.mm in Sources */,
CFC5D9D61B15106400BF2DF8 /* DBExternRecordWithDerivings.mm in Sources */,
CFC5DA0E1B15330000BF2DF8 /* record_with_duration_and_derivings.cpp in Sources */,
......@@ -675,6 +709,7 @@
CFFD588B1B019E79001E10B6 /* DBClientInterface+Private.mm in Sources */,
B52DA5691B103F72005CE75F /* DBAssortedPrimitives.mm in Sources */,
A24850281AF96EBC00AFE907 /* DBConstants.mm in Sources */,
655168431C404B81003682A4 /* DBSecondListener+Private.mm in Sources */,
CFFD58B71B041BFD001E10B6 /* constants_interface.cpp in Sources */,
CFAED8751B54291900E3B8A3 /* DBEmptyRecord.mm in Sources */,
A238CA9A1AF84B7100CDDCE5 /* DBNestedCollection+Private.mm in Sources */,
......@@ -683,6 +718,7 @@
B5E9C9401C1F9E9E0073C123 /* DBReverseClientInterface+Private.mm in Sources */,
A238CA961AF84B7100CDDCE5 /* DBMapListRecord+Private.mm in Sources */,
A238CA9C1AF84B7100CDDCE5 /* DBPrimitiveList+Private.mm in Sources */,
650CA05A1C2AB48E007ADDDB /* DBListenerCaller+Private.mm in Sources */,
A24249761AF192FC003BF8F0 /* record_with_nested_derivings.cpp in Sources */,
CFC5DA081B1532F600BF2DF8 /* DBRecordWithDurationAndDerivings.mm in Sources */,
A248502D1AF96EBC00AFE907 /* DBNestedCollection.mm in Sources */,
......@@ -696,6 +732,7 @@
A238CA901AF84B7100CDDCE5 /* DBConstants+Private.mm in Sources */,
CFC5D9EA1B1513E800BF2DF8 /* DBExternInterface2+Private.mm in Sources */,
CFC5DA011B15318B00BF2DF8 /* DBTestDuration+Private.mm in Sources */,
650CA05E1C2AB5AB007ADDDB /* ListenerCaller.cpp in Sources */,
A248502A1AF96EBC00AFE907 /* DBMapDateRecord.mm in Sources */,
A238CA8E1AF84B7100CDDCE5 /* DBClientReturnedRecord+Private.mm in Sources */,
B52DA56B1B103F75005CE75F /* DBAssortedPrimitives+Private.mm in Sources */,
......@@ -727,6 +764,7 @@
CFC5DA021B15318B00BF2DF8 /* DBTestDuration+Private.mm in Sources */,
CFFD58B41B041BD9001E10B6 /* DBConstantsInterface+Private.mm in Sources */,
CFFD58901B019E79001E10B6 /* DBTestHelpers+Private.mm in Sources */,
650CA0601C2AB6DB007ADDDB /* DBListenerCallerTest.m in Sources */,
CFFD58921B019E79001E10B6 /* DBUserToken+Private.mm in Sources */,
CFFD58B21B041BD9001E10B6 /* DBConstantsInterface.mm in Sources */,
6536CD9319A6C9A800DD7715 /* DBRecordWithDerivingsObjcTests.mm in Sources */,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment