Commit 3a24d6fc authored by Andrew Twyman's avatar Andrew Twyman Committed by GitHub

Merge pull request #259 from dropbox/AT/WIP/EnumFix

Fix enum compile issue in C++11
parents f4ce7601 22fb0167
......@@ -5,9 +5,9 @@
#import "TXSSortItems.h"
#import "DJICppWrapperCache+Private.h"
#import "DJIError.h"
#import "DJIMarshal+Private.h"
#import "TXSItemList+Private.h"
#import "TXSSortItems+Private.h"
#import "TXSSortOrder+Private.h"
#import "TXSTextboxListener+Private.h"
#include <exception>
#include <utility>
......
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from example.djinni
#include "sort_order.hpp"
#import "DJIMarshal+Private.h"
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false" />
</project>
<component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false">
<file url="PROJECT" charset="UTF-8" />
</component>
</project>
\ No newline at end of file
......@@ -13,6 +13,12 @@
<option name="sbtVersion" value="0.13.5" />
<option name="useAutoImport" value="true" />
<option name="useOurOwnAutoImport" value="true" />
<option name="myModules">
<set>
<option value="$PROJECT_DIR$" />
<option value="$PROJECT_DIR$/project" />
</set>
</option>
</SbtProjectSettings>
</option>
</component>
......
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="" />
<mapping directory="$PROJECT_DIR$/.." vcs="Git" />
</component>
</project>
\ No newline at end of file
......@@ -49,7 +49,11 @@ class ObjcppGenerator(spec: Spec) extends BaseObjcGenerator(spec) {
private def arcAssert(w: IndentWriter) = w.wl("static_assert(__has_feature(objc_arc), " + q("Djinni requires ARC to be enabled for this file") + ");")
override def generateEnum(origin: String, ident: Ident, doc: Doc, e: Enum) {
// No generation required
var imports = mutable.TreeSet[String]()
imports.add("#import " + q(spec.objcBaseLibIncludePrefix + "DJIMarshal+Private.h"))
imports.add("!#include " + q(spec.objcppIncludeCppPrefix + spec.cppFileIdentStyle(ident) + "." + spec.cppHeaderExt))
writeObjcFile(objcppMarshal.privateHeaderName(ident.name), origin, imports, w => {} )
}
def headerName(ident: String): String = idObjc.ty(ident) + "." + spec.objcHeaderExt
......
......@@ -34,9 +34,7 @@ class ObjcppMarshal(spec: Spec) extends Marshal(spec) {
case o: MOpaque =>
List(ImportRef(q(spec.objcBaseLibIncludePrefix + "DJIMarshal+Private.h")))
case d: MDef => d.defType match {
case DEnum =>
List(ImportRef(q(spec.objcBaseLibIncludePrefix + "DJIMarshal+Private.h")))
case DInterface =>
case DEnum | DInterface =>
List(ImportRef(include(m)))
case DRecord =>
val r = d.body.asInstanceOf[Record]
......@@ -48,10 +46,7 @@ class ObjcppMarshal(spec: Spec) extends Marshal(spec) {
}
def include(m: Meta) = m match {
case d: MDef => d.defType match {
case DEnum => q(spec.objcBaseLibIncludePrefix + "DJIMarshal+Private.h")
case _ => q(spec.objcppIncludePrefix + privateHeaderName(d.name))
}
case d: MDef => q(spec.objcppIncludePrefix + privateHeaderName(d.name))
case _ => throw new AssertionError("not applicable")
}
......
......@@ -11,6 +11,18 @@ color = enum {
violet;
}
opt_color_record = record {
my_color: optional<color>;
enum_usage_record = record {
e: color;
o: optional<color>;
l: list<color>;
s: set<color>;
m: map<color, color>;
}
enum_usage_interface = interface +c +j +o {
e(e: color): color;
o(o: optional<color>): optional<color>;
l(l: list<color>): list<color>;
s(s: set<color>): set<color>;
m(m: map<color, color>): map<color, color>;
}
......@@ -3,8 +3,8 @@
#pragma once
#include "../../handwritten-src/cpp/optional.hpp"
#include <cstdint>
#include <experimental/optional>
#include <utility>
namespace testsuite {
......
......@@ -3,8 +3,8 @@
#pragma once
#include "../../handwritten-src/cpp/optional.hpp"
#include <cstdint>
#include <experimental/optional>
#include <memory>
#include <string>
#include <vector>
......
......@@ -3,8 +3,8 @@
#pragma once
#include "../../handwritten-src/cpp/optional.hpp"
#include <cstdint>
#include <experimental/optional>
#include <string>
#include <utility>
......
......@@ -3,9 +3,9 @@
#pragma once
#include "../../handwritten-src/cpp/optional.hpp"
#include "constant_record.hpp"
#include <cstdint>
#include <experimental/optional>
#include <string>
#include <utility>
......
......@@ -3,8 +3,8 @@
#pragma once
#include "../../handwritten-src/cpp/optional.hpp"
#include <cstdint>
#include <experimental/optional>
#include <string>
namespace testsuite {
......
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from enum.djinni
#pragma once
#include "../../handwritten-src/cpp/optional.hpp"
#include <unordered_map>
#include <unordered_set>
#include <vector>
namespace testsuite {
enum class color;
class EnumUsageInterface {
public:
virtual ~EnumUsageInterface() {}
virtual color e(color e) = 0;
virtual std::experimental::optional<color> o(std::experimental::optional<color> o) = 0;
virtual std::vector<color> l(const std::vector<color> & l) = 0;
virtual std::unordered_set<color> s(const std::unordered_set<color> & s) = 0;
virtual std::unordered_map<color, color> m(const std::unordered_map<color, color> & m) = 0;
};
} // namespace testsuite
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from enum.djinni
#pragma once
#include "../../handwritten-src/cpp/optional.hpp"
#include "color.hpp"
#include <unordered_map>
#include <unordered_set>
#include <utility>
#include <vector>
namespace testsuite {
struct EnumUsageRecord final {
color e;
std::experimental::optional<color> o;
std::vector<color> l;
std::unordered_set<color> s;
std::unordered_map<color, color> m;
EnumUsageRecord(color e_,
std::experimental::optional<color> o_,
std::vector<color> l_,
std::unordered_set<color> s_,
std::unordered_map<color, color> m_)
: e(std::move(e_))
, o(std::move(o_))
, l(std::move(l_))
, s(std::move(s_))
, m(std::move(m_))
{}
};
} // namespace testsuite
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from enum.djinni
#pragma once
#include "color.hpp"
#include <experimental/optional>
#include <utility>
namespace testsuite {
struct OptColorRecord final {
std::experimental::optional<color> my_color;
OptColorRecord(std::experimental::optional<color> my_color_)
: my_color(std::move(my_color_))
{}
};
} // namespace testsuite
......@@ -3,7 +3,7 @@
#pragma once
#include <experimental/optional>
#include "../../handwritten-src/cpp/optional.hpp"
#include <memory>
#include <string>
......
......@@ -3,9 +3,9 @@
#pragma once
#include "../../handwritten-src/cpp/optional.hpp"
#include <chrono>
#include <cstdint>
#include <experimental/optional>
#include <string>
namespace testsuite {
......
......@@ -3,8 +3,8 @@
#pragma once
#include "../../handwritten-src/cpp/optional.hpp"
#include <cstdint>
#include <experimental/optional>
#include <memory>
#include <string>
#include <unordered_map>
......
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from enum.djinni
package com.dropbox.djinni.test;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.concurrent.atomic.AtomicBoolean;
import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
public abstract class EnumUsageInterface {
@Nonnull
public abstract Color e(@Nonnull Color e);
@CheckForNull
public abstract Color o(@CheckForNull Color o);
@Nonnull
public abstract ArrayList<Color> l(@Nonnull ArrayList<Color> l);
@Nonnull
public abstract HashSet<Color> s(@Nonnull HashSet<Color> s);
@Nonnull
public abstract HashMap<Color, Color> m(@Nonnull HashMap<Color, Color> m);
private static final class CppProxy extends EnumUsageInterface
{
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 Color e(Color e)
{
assert !this.destroyed.get() : "trying to use a destroyed object";
return native_e(this.nativeRef, e);
}
private native Color native_e(long _nativeRef, Color e);
@Override
public Color o(Color o)
{
assert !this.destroyed.get() : "trying to use a destroyed object";
return native_o(this.nativeRef, o);
}
private native Color native_o(long _nativeRef, Color o);
@Override
public ArrayList<Color> l(ArrayList<Color> l)
{
assert !this.destroyed.get() : "trying to use a destroyed object";
return native_l(this.nativeRef, l);
}
private native ArrayList<Color> native_l(long _nativeRef, ArrayList<Color> l);
@Override
public HashSet<Color> s(HashSet<Color> s)
{
assert !this.destroyed.get() : "trying to use a destroyed object";
return native_s(this.nativeRef, s);
}
private native HashSet<Color> native_s(long _nativeRef, HashSet<Color> s);
@Override
public HashMap<Color, Color> m(HashMap<Color, Color> m)
{
assert !this.destroyed.get() : "trying to use a destroyed object";
return native_m(this.nativeRef, m);
}
private native HashMap<Color, Color> native_m(long _nativeRef, HashMap<Color, Color> m);
}
}
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from enum.djinni
package com.dropbox.djinni.test;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
public class EnumUsageRecord {
/*package*/ final Color mE;
/*package*/ final Color mO;
/*package*/ final ArrayList<Color> mL;
/*package*/ final HashSet<Color> mS;
/*package*/ final HashMap<Color, Color> mM;
public EnumUsageRecord(
@Nonnull Color e,
@CheckForNull Color o,
@Nonnull ArrayList<Color> l,
@Nonnull HashSet<Color> s,
@Nonnull HashMap<Color, Color> m) {
this.mE = e;
this.mO = o;
this.mL = l;
this.mS = s;
this.mM = m;
}
@Nonnull
public Color getE() {
return mE;
}
@CheckForNull
public Color getO() {
return mO;
}
@Nonnull
public ArrayList<Color> getL() {
return mL;
}
@Nonnull
public HashSet<Color> getS() {
return mS;
}
@Nonnull
public HashMap<Color, Color> getM() {
return mM;
}
@Override
public String toString() {
return "EnumUsageRecord{" +
"mE=" + mE +
"," + "mO=" + mO +
"," + "mL=" + mL +
"," + "mS=" + mS +
"," + "mM=" + mM +
"}";
}
}
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from enum.djinni
package com.dropbox.djinni.test;
import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
public class OptColorRecord {
/*package*/ final Color mMyColor;
public OptColorRecord(
@CheckForNull Color myColor) {
this.mMyColor = myColor;
}
@CheckForNull
public Color getMyColor() {
return mMyColor;
}
@Override
public String toString() {
return "OptColorRecord{" +
"mMyColor=" + mMyColor +
"}";
}
}
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from enum.djinni
#include "NativeEnumUsageInterface.hpp" // my header
#include "Marshal.hpp"
#include "NativeColor.hpp"
namespace djinni_generated {
NativeEnumUsageInterface::NativeEnumUsageInterface() : ::djinni::JniInterface<::testsuite::EnumUsageInterface, NativeEnumUsageInterface>("com/dropbox/djinni/test/EnumUsageInterface$CppProxy") {}
NativeEnumUsageInterface::~NativeEnumUsageInterface() = default;
NativeEnumUsageInterface::JavaProxy::JavaProxy(JniType j) : Handle(::djinni::jniGetThreadEnv(), j) { }
NativeEnumUsageInterface::JavaProxy::~JavaProxy() = default;
::testsuite::color NativeEnumUsageInterface::JavaProxy::e(::testsuite::color c_e) {
auto jniEnv = ::djinni::jniGetThreadEnv();
::djinni::JniLocalScope jscope(jniEnv, 10);
const auto& data = ::djinni::JniClass<::djinni_generated::NativeEnumUsageInterface>::get();
auto jret = jniEnv->CallObjectMethod(Handle::get().get(), data.method_e,
::djinni::get(::djinni_generated::NativeColor::fromCpp(jniEnv, c_e)));
::djinni::jniExceptionCheck(jniEnv);
return ::djinni_generated::NativeColor::toCpp(jniEnv, jret);
}
std::experimental::optional<::testsuite::color> NativeEnumUsageInterface::JavaProxy::o(std::experimental::optional<::testsuite::color> c_o) {
auto jniEnv = ::djinni::jniGetThreadEnv();
::djinni::JniLocalScope jscope(jniEnv, 10);
const auto& data = ::djinni::JniClass<::djinni_generated::NativeEnumUsageInterface>::get();
auto jret = jniEnv->CallObjectMethod(Handle::get().get(), data.method_o,
::djinni::get(::djinni::Optional<std::experimental::optional, ::djinni_generated::NativeColor>::fromCpp(jniEnv, c_o)));
::djinni::jniExceptionCheck(jniEnv);
return ::djinni::Optional<std::experimental::optional, ::djinni_generated::NativeColor>::toCpp(jniEnv, jret);
}
std::vector<::testsuite::color> NativeEnumUsageInterface::JavaProxy::l(const std::vector<::testsuite::color> & c_l) {
auto jniEnv = ::djinni::jniGetThreadEnv();
::djinni::JniLocalScope jscope(jniEnv, 10);
const auto& data = ::djinni::JniClass<::djinni_generated::NativeEnumUsageInterface>::get();
auto jret = jniEnv->CallObjectMethod(Handle::get().get(), data.method_l,
::djinni::get(::djinni::List<::djinni_generated::NativeColor>::fromCpp(jniEnv, c_l)));
::djinni::jniExceptionCheck(jniEnv);
return ::djinni::List<::djinni_generated::NativeColor>::toCpp(jniEnv, jret);
}
std::unordered_set<::testsuite::color> NativeEnumUsageInterface::JavaProxy::s(const std::unordered_set<::testsuite::color> & c_s) {
auto jniEnv = ::djinni::jniGetThreadEnv();
::djinni::JniLocalScope jscope(jniEnv, 10);
const auto& data = ::djinni::JniClass<::djinni_generated::NativeEnumUsageInterface>::get();
auto jret = jniEnv->CallObjectMethod(Handle::get().get(), data.method_s,
::djinni::get(::djinni::Set<::djinni_generated::NativeColor>::fromCpp(jniEnv, c_s)));
::djinni::jniExceptionCheck(jniEnv);
return ::djinni::Set<::djinni_generated::NativeColor>::toCpp(jniEnv, jret);
}
std::unordered_map<::testsuite::color, ::testsuite::color> NativeEnumUsageInterface::JavaProxy::m(const std::unordered_map<::testsuite::color, ::testsuite::color> & c_m) {
auto jniEnv = ::djinni::jniGetThreadEnv();
::djinni::JniLocalScope jscope(jniEnv, 10);
const auto& data = ::djinni::JniClass<::djinni_generated::NativeEnumUsageInterface>::get();
auto jret = jniEnv->CallObjectMethod(Handle::get().get(), data.method_m,
::djinni::get(::djinni::Map<::djinni_generated::NativeColor, ::djinni_generated::NativeColor>::fromCpp(jniEnv, c_m)));
::djinni::jniExceptionCheck(jniEnv);
return ::djinni::Map<::djinni_generated::NativeColor, ::djinni_generated::NativeColor>::toCpp(jniEnv, jret);
}
CJNIEXPORT void JNICALL Java_com_dropbox_djinni_test_EnumUsageInterface_00024CppProxy_nativeDestroy(JNIEnv* jniEnv, jobject /*this*/, jlong nativeRef)
{
try {
DJINNI_FUNCTION_PROLOGUE1(jniEnv, nativeRef);
delete reinterpret_cast<::djinni::CppProxyHandle<::testsuite::EnumUsageInterface>*>(nativeRef);
} JNI_TRANSLATE_EXCEPTIONS_RETURN(jniEnv, )
}
CJNIEXPORT jobject JNICALL Java_com_dropbox_djinni_test_EnumUsageInterface_00024CppProxy_native_1e(JNIEnv* jniEnv, jobject /*this*/, jlong nativeRef, jobject j_e)
{
try {
DJINNI_FUNCTION_PROLOGUE1(jniEnv, nativeRef);
const auto& ref = ::djinni::objectFromHandleAddress<::testsuite::EnumUsageInterface>(nativeRef);
auto r = ref->e(::djinni_generated::NativeColor::toCpp(jniEnv, j_e));
return ::djinni::release(::djinni_generated::NativeColor::fromCpp(jniEnv, r));
} JNI_TRANSLATE_EXCEPTIONS_RETURN(jniEnv, 0 /* value doesn't matter */)
}
CJNIEXPORT jobject JNICALL Java_com_dropbox_djinni_test_EnumUsageInterface_00024CppProxy_native_1o(JNIEnv* jniEnv, jobject /*this*/, jlong nativeRef, jobject j_o)
{
try {
DJINNI_FUNCTION_PROLOGUE1(jniEnv, nativeRef);
const auto& ref = ::djinni::objectFromHandleAddress<::testsuite::EnumUsageInterface>(nativeRef);
auto r = ref->o(::djinni::Optional<std::experimental::optional, ::djinni_generated::NativeColor>::toCpp(jniEnv, j_o));
return ::djinni::release(::djinni::Optional<std::experimental::optional, ::djinni_generated::NativeColor>::fromCpp(jniEnv, r));
} JNI_TRANSLATE_EXCEPTIONS_RETURN(jniEnv, 0 /* value doesn't matter */)
}
CJNIEXPORT jobject JNICALL Java_com_dropbox_djinni_test_EnumUsageInterface_00024CppProxy_native_1l(JNIEnv* jniEnv, jobject /*this*/, jlong nativeRef, jobject j_l)
{
try {
DJINNI_FUNCTION_PROLOGUE1(jniEnv, nativeRef);
const auto& ref = ::djinni::objectFromHandleAddress<::testsuite::EnumUsageInterface>(nativeRef);
auto r = ref->l(::djinni::List<::djinni_generated::NativeColor>::toCpp(jniEnv, j_l));
return ::djinni::release(::djinni::List<::djinni_generated::NativeColor>::fromCpp(jniEnv, r));
} JNI_TRANSLATE_EXCEPTIONS_RETURN(jniEnv, 0 /* value doesn't matter */)
}
CJNIEXPORT jobject JNICALL Java_com_dropbox_djinni_test_EnumUsageInterface_00024CppProxy_native_1s(JNIEnv* jniEnv, jobject /*this*/, jlong nativeRef, jobject j_s)
{
try {
DJINNI_FUNCTION_PROLOGUE1(jniEnv, nativeRef);
const auto& ref = ::djinni::objectFromHandleAddress<::testsuite::EnumUsageInterface>(nativeRef);
auto r = ref->s(::djinni::Set<::djinni_generated::NativeColor>::toCpp(jniEnv, j_s));
return ::djinni::release(::djinni::Set<::djinni_generated::NativeColor>::fromCpp(jniEnv, r));
} JNI_TRANSLATE_EXCEPTIONS_RETURN(jniEnv, 0 /* value doesn't matter */)
}
CJNIEXPORT jobject JNICALL Java_com_dropbox_djinni_test_EnumUsageInterface_00024CppProxy_native_1m(JNIEnv* jniEnv, jobject /*this*/, jlong nativeRef, jobject j_m)
{
try {
DJINNI_FUNCTION_PROLOGUE1(jniEnv, nativeRef);
const auto& ref = ::djinni::objectFromHandleAddress<::testsuite::EnumUsageInterface>(nativeRef);
auto r = ref->m(::djinni::Map<::djinni_generated::NativeColor, ::djinni_generated::NativeColor>::toCpp(jniEnv, j_m));
return ::djinni::release(::djinni::Map<::djinni_generated::NativeColor, ::djinni_generated::NativeColor>::fromCpp(jniEnv, r));
} JNI_TRANSLATE_EXCEPTIONS_RETURN(jniEnv, 0 /* value doesn't matter */)
}
} // namespace djinni_generated
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from enum.djinni
#pragma once
#include "djinni_support.hpp"
#include "enum_usage_interface.hpp"
namespace djinni_generated {
class NativeEnumUsageInterface final : ::djinni::JniInterface<::testsuite::EnumUsageInterface, NativeEnumUsageInterface> {
public:
using CppType = std::shared_ptr<::testsuite::EnumUsageInterface>;
using CppOptType = std::shared_ptr<::testsuite::EnumUsageInterface>;
using JniType = jobject;
using Boxed = NativeEnumUsageInterface;
~NativeEnumUsageInterface();
static CppType toCpp(JNIEnv* jniEnv, JniType j) { return ::djinni::JniClass<NativeEnumUsageInterface>::get()._fromJava(jniEnv, j); }
static ::djinni::LocalRef<JniType> fromCppOpt(JNIEnv* jniEnv, const CppOptType& c) { return {jniEnv, ::djinni::JniClass<NativeEnumUsageInterface>::get()._toJava(jniEnv, c)}; }
static ::djinni::LocalRef<JniType> fromCpp(JNIEnv* jniEnv, const CppType& c) { return fromCppOpt(jniEnv, c); }
private:
NativeEnumUsageInterface();
friend ::djinni::JniClass<NativeEnumUsageInterface>;
friend ::djinni::JniInterface<::testsuite::EnumUsageInterface, NativeEnumUsageInterface>;
class JavaProxy final : ::djinni::JavaProxyHandle<JavaProxy>, public ::testsuite::EnumUsageInterface
{
public:
JavaProxy(JniType j);
~JavaProxy();
::testsuite::color e(::testsuite::color e) override;
std::experimental::optional<::testsuite::color> o(std::experimental::optional<::testsuite::color> o) override;
std::vector<::testsuite::color> l(const std::vector<::testsuite::color> & l) override;
std::unordered_set<::testsuite::color> s(const std::unordered_set<::testsuite::color> & s) override;
std::unordered_map<::testsuite::color, ::testsuite::color> m(const std::unordered_map<::testsuite::color, ::testsuite::color> & m) override;
private:
friend ::djinni::JniInterface<::testsuite::EnumUsageInterface, ::djinni_generated::NativeEnumUsageInterface>;
};
const ::djinni::GlobalRef<jclass> clazz { ::djinni::jniFindClass("com/dropbox/djinni/test/EnumUsageInterface") };
const jmethodID method_e { ::djinni::jniGetMethodID(clazz.get(), "e", "(Lcom/dropbox/djinni/test/Color;)Lcom/dropbox/djinni/test/Color;") };
const jmethodID method_o { ::djinni::jniGetMethodID(clazz.get(), "o", "(Lcom/dropbox/djinni/test/Color;)Lcom/dropbox/djinni/test/Color;") };
const jmethodID method_l { ::djinni::jniGetMethodID(clazz.get(), "l", "(Ljava/util/ArrayList;)Ljava/util/ArrayList;") };
const jmethodID method_s { ::djinni::jniGetMethodID(clazz.get(), "s", "(Ljava/util/HashSet;)Ljava/util/HashSet;") };
const jmethodID method_m { ::djinni::jniGetMethodID(clazz.get(), "m", "(Ljava/util/HashMap;)Ljava/util/HashMap;") };
};
} // namespace djinni_generated
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from enum.djinni
#include "NativeEnumUsageRecord.hpp" // my header
#include "Marshal.hpp"
#include "NativeColor.hpp"
namespace djinni_generated {
NativeEnumUsageRecord::NativeEnumUsageRecord() = default;
NativeEnumUsageRecord::~NativeEnumUsageRecord() = default;
auto NativeEnumUsageRecord::fromCpp(JNIEnv* jniEnv, const CppType& c) -> ::djinni::LocalRef<JniType> {
const auto& data = ::djinni::JniClass<NativeEnumUsageRecord>::get();
auto r = ::djinni::LocalRef<JniType>{jniEnv->NewObject(data.clazz.get(), data.jconstructor,
::djinni::get(::djinni_generated::NativeColor::fromCpp(jniEnv, c.e)),
::djinni::get(::djinni::Optional<std::experimental::optional, ::djinni_generated::NativeColor>::fromCpp(jniEnv, c.o)),
::djinni::get(::djinni::List<::djinni_generated::NativeColor>::fromCpp(jniEnv, c.l)),
::djinni::get(::djinni::Set<::djinni_generated::NativeColor>::fromCpp(jniEnv, c.s)),
::djinni::get(::djinni::Map<::djinni_generated::NativeColor, ::djinni_generated::NativeColor>::fromCpp(jniEnv, c.m)))};
::djinni::jniExceptionCheck(jniEnv);
return r;
}
auto NativeEnumUsageRecord::toCpp(JNIEnv* jniEnv, JniType j) -> CppType {
::djinni::JniLocalScope jscope(jniEnv, 6);
assert(j != nullptr);
const auto& data = ::djinni::JniClass<NativeEnumUsageRecord>::get();
return {::djinni_generated::NativeColor::toCpp(jniEnv, jniEnv->GetObjectField(j, data.field_mE)),
::djinni::Optional<std::experimental::optional, ::djinni_generated::NativeColor>::toCpp(jniEnv, jniEnv->GetObjectField(j, data.field_mO)),
::djinni::List<::djinni_generated::NativeColor>::toCpp(jniEnv, jniEnv->GetObjectField(j, data.field_mL)),
::djinni::Set<::djinni_generated::NativeColor>::toCpp(jniEnv, jniEnv->GetObjectField(j, data.field_mS)),
::djinni::Map<::djinni_generated::NativeColor, ::djinni_generated::NativeColor>::toCpp(jniEnv, jniEnv->GetObjectField(j, data.field_mM))};
}
} // namespace djinni_generated
......@@ -4,29 +4,33 @@
#pragma once
#include "djinni_support.hpp"
#include "opt_color_record.hpp"
#include "enum_usage_record.hpp"
namespace djinni_generated {
class NativeOptColorRecord final {
class NativeEnumUsageRecord final {
public:
using CppType = ::testsuite::OptColorRecord;
using CppType = ::testsuite::EnumUsageRecord;
using JniType = jobject;
using Boxed = NativeOptColorRecord;
using Boxed = NativeEnumUsageRecord;
~NativeOptColorRecord();
~NativeEnumUsageRecord();
static CppType toCpp(JNIEnv* jniEnv, JniType j);
static ::djinni::LocalRef<JniType> fromCpp(JNIEnv* jniEnv, const CppType& c);
private:
NativeOptColorRecord();
friend ::djinni::JniClass<NativeOptColorRecord>;
const ::djinni::GlobalRef<jclass> clazz { ::djinni::jniFindClass("com/dropbox/djinni/test/OptColorRecord") };
const jmethodID jconstructor { ::djinni::jniGetMethodID(clazz.get(), "<init>", "(Lcom/dropbox/djinni/test/Color;)V") };
const jfieldID field_mMyColor { ::djinni::jniGetFieldID(clazz.get(), "mMyColor", "Lcom/dropbox/djinni/test/Color;") };
NativeEnumUsageRecord();
friend ::djinni::JniClass<NativeEnumUsageRecord>;
const ::djinni::GlobalRef<jclass> clazz { ::djinni::jniFindClass("com/dropbox/djinni/test/EnumUsageRecord") };
const jmethodID jconstructor { ::djinni::jniGetMethodID(clazz.get(), "<init>", "(Lcom/dropbox/djinni/test/Color;Lcom/dropbox/djinni/test/Color;Ljava/util/ArrayList;Ljava/util/HashSet;Ljava/util/HashMap;)V") };
const jfieldID field_mE { ::djinni::jniGetFieldID(clazz.get(), "mE", "Lcom/dropbox/djinni/test/Color;") };
const jfieldID field_mO { ::djinni::jniGetFieldID(clazz.get(), "mO", "Lcom/dropbox/djinni/test/Color;") };
const jfieldID field_mL { ::djinni::jniGetFieldID(clazz.get(), "mL", "Ljava/util/ArrayList;") };
const jfieldID field_mS { ::djinni::jniGetFieldID(clazz.get(), "mS", "Ljava/util/HashSet;") };
const jfieldID field_mM { ::djinni::jniGetFieldID(clazz.get(), "mM", "Ljava/util/HashMap;") };
};
} // namespace djinni_generated
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from enum.djinni
#include "NativeOptColorRecord.hpp" // my header
#include "Marshal.hpp"
#include "NativeColor.hpp"
namespace djinni_generated {
NativeOptColorRecord::NativeOptColorRecord() = default;
NativeOptColorRecord::~NativeOptColorRecord() = default;
auto NativeOptColorRecord::fromCpp(JNIEnv* jniEnv, const CppType& c) -> ::djinni::LocalRef<JniType> {
const auto& data = ::djinni::JniClass<NativeOptColorRecord>::get();
auto r = ::djinni::LocalRef<JniType>{jniEnv->NewObject(data.clazz.get(), data.jconstructor,
::djinni::get(::djinni::Optional<std::experimental::optional, ::djinni_generated::NativeColor>::fromCpp(jniEnv, c.my_color)))};
::djinni::jniExceptionCheck(jniEnv);
return r;
}
auto NativeOptColorRecord::toCpp(JNIEnv* jniEnv, JniType j) -> CppType {
::djinni::JniLocalScope jscope(jniEnv, 2);
assert(j != nullptr);
const auto& data = ::djinni::JniClass<NativeOptColorRecord>::get();
return {::djinni::Optional<std::experimental::optional, ::djinni_generated::NativeColor>::toCpp(jniEnv, jniEnv->GetObjectField(j, data.field_mMyColor))};
}
} // namespace djinni_generated
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from enum.djinni
#include "color.hpp"
#import "DJIMarshal+Private.h"
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from enum.djinni
#include "enum_usage_interface.hpp"
#include <memory>
static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file");
@protocol DBEnumUsageInterface;
namespace djinni_generated {
class EnumUsageInterface
{
public:
using CppType = std::shared_ptr<::testsuite::EnumUsageInterface>;
using CppOptType = std::shared_ptr<::testsuite::EnumUsageInterface>;
using ObjcType = id<DBEnumUsageInterface>;
using Boxed = EnumUsageInterface;
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 enum.djinni
#import "DBEnumUsageInterface+Private.h"
#import "DBEnumUsageInterface.h"
#import "DBColor+Private.h"
#import "DJICppWrapperCache+Private.h"
#import "DJIError.h"
#import "DJIMarshal+Private.h"
#import "DJIObjcWrapperCache+Private.h"
#include <exception>
#include <utility>
static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file");
@interface DBEnumUsageInterfaceCppProxy : NSObject<DBEnumUsageInterface>
- (id)initWithCpp:(const std::shared_ptr<::testsuite::EnumUsageInterface>&)cppRef;
@end
@implementation DBEnumUsageInterfaceCppProxy {
::djinni::CppProxyCache::Handle<std::shared_ptr<::testsuite::EnumUsageInterface>> _cppRefHandle;
}
- (id)initWithCpp:(const std::shared_ptr<::testsuite::EnumUsageInterface>&)cppRef
{
if (self = [super init]) {
_cppRefHandle.assign(cppRef);
}
return self;
}
- (DBColor)e:(DBColor)e {
try {
auto r = _cppRefHandle.get()->e(::djinni::Enum<::testsuite::color, DBColor>::toCpp(e));
return ::djinni::Enum<::testsuite::color, DBColor>::fromCpp(r);
} DJINNI_TRANSLATE_EXCEPTIONS()
}
- (nullable NSNumber *)o:(nullable NSNumber *)o {
try {
auto r = _cppRefHandle.get()->o(::djinni::Optional<std::experimental::optional, ::djinni::Enum<::testsuite::color, DBColor>>::toCpp(o));
return ::djinni::Optional<std::experimental::optional, ::djinni::Enum<::testsuite::color, DBColor>>::fromCpp(r);
} DJINNI_TRANSLATE_EXCEPTIONS()
}
- (nonnull NSArray<NSNumber *> *)l:(nonnull NSArray<NSNumber *> *)l {
try {
auto r = _cppRefHandle.get()->l(::djinni::List<::djinni::Enum<::testsuite::color, DBColor>>::toCpp(l));
return ::djinni::List<::djinni::Enum<::testsuite::color, DBColor>>::fromCpp(r);
} DJINNI_TRANSLATE_EXCEPTIONS()
}
- (nonnull NSSet<NSNumber *> *)s:(nonnull NSSet<NSNumber *> *)s {
try {
auto r = _cppRefHandle.get()->s(::djinni::Set<::djinni::Enum<::testsuite::color, DBColor>>::toCpp(s));
return ::djinni::Set<::djinni::Enum<::testsuite::color, DBColor>>::fromCpp(r);
} DJINNI_TRANSLATE_EXCEPTIONS()
}
- (nonnull NSDictionary<NSNumber *, NSNumber *> *)m:(nonnull NSDictionary<NSNumber *, NSNumber *> *)m {
try {
auto r = _cppRefHandle.get()->m(::djinni::Map<::djinni::Enum<::testsuite::color, DBColor>, ::djinni::Enum<::testsuite::color, DBColor>>::toCpp(m));
return ::djinni::Map<::djinni::Enum<::testsuite::color, DBColor>, ::djinni::Enum<::testsuite::color, DBColor>>::fromCpp(r);
} DJINNI_TRANSLATE_EXCEPTIONS()
}
namespace djinni_generated {
class EnumUsageInterface::ObjcProxy final
: public ::testsuite::EnumUsageInterface
, public ::djinni::ObjcProxyCache::Handle<ObjcType>
{
public:
using Handle::Handle;
::testsuite::color e(::testsuite::color c_e) override
{
@autoreleasepool {
auto r = [Handle::get() e:(::djinni::Enum<::testsuite::color, DBColor>::fromCpp(c_e))];
return ::djinni::Enum<::testsuite::color, DBColor>::toCpp(r);
}
}
std::experimental::optional<::testsuite::color> o(std::experimental::optional<::testsuite::color> c_o) override
{
@autoreleasepool {
auto r = [Handle::get() o:(::djinni::Optional<std::experimental::optional, ::djinni::Enum<::testsuite::color, DBColor>>::fromCpp(c_o))];
return ::djinni::Optional<std::experimental::optional, ::djinni::Enum<::testsuite::color, DBColor>>::toCpp(r);
}
}
std::vector<::testsuite::color> l(const std::vector<::testsuite::color> & c_l) override
{
@autoreleasepool {
auto r = [Handle::get() l:(::djinni::List<::djinni::Enum<::testsuite::color, DBColor>>::fromCpp(c_l))];
return ::djinni::List<::djinni::Enum<::testsuite::color, DBColor>>::toCpp(r);
}
}
std::unordered_set<::testsuite::color> s(const std::unordered_set<::testsuite::color> & c_s) override
{
@autoreleasepool {
auto r = [Handle::get() s:(::djinni::Set<::djinni::Enum<::testsuite::color, DBColor>>::fromCpp(c_s))];
return ::djinni::Set<::djinni::Enum<::testsuite::color, DBColor>>::toCpp(r);
}
}
std::unordered_map<::testsuite::color, ::testsuite::color> m(const std::unordered_map<::testsuite::color, ::testsuite::color> & c_m) override
{
@autoreleasepool {
auto r = [Handle::get() m:(::djinni::Map<::djinni::Enum<::testsuite::color, DBColor>, ::djinni::Enum<::testsuite::color, DBColor>>::fromCpp(c_m))];
return ::djinni::Map<::djinni::Enum<::testsuite::color, DBColor>, ::djinni::Enum<::testsuite::color, DBColor>>::toCpp(r);
}
}
};
} // namespace djinni_generated
namespace djinni_generated {
auto EnumUsageInterface::toCpp(ObjcType objc) -> CppType
{
if (!objc) {
return nullptr;
}
if ([(id)objc isKindOfClass:[DBEnumUsageInterfaceCppProxy class]]) {
return ((DBEnumUsageInterfaceCppProxy*)objc)->_cppRefHandle.get();
}
return ::djinni::get_objc_proxy<ObjcProxy>(objc);
}
auto EnumUsageInterface::fromCppOpt(const CppOptType& cpp) -> ObjcType
{
if (!cpp) {
return nil;
}
if (auto cppPtr = dynamic_cast<ObjcProxy*>(cpp.get())) {
return cppPtr->Handle::get();
}
return ::djinni::get_cpp_proxy<DBEnumUsageInterfaceCppProxy>(cpp);
}
} // namespace djinni_generated
@end
......@@ -4,10 +4,17 @@
#import "DBColor.h"
#import <Foundation/Foundation.h>
@interface DBOptColorRecord : NSObject
- (nonnull instancetype)initWithMyColor:(nullable NSNumber *)myColor;
+ (nonnull instancetype)optColorRecordWithMyColor:(nullable NSNumber *)myColor;
@property (nonatomic, readonly, nullable) NSNumber * myColor;
@protocol DBEnumUsageInterface
- (DBColor)e:(DBColor)e;
- (nullable NSNumber *)o:(nullable NSNumber *)o;
- (nonnull NSArray<NSNumber *> *)l:(nonnull NSArray<NSNumber *> *)l;
- (nonnull NSSet<NSNumber *> *)s:(nonnull NSSet<NSNumber *> *)s;
- (nonnull NSDictionary<NSNumber *, NSNumber *> *)m:(nonnull NSDictionary<NSNumber *, NSNumber *> *)m;
@end
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from enum.djinni
#import "DBOptColorRecord.h"
#include "opt_color_record.hpp"
#import "DBEnumUsageRecord.h"
#include "enum_usage_record.hpp"
static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file");
@class DBOptColorRecord;
@class DBEnumUsageRecord;
namespace djinni_generated {
struct OptColorRecord
struct EnumUsageRecord
{
using CppType = ::testsuite::OptColorRecord;
using ObjcType = DBOptColorRecord*;
using CppType = ::testsuite::EnumUsageRecord;
using ObjcType = DBEnumUsageRecord*;
using Boxed = OptColorRecord;
using Boxed = EnumUsageRecord;
static CppType toCpp(ObjcType objc);
static ObjcType fromCpp(const CppType& cpp);
......
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from enum.djinni
#import "DBEnumUsageRecord+Private.h"
#import "DBColor+Private.h"
#import "DJIMarshal+Private.h"
#include <cassert>
namespace djinni_generated {
auto EnumUsageRecord::toCpp(ObjcType obj) -> CppType
{
assert(obj);
return {::djinni::Enum<::testsuite::color, DBColor>::toCpp(obj.e),
::djinni::Optional<std::experimental::optional, ::djinni::Enum<::testsuite::color, DBColor>>::toCpp(obj.o),
::djinni::List<::djinni::Enum<::testsuite::color, DBColor>>::toCpp(obj.l),
::djinni::Set<::djinni::Enum<::testsuite::color, DBColor>>::toCpp(obj.s),
::djinni::Map<::djinni::Enum<::testsuite::color, DBColor>, ::djinni::Enum<::testsuite::color, DBColor>>::toCpp(obj.m)};
}
auto EnumUsageRecord::fromCpp(const CppType& cpp) -> ObjcType
{
return [[DBEnumUsageRecord alloc] initWithE:(::djinni::Enum<::testsuite::color, DBColor>::fromCpp(cpp.e))
o:(::djinni::Optional<std::experimental::optional, ::djinni::Enum<::testsuite::color, DBColor>>::fromCpp(cpp.o))
l:(::djinni::List<::djinni::Enum<::testsuite::color, DBColor>>::fromCpp(cpp.l))
s:(::djinni::Set<::djinni::Enum<::testsuite::color, DBColor>>::fromCpp(cpp.s))
m:(::djinni::Map<::djinni::Enum<::testsuite::color, DBColor>, ::djinni::Enum<::testsuite::color, DBColor>>::fromCpp(cpp.m))];
}
} // namespace djinni_generated
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from enum.djinni
#import "DBColor.h"
#import <Foundation/Foundation.h>
@interface DBEnumUsageRecord : NSObject
- (nonnull instancetype)initWithE:(DBColor)e
o:(nullable NSNumber *)o
l:(nonnull NSArray<NSNumber *> *)l
s:(nonnull NSSet<NSNumber *> *)s
m:(nonnull NSDictionary<NSNumber *, NSNumber *> *)m;
+ (nonnull instancetype)enumUsageRecordWithE:(DBColor)e
o:(nullable NSNumber *)o
l:(nonnull NSArray<NSNumber *> *)l
s:(nonnull NSSet<NSNumber *> *)s
m:(nonnull NSDictionary<NSNumber *, NSNumber *> *)m;
@property (nonatomic, readonly) DBColor e;
@property (nonatomic, readonly, nullable) NSNumber * o;
@property (nonatomic, readonly, nonnull) NSArray<NSNumber *> * l;
@property (nonatomic, readonly, nonnull) NSSet<NSNumber *> * s;
@property (nonatomic, readonly, nonnull) NSDictionary<NSNumber *, NSNumber *> * m;
@end
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from enum.djinni
#import "DBEnumUsageRecord.h"
@implementation DBEnumUsageRecord
- (nonnull instancetype)initWithE:(DBColor)e
o:(nullable NSNumber *)o
l:(nonnull NSArray<NSNumber *> *)l
s:(nonnull NSSet<NSNumber *> *)s
m:(nonnull NSDictionary<NSNumber *, NSNumber *> *)m
{
if (self = [super init]) {
_e = e;
_o = o;
_l = [l copy];
_s = [s copy];
_m = [m copy];
}
return self;
}
+ (nonnull instancetype)enumUsageRecordWithE:(DBColor)e
o:(nullable NSNumber *)o
l:(nonnull NSArray<NSNumber *> *)l
s:(nonnull NSSet<NSNumber *> *)s
m:(nonnull NSDictionary<NSNumber *, NSNumber *> *)m
{
return [[self alloc] initWithE:e
o:o
l:l
s:s
m:m];
}
- (NSString *)description
{
return [NSString stringWithFormat:@"<%@ %p e:%@ o:%@ l:%@ s:%@ m:%@>", self.class, (void *)self, @(self.e), self.o, self.l, self.s, self.m];
}
@end
......@@ -2,8 +2,8 @@
// This file generated by Djinni from yaml-test.djinni
#import "DBExternRecordWithDerivings+Private.h"
#import "DBColor+Private.h"
#import "DBRecordWithDerivings+Private.h"
#import "DJIMarshal+Private.h"
#include <cassert>
namespace djinni_generated {
......
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from enum.djinni
#import "DBOptColorRecord+Private.h"
#import "DJIMarshal+Private.h"
#include <cassert>
namespace djinni_generated {
auto OptColorRecord::toCpp(ObjcType obj) -> CppType
{
assert(obj);
return {::djinni::Optional<std::experimental::optional, ::djinni::Enum<::testsuite::color, DBColor>>::toCpp(obj.myColor)};
}
auto OptColorRecord::fromCpp(const CppType& cpp) -> ObjcType
{
return [[DBOptColorRecord alloc] initWithMyColor:(::djinni::Optional<std::experimental::optional, ::djinni::Enum<::testsuite::color, DBColor>>::fromCpp(cpp.my_color))];
}
} // namespace djinni_generated
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from enum.djinni
#import "DBOptColorRecord.h"
@implementation DBOptColorRecord
- (nonnull instancetype)initWithMyColor:(nullable NSNumber *)myColor
{
if (self = [super init]) {
_myColor = myColor;
}
return self;
}
+ (nonnull instancetype)optColorRecordWithMyColor:(nullable NSNumber *)myColor
{
return [[self alloc] initWithMyColor:myColor];
}
- (NSString *)description
{
return [NSString stringWithFormat:@"<%@ %p myColor:%@>", self.class, (void *)self, self.myColor];
}
@end
......@@ -5,6 +5,7 @@
#import "DBTestHelpers.h"
#import "DBAssortedPrimitives+Private.h"
#import "DBClientInterface+Private.h"
#import "DBColor+Private.h"
#import "DBMapListRecord+Private.h"
#import "DBNestedCollection+Private.h"
#import "DBPrimitiveList+Private.h"
......
......@@ -27,7 +27,8 @@ djinni-output-temp/cpp/Conflict.hpp
djinni-output-temp/cpp/conflict_user.hpp
djinni-output-temp/cpp/user_token.hpp
djinni-output-temp/cpp/color.hpp
djinni-output-temp/cpp/opt_color_record.hpp
djinni-output-temp/cpp/enum_usage_record.hpp
djinni-output-temp/cpp/enum_usage_interface.hpp
djinni-output-temp/cpp/client_returned_record.hpp
djinni-output-temp/cpp/client_interface.hpp
djinni-output-temp/cpp/reverse_client_interface.hpp
......@@ -64,7 +65,8 @@ djinni-output-temp/java/Conflict.java
djinni-output-temp/java/ConflictUser.java
djinni-output-temp/java/UserToken.java
djinni-output-temp/java/Color.java
djinni-output-temp/java/OptColorRecord.java
djinni-output-temp/java/EnumUsageRecord.java
djinni-output-temp/java/EnumUsageInterface.java
djinni-output-temp/java/ClientReturnedRecord.java
djinni-output-temp/java/ClientInterface.java
djinni-output-temp/java/ReverseClientInterface.java
......@@ -121,8 +123,10 @@ djinni-output-temp/jni/NativeConflictUser.cpp
djinni-output-temp/jni/NativeUserToken.hpp
djinni-output-temp/jni/NativeUserToken.cpp
djinni-output-temp/jni/NativeColor.hpp
djinni-output-temp/jni/NativeOptColorRecord.hpp
djinni-output-temp/jni/NativeOptColorRecord.cpp
djinni-output-temp/jni/NativeEnumUsageRecord.hpp
djinni-output-temp/jni/NativeEnumUsageRecord.cpp
djinni-output-temp/jni/NativeEnumUsageInterface.hpp
djinni-output-temp/jni/NativeEnumUsageInterface.cpp
djinni-output-temp/jni/NativeClientReturnedRecord.hpp
djinni-output-temp/jni/NativeClientReturnedRecord.cpp
djinni-output-temp/jni/NativeClientInterface.hpp
......@@ -177,8 +181,9 @@ djinni-output-temp/objc/DBConflict.h
djinni-output-temp/objc/DBConflictUser.h
djinni-output-temp/objc/DBUserToken.h
djinni-output-temp/objc/DBColor.h
djinni-output-temp/objc/DBOptColorRecord.h
djinni-output-temp/objc/DBOptColorRecord.mm
djinni-output-temp/objc/DBEnumUsageRecord.h
djinni-output-temp/objc/DBEnumUsageRecord.mm
djinni-output-temp/objc/DBEnumUsageInterface.h
djinni-output-temp/objc/DBClientReturnedRecord.h
djinni-output-temp/objc/DBClientReturnedRecord.mm
djinni-output-temp/objc/DBClientInterface.h
......@@ -242,8 +247,11 @@ djinni-output-temp/objc/DBConflictUser+Private.h
djinni-output-temp/objc/DBConflictUser+Private.mm
djinni-output-temp/objc/DBUserToken+Private.h
djinni-output-temp/objc/DBUserToken+Private.mm
djinni-output-temp/objc/DBOptColorRecord+Private.h
djinni-output-temp/objc/DBOptColorRecord+Private.mm
djinni-output-temp/objc/DBColor+Private.h
djinni-output-temp/objc/DBEnumUsageRecord+Private.h
djinni-output-temp/objc/DBEnumUsageRecord+Private.mm
djinni-output-temp/objc/DBEnumUsageInterface+Private.h
djinni-output-temp/objc/DBEnumUsageInterface+Private.mm
djinni-output-temp/objc/DBClientReturnedRecord+Private.h
djinni-output-temp/objc/DBClientReturnedRecord+Private.mm
djinni-output-temp/objc/DBClientInterface+Private.h
......
// Copyright (C) 2011 - 2012 Andrzej Krzemienski.
//
// Use, modification, and distribution is subject to the Boost Software
// License, Version 1.0, as follows:
//
// Boost Software License - Version 1.0 - August 17th, 2003
//
// Permission is hereby granted, free of charge, to any person or organization
// obtaining a copy of the software and accompanying documentation covered by
// this license (the "Software") to use, reproduce, display, distribute,
// execute, and transmit the Software, and to prepare derivative works of the
// Software, and to permit third-parties to whom the Software is furnished to
// do so, all subject to the following:
//
// The copyright notices in the Software and this entire statement, including
// the above license grant, this restriction and the following disclaimer,
// must be included in all copies of the Software, in whole or in part, and
// all derivative works of the Software, unless such copies or derivative
// works are solely in the form of machine-executable object code generated by
// a source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
// The idea and interface is based on Boost.Optional library
// authored by Fernando Luis Cacciola Carballal
# ifndef ___OPTIONAL_HPP___
# define ___OPTIONAL_HPP___
# include <utility>
# include <type_traits>
# include <initializer_list>
# include <cassert>
# include <functional>
# include <string>
# include <stdexcept>
# define REQUIRES(...) typename enable_if<__VA_ARGS__::value, bool>::type = false
# if defined __clang__
# if (__clang_major__ > 2) || (__clang_major__ == 2) && (__clang_minor__ >= 9)
# define OPTIONAL_HAS_THIS_RVALUE_REFS 1
# else
# define OPTIONAL_HAS_THIS_RVALUE_REFS 0
# endif
# else
# define OPTIONAL_HAS_THIS_RVALUE_REFS 0
# endif
namespace std{
namespace experimental{
// 20.5.4, optional for object types
template <class T> class optional;
// 20.5.5, optional for lvalue reference types
template <class T> class optional<T&>;
// workaround: std utility functions aren't constexpr yet
template <class T> inline constexpr T&& constexpr_forward(typename std::remove_reference<T>::type& t) noexcept
{
return static_cast<T&&>(t);
}
template <class T> inline constexpr T&& constexpr_forward(typename std::remove_reference<T>::type&& t) noexcept
{
static_assert(!std::is_lvalue_reference<T>::value, "!!");
return static_cast<T&&>(t);
}
template <class T> inline constexpr typename std::remove_reference<T>::type&& constexpr_move(T&& t) noexcept
{
return static_cast<typename std::remove_reference<T>::type&&>(t);
}
template<class _Ty> inline constexpr _Ty * constexpr_addressof(_Ty& _Val)
{
return ((_Ty *) &(char&)_Val);
}
#if defined NDEBUG
# define ASSERTED_EXPRESSION(CHECK, EXPR) (EXPR)
#else
# define ASSERTED_EXPRESSION(CHECK, EXPR) ((CHECK) ? (EXPR) : ([]{assert(#CHECK && false);}(), (EXPR)))
#endif
template <typename T>
struct has_overloaded_addressof
{
template <class X>
static constexpr bool has_overload(...) { return false; }
template <class X, size_t S = sizeof(std::declval< X&>().operator&()) >
static constexpr bool has_overload(bool) { return true; }
constexpr static bool value = has_overload<T>(true);
};
template <typename T, REQUIRES(!has_overloaded_addressof<T>)>
constexpr T* static_addressof(T& ref)
{
return &ref;
}
template <typename T, REQUIRES(has_overloaded_addressof<T>)>
T* static_addressof(T& ref)
{
return std::addressof(ref);
}
template <class U>
struct is_not_optional
{
constexpr static bool value = true;
};
template <class T>
struct is_not_optional<optional<T>>
{
constexpr static bool value = false;
};
constexpr struct trivial_init_t{} trivial_init{};
// 20.5.6, In-place construction
constexpr struct in_place_t{} in_place{};
// 20.5.7, Disengaged state indicator
struct nullopt_t
{
struct init{};
constexpr nullopt_t(init){};
};
constexpr nullopt_t nullopt{nullopt_t::init()};
// 20.5.8, class bad_optional_access
class bad_optional_access : public logic_error {
public:
explicit bad_optional_access(const string& what_arg) : logic_error{what_arg} {}
explicit bad_optional_access(const char* what_arg) : logic_error{what_arg} {}
};
template <class T>
union storage_t
{
unsigned char dummy_;
T value_;
constexpr storage_t( trivial_init_t ) noexcept : dummy_() {};
template <class... Args>
constexpr storage_t( Args&&... args ) : value_(constexpr_forward<Args>(args)...) {}
~storage_t(){}
};
template <class T>
union constexpr_storage_t
{
unsigned char dummy_;
T value_;
constexpr constexpr_storage_t( trivial_init_t ) noexcept : dummy_() {};
template <class... Args>
constexpr constexpr_storage_t( Args&&... args ) : value_(constexpr_forward<Args>(args)...) {}
~constexpr_storage_t() = default;
};
constexpr struct only_set_initialized_t{} only_set_initialized{};
template <class T>
struct optional_base
{
bool init_;
storage_t<T> storage_;
constexpr optional_base() noexcept : init_(false), storage_(trivial_init) {};
constexpr explicit optional_base(only_set_initialized_t, bool init) noexcept : init_(init), storage_(trivial_init) {};
explicit constexpr optional_base(const T& v) : init_(true), storage_(v) {}
explicit constexpr optional_base(T&& v) : init_(true), storage_(constexpr_move(v)) {}
template <class... Args> explicit optional_base(in_place_t, Args&&... args)
: init_(true), storage_(constexpr_forward<Args>(args)...) {}
template <class U, class... Args, REQUIRES(is_constructible<T, std::initializer_list<U>>)>
explicit optional_base(in_place_t, std::initializer_list<U> il, Args&&... args)
: init_(true), storage_(il, std::forward<Args>(args)...) {}
~optional_base() { if (init_) storage_.value_.T::~T(); }
};
template <class T>
struct constexpr_optional_base
{
bool init_;
constexpr_storage_t<T> storage_;
constexpr constexpr_optional_base() noexcept : init_(false), storage_(trivial_init) {};
constexpr explicit constexpr_optional_base(only_set_initialized_t, bool init) noexcept : init_(init), storage_(trivial_init) {};
explicit constexpr constexpr_optional_base(const T& v) : init_(true), storage_(v) {}
explicit constexpr constexpr_optional_base(T&& v) : init_(true), storage_(constexpr_move(v)) {}
template <class... Args> explicit constexpr constexpr_optional_base(in_place_t, Args&&... args)
: init_(true), storage_(constexpr_forward<Args>(args)...) {}
template <class U, class... Args, REQUIRES(is_constructible<T, std::initializer_list<U>>)>
explicit constexpr_optional_base(in_place_t, std::initializer_list<U> il, Args&&... args)
: init_(true), storage_(il, std::forward<Args>(args)...) {}
~constexpr_optional_base() = default;
};
template <class T>
using OptionalBase = typename std::conditional<
std::is_trivially_destructible<T>::value,
constexpr_optional_base<T>,
optional_base<T>
>::type;
template <typename T>
constexpr bool is_nothrow_swappable_() {
using std::swap;
return noexcept(swap(std::declval<T&>(), std::declval<T&>()));
}
template <class T>
class optional : private OptionalBase<T>
{
static_assert( !std::is_same<typename std::decay<T>::type, nullopt_t>::value, "bad T" );
static_assert( !std::is_same<typename std::decay<T>::type, in_place_t>::value, "bad T" );
constexpr bool initialized() const noexcept { return OptionalBase<T>::init_; }
T* dataptr() { return std::addressof(OptionalBase<T>::storage_.value_); }
constexpr const T* dataptr() const { return static_addressof(OptionalBase<T>::storage_.value_); }
# if OPTIONAL_HAS_THIS_RVALUE_REFS == 1
constexpr const T& contained_val() const& { return OptionalBase<T>::storage_.value_; }
T& contained_val() & { return OptionalBase<T>::storage_.value_; }
T&& contained_val() && { return std::move(OptionalBase<T>::storage_.value_); }
# else
constexpr const T& contained_val() const { return OptionalBase<T>::storage_.value_; }
T& contained_val() { return OptionalBase<T>::storage_.value_; }
# endif
void clear() noexcept {
if (initialized()) dataptr()->T::~T();
OptionalBase<T>::init_ = false;
}
template <class... Args>
void initialize(Args&&... args) noexcept(noexcept(T(std::forward<Args>(args)...)))
{
assert(!OptionalBase<T>::init_);
new (dataptr()) T(std::forward<Args>(args)...);
OptionalBase<T>::init_ = true;
}
template <class U, class... Args>
void initialize(std::initializer_list<U> il, Args&&... args) noexcept(noexcept(T(il, std::forward<Args>(args)...)))
{
assert(!OptionalBase<T>::init_);
new (dataptr()) T(il, std::forward<Args>(args)...);
OptionalBase<T>::init_ = true;
}
public:
typedef T value_type;
// 20.5.5.1, constructors
constexpr optional() noexcept : OptionalBase<T>() {};
constexpr optional(nullopt_t) noexcept : OptionalBase<T>() {};
optional(const optional& rhs)
: OptionalBase<T>(only_set_initialized, rhs.initialized())
{
if (rhs.initialized()) new (dataptr()) T(*rhs);
}
optional(optional&& rhs) noexcept(std::is_nothrow_move_constructible<T>::value)
: OptionalBase<T>(only_set_initialized, rhs.initialized())
{
if (rhs.initialized()) new (dataptr()) T(std::move(*rhs));
}
constexpr optional(const T& v) : OptionalBase<T>(v) {}
constexpr optional(T&& v) : OptionalBase<T>(constexpr_move(v)) {}
template <class... Args>
constexpr explicit optional(in_place_t, Args&&... args)
: OptionalBase<T>(in_place_t{}, constexpr_forward<Args>(args)...) {}
template <class U, class... Args, REQUIRES(is_constructible<T, std::initializer_list<U>>)>
explicit optional(in_place_t, std::initializer_list<U> il, Args&&... args)
: OptionalBase<T>(in_place_t{}, il, constexpr_forward<Args>(args)...) {}
// 20.5.4.2 Destructor
~optional() = default;
// 20.5.4.3, assignment
optional& operator=(nullopt_t) noexcept
{
clear();
return *this;
}
optional& operator=(const optional& rhs)
{
if (initialized() == true && rhs.initialized() == false) clear();
else if (initialized() == false && rhs.initialized() == true) initialize(*rhs);
else if (initialized() == true && rhs.initialized() == true) contained_val() = *rhs;
return *this;
}
optional& operator=(optional&& rhs)
noexcept(std::is_nothrow_move_assignable<T>::value && std::is_nothrow_move_constructible<T>::value)
{
if (initialized() == true && rhs.initialized() == false) clear();
else if (initialized() == false && rhs.initialized() == true) initialize(std::move(*rhs));
else if (initialized() == true && rhs.initialized() == true) contained_val() = std::move(*rhs);
return *this;
}
template <class U>
auto operator=(U&& v)
-> typename enable_if
<
is_same<typename remove_reference<U>::type, T>::value,
optional&
>::type
{
if (initialized()) { contained_val() = std::forward<U>(v); }
else { initialize(std::forward<U>(v)); }
return *this;
}
template <class... Args>
optional<T>& emplace(Args&&... args)
{
clear();
initialize(std::forward<Args>(args)...);
return *this;
}
template <class U, class... Args>
optional<T>& emplace(initializer_list<U> il, Args&&... args)
{
clear();
initialize<U, Args...>(il, std::forward<Args>(args)...);
return *this;
}
// 20.5.4.4 Swap
void swap(optional<T>& rhs) noexcept(is_nothrow_move_constructible<T>::value && is_nothrow_swappable_<T>())
{
if (initialized() == true && rhs.initialized() == false) { rhs.initialize(std::move(**this)); clear(); }
else if (initialized() == false && rhs.initialized() == true) { initialize(std::move(*rhs)); rhs.clear(); }
else if (initialized() == true && rhs.initialized() == true) { using std::swap; swap(**this, *rhs); }
}
// 20.5.4.5 Observers
constexpr T const* operator ->() const {
return ASSERTED_EXPRESSION(initialized(), dataptr());
}
T* operator ->() {
assert (initialized());
return dataptr();
}
constexpr T const& operator *() const {
return ASSERTED_EXPRESSION(initialized(), contained_val());
}
T& operator *() {
assert (initialized());
return contained_val();
}
constexpr T const& value() const {
return initialized() ? contained_val() : (throw bad_optional_access("bad optional access"), contained_val());
}
T& value() {
return initialized() ? contained_val() : (throw bad_optional_access("bad optional access"), contained_val());
}
constexpr explicit operator bool() const noexcept { return initialized(); }
# if OPTIONAL_HAS_THIS_RVALUE_REFS == 1
template <class V>
constexpr T value_or(V&& v) const&
{
return *this ? **this : static_cast<T>(constexpr_forward<V>(v));
}
template <class V>
T value_or(V&& v) &&
{
return *this ? std::move(const_cast<optional<T>&>(*this).contained_val()) : static_cast<T>(constexpr_forward<V>(v));
}
# else
template <class V>
constexpr T value_or(V&& v) const
{
return *this ? **this : static_cast<T>(constexpr_forward<V>(v));
}
# endif
};
template <class T>
class optional<T&>
{
static_assert( !std::is_same<T, nullopt_t>::value, "bad T" );
static_assert( !std::is_same<T, in_place_t>::value, "bad T" );
T* ref;
public:
// 20.5.5.1, construction/destruction
constexpr optional() noexcept : ref(nullptr) {}
constexpr optional(nullopt_t) noexcept : ref(nullptr) {}
constexpr optional(T& v) noexcept : ref(static_addressof(v)) {}
optional(T&&) = delete;
constexpr optional(const optional& rhs) noexcept : ref(rhs.ref) {}
explicit constexpr optional(in_place_t, T& v) noexcept : ref(static_addressof(v)) {}
explicit optional(in_place_t, T&&) = delete;
~optional() = default;
// 20.5.5.2, mutation
optional& operator=(nullopt_t) noexcept {
ref = nullptr;
return *this;
}
// optional& operator=(const optional& rhs) noexcept {
// ref = rhs.ref;
// return *this;
// }
// optional& operator=(optional&& rhs) noexcept {
// ref = rhs.ref;
// return *this;
// }
template <typename U>
auto operator=(U&& rhs) noexcept
-> typename enable_if
<
is_same<typename decay<U>::type, optional<T&>>::value,
optional&
>::type
{
ref = rhs.ref;
return *this;
}
template <typename U>
auto operator=(U&& rhs) noexcept
-> typename enable_if
<
!is_same<typename decay<U>::type, optional<T&>>::value,
optional&
>::type
= delete;
optional& emplace(T& v) noexcept {
ref = static_addressof(v);
return *this;
}
optional& emplace(T&&) = delete;
void swap(optional<T&>& rhs) noexcept
{
std::swap(ref, rhs.ref);
}
// 20.5.5.3, observers
constexpr T* operator->() const {
return ASSERTED_EXPRESSION(ref, ref);
}
constexpr T& operator*() const {
return ASSERTED_EXPRESSION(ref, *ref);
}
constexpr T& value() const {
return ref ? *ref : (throw bad_optional_access("bad optional access"), *ref);
}
explicit constexpr operator bool() const noexcept {
return ref != nullptr;
}
template <class V>
constexpr typename decay<T>::type value_or(V&& v) const
{
return *this ? **this : static_cast<typename decay<T>::type>(constexpr_forward<V>(v));
}
};
template <class T>
class optional<T&&>
{
static_assert( sizeof(T) == 0, "optional rvalue referencs disallowed" );
};
// 20.5.8, Relational operators
template <class T> constexpr bool operator==(const optional<T>& x, const optional<T>& y)
{
return bool(x) != bool(y) ? false : bool(x) == false ? true : *x == *y;
}
template <class T> constexpr bool operator!=(const optional<T>& x, const optional<T>& y)
{
return !(x == y);
}
template <class T> constexpr bool operator<(const optional<T>& x, const optional<T>& y)
{
return (!y) ? false : (!x) ? true : *x < *y;
}
template <class T> constexpr bool operator>(const optional<T>& x, const optional<T>& y)
{
return (y < x);
}
template <class T> constexpr bool operator<=(const optional<T>& x, const optional<T>& y)
{
return !(y < x);
}
template <class T> constexpr bool operator>=(const optional<T>& x, const optional<T>& y)
{
return !(x < y);
}
// 20.5.9 Comparison with nullopt
template <class T> constexpr bool operator==(const optional<T>& x, nullopt_t) noexcept
{
return (!x);
}
template <class T> constexpr bool operator==(nullopt_t, const optional<T>& x) noexcept
{
return (!x);
}
template <class T> constexpr bool operator!=(const optional<T>& x, nullopt_t) noexcept
{
return bool(x);
}
template <class T> constexpr bool operator!=(nullopt_t, const optional<T>& x) noexcept
{
return bool(x);
}
template <class T> constexpr bool operator<(const optional<T>&, nullopt_t) noexcept
{
return false;
}
template <class T> constexpr bool operator<(nullopt_t, const optional<T>& x) noexcept
{
return bool(x);
}
template <class T> constexpr bool operator<=(const optional<T>& x, nullopt_t) noexcept
{
return (!x);
}
template <class T> constexpr bool operator<=(nullopt_t, const optional<T>&) noexcept
{
return true;
}
template <class T> constexpr bool operator>(const optional<T>& x, nullopt_t) noexcept
{
return bool(x);
}
template <class T> constexpr bool operator>(nullopt_t, const optional<T>&) noexcept
{
return false;
}
template <class T> constexpr bool operator>=(const optional<T>&, nullopt_t) noexcept
{
return true;
}
template <class T> constexpr bool operator>=(nullopt_t, const optional<T>& x) noexcept
{
return (!x);
}
// 20.5.10, Comparison with T
template <class T> constexpr bool operator==(const optional<T>& x, const T& v)
{
return bool(x) ? *x == v : false;
}
template <class T> constexpr bool operator==(const T& v, const optional<T>& x)
{
return bool(x) ? v == *x : false;
}
template <class T> constexpr bool operator!=(const optional<T>& x, const T& v)
{
return bool(x) ? *x != v : true;
}
template <class T> constexpr bool operator!=(const T& v, const optional<T>& x)
{
return bool(x) ? v != *x : true;
}
template <class T> constexpr bool operator<(const optional<T>& x, const T& v)
{
return bool(x) ? *x < v : true;
}
template <class T> constexpr bool operator>(const T& v, const optional<T>& x)
{
return bool(x) ? v > *x : true;
}
template <class T> constexpr bool operator>(const optional<T>& x, const T& v)
{
return bool(x) ? *x > v : false;
}
template <class T> constexpr bool operator<(const T& v, const optional<T>& x)
{
return bool(x) ? v < *x : false;
}
template <class T> constexpr bool operator>=(const optional<T>& x, const T& v)
{
return bool(x) ? *x >= v : false;
}
template <class T> constexpr bool operator<=(const T& v, const optional<T>& x)
{
return bool(x) ? v <= *x : false;
}
template <class T> constexpr bool operator<=(const optional<T>& x, const T& v)
{
return bool(x) ? *x <= v : true;
}
template <class T> constexpr bool operator>=(const T& v, const optional<T>& x)
{
return bool(x) ? v >= *x : true;
}
// Comparison of optionsl<T&> with T
template <class T> constexpr bool operator==(const optional<T&>& x, const T& v)
{
return bool(x) ? *x == v : false;
}
template <class T> constexpr bool operator==(const T& v, const optional<T&>& x)
{
return bool(x) ? v == *x : false;
}
template <class T> constexpr bool operator!=(const optional<T&>& x, const T& v)
{
return bool(x) ? *x != v : true;
}
template <class T> constexpr bool operator!=(const T& v, const optional<T&>& x)
{
return bool(x) ? v != *x : true;
}
template <class T> constexpr bool operator<(const optional<T&>& x, const T& v)
{
return bool(x) ? *x < v : true;
}
template <class T> constexpr bool operator>(const T& v, const optional<T&>& x)
{
return bool(x) ? v > *x : true;
}
template <class T> constexpr bool operator>(const optional<T&>& x, const T& v)
{
return bool(x) ? *x > v : false;
}
template <class T> constexpr bool operator<(const T& v, const optional<T&>& x)
{
return bool(x) ? v < *x : false;
}
template <class T> constexpr bool operator>=(const optional<T&>& x, const T& v)
{
return bool(x) ? *x >= v : false;
}
template <class T> constexpr bool operator<=(const T& v, const optional<T&>& x)
{
return bool(x) ? v <= *x : false;
}
template <class T> constexpr bool operator<=(const optional<T&>& x, const T& v)
{
return bool(x) ? *x <= v : true;
}
template <class T> constexpr bool operator>=(const T& v, const optional<T&>& x)
{
return bool(x) ? v >= *x : true;
}
// Comparison of optionsl<T const&> with T
template <class T> constexpr bool operator==(const optional<const T&>& x, const T& v)
{
return bool(x) ? *x == v : false;
}
template <class T> constexpr bool operator==(const T& v, const optional<const T&>& x)
{
return bool(x) ? v == *x : false;
}
template <class T> constexpr bool operator!=(const optional<const T&>& x, const T& v)
{
return bool(x) ? *x != v : true;
}
template <class T> constexpr bool operator!=(const T& v, const optional<const T&>& x)
{
return bool(x) ? v != *x : true;
}
template <class T> constexpr bool operator<(const optional<const T&>& x, const T& v)
{
return bool(x) ? *x < v : true;
}
template <class T> constexpr bool operator>(const T& v, const optional<const T&>& x)
{
return bool(x) ? v > *x : true;
}
template <class T> constexpr bool operator>(const optional<const T&>& x, const T& v)
{
return bool(x) ? *x > v : false;
}
template <class T> constexpr bool operator<(const T& v, const optional<const T&>& x)
{
return bool(x) ? v < *x : false;
}
template <class T> constexpr bool operator>=(const optional<const T&>& x, const T& v)
{
return bool(x) ? *x >= v : false;
}
template <class T> constexpr bool operator<=(const T& v, const optional<const T&>& x)
{
return bool(x) ? v <= *x : false;
}
template <class T> constexpr bool operator<=(const optional<const T&>& x, const T& v)
{
return bool(x) ? *x <= v : true;
}
template <class T> constexpr bool operator>=(const T& v, const optional<const T&>& x)
{
return bool(x) ? v >= *x : true;
}
// 20.5.12 Specialized algorithms
template <class T>
void swap(optional<T>& x, optional<T>& y) noexcept(noexcept(x.swap(y)))
{
x.swap(y);
}
template <class T>
constexpr optional<typename decay<T>::type> make_optional(T&& v)
{
return optional<typename decay<T>::type>(constexpr_forward<T>(v));
}
template <class X>
constexpr optional<X&> make_optional(reference_wrapper<X> v)
{
return optional<X&>(v.get());
}
} // namespace experimental
} // namespace std
namespace std
{
template <typename T>
struct hash<std::experimental::optional<T>>
{
typedef typename hash<T>::result_type result_type;
typedef std::experimental::optional<T> argument_type;
constexpr result_type operator()(argument_type const& arg) const {
return arg ? std::hash<T>{}(*arg) : result_type{};
}
};
template <typename T>
struct hash<std::experimental::optional<T&>>
{
typedef typename hash<T>::result_type result_type;
typedef std::experimental::optional<T&> argument_type;
constexpr result_type operator()(argument_type const& arg) const {
return arg ? std::hash<T>{}(*arg) : result_type{};
}
};
}
# endif //___OPTIONAL_HPP___
......@@ -37,7 +37,7 @@ file(
../generated-src/cpp/*.cpp
../handwritten-src/cpp/*.cpp)
set(test_suite_common_flags "-g -Wall -Werror -std=c++1y")
set(test_suite_common_flags "-g -Wall -Werror -std=c++11")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${test_suite_common_flags}")
if(UNIX OR APPLE)
......
......@@ -32,13 +32,7 @@
65868B5F1989FE4200D60EEE /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 65868B5E1989FE4200D60EEE /* UIKit.framework */; };
65868B621989FE4200D60EEE /* libDjinniObjcTest.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 65868B4A1989FE4200D60EEE /* libDjinniObjcTest.a */; };
6D66A8A91A3B09F000B312E8 /* DBConstantTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6D66A8A81A3B09F000B312E8 /* DBConstantTests.mm */; };
728E111B1D37DE0B005A554D /* DBWcharTestHelpers+Private.mm in Sources */ = {isa = PBXBuildFile; fileRef = 728E11161D37DE0B005A554D /* DBWcharTestHelpers+Private.mm */; };
728E111C1D37DE0B005A554D /* DBWcharTestRec.mm in Sources */ = {isa = PBXBuildFile; fileRef = 728E11181D37DE0B005A554D /* DBWcharTestRec.mm */; };
728E111D1D37DE0B005A554D /* DBWcharTestRec+Private.mm in Sources */ = {isa = PBXBuildFile; fileRef = 728E111A1D37DE0B005A554D /* DBWcharTestRec+Private.mm */; };
728E111F1D37DE1C005A554D /* wchar_test_helpers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 728E111E1D37DE1C005A554D /* wchar_test_helpers.cpp */; };
A20094101B06982F00EF8D9B /* DBTokenTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = A200940E1B0697D300EF8D9B /* DBTokenTests.mm */; };
A209B5791BBA2A0A0070C310 /* DBOptColorRecord.mm in Sources */ = {isa = PBXBuildFile; fileRef = A209B5761BBA2A0A0070C310 /* DBOptColorRecord.mm */; };
A209B57A1BBA2A0A0070C310 /* DBOptColorRecord+Private.mm in Sources */ = {isa = PBXBuildFile; fileRef = A209B5781BBA2A0A0070C310 /* DBOptColorRecord+Private.mm */; };
A238CA8E1AF84B7100CDDCE5 /* DBClientReturnedRecord+Private.mm in Sources */ = {isa = PBXBuildFile; fileRef = A238CA761AF84B7100CDDCE5 /* DBClientReturnedRecord+Private.mm */; };
A238CA901AF84B7100CDDCE5 /* DBConstants+Private.mm in Sources */ = {isa = PBXBuildFile; fileRef = A238CA781AF84B7100CDDCE5 /* DBConstants+Private.mm */; };
A238CA921AF84B7100CDDCE5 /* DBDateRecord+Private.mm in Sources */ = {isa = PBXBuildFile; fileRef = A238CA7A1AF84B7100CDDCE5 /* DBDateRecord+Private.mm */; };
......@@ -67,6 +61,12 @@
A278D45319BA3601006FD937 /* test_helpers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A278D45219BA3601006FD937 /* test_helpers.cpp */; };
A2AE38491BB3074800B7A0C9 /* DJIProxyCaches.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6536CD6C19A6C82200DD7715 /* DJIProxyCaches.mm */; };
A2CB54B419BA6E6000A9E600 /* DJIError.mm in Sources */ = {isa = PBXBuildFile; fileRef = A2CB54B319BA6E6000A9E600 /* DJIError.mm */; };
B5153F931D54283700012654 /* DBWcharTestRec+Private.mm in Sources */ = {isa = PBXBuildFile; fileRef = B5153F891D54283700012654 /* DBWcharTestRec+Private.mm */; };
B5153F941D54283700012654 /* DBWcharTestRec.mm in Sources */ = {isa = PBXBuildFile; fileRef = B5153F8B1D54283700012654 /* DBWcharTestRec.mm */; };
B5153F961D54283700012654 /* DBUsesSingleLanguageListeners+Private.mm in Sources */ = {isa = PBXBuildFile; fileRef = B5153F901D54283700012654 /* DBUsesSingleLanguageListeners+Private.mm */; };
B5153F9A1D54284100012654 /* DBJavaOnlyListener+Private.mm in Sources */ = {isa = PBXBuildFile; fileRef = B5153F971D54284100012654 /* DBJavaOnlyListener+Private.mm */; };
B51911181D542A7000772DFE /* DBWcharTestHelpers+Private.mm in Sources */ = {isa = PBXBuildFile; fileRef = B51911151D542A7000772DFE /* DBWcharTestHelpers+Private.mm */; };
B519111B1D542B0700772DFE /* wchar_test_helpers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B519111A1D542B0700772DFE /* wchar_test_helpers.cpp */; };
B52DA5681B103F72005CE75F /* DBAssortedPrimitives.mm in Sources */ = {isa = PBXBuildFile; fileRef = B52DA5651B103F6D005CE75F /* DBAssortedPrimitives.mm */; };
B52DA5691B103F72005CE75F /* DBAssortedPrimitives.mm in Sources */ = {isa = PBXBuildFile; fileRef = B52DA5651B103F6D005CE75F /* DBAssortedPrimitives.mm */; };
B52DA56A1B103F75005CE75F /* DBAssortedPrimitives+Private.mm in Sources */ = {isa = PBXBuildFile; fileRef = B52DA5671B103F6D005CE75F /* DBAssortedPrimitives+Private.mm */; };
......@@ -77,9 +77,16 @@
B5D8FC371C23E2F40045ADCF /* DBConstantRecord+Private.mm in Sources */ = {isa = PBXBuildFile; fileRef = B5D8FC351C23E2F40045ADCF /* DBConstantRecord+Private.mm */; };
B5E9C93B1C1F9D9D0073C123 /* reverse_client_interface_impl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5E9C9391C1F9D9D0073C123 /* reverse_client_interface_impl.cpp */; };
B5E9C9401C1F9E9E0073C123 /* DBReverseClientInterface+Private.mm in Sources */ = {isa = PBXBuildFile; fileRef = B5E9C93F1C1F9E9E0073C123 /* DBReverseClientInterface+Private.mm */; };
B5F06AB11D499379005BE736 /* DBUsesSingleLanguageListeners+Private.mm in Sources */ = {isa = PBXBuildFile; fileRef = B5F06AA81D499379005BE736 /* DBUsesSingleLanguageListeners+Private.mm */; };
B5F06AB21D499379005BE736 /* DBObjcOnlyListener+Private.mm in Sources */ = {isa = PBXBuildFile; fileRef = B5F06AAB1D499379005BE736 /* DBObjcOnlyListener+Private.mm */; };
B5F06AB31D499379005BE736 /* DBJavaOnlyListener+Private.mm in Sources */ = {isa = PBXBuildFile; fileRef = B5F06AAE1D499379005BE736 /* DBJavaOnlyListener+Private.mm */; };
B5F06A6D1D497396005BE736 /* extended_record_base.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5F06A681D497396005BE736 /* extended_record_base.cpp */; };
B5F06A851D4973BD005BE736 /* DBConflict+Private.mm in Sources */ = {isa = PBXBuildFile; fileRef = B5F06A701D4973BD005BE736 /* DBConflict+Private.mm */; };
B5F06A861D4973BD005BE736 /* DBConflictUser+Private.mm in Sources */ = {isa = PBXBuildFile; fileRef = B5F06A731D4973BD005BE736 /* DBConflictUser+Private.mm */; };
B5F06A891D4973BD005BE736 /* DBExtendedRecord.mm in Sources */ = {isa = PBXBuildFile; fileRef = B5F06A791D4973BD005BE736 /* DBExtendedRecord.mm */; };
B5F06A8A1D4973BD005BE736 /* DBExtendedRecord+Private.mm in Sources */ = {isa = PBXBuildFile; fileRef = B5F06A7B1D4973BD005BE736 /* DBExtendedRecord+Private.mm */; };
B5F06A8C1D4973BD005BE736 /* DBObjcOnlyListener+Private.mm in Sources */ = {isa = PBXBuildFile; fileRef = B5F06A811D4973BD005BE736 /* DBObjcOnlyListener+Private.mm */; };
B5F06A9A1D497A66005BE736 /* extended_record.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5F06A971D497A66005BE736 /* extended_record.cpp */; };
B5F06AA51D4987EF005BE736 /* DBEnumUsageInterface+Private.mm in Sources */ = {isa = PBXBuildFile; fileRef = B5F06AA01D4987EF005BE736 /* DBEnumUsageInterface+Private.mm */; };
B5F06AA61D4987EF005BE736 /* DBEnumUsageRecord.mm in Sources */ = {isa = PBXBuildFile; fileRef = B5F06AA21D4987EF005BE736 /* DBEnumUsageRecord.mm */; };
B5F06AA71D4987EF005BE736 /* DBEnumUsageRecord+Private.mm in Sources */ = {isa = PBXBuildFile; fileRef = B5F06AA41D4987EF005BE736 /* DBEnumUsageRecord+Private.mm */; };
CFAED8751B54291900E3B8A3 /* DBEmptyRecord.mm in Sources */ = {isa = PBXBuildFile; fileRef = CFAED8721B54291900E3B8A3 /* DBEmptyRecord.mm */; };
CFAED8761B54291900E3B8A3 /* DBEmptyRecord+Private.mm in Sources */ = {isa = PBXBuildFile; fileRef = CFAED8741B54291900E3B8A3 /* DBEmptyRecord+Private.mm */; };
CFC5D9D01B15105100BF2DF8 /* extern_record_with_derivings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CFC5D9CE1B15105100BF2DF8 /* extern_record_with_derivings.cpp */; };
......@@ -190,23 +197,8 @@
65868B5B1989FE4200D60EEE /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; };
65868B5E1989FE4200D60EEE /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; };
6D66A8A81A3B09F000B312E8 /* DBConstantTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DBConstantTests.mm; sourceTree = "<group>"; };
728E11121D37DDFB005A554D /* wchar_test_helpers.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = wchar_test_helpers.hpp; sourceTree = "<group>"; };
728E11131D37DDFB005A554D /* wchar_test_rec.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = wchar_test_rec.hpp; sourceTree = "<group>"; };
728E11141D37DE0B005A554D /* DBWcharTestHelpers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DBWcharTestHelpers.h; sourceTree = "<group>"; };
728E11151D37DE0B005A554D /* DBWcharTestHelpers+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "DBWcharTestHelpers+Private.h"; sourceTree = "<group>"; };
728E11161D37DE0B005A554D /* DBWcharTestHelpers+Private.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "DBWcharTestHelpers+Private.mm"; sourceTree = "<group>"; };
728E11171D37DE0B005A554D /* DBWcharTestRec.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DBWcharTestRec.h; sourceTree = "<group>"; };
728E11181D37DE0B005A554D /* DBWcharTestRec.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DBWcharTestRec.mm; sourceTree = "<group>"; };
728E11191D37DE0B005A554D /* DBWcharTestRec+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "DBWcharTestRec+Private.h"; sourceTree = "<group>"; };
728E111A1D37DE0B005A554D /* DBWcharTestRec+Private.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "DBWcharTestRec+Private.mm"; sourceTree = "<group>"; };
728E111E1D37DE1C005A554D /* wchar_test_helpers.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = wchar_test_helpers.cpp; sourceTree = "<group>"; };
728E11201D37DE27005A554D /* DBWcharTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DBWcharTests.m; sourceTree = "<group>"; };
A200940E1B0697D300EF8D9B /* DBTokenTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DBTokenTests.mm; sourceTree = "<group>"; };
A209B5751BBA2A0A0070C310 /* DBOptColorRecord.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DBOptColorRecord.h; sourceTree = "<group>"; };
A209B5761BBA2A0A0070C310 /* DBOptColorRecord.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DBOptColorRecord.mm; sourceTree = "<group>"; };
A209B5771BBA2A0A0070C310 /* DBOptColorRecord+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "DBOptColorRecord+Private.h"; sourceTree = "<group>"; };
A209B5781BBA2A0A0070C310 /* DBOptColorRecord+Private.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "DBOptColorRecord+Private.mm"; sourceTree = "<group>"; };
A209B57B1BBA2A180070C310 /* opt_color_record.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = opt_color_record.hpp; sourceTree = "<group>"; };
A238CA761AF84B7100CDDCE5 /* DBClientReturnedRecord+Private.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "DBClientReturnedRecord+Private.mm"; sourceTree = "<group>"; };
A238CA781AF84B7100CDDCE5 /* DBConstants+Private.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "DBConstants+Private.mm"; sourceTree = "<group>"; };
A238CA7A1AF84B7100CDDCE5 /* DBDateRecord+Private.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "DBDateRecord+Private.mm"; sourceTree = "<group>"; };
......@@ -282,6 +274,22 @@
A278D45219BA3601006FD937 /* test_helpers.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = test_helpers.cpp; sourceTree = "<group>"; };
A2CB54B319BA6E6000A9E600 /* DJIError.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DJIError.mm; sourceTree = "<group>"; };
A2CCB9411AF80DFC00E6230A /* DBClientInterface+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "DBClientInterface+Private.h"; sourceTree = "<group>"; };
B5153F871D54282C00012654 /* wchar_test_rec.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = wchar_test_rec.hpp; sourceTree = "<group>"; };
B5153F891D54283700012654 /* DBWcharTestRec+Private.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "DBWcharTestRec+Private.mm"; sourceTree = "<group>"; };
B5153F8A1D54283700012654 /* DBWcharTestRec+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "DBWcharTestRec+Private.h"; sourceTree = "<group>"; };
B5153F8B1D54283700012654 /* DBWcharTestRec.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DBWcharTestRec.mm; sourceTree = "<group>"; };
B5153F8C1D54283700012654 /* DBWcharTestRec.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DBWcharTestRec.h; sourceTree = "<group>"; };
B5153F901D54283700012654 /* DBUsesSingleLanguageListeners+Private.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "DBUsesSingleLanguageListeners+Private.mm"; sourceTree = "<group>"; };
B5153F911D54283700012654 /* DBUsesSingleLanguageListeners+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "DBUsesSingleLanguageListeners+Private.h"; sourceTree = "<group>"; };
B5153F921D54283700012654 /* DBUsesSingleLanguageListeners.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DBUsesSingleLanguageListeners.h; sourceTree = "<group>"; };
B5153F971D54284100012654 /* DBJavaOnlyListener+Private.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "DBJavaOnlyListener+Private.mm"; sourceTree = "<group>"; };
B5153F981D54284100012654 /* DBJavaOnlyListener+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "DBJavaOnlyListener+Private.h"; sourceTree = "<group>"; };
B5153F991D54284100012654 /* DBJavaOnlyListener.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DBJavaOnlyListener.h; sourceTree = "<group>"; };
B51911151D542A7000772DFE /* DBWcharTestHelpers+Private.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "DBWcharTestHelpers+Private.mm"; sourceTree = "<group>"; };
B51911161D542A7000772DFE /* DBWcharTestHelpers+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "DBWcharTestHelpers+Private.h"; sourceTree = "<group>"; };
B51911171D542A7000772DFE /* DBWcharTestHelpers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DBWcharTestHelpers.h; sourceTree = "<group>"; };
B51911191D542AEC00772DFE /* wchar_test_helpers.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = wchar_test_helpers.hpp; sourceTree = "<group>"; };
B519111A1D542B0700772DFE /* wchar_test_helpers.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = wchar_test_helpers.cpp; sourceTree = "<group>"; };
B52DA5641B103F6D005CE75F /* DBAssortedPrimitives.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DBAssortedPrimitives.h; sourceTree = "<group>"; };
B52DA5651B103F6D005CE75F /* DBAssortedPrimitives.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = DBAssortedPrimitives.mm; sourceTree = "<group>"; };
B52DA5661B103F6D005CE75F /* DBAssortedPrimitives+Private.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "DBAssortedPrimitives+Private.h"; sourceTree = "<group>"; };
......@@ -300,18 +308,39 @@
B5E9C93D1C1F9E9E0073C123 /* DBReverseClientInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DBReverseClientInterface.h; sourceTree = "<group>"; };
B5E9C93E1C1F9E9E0073C123 /* DBReverseClientInterface+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "DBReverseClientInterface+Private.h"; sourceTree = "<group>"; };
B5E9C93F1C1F9E9E0073C123 /* DBReverseClientInterface+Private.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "DBReverseClientInterface+Private.mm"; sourceTree = "<group>"; };
B5F06AA81D499379005BE736 /* DBUsesSingleLanguageListeners+Private.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "DBUsesSingleLanguageListeners+Private.mm"; sourceTree = "<group>"; };
B5F06AA91D499379005BE736 /* DBUsesSingleLanguageListeners+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "DBUsesSingleLanguageListeners+Private.h"; sourceTree = "<group>"; };
B5F06AAA1D499379005BE736 /* DBUsesSingleLanguageListeners.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DBUsesSingleLanguageListeners.h; sourceTree = "<group>"; };
B5F06AAB1D499379005BE736 /* DBObjcOnlyListener+Private.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "DBObjcOnlyListener+Private.mm"; sourceTree = "<group>"; };
B5F06AAC1D499379005BE736 /* DBObjcOnlyListener+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "DBObjcOnlyListener+Private.h"; sourceTree = "<group>"; };
B5F06AAD1D499379005BE736 /* DBObjcOnlyListener.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DBObjcOnlyListener.h; sourceTree = "<group>"; };
B5F06AAE1D499379005BE736 /* DBJavaOnlyListener+Private.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "DBJavaOnlyListener+Private.mm"; sourceTree = "<group>"; };
B5F06AAF1D499379005BE736 /* DBJavaOnlyListener+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "DBJavaOnlyListener+Private.h"; sourceTree = "<group>"; };
B5F06AB01D499379005BE736 /* DBJavaOnlyListener.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DBJavaOnlyListener.h; sourceTree = "<group>"; };
B5F06AB41D49950C005BE736 /* uses_single_language_listeners.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = uses_single_language_listeners.hpp; sourceTree = "<group>"; };
B5F06AB51D49950C005BE736 /* objc_only_listener.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = objc_only_listener.hpp; sourceTree = "<group>"; };
B5F06AB61D49950C005BE736 /* java_only_listener.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = java_only_listener.hpp; sourceTree = "<group>"; };
B5F06A651D497396005BE736 /* conflict_user.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = conflict_user.hpp; sourceTree = "<group>"; };
B5F06A661D497396005BE736 /* Conflict.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = Conflict.hpp; sourceTree = "<group>"; };
B5F06A681D497396005BE736 /* extended_record_base.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = extended_record_base.cpp; sourceTree = "<group>"; };
B5F06A691D497396005BE736 /* extended_record_base.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = extended_record_base.hpp; sourceTree = "<group>"; };
B5F06A6A1D497396005BE736 /* java_only_listener.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = java_only_listener.hpp; sourceTree = "<group>"; };
B5F06A6B1D497396005BE736 /* objc_only_listener.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = objc_only_listener.hpp; sourceTree = "<group>"; };
B5F06A6C1D497396005BE736 /* uses_single_language_listeners.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = uses_single_language_listeners.hpp; sourceTree = "<group>"; };
B5F06A6E1D4973BD005BE736 /* DBConflict.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DBConflict.h; sourceTree = "<group>"; };
B5F06A6F1D4973BD005BE736 /* DBConflict+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "DBConflict+Private.h"; sourceTree = "<group>"; };
B5F06A701D4973BD005BE736 /* DBConflict+Private.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "DBConflict+Private.mm"; sourceTree = "<group>"; };
B5F06A711D4973BD005BE736 /* DBConflictUser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DBConflictUser.h; sourceTree = "<group>"; };
B5F06A721D4973BD005BE736 /* DBConflictUser+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "DBConflictUser+Private.h"; sourceTree = "<group>"; };
B5F06A731D4973BD005BE736 /* DBConflictUser+Private.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "DBConflictUser+Private.mm"; sourceTree = "<group>"; };
B5F06A781D4973BD005BE736 /* DBExtendedRecord.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DBExtendedRecord.h; sourceTree = "<group>"; };
B5F06A791D4973BD005BE736 /* DBExtendedRecord.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DBExtendedRecord.mm; sourceTree = "<group>"; };
B5F06A7A1D4973BD005BE736 /* DBExtendedRecord+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "DBExtendedRecord+Private.h"; sourceTree = "<group>"; };
B5F06A7B1D4973BD005BE736 /* DBExtendedRecord+Private.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "DBExtendedRecord+Private.mm"; sourceTree = "<group>"; };
B5F06A7F1D4973BD005BE736 /* DBObjcOnlyListener.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DBObjcOnlyListener.h; sourceTree = "<group>"; };
B5F06A801D4973BD005BE736 /* DBObjcOnlyListener+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "DBObjcOnlyListener+Private.h"; sourceTree = "<group>"; };
B5F06A811D4973BD005BE736 /* DBObjcOnlyListener+Private.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "DBObjcOnlyListener+Private.mm"; sourceTree = "<group>"; };
B5F06A971D497A66005BE736 /* extended_record.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = extended_record.cpp; sourceTree = "<group>"; };
B5F06A981D497A66005BE736 /* extended_record.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = extended_record.hpp; sourceTree = "<group>"; };
B5F06A991D497A66005BE736 /* optional.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = optional.hpp; sourceTree = "<group>"; };
B5F06A9B1D4987C7005BE736 /* enum_usage_interface.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = enum_usage_interface.hpp; sourceTree = "<group>"; };
B5F06A9C1D4987C7005BE736 /* enum_usage_record.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = enum_usage_record.hpp; sourceTree = "<group>"; };
B5F06A9D1D4987EF005BE736 /* DBColor+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "DBColor+Private.h"; sourceTree = "<group>"; };
B5F06A9E1D4987EF005BE736 /* DBEnumUsageInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DBEnumUsageInterface.h; sourceTree = "<group>"; };
B5F06A9F1D4987EF005BE736 /* DBEnumUsageInterface+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "DBEnumUsageInterface+Private.h"; sourceTree = "<group>"; };
B5F06AA01D4987EF005BE736 /* DBEnumUsageInterface+Private.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "DBEnumUsageInterface+Private.mm"; sourceTree = "<group>"; };
B5F06AA11D4987EF005BE736 /* DBEnumUsageRecord.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DBEnumUsageRecord.h; sourceTree = "<group>"; };
B5F06AA21D4987EF005BE736 /* DBEnumUsageRecord.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DBEnumUsageRecord.mm; sourceTree = "<group>"; };
B5F06AA31D4987EF005BE736 /* DBEnumUsageRecord+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "DBEnumUsageRecord+Private.h"; sourceTree = "<group>"; };
B5F06AA41D4987EF005BE736 /* DBEnumUsageRecord+Private.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "DBEnumUsageRecord+Private.mm"; sourceTree = "<group>"; };
CFAED8711B54291900E3B8A3 /* DBEmptyRecord.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DBEmptyRecord.h; sourceTree = "<group>"; };
CFAED8721B54291900E3B8A3 /* DBEmptyRecord.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DBEmptyRecord.mm; sourceTree = "<group>"; };
CFAED8731B54291900E3B8A3 /* DBEmptyRecord+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "DBEmptyRecord+Private.h"; sourceTree = "<group>"; };
......@@ -409,7 +438,10 @@
6536CD7519A6C98800DD7715 /* handwritten-cpp */ = {
isa = PBXGroup;
children = (
728E111E1D37DE1C005A554D /* wchar_test_helpers.cpp */,
B519111A1D542B0700772DFE /* wchar_test_helpers.cpp */,
B5F06A971D497A66005BE736 /* extended_record.cpp */,
B5F06A981D497A66005BE736 /* extended_record.hpp */,
B5F06A991D497A66005BE736 /* optional.hpp */,
B5E9C9391C1F9D9D0073C123 /* reverse_client_interface_impl.cpp */,
B5E9C93A1C1F9D9D0073C123 /* reverse_client_interface_impl.hpp */,
6536CD7619A6C98800DD7715 /* cpp_exception_impl.cpp */,
......@@ -486,22 +518,40 @@
A24249181AF192E0003BF8F0 /* generated-objc */ = {
isa = PBXGroup;
children = (
728E11141D37DE0B005A554D /* DBWcharTestHelpers.h */,
728E11151D37DE0B005A554D /* DBWcharTestHelpers+Private.h */,
728E11161D37DE0B005A554D /* DBWcharTestHelpers+Private.mm */,
728E11171D37DE0B005A554D /* DBWcharTestRec.h */,
728E11181D37DE0B005A554D /* DBWcharTestRec.mm */,
728E11191D37DE0B005A554D /* DBWcharTestRec+Private.h */,
728E111A1D37DE0B005A554D /* DBWcharTestRec+Private.mm */,
B5F06AA81D499379005BE736 /* DBUsesSingleLanguageListeners+Private.mm */,
B5F06AA91D499379005BE736 /* DBUsesSingleLanguageListeners+Private.h */,
B5F06AAA1D499379005BE736 /* DBUsesSingleLanguageListeners.h */,
B5F06AAB1D499379005BE736 /* DBObjcOnlyListener+Private.mm */,
B5F06AAC1D499379005BE736 /* DBObjcOnlyListener+Private.h */,
B5F06AAD1D499379005BE736 /* DBObjcOnlyListener.h */,
B5F06AAE1D499379005BE736 /* DBJavaOnlyListener+Private.mm */,
B5F06AAF1D499379005BE736 /* DBJavaOnlyListener+Private.h */,
B5F06AB01D499379005BE736 /* DBJavaOnlyListener.h */,
B51911151D542A7000772DFE /* DBWcharTestHelpers+Private.mm */,
B51911161D542A7000772DFE /* DBWcharTestHelpers+Private.h */,
B51911171D542A7000772DFE /* DBWcharTestHelpers.h */,
B5153F971D54284100012654 /* DBJavaOnlyListener+Private.mm */,
B5153F981D54284100012654 /* DBJavaOnlyListener+Private.h */,
B5153F991D54284100012654 /* DBJavaOnlyListener.h */,
B5153F891D54283700012654 /* DBWcharTestRec+Private.mm */,
B5153F8A1D54283700012654 /* DBWcharTestRec+Private.h */,
B5153F8B1D54283700012654 /* DBWcharTestRec.mm */,
B5153F8C1D54283700012654 /* DBWcharTestRec.h */,
B5153F901D54283700012654 /* DBUsesSingleLanguageListeners+Private.mm */,
B5153F911D54283700012654 /* DBUsesSingleLanguageListeners+Private.h */,
B5153F921D54283700012654 /* DBUsesSingleLanguageListeners.h */,
B5F06A9D1D4987EF005BE736 /* DBColor+Private.h */,
B5F06A9E1D4987EF005BE736 /* DBEnumUsageInterface.h */,
B5F06A9F1D4987EF005BE736 /* DBEnumUsageInterface+Private.h */,
B5F06AA01D4987EF005BE736 /* DBEnumUsageInterface+Private.mm */,
B5F06AA11D4987EF005BE736 /* DBEnumUsageRecord.h */,
B5F06AA21D4987EF005BE736 /* DBEnumUsageRecord.mm */,
B5F06AA31D4987EF005BE736 /* DBEnumUsageRecord+Private.h */,
B5F06AA41D4987EF005BE736 /* DBEnumUsageRecord+Private.mm */,
B5F06A6E1D4973BD005BE736 /* DBConflict.h */,
B5F06A6F1D4973BD005BE736 /* DBConflict+Private.h */,
B5F06A701D4973BD005BE736 /* DBConflict+Private.mm */,
B5F06A711D4973BD005BE736 /* DBConflictUser.h */,
B5F06A721D4973BD005BE736 /* DBConflictUser+Private.h */,
B5F06A731D4973BD005BE736 /* DBConflictUser+Private.mm */,
B5F06A781D4973BD005BE736 /* DBExtendedRecord.h */,
B5F06A791D4973BD005BE736 /* DBExtendedRecord.mm */,
B5F06A7A1D4973BD005BE736 /* DBExtendedRecord+Private.h */,
B5F06A7B1D4973BD005BE736 /* DBExtendedRecord+Private.mm */,
B5F06A7F1D4973BD005BE736 /* DBObjcOnlyListener.h */,
B5F06A801D4973BD005BE736 /* DBObjcOnlyListener+Private.h */,
B5F06A811D4973BD005BE736 /* DBObjcOnlyListener+Private.mm */,
B5D8FC321C23E2F40045ADCF /* DBConstantRecord.h */,
B5D8FC331C23E2F40045ADCF /* DBConstantRecord.mm */,
B5D8FC341C23E2F40045ADCF /* DBConstantRecord+Private.h */,
......@@ -509,10 +559,6 @@
B5E9C93D1C1F9E9E0073C123 /* DBReverseClientInterface.h */,
B5E9C93E1C1F9E9E0073C123 /* DBReverseClientInterface+Private.h */,
B5E9C93F1C1F9E9E0073C123 /* DBReverseClientInterface+Private.mm */,
A209B5751BBA2A0A0070C310 /* DBOptColorRecord.h */,
A209B5761BBA2A0A0070C310 /* DBOptColorRecord.mm */,
A209B5771BBA2A0A0070C310 /* DBOptColorRecord+Private.h */,
A209B5781BBA2A0A0070C310 /* DBOptColorRecord+Private.mm */,
B52DA5641B103F6D005CE75F /* DBAssortedPrimitives.h */,
B52DA5651B103F6D005CE75F /* DBAssortedPrimitives.mm */,
B52DA5661B103F6D005CE75F /* DBAssortedPrimitives+Private.h */,
......@@ -622,14 +668,19 @@
A242495D1AF192FC003BF8F0 /* generated-cpp */ = {
isa = PBXGroup;
children = (
728E11121D37DDFB005A554D /* wchar_test_helpers.hpp */,
728E11131D37DDFB005A554D /* wchar_test_rec.hpp */,
B5F06AB41D49950C005BE736 /* uses_single_language_listeners.hpp */,
B5F06AB51D49950C005BE736 /* objc_only_listener.hpp */,
B5F06AB61D49950C005BE736 /* java_only_listener.hpp */,
B51911191D542AEC00772DFE /* wchar_test_helpers.hpp */,
B5153F871D54282C00012654 /* wchar_test_rec.hpp */,
B5F06A9B1D4987C7005BE736 /* enum_usage_interface.hpp */,
B5F06A9C1D4987C7005BE736 /* enum_usage_record.hpp */,
B5F06A651D497396005BE736 /* conflict_user.hpp */,
B5F06A661D497396005BE736 /* Conflict.hpp */,
B5F06A681D497396005BE736 /* extended_record_base.cpp */,
B5F06A691D497396005BE736 /* extended_record_base.hpp */,
B5F06A6A1D497396005BE736 /* java_only_listener.hpp */,
B5F06A6B1D497396005BE736 /* objc_only_listener.hpp */,
B5F06A6C1D497396005BE736 /* uses_single_language_listeners.hpp */,
B5D8FC381C23E30D0045ADCF /* constant_record.hpp */,
B5E9C93C1C1F9DCA0073C123 /* reverse_client_interface.hpp */,
A209B57B1BBA2A180070C310 /* opt_color_record.hpp */,
B52DA56C1B103FBE005CE75F /* assorted_primitives.cpp */,
B52DA56D1B103FBE005CE75F /* assorted_primitives.hpp */,
A24249601AF192FC003BF8F0 /* client_interface.hpp */,
......@@ -753,8 +804,8 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
B5F06AA61D4987EF005BE736 /* DBEnumUsageRecord.mm in Sources */,
A238CA981AF84B7100CDDCE5 /* DBMapRecord+Private.mm in Sources */,
728E111B1D37DE0B005A554D /* DBWcharTestHelpers+Private.mm in Sources */,
CFC5D9E81B1513E800BF2DF8 /* DBExternInterface1+Private.mm in Sources */,
B5D8FC361C23E2F40045ADCF /* DBConstantRecord.mm in Sources */,
A24850311AF96EBC00AFE907 /* DBSetRecord.mm in Sources */,
......@@ -762,13 +813,13 @@
655168421C404B81003682A4 /* DBFirstListener+Private.mm in Sources */,
A24850271AF96EBC00AFE907 /* DBClientReturnedRecord.mm in Sources */,
CFC5D9D61B15106400BF2DF8 /* DBExternRecordWithDerivings.mm in Sources */,
B5F06AB31D499379005BE736 /* DBJavaOnlyListener+Private.mm in Sources */,
CFC5DA0E1B15330000BF2DF8 /* record_with_duration_and_derivings.cpp in Sources */,
A238CA941AF84B7100CDDCE5 /* DBMapDateRecord+Private.mm in Sources */,
CFFD588F1B019E79001E10B6 /* DBTestHelpers+Private.mm in Sources */,
A24850291AF96EBC00AFE907 /* DBDateRecord.mm in Sources */,
A278D45319BA3601006FD937 /* test_helpers.cpp in Sources */,
6551684C1C4050A4003682A4 /* DBReturnOne+Private.mm in Sources */,
B5F06AA51D4987EF005BE736 /* DBEnumUsageInterface+Private.mm in Sources */,
CFFD588D1B019E79001E10B6 /* DBCppException+Private.mm in Sources */,
A238CA921AF84B7100CDDCE5 /* DBDateRecord+Private.mm in Sources */,
A248502B1AF96EBC00AFE907 /* DBMapListRecord.mm in Sources */,
......@@ -778,32 +829,32 @@
CFF89B931B5D2CC7007F6EC2 /* date_record.cpp in Sources */,
A24850301AF96EBC00AFE907 /* DBRecordWithNestedDerivings.mm in Sources */,
CFFD58B11B041BD9001E10B6 /* DBConstantsInterface.mm in Sources */,
A209B5791BBA2A0A0070C310 /* DBOptColorRecord.mm in Sources */,
B52DA56E1B103FC5005CE75F /* assorted_primitives.cpp in Sources */,
CFFD58B31B041BD9001E10B6 /* DBConstantsInterface+Private.mm in Sources */,
CFC5D9FC1B152E4300BF2DF8 /* TranslateDuration.cpp in Sources */,
A248502F1AF96EBC00AFE907 /* DBRecordWithDerivings.mm in Sources */,
B5F06A851D4973BD005BE736 /* DBConflict+Private.mm in Sources */,
A24249741AF192FC003BF8F0 /* constants.cpp in Sources */,
CFFD588B1B019E79001E10B6 /* DBClientInterface+Private.mm in Sources */,
B52DA5691B103F72005CE75F /* DBAssortedPrimitives.mm in Sources */,
B5F06AB21D499379005BE736 /* DBObjcOnlyListener+Private.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 */,
B5F06AB11D499379005BE736 /* DBUsesSingleLanguageListeners+Private.mm in Sources */,
A238CA9A1AF84B7100CDDCE5 /* DBNestedCollection+Private.mm in Sources */,
CFFD58911B019E79001E10B6 /* DBUserToken+Private.mm in Sources */,
B5153F9A1D54284100012654 /* DBJavaOnlyListener+Private.mm in Sources */,
B5F06A9A1D497A66005BE736 /* extended_record.cpp in Sources */,
A2CB54B419BA6E6000A9E600 /* DJIError.mm in Sources */,
B5E9C9401C1F9E9E0073C123 /* DBReverseClientInterface+Private.mm in Sources */,
B5F06A891D4973BD005BE736 /* DBExtendedRecord.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 */,
728E111D1D37DE0B005A554D /* DBWcharTestRec+Private.mm in Sources */,
728E111C1D37DE0B005A554D /* DBWcharTestRec.mm in Sources */,
B5F06A861D4973BD005BE736 /* DBConflictUser+Private.mm in Sources */,
B5E9C93B1C1F9D9D0073C123 /* reverse_client_interface_impl.cpp in Sources */,
CFC5D9D81B15106400BF2DF8 /* DBExternRecordWithDerivings+Private.mm in Sources */,
A238CAA21AF84B7100CDDCE5 /* DBSetRecord+Private.mm in Sources */,
......@@ -812,18 +863,25 @@
6551684F1C40511C003682A4 /* return_one_two.cpp in Sources */,
A24249751AF192FC003BF8F0 /* record_with_derivings.cpp in Sources */,
CFC5D9D01B15105100BF2DF8 /* extern_record_with_derivings.cpp in Sources */,
B51911181D542A7000772DFE /* DBWcharTestHelpers+Private.mm in Sources */,
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 */,
B5F06A6D1D497396005BE736 /* extended_record_base.cpp in Sources */,
A238CA8E1AF84B7100CDDCE5 /* DBClientReturnedRecord+Private.mm in Sources */,
B5F06A8A1D4973BD005BE736 /* DBExtendedRecord+Private.mm in Sources */,
6551684D1C4050A4003682A4 /* DBReturnTwo+Private.mm in Sources */,
B5F06AA71D4987EF005BE736 /* DBEnumUsageRecord+Private.mm in Sources */,
B52DA56B1B103F75005CE75F /* DBAssortedPrimitives+Private.mm in Sources */,
B5153F941D54283700012654 /* DBWcharTestRec.mm in Sources */,
B5153F931D54283700012654 /* DBWcharTestRec+Private.mm in Sources */,
A248502E1AF96EBC00AFE907 /* DBPrimitiveList.mm in Sources */,
A209B57A1BBA2A0A0070C310 /* DBOptColorRecord+Private.mm in Sources */,
B5F06A8C1D4973BD005BE736 /* DBObjcOnlyListener+Private.mm in Sources */,
B5153F961D54283700012654 /* DBUsesSingleLanguageListeners+Private.mm in Sources */,
B5D8FC371C23E2F40045ADCF /* DBConstantRecord+Private.mm in Sources */,
728E111F1D37DE1C005A554D /* wchar_test_helpers.cpp in Sources */,
B519111B1D542B0700772DFE /* wchar_test_helpers.cpp in Sources */,
A238CAA01AF84B7100CDDCE5 /* DBRecordWithNestedDerivings+Private.mm in Sources */,
CFC5DA0A1B1532F600BF2DF8 /* DBRecordWithDurationAndDerivings+Private.mm in Sources */,
);
......@@ -895,7 +953,7 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "c++14";
CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
......@@ -939,7 +997,7 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "c++14";
CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
......
......@@ -75,7 +75,7 @@ fi
--cpp-namespace testsuite \
--ident-cpp-enum-type foo_bar \
--cpp-optional-template "std::experimental::optional" \
--cpp-optional-header "<experimental/optional>" \
--cpp-optional-header "\"../../handwritten-src/cpp/optional.hpp\"" \
--cpp-extended-record-include-prefix "../../handwritten-src/cpp/" \
--cpp-use-wide-strings true \
\
......@@ -104,7 +104,7 @@ fi
--cpp-namespace testsuite \
--ident-cpp-enum-type foo_bar \
--cpp-optional-template "std::experimental::optional" \
--cpp-optional-header "<experimental/optional>" \
--cpp-optional-header "\"../../handwritten-src/cpp/optional.hpp\"" \
--cpp-extended-record-include-prefix "../../handwritten-src/cpp/" \
\
--jni-out "$temp_out_relative/jni" \
......@@ -136,7 +136,7 @@ cp "$base_dir/djinni/yaml-test.djinni" "$temp_out/yaml"
--cpp-out "$temp_out_relative/cpp" \
--ident-cpp-enum-type foo_bar \
--cpp-optional-template "std::experimental::optional" \
--cpp-optional-header "<experimental/optional>" \
--cpp-optional-header "\"../../handwritten-src/cpp/optional.hpp\"" \
\
--jni-out "$temp_out_relative/jni" \
--ident-jni-class NativeFooBar \
......
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