Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
D
djinni
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
cpp-libs
djinni
Commits
1a25dbb4
Commit
1a25dbb4
authored
Jan 13, 2016
by
Andrew Twyman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add test to verify that single-language interfaces don't break builds in other languages
parent
be210d55
Changes
25
Hide whitespace changes
Inline
Side-by-side
Showing
25 changed files
with
669 additions
and
0 deletions
+669
-0
test-suite/djinni/common.djinni
test-suite/djinni/common.djinni
+1
-0
test-suite/djinni/single_language_interfaces.djinni
test-suite/djinni/single_language_interfaces.djinni
+9
-0
test-suite/generated-src/cpp/java_only_listener.hpp
test-suite/generated-src/cpp/java_only_listener.hpp
+13
-0
test-suite/generated-src/cpp/objc_only_listener.hpp
test-suite/generated-src/cpp/objc_only_listener.hpp
+13
-0
test-suite/generated-src/cpp/uses_single_language_listeners.hpp
...uite/generated-src/cpp/uses_single_language_listeners.hpp
+26
-0
test-suite/generated-src/inFileList.txt
test-suite/generated-src/inFileList.txt
+1
-0
test-suite/generated-src/java/com/dropbox/djinni/test/JavaOnlyListener.java
...ed-src/java/com/dropbox/djinni/test/JavaOnlyListener.java
+10
-0
test-suite/generated-src/java/com/dropbox/djinni/test/ObjcOnlyListener.java
...ed-src/java/com/dropbox/djinni/test/ObjcOnlyListener.java
+10
-0
test-suite/generated-src/java/com/dropbox/djinni/test/UsesSingleLanguageListeners.java
.../com/dropbox/djinni/test/UsesSingleLanguageListeners.java
+58
-0
test-suite/generated-src/jni/NativeJavaOnlyListener.cpp
test-suite/generated-src/jni/NativeJavaOnlyListener.cpp
+17
-0
test-suite/generated-src/jni/NativeJavaOnlyListener.hpp
test-suite/generated-src/jni/NativeJavaOnlyListener.hpp
+44
-0
test-suite/generated-src/jni/NativeObjcOnlyListener.cpp
test-suite/generated-src/jni/NativeObjcOnlyListener.cpp
+13
-0
test-suite/generated-src/jni/NativeObjcOnlyListener.hpp
test-suite/generated-src/jni/NativeObjcOnlyListener.hpp
+32
-0
test-suite/generated-src/jni/NativeUsesSingleLanguageListeners.cpp
...e/generated-src/jni/NativeUsesSingleLanguageListeners.cpp
+61
-0
test-suite/generated-src/jni/NativeUsesSingleLanguageListeners.hpp
...e/generated-src/jni/NativeUsesSingleLanguageListeners.hpp
+48
-0
test-suite/generated-src/objc/DBJavaOnlyListener+Private.h
test-suite/generated-src/objc/DBJavaOnlyListener+Private.h
+31
-0
test-suite/generated-src/objc/DBJavaOnlyListener+Private.mm
test-suite/generated-src/objc/DBJavaOnlyListener+Private.mm
+26
-0
test-suite/generated-src/objc/DBJavaOnlyListener.h
test-suite/generated-src/objc/DBJavaOnlyListener.h
+9
-0
test-suite/generated-src/objc/DBObjcOnlyListener+Private.h
test-suite/generated-src/objc/DBObjcOnlyListener+Private.h
+31
-0
test-suite/generated-src/objc/DBObjcOnlyListener+Private.mm
test-suite/generated-src/objc/DBObjcOnlyListener+Private.mm
+40
-0
test-suite/generated-src/objc/DBObjcOnlyListener.h
test-suite/generated-src/objc/DBObjcOnlyListener.h
+9
-0
test-suite/generated-src/objc/DBUsesSingleLanguageListeners+Private.h
...enerated-src/objc/DBUsesSingleLanguageListeners+Private.h
+31
-0
test-suite/generated-src/objc/DBUsesSingleLanguageListeners+Private.mm
...nerated-src/objc/DBUsesSingleLanguageListeners+Private.mm
+96
-0
test-suite/generated-src/objc/DBUsesSingleLanguageListeners.h
...-suite/generated-src/objc/DBUsesSingleLanguageListeners.h
+19
-0
test-suite/generated-src/outFileList.txt
test-suite/generated-src/outFileList.txt
+21
-0
No files found.
test-suite/djinni/common.djinni
View file @
1a25dbb4
...
...
@@ -11,3 +11,4 @@
@import "primtypes.djinni"
@import "constants.djinni"
@import "multiple_inheritance.djinni"
@import "single_language_interfaces.djinni"
test-suite/djinni/single_language_interfaces.djinni
0 → 100644
View file @
1a25dbb4
objc_only_listener = interface +o {}
java_only_listener = interface +j {}
# Generating and compiling this makes sure other languages don't break
# on references to interfaces they don't need.
uses_single_language_listeners = interface +o +j +c {
callForObjC(l: objc_only_listener);
callForJava(l: java_only_listener);
}
test-suite/generated-src/cpp/java_only_listener.hpp
0 → 100644
View file @
1a25dbb4
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from single_language_interfaces.djinni
#pragma once
namespace
testsuite
{
class
JavaOnlyListener
{
public:
virtual
~
JavaOnlyListener
()
{}
};
}
// namespace testsuite
test-suite/generated-src/cpp/objc_only_listener.hpp
0 → 100644
View file @
1a25dbb4
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from single_language_interfaces.djinni
#pragma once
namespace
testsuite
{
class
ObjcOnlyListener
{
public:
virtual
~
ObjcOnlyListener
()
{}
};
}
// namespace testsuite
test-suite/generated-src/cpp/uses_single_language_listeners.hpp
0 → 100644
View file @
1a25dbb4
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from single_language_interfaces.djinni
#pragma once
#include <memory>
namespace
testsuite
{
class
JavaOnlyListener
;
class
ObjcOnlyListener
;
/**
* Generating and compiling this makes sure other languages don't break
* on references to interfaces they don't need.
*/
class
UsesSingleLanguageListeners
{
public:
virtual
~
UsesSingleLanguageListeners
()
{}
virtual
void
callForObjC
(
const
std
::
shared_ptr
<
ObjcOnlyListener
>
&
l
)
=
0
;
virtual
void
callForJava
(
const
std
::
shared_ptr
<
JavaOnlyListener
>
&
l
)
=
0
;
};
}
// namespace testsuite
test-suite/generated-src/inFileList.txt
View file @
1a25dbb4
...
...
@@ -13,6 +13,7 @@ djinni/test.djinni
djinni/primtypes.djinni
djinni/constants.djinni
djinni/multiple_inheritance.djinni
djinni/single_language_interfaces.djinni
djinni/date.djinni
djinni/date.yaml
djinni/duration.djinni
...
...
test-suite/generated-src/java/com/dropbox/djinni/test/JavaOnlyListener.java
0 → 100644
View file @
1a25dbb4
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from single_language_interfaces.djinni
package
com.dropbox.djinni.test
;
import
javax.annotation.CheckForNull
;
import
javax.annotation.Nonnull
;
public
abstract
class
JavaOnlyListener
{
}
test-suite/generated-src/java/com/dropbox/djinni/test/ObjcOnlyListener.java
0 → 100644
View file @
1a25dbb4
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from single_language_interfaces.djinni
package
com.dropbox.djinni.test
;
import
javax.annotation.CheckForNull
;
import
javax.annotation.Nonnull
;
public
abstract
class
ObjcOnlyListener
{
}
test-suite/generated-src/java/com/dropbox/djinni/test/UsesSingleLanguageListeners.java
0 → 100644
View file @
1a25dbb4
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from single_language_interfaces.djinni
package
com.dropbox.djinni.test
;
import
java.util.concurrent.atomic.AtomicBoolean
;
import
javax.annotation.CheckForNull
;
import
javax.annotation.Nonnull
;
/**
* Generating and compiling this makes sure other languages don't break
* on references to interfaces they don't need.
*/
public
abstract
class
UsesSingleLanguageListeners
{
public
abstract
void
callForObjC
(
@CheckForNull
ObjcOnlyListener
l
);
public
abstract
void
callForJava
(
@CheckForNull
JavaOnlyListener
l
);
private
static
final
class
CppProxy
extends
UsesSingleLanguageListeners
{
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
callForObjC
(
ObjcOnlyListener
l
)
{
assert
!
this
.
destroyed
.
get
()
:
"trying to use a destroyed object"
;
native_callForObjC
(
this
.
nativeRef
,
l
);
}
private
native
void
native_callForObjC
(
long
_nativeRef
,
ObjcOnlyListener
l
);
@Override
public
void
callForJava
(
JavaOnlyListener
l
)
{
assert
!
this
.
destroyed
.
get
()
:
"trying to use a destroyed object"
;
native_callForJava
(
this
.
nativeRef
,
l
);
}
private
native
void
native_callForJava
(
long
_nativeRef
,
JavaOnlyListener
l
);
}
}
test-suite/generated-src/jni/NativeJavaOnlyListener.cpp
0 → 100644
View file @
1a25dbb4
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from single_language_interfaces.djinni
#include "NativeJavaOnlyListener.hpp" // my header
namespace
djinni_generated
{
NativeJavaOnlyListener
::
NativeJavaOnlyListener
()
:
::
djinni
::
JniInterface
<::
testsuite
::
JavaOnlyListener
,
NativeJavaOnlyListener
>
()
{}
NativeJavaOnlyListener
::~
NativeJavaOnlyListener
()
=
default
;
NativeJavaOnlyListener
::
JavaProxy
::
JavaProxy
(
JniType
j
)
:
Handle
(
::
djinni
::
jniGetThreadEnv
(),
j
)
{
}
NativeJavaOnlyListener
::
JavaProxy
::~
JavaProxy
()
=
default
;
}
// namespace djinni_generated
test-suite/generated-src/jni/NativeJavaOnlyListener.hpp
0 → 100644
View file @
1a25dbb4
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from single_language_interfaces.djinni
#pragma once
#include "djinni_support.hpp"
#include "java_only_listener.hpp"
namespace
djinni_generated
{
class
NativeJavaOnlyListener
final
:
::
djinni
::
JniInterface
<::
testsuite
::
JavaOnlyListener
,
NativeJavaOnlyListener
>
{
public:
using
CppType
=
std
::
shared_ptr
<::
testsuite
::
JavaOnlyListener
>
;
using
CppOptType
=
std
::
shared_ptr
<::
testsuite
::
JavaOnlyListener
>
;
using
JniType
=
jobject
;
using
Boxed
=
NativeJavaOnlyListener
;
~
NativeJavaOnlyListener
();
static
CppType
toCpp
(
JNIEnv
*
jniEnv
,
JniType
j
)
{
return
::
djinni
::
JniClass
<
NativeJavaOnlyListener
>::
get
().
_fromJava
(
jniEnv
,
j
);
}
static
::
djinni
::
LocalRef
<
JniType
>
fromCppOpt
(
JNIEnv
*
jniEnv
,
const
CppOptType
&
c
)
{
return
{
jniEnv
,
::
djinni
::
JniClass
<
NativeJavaOnlyListener
>::
get
().
_toJava
(
jniEnv
,
c
)};
}
static
::
djinni
::
LocalRef
<
JniType
>
fromCpp
(
JNIEnv
*
jniEnv
,
const
CppType
&
c
)
{
return
fromCppOpt
(
jniEnv
,
c
);
}
private:
NativeJavaOnlyListener
();
friend
::
djinni
::
JniClass
<
NativeJavaOnlyListener
>
;
friend
::
djinni
::
JniInterface
<::
testsuite
::
JavaOnlyListener
,
NativeJavaOnlyListener
>
;
class
JavaProxy
final
:
::
djinni
::
JavaProxyHandle
<
JavaProxy
>
,
public
::
testsuite
::
JavaOnlyListener
{
public:
JavaProxy
(
JniType
j
);
~
JavaProxy
();
private:
friend
::
djinni
::
JniInterface
<::
testsuite
::
JavaOnlyListener
,
::
djinni_generated
::
NativeJavaOnlyListener
>
;
};
const
::
djinni
::
GlobalRef
<
jclass
>
clazz
{
::
djinni
::
jniFindClass
(
"com/dropbox/djinni/test/JavaOnlyListener"
)
};
};
}
// namespace djinni_generated
test-suite/generated-src/jni/NativeObjcOnlyListener.cpp
0 → 100644
View file @
1a25dbb4
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from single_language_interfaces.djinni
#include "NativeObjcOnlyListener.hpp" // my header
namespace
djinni_generated
{
NativeObjcOnlyListener
::
NativeObjcOnlyListener
()
:
::
djinni
::
JniInterface
<::
testsuite
::
ObjcOnlyListener
,
NativeObjcOnlyListener
>
()
{}
NativeObjcOnlyListener
::~
NativeObjcOnlyListener
()
=
default
;
}
// namespace djinni_generated
test-suite/generated-src/jni/NativeObjcOnlyListener.hpp
0 → 100644
View file @
1a25dbb4
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from single_language_interfaces.djinni
#pragma once
#include "djinni_support.hpp"
#include "objc_only_listener.hpp"
namespace
djinni_generated
{
class
NativeObjcOnlyListener
final
:
::
djinni
::
JniInterface
<::
testsuite
::
ObjcOnlyListener
,
NativeObjcOnlyListener
>
{
public:
using
CppType
=
std
::
shared_ptr
<::
testsuite
::
ObjcOnlyListener
>
;
using
CppOptType
=
std
::
shared_ptr
<::
testsuite
::
ObjcOnlyListener
>
;
using
JniType
=
jobject
;
using
Boxed
=
NativeObjcOnlyListener
;
~
NativeObjcOnlyListener
();
static
CppType
toCpp
(
JNIEnv
*
jniEnv
,
JniType
j
)
{
return
::
djinni
::
JniClass
<
NativeObjcOnlyListener
>::
get
().
_fromJava
(
jniEnv
,
j
);
}
static
::
djinni
::
LocalRef
<
JniType
>
fromCppOpt
(
JNIEnv
*
jniEnv
,
const
CppOptType
&
c
)
{
return
{
jniEnv
,
::
djinni
::
JniClass
<
NativeObjcOnlyListener
>::
get
().
_toJava
(
jniEnv
,
c
)};
}
static
::
djinni
::
LocalRef
<
JniType
>
fromCpp
(
JNIEnv
*
jniEnv
,
const
CppType
&
c
)
{
return
fromCppOpt
(
jniEnv
,
c
);
}
private:
NativeObjcOnlyListener
();
friend
::
djinni
::
JniClass
<
NativeObjcOnlyListener
>
;
friend
::
djinni
::
JniInterface
<::
testsuite
::
ObjcOnlyListener
,
NativeObjcOnlyListener
>
;
};
}
// namespace djinni_generated
test-suite/generated-src/jni/NativeUsesSingleLanguageListeners.cpp
0 → 100644
View file @
1a25dbb4
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from single_language_interfaces.djinni
#include "NativeUsesSingleLanguageListeners.hpp" // my header
#include "NativeJavaOnlyListener.hpp"
#include "NativeObjcOnlyListener.hpp"
namespace
djinni_generated
{
NativeUsesSingleLanguageListeners
::
NativeUsesSingleLanguageListeners
()
:
::
djinni
::
JniInterface
<::
testsuite
::
UsesSingleLanguageListeners
,
NativeUsesSingleLanguageListeners
>
(
"com/dropbox/djinni/test/UsesSingleLanguageListeners$CppProxy"
)
{}
NativeUsesSingleLanguageListeners
::~
NativeUsesSingleLanguageListeners
()
=
default
;
NativeUsesSingleLanguageListeners
::
JavaProxy
::
JavaProxy
(
JniType
j
)
:
Handle
(
::
djinni
::
jniGetThreadEnv
(),
j
)
{
}
NativeUsesSingleLanguageListeners
::
JavaProxy
::~
JavaProxy
()
=
default
;
void
NativeUsesSingleLanguageListeners
::
JavaProxy
::
callForObjC
(
const
std
::
shared_ptr
<::
testsuite
::
ObjcOnlyListener
>
&
c_l
)
{
auto
jniEnv
=
::
djinni
::
jniGetThreadEnv
();
::
djinni
::
JniLocalScope
jscope
(
jniEnv
,
10
);
const
auto
&
data
=
::
djinni
::
JniClass
<::
djinni_generated
::
NativeUsesSingleLanguageListeners
>::
get
();
jniEnv
->
CallVoidMethod
(
Handle
::
get
().
get
(),
data
.
method_callForObjC
,
::
djinni
::
get
(
::
djinni_generated
::
NativeObjcOnlyListener
::
fromCpp
(
jniEnv
,
c_l
)));
::
djinni
::
jniExceptionCheck
(
jniEnv
);
}
void
NativeUsesSingleLanguageListeners
::
JavaProxy
::
callForJava
(
const
std
::
shared_ptr
<::
testsuite
::
JavaOnlyListener
>
&
c_l
)
{
auto
jniEnv
=
::
djinni
::
jniGetThreadEnv
();
::
djinni
::
JniLocalScope
jscope
(
jniEnv
,
10
);
const
auto
&
data
=
::
djinni
::
JniClass
<::
djinni_generated
::
NativeUsesSingleLanguageListeners
>::
get
();
jniEnv
->
CallVoidMethod
(
Handle
::
get
().
get
(),
data
.
method_callForJava
,
::
djinni
::
get
(
::
djinni_generated
::
NativeJavaOnlyListener
::
fromCpp
(
jniEnv
,
c_l
)));
::
djinni
::
jniExceptionCheck
(
jniEnv
);
}
CJNIEXPORT
void
JNICALL
Java_com_dropbox_djinni_test_UsesSingleLanguageListeners_00024CppProxy_nativeDestroy
(
JNIEnv
*
jniEnv
,
jobject
/*this*/
,
jlong
nativeRef
)
{
try
{
DJINNI_FUNCTION_PROLOGUE1
(
jniEnv
,
nativeRef
);
delete
reinterpret_cast
<
djinni
::
CppProxyHandle
<::
testsuite
::
UsesSingleLanguageListeners
>*>
(
nativeRef
);
}
JNI_TRANSLATE_EXCEPTIONS_RETURN
(
jniEnv
,
)
}
CJNIEXPORT
void
JNICALL
Java_com_dropbox_djinni_test_UsesSingleLanguageListeners_00024CppProxy_native_1callForObjC
(
JNIEnv
*
jniEnv
,
jobject
/*this*/
,
jlong
nativeRef
,
jobject
j_l
)
{
try
{
DJINNI_FUNCTION_PROLOGUE1
(
jniEnv
,
nativeRef
);
const
auto
&
ref
=
::
djinni
::
objectFromHandleAddress
<::
testsuite
::
UsesSingleLanguageListeners
>
(
nativeRef
);
ref
->
callForObjC
(
::
djinni_generated
::
NativeObjcOnlyListener
::
toCpp
(
jniEnv
,
j_l
));
}
JNI_TRANSLATE_EXCEPTIONS_RETURN
(
jniEnv
,
)
}
CJNIEXPORT
void
JNICALL
Java_com_dropbox_djinni_test_UsesSingleLanguageListeners_00024CppProxy_native_1callForJava
(
JNIEnv
*
jniEnv
,
jobject
/*this*/
,
jlong
nativeRef
,
jobject
j_l
)
{
try
{
DJINNI_FUNCTION_PROLOGUE1
(
jniEnv
,
nativeRef
);
const
auto
&
ref
=
::
djinni
::
objectFromHandleAddress
<::
testsuite
::
UsesSingleLanguageListeners
>
(
nativeRef
);
ref
->
callForJava
(
::
djinni_generated
::
NativeJavaOnlyListener
::
toCpp
(
jniEnv
,
j_l
));
}
JNI_TRANSLATE_EXCEPTIONS_RETURN
(
jniEnv
,
)
}
}
// namespace djinni_generated
test-suite/generated-src/jni/NativeUsesSingleLanguageListeners.hpp
0 → 100644
View file @
1a25dbb4
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from single_language_interfaces.djinni
#pragma once
#include "djinni_support.hpp"
#include "uses_single_language_listeners.hpp"
namespace
djinni_generated
{
class
NativeUsesSingleLanguageListeners
final
:
::
djinni
::
JniInterface
<::
testsuite
::
UsesSingleLanguageListeners
,
NativeUsesSingleLanguageListeners
>
{
public:
using
CppType
=
std
::
shared_ptr
<::
testsuite
::
UsesSingleLanguageListeners
>
;
using
CppOptType
=
std
::
shared_ptr
<::
testsuite
::
UsesSingleLanguageListeners
>
;
using
JniType
=
jobject
;
using
Boxed
=
NativeUsesSingleLanguageListeners
;
~
NativeUsesSingleLanguageListeners
();
static
CppType
toCpp
(
JNIEnv
*
jniEnv
,
JniType
j
)
{
return
::
djinni
::
JniClass
<
NativeUsesSingleLanguageListeners
>::
get
().
_fromJava
(
jniEnv
,
j
);
}
static
::
djinni
::
LocalRef
<
JniType
>
fromCppOpt
(
JNIEnv
*
jniEnv
,
const
CppOptType
&
c
)
{
return
{
jniEnv
,
::
djinni
::
JniClass
<
NativeUsesSingleLanguageListeners
>::
get
().
_toJava
(
jniEnv
,
c
)};
}
static
::
djinni
::
LocalRef
<
JniType
>
fromCpp
(
JNIEnv
*
jniEnv
,
const
CppType
&
c
)
{
return
fromCppOpt
(
jniEnv
,
c
);
}
private:
NativeUsesSingleLanguageListeners
();
friend
::
djinni
::
JniClass
<
NativeUsesSingleLanguageListeners
>
;
friend
::
djinni
::
JniInterface
<::
testsuite
::
UsesSingleLanguageListeners
,
NativeUsesSingleLanguageListeners
>
;
class
JavaProxy
final
:
::
djinni
::
JavaProxyHandle
<
JavaProxy
>
,
public
::
testsuite
::
UsesSingleLanguageListeners
{
public:
JavaProxy
(
JniType
j
);
~
JavaProxy
();
void
callForObjC
(
const
std
::
shared_ptr
<::
testsuite
::
ObjcOnlyListener
>
&
l
)
override
;
void
callForJava
(
const
std
::
shared_ptr
<::
testsuite
::
JavaOnlyListener
>
&
l
)
override
;
private:
friend
::
djinni
::
JniInterface
<::
testsuite
::
UsesSingleLanguageListeners
,
::
djinni_generated
::
NativeUsesSingleLanguageListeners
>
;
};
const
::
djinni
::
GlobalRef
<
jclass
>
clazz
{
::
djinni
::
jniFindClass
(
"com/dropbox/djinni/test/UsesSingleLanguageListeners"
)
};
const
jmethodID
method_callForObjC
{
::
djinni
::
jniGetMethodID
(
clazz
.
get
(),
"callForObjC"
,
"(Lcom/dropbox/djinni/test/ObjcOnlyListener;)V"
)
};
const
jmethodID
method_callForJava
{
::
djinni
::
jniGetMethodID
(
clazz
.
get
(),
"callForJava"
,
"(Lcom/dropbox/djinni/test/JavaOnlyListener;)V"
)
};
};
}
// namespace djinni_generated
test-suite/generated-src/objc/DBJavaOnlyListener+Private.h
0 → 100644
View file @
1a25dbb4
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from single_language_interfaces.djinni
#include "java_only_listener.hpp"
#include <memory>
static_assert
(
__has_feature
(
objc_arc
),
"Djinni requires ARC to be enabled for this file"
);
@
class
DBJavaOnlyListener
;
namespace
djinni_generated
{
class
JavaOnlyListener
{
public:
using
CppType
=
std
::
shared_ptr
<::
testsuite
::
JavaOnlyListener
>
;
using
CppOptType
=
std
::
shared_ptr
<::
testsuite
::
JavaOnlyListener
>
;
using
ObjcType
=
DBJavaOnlyListener
*
;
using
Boxed
=
JavaOnlyListener
;
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
test-suite/generated-src/objc/DBJavaOnlyListener+Private.mm
0 → 100644
View file @
1a25dbb4
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from single_language_interfaces.djinni
#import "DBJavaOnlyListener.h"
static_assert
(
__has_feature
(
objc_arc
),
"Djinni requires ARC to be enabled for this file"
);
namespace
djinni_generated
{
auto
JavaOnlyListener
::
toCpp
(
ObjcType
objc
)
->
CppType
{
if
(
!
objc
)
{
return
nullptr
;
}
return
::
djinni
::
get_objc_proxy
<
ObjcProxy
>
(
objc
);
}
auto
JavaOnlyListener
::
fromCppOpt
(
const
CppOptType
&
cpp
)
->
ObjcType
{
if
(
!
cpp
)
{
return
nil
;
}
return
::
djinni
::
get_cpp_proxy
<
DBJavaOnlyListener
>
(
cpp
);
}
}
// namespace djinni_generated
test-suite/generated-src/objc/DBJavaOnlyListener.h
0 → 100644
View file @
1a25dbb4
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from single_language_interfaces.djinni
#import <Foundation/Foundation.h>
@interface
DBJavaOnlyListener
:
NSObject
@end
test-suite/generated-src/objc/DBObjcOnlyListener+Private.h
0 → 100644
View file @
1a25dbb4
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from single_language_interfaces.djinni
#include "objc_only_listener.hpp"
#include <memory>
static_assert
(
__has_feature
(
objc_arc
),
"Djinni requires ARC to be enabled for this file"
);
@protocol
DBObjcOnlyListener
;
namespace
djinni_generated
{
class
ObjcOnlyListener
{
public:
using
CppType
=
std
::
shared_ptr
<::
testsuite
::
ObjcOnlyListener
>
;
using
CppOptType
=
std
::
shared_ptr
<::
testsuite
::
ObjcOnlyListener
>
;
using
ObjcType
=
id
<
DBObjcOnlyListener
>
;
using
Boxed
=
ObjcOnlyListener
;
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
test-suite/generated-src/objc/DBObjcOnlyListener+Private.mm
0 → 100644
View file @
1a25dbb4
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from single_language_interfaces.djinni
#import "DBObjcOnlyListener+Private.h"
#import "DBObjcOnlyListener.h"
#import "DJIObjcWrapperCache+Private.h"
static_assert
(
__has_feature
(
objc_arc
),
"Djinni requires ARC to be enabled for this file"
);
namespace
djinni_generated
{
class
ObjcOnlyListener
::
ObjcProxy
final
:
public
::
testsuite
::
ObjcOnlyListener
,
public
::
djinni
::
ObjcProxyCache
::
Handle
<
ObjcType
>
{
public:
using
Handle
::
Handle
;
};
}
// namespace djinni_generated
namespace
djinni_generated
{
auto
ObjcOnlyListener
::
toCpp
(
ObjcType
objc
)
->
CppType
{
if
(
!
objc
)
{
return
nullptr
;
}
return
::
djinni
::
get_objc_proxy
<
ObjcProxy
>
(
objc
);
}
auto
ObjcOnlyListener
::
fromCppOpt
(
const
CppOptType
&
cpp
)
->
ObjcType
{
if
(
!
cpp
)
{
return
nil
;
}
return
dynamic_cast
<
ObjcProxy
&>
(
*
cpp
).
Handle
::
get
();
}
}
// namespace djinni_generated
test-suite/generated-src/objc/DBObjcOnlyListener.h
0 → 100644
View file @
1a25dbb4
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from single_language_interfaces.djinni
#import <Foundation/Foundation.h>
@protocol
DBObjcOnlyListener
@end
test-suite/generated-src/objc/DBUsesSingleLanguageListeners+Private.h
0 → 100644
View file @
1a25dbb4
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from single_language_interfaces.djinni
#include "uses_single_language_listeners.hpp"
#include <memory>
static_assert
(
__has_feature
(
objc_arc
),
"Djinni requires ARC to be enabled for this file"
);
@protocol
DBUsesSingleLanguageListeners
;
namespace
djinni_generated
{
class
UsesSingleLanguageListeners
{
public:
using
CppType
=
std
::
shared_ptr
<::
testsuite
::
UsesSingleLanguageListeners
>
;
using
CppOptType
=
std
::
shared_ptr
<::
testsuite
::
UsesSingleLanguageListeners
>
;
using
ObjcType
=
id
<
DBUsesSingleLanguageListeners
>
;
using
Boxed
=
UsesSingleLanguageListeners
;
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
test-suite/generated-src/objc/DBUsesSingleLanguageListeners+Private.mm
0 → 100644
View file @
1a25dbb4
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from single_language_interfaces.djinni
#import "DBUsesSingleLanguageListeners+Private.h"
#import "DBUsesSingleLanguageListeners.h"
#import "DBJavaOnlyListener+Private.h"
#import "DBObjcOnlyListener+Private.h"
#import "DJICppWrapperCache+Private.h"
#import "DJIError.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
DBUsesSingleLanguageListenersCppProxy
:
NSObject
<
DBUsesSingleLanguageListeners
>
-
(
id
)
initWithCpp
:(
const
std
::
shared_ptr
<::
testsuite
::
UsesSingleLanguageListeners
>&
)
cppRef
;
@end
@implementation
DBUsesSingleLanguageListenersCppProxy
{
::
djinni
::
CppProxyCache
::
Handle
<
std
::
shared_ptr
<::
testsuite
::
UsesSingleLanguageListeners
>>
_cppRefHandle
;
}
-
(
id
)
initWithCpp
:(
const
std
::
shared_ptr
<::
testsuite
::
UsesSingleLanguageListeners
>&
)
cppRef
{
if
(
self
=
[
super
init
])
{
_cppRefHandle
.
assign
(
cppRef
);
}
return
self
;
}
-
(
void
)
callForObjC
:(
nullable
id
<
DBObjcOnlyListener
>
)
l
{
try
{
_cppRefHandle
.
get
()
->
callForObjC
(
::
djinni_generated
::
ObjcOnlyListener
::
toCpp
(
l
));
}
DJINNI_TRANSLATE_EXCEPTIONS
()
}
-
(
void
)
callForJava
:(
nullable
id
<
DBJavaOnlyListener
>
)
l
{
try
{
_cppRefHandle
.
get
()
->
callForJava
(
::
djinni_generated
::
JavaOnlyListener
::
toCpp
(
l
));
}
DJINNI_TRANSLATE_EXCEPTIONS
()
}
namespace
djinni_generated
{
class
UsesSingleLanguageListeners
::
ObjcProxy
final
:
public
::
testsuite
::
UsesSingleLanguageListeners
,
public
::
djinni
::
ObjcProxyCache
::
Handle
<
ObjcType
>
{
public:
using
Handle
::
Handle
;
void
callForObjC
(
const
std
::
shared_ptr
<::
testsuite
::
ObjcOnlyListener
>
&
c_l
)
override
{
@autoreleasepool
{
[
Handle
:
:
get
()
callForObjC
:(
::
djinni_generated
::
ObjcOnlyListener
::
fromCpp
(
c_l
))];
}
}
void
callForJava
(
const
std
::
shared_ptr
<::
testsuite
::
JavaOnlyListener
>
&
c_l
)
override
{
@autoreleasepool
{
[
Handle
:
:
get
()
callForJava
:(
::
djinni_generated
::
JavaOnlyListener
::
fromCpp
(
c_l
))];
}
}
};
}
// namespace djinni_generated
namespace
djinni_generated
{
auto
UsesSingleLanguageListeners
::
toCpp
(
ObjcType
objc
)
->
CppType
{
if
(
!
objc
)
{
return
nullptr
;
}
if
([(
id
)
objc
isKindOfClass
:[
DBUsesSingleLanguageListenersCppProxy
class
]])
{
return
((
DBUsesSingleLanguageListenersCppProxy
*
)
objc
)
->
_cppRefHandle
.
get
();
}
return
::
djinni
::
get_objc_proxy
<
ObjcProxy
>
(
objc
);
}
auto
UsesSingleLanguageListeners
::
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
<
DBUsesSingleLanguageListenersCppProxy
>
(
cpp
);
}
}
// namespace djinni_generated
@end
test-suite/generated-src/objc/DBUsesSingleLanguageListeners.h
0 → 100644
View file @
1a25dbb4
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from single_language_interfaces.djinni
#import <Foundation/Foundation.h>
@protocol
DBJavaOnlyListener
;
@protocol
DBObjcOnlyListener
;
/**
* Generating and compiling this makes sure other languages don't break
* on references to interfaces they don't need.
*/
@protocol
DBUsesSingleLanguageListeners
-
(
void
)
callForObjC
:(
nullable
id
<
DBObjcOnlyListener
>
)
l
;
-
(
void
)
callForJava
:(
nullable
id
<
DBJavaOnlyListener
>
)
l
;
@end
test-suite/generated-src/outFileList.txt
View file @
1a25dbb4
...
...
@@ -4,6 +4,9 @@ djinni-output-temp/cpp/record_with_duration_and_derivings.cpp
djinni-output-temp/cpp/date_record.hpp
djinni-output-temp/cpp/date_record.cpp
djinni-output-temp/cpp/map_date_record.hpp
djinni-output-temp/cpp/objc_only_listener.hpp
djinni-output-temp/cpp/java_only_listener.hpp
djinni-output-temp/cpp/uses_single_language_listeners.hpp
djinni-output-temp/cpp/first_listener.hpp
djinni-output-temp/cpp/second_listener.hpp
djinni-output-temp/cpp/listener_caller.hpp
...
...
@@ -38,6 +41,9 @@ djinni-output-temp/java/TestDuration.java
djinni-output-temp/java/RecordWithDurationAndDerivings.java
djinni-output-temp/java/DateRecord.java
djinni-output-temp/java/MapDateRecord.java
djinni-output-temp/java/ObjcOnlyListener.java
djinni-output-temp/java/JavaOnlyListener.java
djinni-output-temp/java/UsesSingleLanguageListeners.java
djinni-output-temp/java/FirstListener.java
djinni-output-temp/java/SecondListener.java
djinni-output-temp/java/ListenerCaller.java
...
...
@@ -71,6 +77,12 @@ djinni-output-temp/jni/NativeDateRecord.hpp
djinni-output-temp/jni/NativeDateRecord.cpp
djinni-output-temp/jni/NativeMapDateRecord.hpp
djinni-output-temp/jni/NativeMapDateRecord.cpp
djinni-output-temp/jni/NativeObjcOnlyListener.hpp
djinni-output-temp/jni/NativeObjcOnlyListener.cpp
djinni-output-temp/jni/NativeJavaOnlyListener.hpp
djinni-output-temp/jni/NativeJavaOnlyListener.cpp
djinni-output-temp/jni/NativeUsesSingleLanguageListeners.hpp
djinni-output-temp/jni/NativeUsesSingleLanguageListeners.cpp
djinni-output-temp/jni/NativeFirstListener.hpp
djinni-output-temp/jni/NativeFirstListener.cpp
djinni-output-temp/jni/NativeSecondListener.hpp
...
...
@@ -127,6 +139,9 @@ djinni-output-temp/objc/DBDateRecord.h
djinni-output-temp/objc/DBDateRecord.mm
djinni-output-temp/objc/DBMapDateRecord.h
djinni-output-temp/objc/DBMapDateRecord.mm
djinni-output-temp/objc/DBObjcOnlyListener.h
djinni-output-temp/objc/DBJavaOnlyListener.h
djinni-output-temp/objc/DBUsesSingleLanguageListeners.h
djinni-output-temp/objc/DBFirstListener.h
djinni-output-temp/objc/DBSecondListener.h
djinni-output-temp/objc/DBListenerCaller.h
...
...
@@ -174,6 +189,12 @@ djinni-output-temp/objc/DBDateRecord+Private.h
djinni-output-temp/objc/DBDateRecord+Private.mm
djinni-output-temp/objc/DBMapDateRecord+Private.h
djinni-output-temp/objc/DBMapDateRecord+Private.mm
djinni-output-temp/objc/DBObjcOnlyListener+Private.h
djinni-output-temp/objc/DBObjcOnlyListener+Private.mm
djinni-output-temp/objc/DBJavaOnlyListener+Private.h
djinni-output-temp/objc/DBJavaOnlyListener+Private.mm
djinni-output-temp/objc/DBUsesSingleLanguageListeners+Private.h
djinni-output-temp/objc/DBUsesSingleLanguageListeners+Private.mm
djinni-output-temp/objc/DBFirstListener+Private.h
djinni-output-temp/objc/DBFirstListener+Private.mm
djinni-output-temp/objc/DBSecondListener+Private.h
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment