Commit 6c869e1f authored by Andrew Twyman's avatar Andrew Twyman

Fix use of extended record include prefix

parent 53236b6c
...@@ -59,18 +59,18 @@ class CppMarshal(spec: Spec) extends Marshal(spec) { ...@@ -59,18 +59,18 @@ class CppMarshal(spec: Spec) extends Marshal(spec) {
case MList => List(ImportRef("<vector>")) case MList => List(ImportRef("<vector>"))
case MSet => List(ImportRef("<unordered_set>")) case MSet => List(ImportRef("<unordered_set>"))
case MMap => List(ImportRef("<unordered_map>")) case MMap => List(ImportRef("<unordered_map>"))
case d: MDef => d.defType match { case d: MDef => d.body match {
case DRecord => case r: Record =>
if (d.name != exclude) { if (d.name != exclude) {
if (forwardDeclareOnly) { if (forwardDeclareOnly) {
List(DeclRef(s"struct ${typename(d.name, d.body)};", Some(spec.cppNamespace))) List(DeclRef(s"struct ${typename(d.name, d.body)};", Some(spec.cppNamespace)))
} else { } else {
List(ImportRef(include(d.name))) List(ImportRef(include(d.name, r.ext.cpp)))
} }
} else { } else {
List() List()
} }
case DEnum => case e: Enum =>
if (d.name != exclude) { if (d.name != exclude) {
if (forwardDeclareOnly) { if (forwardDeclareOnly) {
List(DeclRef(s"enum class ${typename(d.name, d.body)};", Some(spec.cppNamespace))) List(DeclRef(s"enum class ${typename(d.name, d.body)};", Some(spec.cppNamespace)))
...@@ -80,7 +80,7 @@ class CppMarshal(spec: Spec) extends Marshal(spec) { ...@@ -80,7 +80,7 @@ class CppMarshal(spec: Spec) extends Marshal(spec) {
} else { } else {
List() List()
} }
case DInterface => case i: Interface =>
val base = if (d.name != exclude) { val base = if (d.name != exclude) {
List(ImportRef("<memory>"), DeclRef(s"class ${typename(d.name, d.body)};", Some(spec.cppNamespace))) List(ImportRef("<memory>"), DeclRef(s"class ${typename(d.name, d.body)};", Some(spec.cppNamespace)))
} else { } else {
...@@ -106,14 +106,14 @@ class CppMarshal(spec: Spec) extends Marshal(spec) { ...@@ -106,14 +106,14 @@ class CppMarshal(spec: Spec) extends Marshal(spec) {
List() List()
} else { } else {
m match { m match {
case d: MDef => d.defType match { case d: MDef => d.body match {
case DRecord => case r: Record =>
if (d.name != exclude) { if (d.name != exclude) {
List(ImportRef(include(d.name))) List(ImportRef(include(d.name, r.ext.cpp)))
} else { } else {
List() List()
} }
case DEnum => case e: Enum =>
if (d.name != exclude) { if (d.name != exclude) {
List(ImportRef(include(d.name))) List(ImportRef(include(d.name)))
} else { } else {
...@@ -126,7 +126,10 @@ class CppMarshal(spec: Spec) extends Marshal(spec) { ...@@ -126,7 +126,10 @@ class CppMarshal(spec: Spec) extends Marshal(spec) {
} }
} }
def include(ident: String): String = q(spec.cppIncludePrefix + spec.cppFileIdentStyle(ident) + "." + spec.cppHeaderExt) def include(ident: String, isExtendedRecord: Boolean = false): String = {
val prefix = if (isExtendedRecord) spec.cppExtendedRecordIncludePrefix else spec.cppIncludePrefix
q(prefix + spec.cppFileIdentStyle (ident) + "." + spec.cppHeaderExt)
}
private def toCppType(ty: TypeRef, namespace: Option[String] = None, scopeSymbols: Seq[String] = Seq()): String = private def toCppType(ty: TypeRef, namespace: Option[String] = None, scopeSymbols: Seq[String] = Seq()): String =
toCppType(ty.resolved, namespace, scopeSymbols) toCppType(ty.resolved, namespace, scopeSymbols)
......
# Extended record # Extended record
extended_record = record +c { extended_record = record +c {
foo: bool; foo: bool;
const extended_record_const: extended_record = {foo=true}; const extended_record_const: extended_record = { foo = true };
}
record_using_extended_record = record {
er: extended_record;
const cr: record_using_extended_record = {er = { foo = false } };
}
interface_using_extended_record = interface +c {
meth(er: extended_record): extended_record;
const cr: record_using_extended_record = {er = { foo = false } };
} }
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from extended_record.djinni
#include "interface_using_extended_record.hpp" // my header
#include "../../handwritten-src/cpp/extended_record.hpp"
#include "record_using_extended_record.hpp"
namespace testsuite {
RecordUsingExtendedRecord const InterfaceUsingExtendedRecord::CR = RecordUsingExtendedRecord(
ExtendedRecord(
false /* foo */ ) /* er */ );
} // namespace testsuite
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from extended_record.djinni
#pragma once
namespace testsuite {
struct ExtendedRecord;
struct RecordUsingExtendedRecord;
class InterfaceUsingExtendedRecord {
public:
virtual ~InterfaceUsingExtendedRecord() {}
static RecordUsingExtendedRecord const CR;
virtual ExtendedRecord meth(const ExtendedRecord & er) = 0;
};
} // namespace testsuite
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from extended_record.djinni
#include "record_using_extended_record.hpp" // my header
namespace testsuite {
RecordUsingExtendedRecord const RecordUsingExtendedRecord::CR = RecordUsingExtendedRecord(
ExtendedRecord(
false /* foo */ ) /* er */ );
} // namespace testsuite
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from extended_record.djinni
#pragma once
#include "../../handwritten-src/cpp/extended_record.hpp"
#include <utility>
namespace testsuite {
struct RecordUsingExtendedRecord final {
static RecordUsingExtendedRecord const CR;
ExtendedRecord er;
RecordUsingExtendedRecord(ExtendedRecord er_)
: er(std::move(er_))
{}
};
} // namespace testsuite
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from extended_record.djinni
package com.dropbox.djinni.test;
import java.util.concurrent.atomic.AtomicBoolean;
import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
public abstract class InterfaceUsingExtendedRecord {
@Nonnull
public static final RecordUsingExtendedRecord CR = new RecordUsingExtendedRecord(
new ExtendedRecord(
false /* mFoo */ ) /* mEr */ );
@Nonnull
public abstract ExtendedRecord meth(@Nonnull ExtendedRecord er);
private static final class CppProxy extends InterfaceUsingExtendedRecord
{
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 ExtendedRecord meth(ExtendedRecord er)
{
assert !this.destroyed.get() : "trying to use a destroyed object";
return native_meth(this.nativeRef, er);
}
private native ExtendedRecord native_meth(long _nativeRef, ExtendedRecord er);
}
}
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from extended_record.djinni
package com.dropbox.djinni.test;
import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
public class RecordUsingExtendedRecord {
@Nonnull
public static final RecordUsingExtendedRecord CR = new RecordUsingExtendedRecord(
new ExtendedRecord(
false /* mFoo */ ) /* mEr */ );
/*package*/ final ExtendedRecord mEr;
public RecordUsingExtendedRecord(
@Nonnull ExtendedRecord er) {
this.mEr = er;
}
@Nonnull
public ExtendedRecord getEr() {
return mEr;
}
@Override
public String toString() {
return "RecordUsingExtendedRecord{" +
"mEr=" + mEr +
"}";
}
}
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from extended_record.djinni
#include "NativeInterfaceUsingExtendedRecord.hpp" // my header
#include "NativeExtendedRecord.hpp"
#include "NativeRecordUsingExtendedRecord.hpp"
namespace djinni_generated {
NativeInterfaceUsingExtendedRecord::NativeInterfaceUsingExtendedRecord() : ::djinni::JniInterface<::testsuite::InterfaceUsingExtendedRecord, NativeInterfaceUsingExtendedRecord>("com/dropbox/djinni/test/InterfaceUsingExtendedRecord$CppProxy") {}
NativeInterfaceUsingExtendedRecord::~NativeInterfaceUsingExtendedRecord() = default;
CJNIEXPORT void JNICALL Java_com_dropbox_djinni_test_InterfaceUsingExtendedRecord_00024CppProxy_nativeDestroy(JNIEnv* jniEnv, jobject /*this*/, jlong nativeRef)
{
try {
DJINNI_FUNCTION_PROLOGUE1(jniEnv, nativeRef);
delete reinterpret_cast<::djinni::CppProxyHandle<::testsuite::InterfaceUsingExtendedRecord>*>(nativeRef);
} JNI_TRANSLATE_EXCEPTIONS_RETURN(jniEnv, )
}
CJNIEXPORT jobject JNICALL Java_com_dropbox_djinni_test_InterfaceUsingExtendedRecord_00024CppProxy_native_1meth(JNIEnv* jniEnv, jobject /*this*/, jlong nativeRef, jobject j_er)
{
try {
DJINNI_FUNCTION_PROLOGUE1(jniEnv, nativeRef);
const auto& ref = ::djinni::objectFromHandleAddress<::testsuite::InterfaceUsingExtendedRecord>(nativeRef);
auto r = ref->meth(::djinni_generated::NativeExtendedRecord::toCpp(jniEnv, j_er));
return ::djinni::release(::djinni_generated::NativeExtendedRecord::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 extended_record.djinni
#pragma once
#include "djinni_support.hpp"
#include "interface_using_extended_record.hpp"
namespace djinni_generated {
class NativeInterfaceUsingExtendedRecord final : ::djinni::JniInterface<::testsuite::InterfaceUsingExtendedRecord, NativeInterfaceUsingExtendedRecord> {
public:
using CppType = std::shared_ptr<::testsuite::InterfaceUsingExtendedRecord>;
using CppOptType = std::shared_ptr<::testsuite::InterfaceUsingExtendedRecord>;
using JniType = jobject;
using Boxed = NativeInterfaceUsingExtendedRecord;
~NativeInterfaceUsingExtendedRecord();
static CppType toCpp(JNIEnv* jniEnv, JniType j) { return ::djinni::JniClass<NativeInterfaceUsingExtendedRecord>::get()._fromJava(jniEnv, j); }
static ::djinni::LocalRef<JniType> fromCppOpt(JNIEnv* jniEnv, const CppOptType& c) { return {jniEnv, ::djinni::JniClass<NativeInterfaceUsingExtendedRecord>::get()._toJava(jniEnv, c)}; }
static ::djinni::LocalRef<JniType> fromCpp(JNIEnv* jniEnv, const CppType& c) { return fromCppOpt(jniEnv, c); }
private:
NativeInterfaceUsingExtendedRecord();
friend ::djinni::JniClass<NativeInterfaceUsingExtendedRecord>;
friend ::djinni::JniInterface<::testsuite::InterfaceUsingExtendedRecord, NativeInterfaceUsingExtendedRecord>;
};
} // namespace djinni_generated
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from extended_record.djinni
#include "NativeRecordUsingExtendedRecord.hpp" // my header
#include "NativeExtendedRecord.hpp"
namespace djinni_generated {
NativeRecordUsingExtendedRecord::NativeRecordUsingExtendedRecord() = default;
NativeRecordUsingExtendedRecord::~NativeRecordUsingExtendedRecord() = default;
auto NativeRecordUsingExtendedRecord::fromCpp(JNIEnv* jniEnv, const CppType& c) -> ::djinni::LocalRef<JniType> {
const auto& data = ::djinni::JniClass<NativeRecordUsingExtendedRecord>::get();
auto r = ::djinni::LocalRef<JniType>{jniEnv->NewObject(data.clazz.get(), data.jconstructor,
::djinni::get(::djinni_generated::NativeExtendedRecord::fromCpp(jniEnv, c.er)))};
::djinni::jniExceptionCheck(jniEnv);
return r;
}
auto NativeRecordUsingExtendedRecord::toCpp(JNIEnv* jniEnv, JniType j) -> CppType {
::djinni::JniLocalScope jscope(jniEnv, 2);
assert(j != nullptr);
const auto& data = ::djinni::JniClass<NativeRecordUsingExtendedRecord>::get();
return {::djinni_generated::NativeExtendedRecord::toCpp(jniEnv, jniEnv->GetObjectField(j, data.field_mEr))};
}
} // namespace djinni_generated
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from extended_record.djinni
#pragma once
#include "djinni_support.hpp"
#include "record_using_extended_record.hpp"
namespace djinni_generated {
class NativeRecordUsingExtendedRecord final {
public:
using CppType = ::testsuite::RecordUsingExtendedRecord;
using JniType = jobject;
using Boxed = NativeRecordUsingExtendedRecord;
~NativeRecordUsingExtendedRecord();
static CppType toCpp(JNIEnv* jniEnv, JniType j);
static ::djinni::LocalRef<JniType> fromCpp(JNIEnv* jniEnv, const CppType& c);
private:
NativeRecordUsingExtendedRecord();
friend ::djinni::JniClass<NativeRecordUsingExtendedRecord>;
const ::djinni::GlobalRef<jclass> clazz { ::djinni::jniFindClass("com/dropbox/djinni/test/RecordUsingExtendedRecord") };
const jmethodID jconstructor { ::djinni::jniGetMethodID(clazz.get(), "<init>", "(Lcom/dropbox/djinni/test/ExtendedRecord;)V") };
const jfieldID field_mEr { ::djinni::jniGetFieldID(clazz.get(), "mEr", "Lcom/dropbox/djinni/test/ExtendedRecord;") };
};
} // namespace djinni_generated
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from extended_record.djinni
#include "interface_using_extended_record.hpp"
#include <memory>
static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file");
@class DBInterfaceUsingExtendedRecord;
namespace djinni_generated {
class InterfaceUsingExtendedRecord
{
public:
using CppType = std::shared_ptr<::testsuite::InterfaceUsingExtendedRecord>;
using CppOptType = std::shared_ptr<::testsuite::InterfaceUsingExtendedRecord>;
using ObjcType = DBInterfaceUsingExtendedRecord*;
using Boxed = InterfaceUsingExtendedRecord;
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 extended_record.djinni
#import "DBInterfaceUsingExtendedRecord+Private.h"
#import "DBInterfaceUsingExtendedRecord.h"
#import "DBExtendedRecord+Private.h"
#import "DBRecordUsingExtendedRecord+Private.h"
#import "DJICppWrapperCache+Private.h"
#import "DJIError.h"
#include <exception>
#include <stdexcept>
#include <utility>
static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file");
@interface DBInterfaceUsingExtendedRecord ()
- (id)initWithCpp:(const std::shared_ptr<::testsuite::InterfaceUsingExtendedRecord>&)cppRef;
@end
@implementation DBInterfaceUsingExtendedRecord {
::djinni::CppProxyCache::Handle<std::shared_ptr<::testsuite::InterfaceUsingExtendedRecord>> _cppRefHandle;
}
- (id)initWithCpp:(const std::shared_ptr<::testsuite::InterfaceUsingExtendedRecord>&)cppRef
{
if (self = [super init]) {
_cppRefHandle.assign(cppRef);
}
return self;
}
- (nonnull DBExtendedRecord *)meth:(nonnull DBExtendedRecord *)er {
try {
auto objcpp_result_ = _cppRefHandle.get()->meth(::djinni_generated::ExtendedRecord::toCpp(er));
return ::djinni_generated::ExtendedRecord::fromCpp(objcpp_result_);
} DJINNI_TRANSLATE_EXCEPTIONS()
}
+ (DBRecordUsingExtendedRecord * __nonnull)cr
{
static DBRecordUsingExtendedRecord * const s_cr = [[DBRecordUsingExtendedRecord alloc] initWithEr:[[DBExtendedRecord alloc] initWithFoo:NO]];
return s_cr;
}
namespace djinni_generated {
auto InterfaceUsingExtendedRecord::toCpp(ObjcType objc) -> CppType
{
if (!objc) {
return nullptr;
}
return objc->_cppRefHandle.get();
}
auto InterfaceUsingExtendedRecord::fromCppOpt(const CppOptType& cpp) -> ObjcType
{
if (!cpp) {
return nil;
}
return ::djinni::get_cpp_proxy<DBInterfaceUsingExtendedRecord>(cpp);
}
} // namespace djinni_generated
@end
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from extended_record.djinni
#import "DBExtendedRecord.h"
#import "DBRecordUsingExtendedRecord.h"
#import <Foundation/Foundation.h>
@interface DBInterfaceUsingExtendedRecord : NSObject
- (nonnull DBExtendedRecord *)meth:(nonnull DBExtendedRecord *)er;
+ (DBRecordUsingExtendedRecord * __nonnull)cr;
@end
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from extended_record.djinni
#import "DBInterfaceUsingExtendedRecord.h"
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from extended_record.djinni
#import "DBRecordUsingExtendedRecord.h"
#include "record_using_extended_record.hpp"
static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file");
@class DBRecordUsingExtendedRecord;
namespace djinni_generated {
struct RecordUsingExtendedRecord
{
using CppType = ::testsuite::RecordUsingExtendedRecord;
using ObjcType = DBRecordUsingExtendedRecord*;
using Boxed = RecordUsingExtendedRecord;
static CppType toCpp(ObjcType objc);
static ObjcType fromCpp(const CppType& cpp);
};
} // namespace djinni_generated
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from extended_record.djinni
#import "DBRecordUsingExtendedRecord+Private.h"
#import "DBExtendedRecord+Private.h"
#include <cassert>
namespace djinni_generated {
auto RecordUsingExtendedRecord::toCpp(ObjcType obj) -> CppType
{
assert(obj);
return {::djinni_generated::ExtendedRecord::toCpp(obj.er)};
}
auto RecordUsingExtendedRecord::fromCpp(const CppType& cpp) -> ObjcType
{
return [[DBRecordUsingExtendedRecord alloc] initWithEr:(::djinni_generated::ExtendedRecord::fromCpp(cpp.er))];
}
} // namespace djinni_generated
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from extended_record.djinni
#import "DBExtendedRecord.h"
#import "DBRecordUsingExtendedRecord.h"
#import <Foundation/Foundation.h>
@interface DBRecordUsingExtendedRecord : NSObject
- (nonnull instancetype)initWithEr:(nonnull DBExtendedRecord *)er;
+ (nonnull instancetype)recordUsingExtendedRecordWithEr:(nonnull DBExtendedRecord *)er;
+ (DBRecordUsingExtendedRecord * __nonnull)cr;
@property (nonatomic, readonly, nonnull) DBExtendedRecord * er;
@end
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from extended_record.djinni
#import "DBRecordUsingExtendedRecord.h"
@implementation DBRecordUsingExtendedRecord
- (nonnull instancetype)initWithEr:(nonnull DBExtendedRecord *)er
{
if (self = [super init]) {
_er = er;
}
return self;
}
+ (nonnull instancetype)recordUsingExtendedRecordWithEr:(nonnull DBExtendedRecord *)er
{
return [[self alloc] initWithEr:er];
}
+ (DBRecordUsingExtendedRecord * __nonnull)cr
{
static DBRecordUsingExtendedRecord * const s_cr = [[DBRecordUsingExtendedRecord alloc] initWithEr:[[DBExtendedRecord alloc] initWithFoo:NO]];
return s_cr;
}
- (NSString *)description
{
return [NSString stringWithFormat:@"<%@ %p er:%@>", self.class, (void *)self, self.er];
}
@end
...@@ -8,6 +8,10 @@ djinni-output-temp/cpp/_varname_record_.hpp ...@@ -8,6 +8,10 @@ djinni-output-temp/cpp/_varname_record_.hpp
djinni-output-temp/cpp/_varname_interface_.hpp djinni-output-temp/cpp/_varname_interface_.hpp
djinni-output-temp/cpp/extended_record_base.hpp djinni-output-temp/cpp/extended_record_base.hpp
djinni-output-temp/cpp/extended_record_base.cpp djinni-output-temp/cpp/extended_record_base.cpp
djinni-output-temp/cpp/record_using_extended_record.hpp
djinni-output-temp/cpp/record_using_extended_record.cpp
djinni-output-temp/cpp/interface_using_extended_record.hpp
djinni-output-temp/cpp/interface_using_extended_record.cpp
djinni-output-temp/cpp/objc_only_listener.hpp djinni-output-temp/cpp/objc_only_listener.hpp
djinni-output-temp/cpp/java_only_listener.hpp djinni-output-temp/cpp/java_only_listener.hpp
djinni-output-temp/cpp/uses_single_language_listeners.hpp djinni-output-temp/cpp/uses_single_language_listeners.hpp
...@@ -51,6 +55,8 @@ djinni-output-temp/java/MapDateRecord.java ...@@ -51,6 +55,8 @@ djinni-output-temp/java/MapDateRecord.java
djinni-output-temp/java/VarnameRecord.java djinni-output-temp/java/VarnameRecord.java
djinni-output-temp/java/VarnameInterface.java djinni-output-temp/java/VarnameInterface.java
djinni-output-temp/java/ExtendedRecord.java djinni-output-temp/java/ExtendedRecord.java
djinni-output-temp/java/RecordUsingExtendedRecord.java
djinni-output-temp/java/InterfaceUsingExtendedRecord.java
djinni-output-temp/java/ObjcOnlyListener.java djinni-output-temp/java/ObjcOnlyListener.java
djinni-output-temp/java/JavaOnlyListener.java djinni-output-temp/java/JavaOnlyListener.java
djinni-output-temp/java/UsesSingleLanguageListeners.java djinni-output-temp/java/UsesSingleLanguageListeners.java
...@@ -96,6 +102,10 @@ djinni-output-temp/jni/NativeVarnameInterface.hpp ...@@ -96,6 +102,10 @@ djinni-output-temp/jni/NativeVarnameInterface.hpp
djinni-output-temp/jni/NativeVarnameInterface.cpp djinni-output-temp/jni/NativeVarnameInterface.cpp
djinni-output-temp/jni/NativeExtendedRecord.hpp djinni-output-temp/jni/NativeExtendedRecord.hpp
djinni-output-temp/jni/NativeExtendedRecord.cpp djinni-output-temp/jni/NativeExtendedRecord.cpp
djinni-output-temp/jni/NativeRecordUsingExtendedRecord.hpp
djinni-output-temp/jni/NativeRecordUsingExtendedRecord.cpp
djinni-output-temp/jni/NativeInterfaceUsingExtendedRecord.hpp
djinni-output-temp/jni/NativeInterfaceUsingExtendedRecord.cpp
djinni-output-temp/jni/NativeObjcOnlyListener.hpp djinni-output-temp/jni/NativeObjcOnlyListener.hpp
djinni-output-temp/jni/NativeObjcOnlyListener.cpp djinni-output-temp/jni/NativeObjcOnlyListener.cpp
djinni-output-temp/jni/NativeJavaOnlyListener.hpp djinni-output-temp/jni/NativeJavaOnlyListener.hpp
...@@ -169,6 +179,10 @@ djinni-output-temp/objc/DBVarnameRecord.mm ...@@ -169,6 +179,10 @@ djinni-output-temp/objc/DBVarnameRecord.mm
djinni-output-temp/objc/DBVarnameInterface.h djinni-output-temp/objc/DBVarnameInterface.h
djinni-output-temp/objc/DBExtendedRecord.h djinni-output-temp/objc/DBExtendedRecord.h
djinni-output-temp/objc/DBExtendedRecord.mm djinni-output-temp/objc/DBExtendedRecord.mm
djinni-output-temp/objc/DBRecordUsingExtendedRecord.h
djinni-output-temp/objc/DBRecordUsingExtendedRecord.mm
djinni-output-temp/objc/DBInterfaceUsingExtendedRecord.h
djinni-output-temp/objc/DBInterfaceUsingExtendedRecord.mm
djinni-output-temp/objc/DBObjcOnlyListener.h djinni-output-temp/objc/DBObjcOnlyListener.h
djinni-output-temp/objc/DBJavaOnlyListener.h djinni-output-temp/objc/DBJavaOnlyListener.h
djinni-output-temp/objc/DBUsesSingleLanguageListeners.h djinni-output-temp/objc/DBUsesSingleLanguageListeners.h
...@@ -228,6 +242,10 @@ djinni-output-temp/objc/DBVarnameInterface+Private.h ...@@ -228,6 +242,10 @@ djinni-output-temp/objc/DBVarnameInterface+Private.h
djinni-output-temp/objc/DBVarnameInterface+Private.mm djinni-output-temp/objc/DBVarnameInterface+Private.mm
djinni-output-temp/objc/DBExtendedRecord+Private.h djinni-output-temp/objc/DBExtendedRecord+Private.h
djinni-output-temp/objc/DBExtendedRecord+Private.mm djinni-output-temp/objc/DBExtendedRecord+Private.mm
djinni-output-temp/objc/DBRecordUsingExtendedRecord+Private.h
djinni-output-temp/objc/DBRecordUsingExtendedRecord+Private.mm
djinni-output-temp/objc/DBInterfaceUsingExtendedRecord+Private.h
djinni-output-temp/objc/DBInterfaceUsingExtendedRecord+Private.mm
djinni-output-temp/objc/DBObjcOnlyListener+Private.h djinni-output-temp/objc/DBObjcOnlyListener+Private.h
djinni-output-temp/objc/DBObjcOnlyListener+Private.mm djinni-output-temp/objc/DBObjcOnlyListener+Private.mm
djinni-output-temp/objc/DBJavaOnlyListener+Private.h djinni-output-temp/objc/DBJavaOnlyListener+Private.h
......
#include "extended_record.hpp" #include "extended_record.hpp"
// Validate these generated headers are compilable.
#include "record_using_extended_record.hpp"
#include "interface_using_extended_record.hpp"
using namespace testsuite; using namespace testsuite;
ExtendedRecord::ExtendedRecord() : ExtendedRecordBase(true) {} ExtendedRecord::ExtendedRecord() : ExtendedRecordBase(true) {}
...@@ -76,6 +76,12 @@ ...@@ -76,6 +76,12 @@
B52DA56B1B103F75005CE75F /* DBAssortedPrimitives+Private.mm in Sources */ = {isa = PBXBuildFile; fileRef = B52DA5671B103F6D005CE75F /* DBAssortedPrimitives+Private.mm */; }; B52DA56B1B103F75005CE75F /* DBAssortedPrimitives+Private.mm in Sources */ = {isa = PBXBuildFile; fileRef = B52DA5671B103F6D005CE75F /* DBAssortedPrimitives+Private.mm */; };
B52DA56E1B103FC5005CE75F /* assorted_primitives.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B52DA56C1B103FBE005CE75F /* assorted_primitives.cpp */; }; B52DA56E1B103FC5005CE75F /* assorted_primitives.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B52DA56C1B103FBE005CE75F /* assorted_primitives.cpp */; };
B52DA5701B104025005CE75F /* DBPrimitivesTests.m in Sources */ = {isa = PBXBuildFile; fileRef = B52DA56F1B104025005CE75F /* DBPrimitivesTests.m */; }; B52DA5701B104025005CE75F /* DBPrimitivesTests.m in Sources */ = {isa = PBXBuildFile; fileRef = B52DA56F1B104025005CE75F /* DBPrimitivesTests.m */; };
B58B16AF1D5AC9BC00EF92B5 /* DBRecordUsingExtendedRecord+Private.mm in Sources */ = {isa = PBXBuildFile; fileRef = B58B16A81D5AC9BC00EF92B5 /* DBRecordUsingExtendedRecord+Private.mm */; };
B58B16B01D5AC9BC00EF92B5 /* DBRecordUsingExtendedRecord.mm in Sources */ = {isa = PBXBuildFile; fileRef = B58B16AA1D5AC9BC00EF92B5 /* DBRecordUsingExtendedRecord.mm */; };
B58B16B11D5AC9BC00EF92B5 /* DBInterfaceUsingExtendedRecord+Private.mm in Sources */ = {isa = PBXBuildFile; fileRef = B58B16AC1D5AC9BC00EF92B5 /* DBInterfaceUsingExtendedRecord+Private.mm */; };
B58B16B41D5AD55B00EF92B5 /* record_using_extended_record.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B58B16B21D5AD55B00EF92B5 /* record_using_extended_record.cpp */; };
B58B16B51D5AD55B00EF92B5 /* interface_using_extended_record.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B58B16B31D5AD55B00EF92B5 /* interface_using_extended_record.cpp */; };
B58B16B71D5AD56600EF92B5 /* DBInterfaceUsingExtendedRecord.mm in Sources */ = {isa = PBXBuildFile; fileRef = B58B16B61D5AD56600EF92B5 /* DBInterfaceUsingExtendedRecord.mm */; };
B5D8FC361C23E2F40045ADCF /* DBConstantRecord.mm in Sources */ = {isa = PBXBuildFile; fileRef = B5D8FC331C23E2F40045ADCF /* DBConstantRecord.mm */; }; B5D8FC361C23E2F40045ADCF /* DBConstantRecord.mm in Sources */ = {isa = PBXBuildFile; fileRef = B5D8FC331C23E2F40045ADCF /* DBConstantRecord.mm */; };
B5D8FC371C23E2F40045ADCF /* DBConstantRecord+Private.mm in Sources */ = {isa = PBXBuildFile; fileRef = B5D8FC351C23E2F40045ADCF /* DBConstantRecord+Private.mm */; }; 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 */; }; B5E9C93B1C1F9D9D0073C123 /* reverse_client_interface_impl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5E9C9391C1F9D9D0073C123 /* reverse_client_interface_impl.cpp */; };
...@@ -309,6 +315,18 @@ ...@@ -309,6 +315,18 @@
B52DA56C1B103FBE005CE75F /* assorted_primitives.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = assorted_primitives.cpp; sourceTree = "<group>"; }; B52DA56C1B103FBE005CE75F /* assorted_primitives.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = assorted_primitives.cpp; sourceTree = "<group>"; };
B52DA56D1B103FBE005CE75F /* assorted_primitives.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = assorted_primitives.hpp; sourceTree = "<group>"; }; B52DA56D1B103FBE005CE75F /* assorted_primitives.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = assorted_primitives.hpp; sourceTree = "<group>"; };
B52DA56F1B104025005CE75F /* DBPrimitivesTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DBPrimitivesTests.m; sourceTree = "<group>"; }; B52DA56F1B104025005CE75F /* DBPrimitivesTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DBPrimitivesTests.m; sourceTree = "<group>"; };
B58B16A61D5AC9AD00EF92B5 /* record_using_extended_record.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = record_using_extended_record.hpp; sourceTree = "<group>"; };
B58B16A71D5AC9AD00EF92B5 /* interface_using_extended_record.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = interface_using_extended_record.hpp; sourceTree = "<group>"; };
B58B16A81D5AC9BC00EF92B5 /* DBRecordUsingExtendedRecord+Private.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "DBRecordUsingExtendedRecord+Private.mm"; sourceTree = "<group>"; };
B58B16A91D5AC9BC00EF92B5 /* DBRecordUsingExtendedRecord+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "DBRecordUsingExtendedRecord+Private.h"; sourceTree = "<group>"; };
B58B16AA1D5AC9BC00EF92B5 /* DBRecordUsingExtendedRecord.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DBRecordUsingExtendedRecord.mm; sourceTree = "<group>"; };
B58B16AB1D5AC9BC00EF92B5 /* DBRecordUsingExtendedRecord.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DBRecordUsingExtendedRecord.h; sourceTree = "<group>"; };
B58B16AC1D5AC9BC00EF92B5 /* DBInterfaceUsingExtendedRecord+Private.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "DBInterfaceUsingExtendedRecord+Private.mm"; sourceTree = "<group>"; };
B58B16AD1D5AC9BC00EF92B5 /* DBInterfaceUsingExtendedRecord+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "DBInterfaceUsingExtendedRecord+Private.h"; sourceTree = "<group>"; };
B58B16AE1D5AC9BC00EF92B5 /* DBInterfaceUsingExtendedRecord.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DBInterfaceUsingExtendedRecord.h; sourceTree = "<group>"; };
B58B16B21D5AD55B00EF92B5 /* record_using_extended_record.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = record_using_extended_record.cpp; sourceTree = "<group>"; };
B58B16B31D5AD55B00EF92B5 /* interface_using_extended_record.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = interface_using_extended_record.cpp; sourceTree = "<group>"; };
B58B16B61D5AD56600EF92B5 /* DBInterfaceUsingExtendedRecord.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DBInterfaceUsingExtendedRecord.mm; sourceTree = "<group>"; };
B5D8FC321C23E2F40045ADCF /* DBConstantRecord.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DBConstantRecord.h; sourceTree = "<group>"; }; B5D8FC321C23E2F40045ADCF /* DBConstantRecord.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DBConstantRecord.h; sourceTree = "<group>"; };
B5D8FC331C23E2F40045ADCF /* DBConstantRecord.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DBConstantRecord.mm; sourceTree = "<group>"; }; B5D8FC331C23E2F40045ADCF /* DBConstantRecord.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DBConstantRecord.mm; sourceTree = "<group>"; };
B5D8FC341C23E2F40045ADCF /* DBConstantRecord+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "DBConstantRecord+Private.h"; sourceTree = "<group>"; }; B5D8FC341C23E2F40045ADCF /* DBConstantRecord+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "DBConstantRecord+Private.h"; sourceTree = "<group>"; };
...@@ -530,6 +548,14 @@ ...@@ -530,6 +548,14 @@
A24249181AF192E0003BF8F0 /* generated-objc */ = { A24249181AF192E0003BF8F0 /* generated-objc */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
B58B16B61D5AD56600EF92B5 /* DBInterfaceUsingExtendedRecord.mm */,
B58B16A81D5AC9BC00EF92B5 /* DBRecordUsingExtendedRecord+Private.mm */,
B58B16A91D5AC9BC00EF92B5 /* DBRecordUsingExtendedRecord+Private.h */,
B58B16AA1D5AC9BC00EF92B5 /* DBRecordUsingExtendedRecord.mm */,
B58B16AB1D5AC9BC00EF92B5 /* DBRecordUsingExtendedRecord.h */,
B58B16AC1D5AC9BC00EF92B5 /* DBInterfaceUsingExtendedRecord+Private.mm */,
B58B16AD1D5AC9BC00EF92B5 /* DBInterfaceUsingExtendedRecord+Private.h */,
B58B16AE1D5AC9BC00EF92B5 /* DBInterfaceUsingExtendedRecord.h */,
B51911491D555EE900772DFE /* DBVarnameRecord+Private.mm */, B51911491D555EE900772DFE /* DBVarnameRecord+Private.mm */,
B519114A1D555EE900772DFE /* DBVarnameRecord+Private.h */, B519114A1D555EE900772DFE /* DBVarnameRecord+Private.h */,
B519114B1D555EE900772DFE /* DBVarnameRecord.mm */, B519114B1D555EE900772DFE /* DBVarnameRecord.mm */,
...@@ -687,6 +713,10 @@ ...@@ -687,6 +713,10 @@
A242495D1AF192FC003BF8F0 /* generated-cpp */ = { A242495D1AF192FC003BF8F0 /* generated-cpp */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
B58B16B21D5AD55B00EF92B5 /* record_using_extended_record.cpp */,
B58B16B31D5AD55B00EF92B5 /* interface_using_extended_record.cpp */,
B58B16A61D5AC9AD00EF92B5 /* record_using_extended_record.hpp */,
B58B16A71D5AC9AD00EF92B5 /* interface_using_extended_record.hpp */,
B51911471D555EDC00772DFE /* _varname_record_.hpp */, B51911471D555EDC00772DFE /* _varname_record_.hpp */,
B51911481D555EDC00772DFE /* _varname_interface_.hpp */, B51911481D555EDC00772DFE /* _varname_interface_.hpp */,
B51911191D542AEC00772DFE /* wchar_test_helpers.hpp */, B51911191D542AEC00772DFE /* wchar_test_helpers.hpp */,
...@@ -844,6 +874,7 @@ ...@@ -844,6 +874,7 @@
B5F06AA51D4987EF005BE736 /* DBEnumUsageInterface+Private.mm in Sources */, B5F06AA51D4987EF005BE736 /* DBEnumUsageInterface+Private.mm in Sources */,
CFFD588D1B019E79001E10B6 /* DBCppException+Private.mm in Sources */, CFFD588D1B019E79001E10B6 /* DBCppException+Private.mm in Sources */,
A238CA921AF84B7100CDDCE5 /* DBDateRecord+Private.mm in Sources */, A238CA921AF84B7100CDDCE5 /* DBDateRecord+Private.mm in Sources */,
B58B16AF1D5AC9BC00EF92B5 /* DBRecordUsingExtendedRecord+Private.mm in Sources */,
A248502B1AF96EBC00AFE907 /* DBMapListRecord.mm in Sources */, A248502B1AF96EBC00AFE907 /* DBMapListRecord.mm in Sources */,
6536CD7819A6C98800DD7715 /* cpp_exception_impl.cpp in Sources */, 6536CD7819A6C98800DD7715 /* cpp_exception_impl.cpp in Sources */,
A248502C1AF96EBC00AFE907 /* DBMapRecord.mm in Sources */, A248502C1AF96EBC00AFE907 /* DBMapRecord.mm in Sources */,
...@@ -856,6 +887,7 @@ ...@@ -856,6 +887,7 @@
CFC5D9FC1B152E4300BF2DF8 /* TranslateDuration.cpp in Sources */, CFC5D9FC1B152E4300BF2DF8 /* TranslateDuration.cpp in Sources */,
B51911511D555EE900772DFE /* DBVarnameRecord.mm in Sources */, B51911511D555EE900772DFE /* DBVarnameRecord.mm in Sources */,
A248502F1AF96EBC00AFE907 /* DBRecordWithDerivings.mm in Sources */, A248502F1AF96EBC00AFE907 /* DBRecordWithDerivings.mm in Sources */,
B58B16B51D5AD55B00EF92B5 /* interface_using_extended_record.cpp in Sources */,
B5F06A851D4973BD005BE736 /* DBConflict+Private.mm in Sources */, B5F06A851D4973BD005BE736 /* DBConflict+Private.mm in Sources */,
A24249741AF192FC003BF8F0 /* constants.cpp in Sources */, A24249741AF192FC003BF8F0 /* constants.cpp in Sources */,
CFFD588B1B019E79001E10B6 /* DBClientInterface+Private.mm in Sources */, CFFD588B1B019E79001E10B6 /* DBClientInterface+Private.mm in Sources */,
...@@ -870,6 +902,8 @@ ...@@ -870,6 +902,8 @@
B5F06A9A1D497A66005BE736 /* extended_record.cpp in Sources */, B5F06A9A1D497A66005BE736 /* extended_record.cpp in Sources */,
A2CB54B419BA6E6000A9E600 /* DJIError.mm in Sources */, A2CB54B419BA6E6000A9E600 /* DJIError.mm in Sources */,
B5E9C9401C1F9E9E0073C123 /* DBReverseClientInterface+Private.mm in Sources */, B5E9C9401C1F9E9E0073C123 /* DBReverseClientInterface+Private.mm in Sources */,
B58B16B41D5AD55B00EF92B5 /* record_using_extended_record.cpp in Sources */,
B58B16B11D5AC9BC00EF92B5 /* DBInterfaceUsingExtendedRecord+Private.mm in Sources */,
B5F06A891D4973BD005BE736 /* DBExtendedRecord.mm in Sources */, B5F06A891D4973BD005BE736 /* DBExtendedRecord.mm in Sources */,
A238CA961AF84B7100CDDCE5 /* DBMapListRecord+Private.mm in Sources */, A238CA961AF84B7100CDDCE5 /* DBMapListRecord+Private.mm in Sources */,
A238CA9C1AF84B7100CDDCE5 /* DBPrimitiveList+Private.mm in Sources */, A238CA9C1AF84B7100CDDCE5 /* DBPrimitiveList+Private.mm in Sources */,
...@@ -886,6 +920,7 @@ ...@@ -886,6 +920,7 @@
6551684F1C40511C003682A4 /* return_one_two.cpp in Sources */, 6551684F1C40511C003682A4 /* return_one_two.cpp in Sources */,
A24249751AF192FC003BF8F0 /* record_with_derivings.cpp in Sources */, A24249751AF192FC003BF8F0 /* record_with_derivings.cpp in Sources */,
CFC5D9D01B15105100BF2DF8 /* extern_record_with_derivings.cpp in Sources */, CFC5D9D01B15105100BF2DF8 /* extern_record_with_derivings.cpp in Sources */,
B58B16B71D5AD56600EF92B5 /* DBInterfaceUsingExtendedRecord.mm in Sources */,
B51911181D542A7000772DFE /* DBWcharTestHelpers+Private.mm in Sources */, B51911181D542A7000772DFE /* DBWcharTestHelpers+Private.mm in Sources */,
A238CA901AF84B7100CDDCE5 /* DBConstants+Private.mm in Sources */, A238CA901AF84B7100CDDCE5 /* DBConstants+Private.mm in Sources */,
B51911521D555EE900772DFE /* DBVarnameInterface+Private.mm in Sources */, B51911521D555EE900772DFE /* DBVarnameInterface+Private.mm in Sources */,
...@@ -904,6 +939,7 @@ ...@@ -904,6 +939,7 @@
A248502E1AF96EBC00AFE907 /* DBPrimitiveList.mm in Sources */, A248502E1AF96EBC00AFE907 /* DBPrimitiveList.mm in Sources */,
B5F06A8C1D4973BD005BE736 /* DBObjcOnlyListener+Private.mm in Sources */, B5F06A8C1D4973BD005BE736 /* DBObjcOnlyListener+Private.mm in Sources */,
B5153F961D54283700012654 /* DBUsesSingleLanguageListeners+Private.mm in Sources */, B5153F961D54283700012654 /* DBUsesSingleLanguageListeners+Private.mm in Sources */,
B58B16B01D5AC9BC00EF92B5 /* DBRecordUsingExtendedRecord.mm in Sources */,
B5D8FC371C23E2F40045ADCF /* DBConstantRecord+Private.mm in Sources */, B5D8FC371C23E2F40045ADCF /* DBConstantRecord+Private.mm in Sources */,
B519111B1D542B0700772DFE /* wchar_test_helpers.cpp in Sources */, B519111B1D542B0700772DFE /* wchar_test_helpers.cpp in Sources */,
A238CAA01AF84B7100CDDCE5 /* DBRecordWithNestedDerivings+Private.mm in Sources */, A238CAA01AF84B7100CDDCE5 /* DBRecordWithNestedDerivings+Private.mm in Sources */,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment