Commit bc42dcc1 authored by Miro Knejp's avatar Miro Knejp

Drop the _constants suffix in +c interfaces

Wrappers for +c interfaces end with +Private so this workaround is no longer necessary.
parent 1c98aa6a
......@@ -65,7 +65,7 @@ class ObjcGenerator(spec: Spec) extends Generator(spec) {
}
def headerName(ident: String): String = idObjc.ty(ident) + "." + spec.objcHeaderExt
def bodyName(ident: String): String = idObjc.ty(ident) + ".mm" // Must be a Obj-C++ file in case the constants are not compile-time constant expressions
def bodyName(ident: String): String = idObjc.ty(ident) + "." + spec.objcppExt // Must be a Obj-C++ file in case the constants are not compile-time constant expressions
def writeObjcConstVariable(w: IndentWriter, c: Const, s: String): Unit = {
val nullability = marshal.nullability(c.ty.resolved).fold("")(" __" + _)
......@@ -167,7 +167,7 @@ class ObjcGenerator(spec: Spec) extends Generator(spec) {
refs.body.add("#import " + q(spec.objcIncludePrefix + headerName(ident)))
if (i.consts.nonEmpty) {
writeObjcFile(bodyName(ident.name + "_constants"), origin, refs.body, w => { // TODO(j4cbo): this is named differently because otherwise it conflicts with interface +c wrappers
writeObjcFile(bodyName(ident.name), origin, refs.body, w => {
generateObjcConstants(w, i.consts, self)
})
}
......
......@@ -16,3 +16,14 @@ constants = record {
some_string = string_constant
};
}
constants_interface = interface +c {
const bool_constant: bool = true;
const i8_constant: i8 = 1;
const i16_constant: i16 = 2;
const i32_constant: i32 = 3;
const i64_constant: i64 = 4;
const f64_constant: f64 = 5.0;
dummy();
}
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from constants.djinni
#include "constants_interface.hpp" // my header
const bool ConstantsInterface::BOOL_CONSTANT = true;
const int8_t ConstantsInterface::I8_CONSTANT = 1;
const int16_t ConstantsInterface::I16_CONSTANT = 2;
const int32_t ConstantsInterface::I32_CONSTANT = 3;
const int64_t ConstantsInterface::I64_CONSTANT = 4;
const double ConstantsInterface::F64_CONSTANT = 5.0;
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from constants.djinni
#pragma once
#include <cstdint>
class ConstantsInterface {
public:
virtual ~ConstantsInterface() {}
static const bool BOOL_CONSTANT;
static const int8_t I8_CONSTANT;
static const int16_t I16_CONSTANT;
static const int32_t I32_CONSTANT;
static const int64_t I64_CONSTANT;
static const double F64_CONSTANT;
virtual void dummy() = 0;
};
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from constants.djinni
package com.dropbox.djinni.test;
import java.util.concurrent.atomic.AtomicBoolean;
public abstract class ConstantsInterface {
public static final boolean BOOL_CONSTANT = true;
public static final byte I8_CONSTANT = 1;
public static final short I16_CONSTANT = 2;
public static final int I32_CONSTANT = 3;
public static final long I64_CONSTANT = 4;
public static final double F64_CONSTANT = 5.0;
public abstract void dummy();
public static final class CppProxy extends ConstantsInterface
{
private final long nativeRef;
private final AtomicBoolean destroyed = new AtomicBoolean(false);
private CppProxy(long nativeRef)
{
if (nativeRef == 0) throw new RuntimeException("nativeRef is zero");
this.nativeRef = nativeRef;
}
private native void nativeDestroy(long nativeRef);
public void destroy()
{
boolean destroyed = this.destroyed.getAndSet(true);
if (!destroyed) nativeDestroy(this.nativeRef);
}
protected void finalize() throws java.lang.Throwable
{
destroy();
super.finalize();
}
@Override
public void dummy()
{
assert !this.destroyed.get() : "trying to use a destroyed object";
native_dummy(this.nativeRef);
}
private native void native_dummy(long _nativeRef);
}
}
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from constants.djinni
#include "NativeConstantsInterface.hpp" // my header
#include "Marshal.hpp"
namespace djinni_generated {
NativeConstantsInterface::NativeConstantsInterface() : ::djinni::JniInterface<::ConstantsInterface, NativeConstantsInterface>("com/dropbox/djinni/test/ConstantsInterface$CppProxy") {}
NativeConstantsInterface::~NativeConstantsInterface() = default;
CJNIEXPORT void JNICALL Java_com_dropbox_djinni_test_ConstantsInterface_00024CppProxy_nativeDestroy(JNIEnv* jniEnv, jobject /*this*/, jlong nativeRef)
{
try {
DJINNI_FUNCTION_PROLOGUE1(jniEnv, nativeRef);
delete reinterpret_cast<djinni::CppProxyHandle<::ConstantsInterface>*>(nativeRef);
} JNI_TRANSLATE_EXCEPTIONS_RETURN(jniEnv, )
}
CJNIEXPORT void JNICALL Java_com_dropbox_djinni_test_ConstantsInterface_00024CppProxy_native_1dummy(JNIEnv* jniEnv, jobject /*this*/, jlong nativeRef)
{
try {
DJINNI_FUNCTION_PROLOGUE1(jniEnv, nativeRef);
const auto& ref = ::djinni::CppProxyHandle<::ConstantsInterface>::get(nativeRef);
ref->dummy();
} JNI_TRANSLATE_EXCEPTIONS_RETURN(jniEnv, )
}
} // namespace djinni_generated
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from constants.djinni
#pragma once
#include "constants_interface.hpp"
#include "djinni_support.hpp"
namespace djinni_generated {
class NativeConstantsInterface final : ::djinni::JniInterface<::ConstantsInterface, NativeConstantsInterface> {
public:
using CppType = std::shared_ptr<::ConstantsInterface>;
using JniType = jobject;
using Boxed = NativeConstantsInterface;
~NativeConstantsInterface();
static CppType toCpp(JNIEnv* jniEnv, JniType j) { return ::djinni::JniClass<NativeConstantsInterface>::get()._fromJava(jniEnv, j); }
static ::djinni::LocalRef<JniType> fromCpp(JNIEnv* jniEnv, const CppType& c) { return {jniEnv, ::djinni::JniClass<NativeConstantsInterface>::get()._toJava(jniEnv, c)}; }
private:
NativeConstantsInterface();
friend ::djinni::JniClass<NativeConstantsInterface>;
friend ::djinni::JniInterface<::ConstantsInterface, NativeConstantsInterface>;
};
} // namespace djinni_generated
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from constants.djinni
#include "constants_interface.hpp"
#include <memory>
static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file");
@class DBConstantsInterface;
namespace djinni_generated {
class ConstantsInterface
{
public:
using CppType = std::shared_ptr<::ConstantsInterface>;
using ObjcType = DBConstantsInterface*;
using Boxed = ConstantsInterface;
static CppType toCpp(ObjcType objc);
static ObjcType fromCpp(const CppType& cpp);
private:
class ObjcProxy;
};
} // namespace djinni_generated
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from constants.djinni
#import "DBConstantsInterface+Private.h"
#import "DBConstantsInterface.h"
#import "DJICppWrapperCache+Private.h"
#import "DJIDate.h"
#import "DJIError.h"
#import "DJIMarshal+Private.h"
#include <exception>
#include <utility>
#include <vector>
static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file");
@interface DBConstantsInterface ()
@property (nonatomic, readonly) ::djinni::DbxCppWrapperCache<::ConstantsInterface>::Handle cppRef;
- (id)initWithCpp:(const std::shared_ptr<::ConstantsInterface>&)cppRef;
@end
namespace djinni_generated {
auto ConstantsInterface::toCpp(ObjcType objc) -> CppType
{
return objc ? objc.cppRef.get() : nullptr;
}
auto ConstantsInterface::fromCpp(const CppType& cpp) -> ObjcType
{
return !cpp ? nil : ::djinni::DbxCppWrapperCache<::ConstantsInterface>::getInstance()->get(cpp, [] (const CppType& p)
{
return [[DBConstantsInterface alloc] initWithCpp:p];
});
}
} // namespace djinni_generated
@implementation DBConstantsInterface
- (id)initWithCpp:(const std::shared_ptr<::ConstantsInterface>&)cppRef
{
if (self = [super init]) {
_cppRef.assign(cppRef);
}
return self;
}
- (void)dummy {
try {
_cppRef.get()->dummy();
} DJINNI_TRANSLATE_EXCEPTIONS()
}
@end
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from constants.djinni
#import <Foundation/Foundation.h>
extern const BOOL DBConstantsInterfaceBoolConstant;
extern const int8_t DBConstantsInterfaceI8Constant;
extern const int16_t DBConstantsInterfaceI16Constant;
extern const int32_t DBConstantsInterfaceI32Constant;
extern const int64_t DBConstantsInterfaceI64Constant;
extern const double DBConstantsInterfaceF64Constant;
@interface DBConstantsInterface : NSObject
- (void)dummy;
@end
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from constants.djinni
#import "DBConstantsInterface.h"
#include <vector>
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-variable"
const BOOL DBConstantsInterfaceBoolConstant = YES;
const int8_t DBConstantsInterfaceI8Constant = 1;
const int16_t DBConstantsInterfaceI16Constant = 2;
const int32_t DBConstantsInterfaceI32Constant = 3;
const int64_t DBConstantsInterfaceI64Constant = 4;
const double DBConstantsInterfaceF64Constant = 5.0;
#pragma clang diagnostic pop
......@@ -63,6 +63,12 @@
CFFD58901B019E79001E10B6 /* DBTestHelpers+Private.mm in Sources */ = {isa = PBXBuildFile; fileRef = CFFD58891B019E79001E10B6 /* DBTestHelpers+Private.mm */; };
CFFD58911B019E79001E10B6 /* DBToken+Private.mm in Sources */ = {isa = PBXBuildFile; fileRef = CFFD588A1B019E79001E10B6 /* DBToken+Private.mm */; };
CFFD58921B019E79001E10B6 /* DBToken+Private.mm in Sources */ = {isa = PBXBuildFile; fileRef = CFFD588A1B019E79001E10B6 /* DBToken+Private.mm */; };
CFFD58B11B041BD9001E10B6 /* DBConstantsInterface.mm in Sources */ = {isa = PBXBuildFile; fileRef = CFFD58AE1B041BD9001E10B6 /* DBConstantsInterface.mm */; };
CFFD58B21B041BD9001E10B6 /* DBConstantsInterface.mm in Sources */ = {isa = PBXBuildFile; fileRef = CFFD58AE1B041BD9001E10B6 /* DBConstantsInterface.mm */; };
CFFD58B31B041BD9001E10B6 /* DBConstantsInterface+Private.mm in Sources */ = {isa = PBXBuildFile; fileRef = CFFD58B01B041BD9001E10B6 /* DBConstantsInterface+Private.mm */; };
CFFD58B41B041BD9001E10B6 /* DBConstantsInterface+Private.mm in Sources */ = {isa = PBXBuildFile; fileRef = CFFD58B01B041BD9001E10B6 /* DBConstantsInterface+Private.mm */; };
CFFD58B71B041BFD001E10B6 /* constants_interface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CFFD58B51B041BFD001E10B6 /* constants_interface.cpp */; };
CFFD58B81B041BFD001E10B6 /* constants_interface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CFFD58B51B041BFD001E10B6 /* constants_interface.cpp */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
......@@ -202,6 +208,12 @@
CFFD58881B019E79001E10B6 /* DBCppException+Private.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "DBCppException+Private.mm"; sourceTree = "<group>"; };
CFFD58891B019E79001E10B6 /* DBTestHelpers+Private.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "DBTestHelpers+Private.mm"; sourceTree = "<group>"; };
CFFD588A1B019E79001E10B6 /* DBToken+Private.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "DBToken+Private.mm"; sourceTree = "<group>"; };
CFFD58AD1B041BD9001E10B6 /* DBConstantsInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DBConstantsInterface.h; sourceTree = "<group>"; };
CFFD58AE1B041BD9001E10B6 /* DBConstantsInterface.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DBConstantsInterface.mm; sourceTree = "<group>"; };
CFFD58AF1B041BD9001E10B6 /* DBConstantsInterface+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "DBConstantsInterface+Private.h"; sourceTree = "<group>"; };
CFFD58B01B041BD9001E10B6 /* DBConstantsInterface+Private.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "DBConstantsInterface+Private.mm"; sourceTree = "<group>"; };
CFFD58B51B041BFD001E10B6 /* constants_interface.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = constants_interface.cpp; sourceTree = "<group>"; };
CFFD58B61B041BFD001E10B6 /* constants_interface.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = constants_interface.hpp; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
......@@ -338,6 +350,10 @@
A248501C1AF96EBC00AFE907 /* DBConstants.mm */,
A24249251AF192E0003BF8F0 /* DBConstants+Private.h */,
A238CA781AF84B7100CDDCE5 /* DBConstants+Private.mm */,
CFFD58AD1B041BD9001E10B6 /* DBConstantsInterface.h */,
CFFD58AE1B041BD9001E10B6 /* DBConstantsInterface.mm */,
CFFD58AF1B041BD9001E10B6 /* DBConstantsInterface+Private.h */,
CFFD58B01B041BD9001E10B6 /* DBConstantsInterface+Private.mm */,
A24249291AF192E0003BF8F0 /* DBCppException.h */,
A24249281AF192E0003BF8F0 /* DBCppException+Private.h */,
CFFD58881B019E79001E10B6 /* DBCppException+Private.mm */,
......@@ -396,6 +412,8 @@
A24249601AF192FC003BF8F0 /* client_interface.hpp */,
A24249611AF192FC003BF8F0 /* client_returned_record.hpp */,
A24249621AF192FC003BF8F0 /* color.hpp */,
CFFD58B51B041BFD001E10B6 /* constants_interface.cpp */,
CFFD58B61B041BFD001E10B6 /* constants_interface.hpp */,
A24249631AF192FC003BF8F0 /* constants.cpp */,
A24249641AF192FC003BF8F0 /* constants.hpp */,
A24249651AF192FC003BF8F0 /* cpp_exception.hpp */,
......@@ -514,10 +532,13 @@
6536CD7419A6C96C00DD7715 /* DBClientInterfaceImpl.mm in Sources */,
A24850301AF96EBC00AFE907 /* DBRecordWithNestedDerivings.mm in Sources */,
A2A162D21AF190D200C0B00A /* DJIDate.mm in Sources */,
CFFD58B11B041BD9001E10B6 /* DBConstantsInterface.mm in Sources */,
CFFD58B31B041BD9001E10B6 /* DBConstantsInterface+Private.mm in Sources */,
A248502F1AF96EBC00AFE907 /* DBRecordWithDerivings.mm in Sources */,
A24249741AF192FC003BF8F0 /* constants.cpp in Sources */,
CFFD588B1B019E79001E10B6 /* DBClientInterface+Private.mm in Sources */,
A24850281AF96EBC00AFE907 /* DBConstants.mm in Sources */,
CFFD58B71B041BFD001E10B6 /* constants_interface.cpp in Sources */,
A238CA9A1AF84B7100CDDCE5 /* DBNestedCollection+Private.mm in Sources */,
CFFD58911B019E79001E10B6 /* DBToken+Private.mm in Sources */,
A238CA8C1AF84B7100CDDCE5 /* DBAssortedIntegers+Private.mm in Sources */,
......@@ -548,10 +569,13 @@
6536CD9119A6C9A800DD7715 /* DBPrimitiveListTests.mm in Sources */,
6536CD8D19A6C9A800DD7715 /* DBClientInterfaceTests.mm in Sources */,
CFFD588C1B019E79001E10B6 /* DBClientInterface+Private.mm in Sources */,
CFFD58B81B041BFD001E10B6 /* constants_interface.cpp in Sources */,
6536CD8E19A6C9A800DD7715 /* DBCppExceptionTests.mm in Sources */,
CFFD588E1B019E79001E10B6 /* DBCppException+Private.mm in Sources */,
CFFD58B41B041BD9001E10B6 /* DBConstantsInterface+Private.mm in Sources */,
CFFD58901B019E79001E10B6 /* DBTestHelpers+Private.mm in Sources */,
CFFD58921B019E79001E10B6 /* DBToken+Private.mm in Sources */,
CFFD58B21B041BD9001E10B6 /* DBConstantsInterface.mm in Sources */,
6536CD9319A6C9A800DD7715 /* DBRecordWithDerivingsObjcTests.mm in Sources */,
6536CD9019A6C9A800DD7715 /* DBNestedCollectionTests.mm in Sources */,
6536CD8F19A6C9A800DD7715 /* DBMapRecordTests.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