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
55ff8e7e
Commit
55ff8e7e
authored
Jan 29, 2016
by
Guy Nicholas
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
For extended records moved the base struct forward declare into the namespace
parent
f2e35572
Changes
15
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
247 additions
and
1 deletion
+247
-1
src/source/CppGenerator.scala
src/source/CppGenerator.scala
+5
-1
test-suite/djinni/common.djinni
test-suite/djinni/common.djinni
+1
-0
test-suite/djinni/extended_record.djinni
test-suite/djinni/extended_record.djinni
+5
-0
test-suite/generated-src/cpp/extended_record_base.hpp
test-suite/generated-src/cpp/extended_record_base.hpp
+29
-0
test-suite/generated-src/inFileList.txt
test-suite/generated-src/inFileList.txt
+1
-0
test-suite/generated-src/java/com/dropbox/djinni/test/ExtendedRecord.java
...ated-src/java/com/dropbox/djinni/test/ExtendedRecord.java
+31
-0
test-suite/generated-src/jni/NativeExtendedRecord.cpp
test-suite/generated-src/jni/NativeExtendedRecord.cpp
+28
-0
test-suite/generated-src/jni/NativeExtendedRecord.hpp
test-suite/generated-src/jni/NativeExtendedRecord.hpp
+32
-0
test-suite/generated-src/objc/DBExtendedRecord+Private.h
test-suite/generated-src/objc/DBExtendedRecord+Private.h
+24
-0
test-suite/generated-src/objc/DBExtendedRecord+Private.mm
test-suite/generated-src/objc/DBExtendedRecord+Private.mm
+21
-0
test-suite/generated-src/objc/DBExtendedRecord.h
test-suite/generated-src/objc/DBExtendedRecord.h
+13
-0
test-suite/generated-src/objc/DBExtendedRecord.mm
test-suite/generated-src/objc/DBExtendedRecord.mm
+27
-0
test-suite/generated-src/outFileList.txt
test-suite/generated-src/outFileList.txt
+8
-0
test-suite/handwritten-src/cpp/extended_record.cpp
test-suite/handwritten-src/cpp/extended_record.cpp
+9
-0
test-suite/handwritten-src/cpp/extended_record.hpp
test-suite/handwritten-src/cpp/extended_record.hpp
+13
-0
No files found.
src/source/CppGenerator.scala
View file @
55ff8e7e
...
@@ -146,12 +146,16 @@ class CppGenerator(spec: Spec) extends Generator(spec) {
...
@@ -146,12 +146,16 @@ class CppGenerator(spec: Spec) extends Generator(spec) {
// Requiring the extended class
// Requiring the extended class
if
(
r
.
ext
.
cpp
)
{
if
(
r
.
ext
.
cpp
)
{
refs
.
hpp
.
add
(
s
"struct $self; // Requiring extended class"
)
refs
.
cpp
.
add
(
"#include "
+
q
(
"../"
+
spec
.
cppFileIdentStyle
(
ident
)
+
"."
+
spec
.
cppHeaderExt
))
refs
.
cpp
.
add
(
"#include "
+
q
(
"../"
+
spec
.
cppFileIdentStyle
(
ident
)
+
"."
+
spec
.
cppHeaderExt
))
}
}
// C++ Header
// C++ Header
def
writeCppPrototype
(
w
:
IndentWriter
)
{
def
writeCppPrototype
(
w
:
IndentWriter
)
{
if
(
r
.
ext
.
cpp
)
{
w
.
w
(
s
"struct $self; // Requiring extended class"
)
w
.
wl
w
.
wl
}
writeDoc
(
w
,
doc
)
writeDoc
(
w
,
doc
)
writeCppTypeParams
(
w
,
params
)
writeCppTypeParams
(
w
,
params
)
w
.
w
(
"struct "
+
actualSelf
+
cppFinal
).
bracedSemi
{
w
.
w
(
"struct "
+
actualSelf
+
cppFinal
).
bracedSemi
{
...
...
test-suite/djinni/common.djinni
View file @
55ff8e7e
...
@@ -12,3 +12,4 @@
...
@@ -12,3 +12,4 @@
@import "constants.djinni"
@import "constants.djinni"
@import "multiple_inheritance.djinni"
@import "multiple_inheritance.djinni"
@import "single_language_interfaces.djinni"
@import "single_language_interfaces.djinni"
@import "extended_record.djinni"
test-suite/djinni/extended_record.djinni
0 → 100644
View file @
55ff8e7e
# Extended record
extended_record = record +c {
foo: bool;
}
test-suite/generated-src/cpp/extended_record_base.hpp
0 → 100644
View file @
55ff8e7e
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from extended_record.djinni
#pragma once
#include <utility>
namespace
testsuite
{
struct
ExtendedRecord
;
// Requiring extended class
/** Extended record */
struct
ExtendedRecordBase
{
bool
foo
;
ExtendedRecordBase
(
bool
foo_
)
:
foo
(
std
::
move
(
foo_
))
{}
virtual
~
ExtendedRecordBase
()
=
default
;
protected:
ExtendedRecordBase
(
const
ExtendedRecordBase
&
)
=
default
;
ExtendedRecordBase
(
ExtendedRecordBase
&&
)
=
default
;
ExtendedRecordBase
&
operator
=
(
const
ExtendedRecordBase
&
)
=
default
;
ExtendedRecordBase
&
operator
=
(
ExtendedRecordBase
&&
)
=
default
;
};
}
// namespace testsuite
test-suite/generated-src/inFileList.txt
View file @
55ff8e7e
...
@@ -14,6 +14,7 @@ djinni/primtypes.djinni
...
@@ -14,6 +14,7 @@ djinni/primtypes.djinni
djinni/constants.djinni
djinni/constants.djinni
djinni/multiple_inheritance.djinni
djinni/multiple_inheritance.djinni
djinni/single_language_interfaces.djinni
djinni/single_language_interfaces.djinni
djinni/extended_record.djinni
djinni/date.djinni
djinni/date.djinni
djinni/date.yaml
djinni/date.yaml
djinni/duration.djinni
djinni/duration.djinni
...
...
test-suite/generated-src/java/com/dropbox/djinni/test/ExtendedRecord.java
0 → 100644
View file @
55ff8e7e
// 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
;
/** Extended record */
public
final
class
ExtendedRecord
{
/*package*/
final
boolean
mFoo
;
public
ExtendedRecord
(
boolean
foo
)
{
this
.
mFoo
=
foo
;
}
public
boolean
getFoo
()
{
return
mFoo
;
}
@Override
public
String
toString
()
{
return
"ExtendedRecord{"
+
"mFoo="
+
mFoo
+
"}"
;
}
}
test-suite/generated-src/jni/NativeExtendedRecord.cpp
0 → 100644
View file @
55ff8e7e
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from extended_record.djinni
#include "NativeExtendedRecord.hpp" // my header
#include "Marshal.hpp"
namespace
djinni_generated
{
NativeExtendedRecord
::
NativeExtendedRecord
()
=
default
;
NativeExtendedRecord
::~
NativeExtendedRecord
()
=
default
;
auto
NativeExtendedRecord
::
fromCpp
(
JNIEnv
*
jniEnv
,
const
CppType
&
c
)
->
::
djinni
::
LocalRef
<
JniType
>
{
const
auto
&
data
=
::
djinni
::
JniClass
<
NativeExtendedRecord
>::
get
();
auto
r
=
::
djinni
::
LocalRef
<
JniType
>
{
jniEnv
->
NewObject
(
data
.
clazz
.
get
(),
data
.
jconstructor
,
::
djinni
::
get
(
::
djinni
::
Bool
::
fromCpp
(
jniEnv
,
c
.
foo
)))};
::
djinni
::
jniExceptionCheck
(
jniEnv
);
return
r
;
}
auto
NativeExtendedRecord
::
toCpp
(
JNIEnv
*
jniEnv
,
JniType
j
)
->
CppType
{
::
djinni
::
JniLocalScope
jscope
(
jniEnv
,
2
);
assert
(
j
!=
nullptr
);
const
auto
&
data
=
::
djinni
::
JniClass
<
NativeExtendedRecord
>::
get
();
return
{
::
djinni
::
Bool
::
toCpp
(
jniEnv
,
jniEnv
->
GetBooleanField
(
j
,
data
.
field_mFoo
))};
}
}
// namespace djinni_generated
test-suite/generated-src/jni/NativeExtendedRecord.hpp
0 → 100644
View file @
55ff8e7e
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from extended_record.djinni
#pragma once
#include "djinni_support.hpp"
#include "extended_record.hpp"
namespace
djinni_generated
{
class
NativeExtendedRecord
final
{
public:
using
CppType
=
::
testsuite
::
ExtendedRecord
;
using
JniType
=
jobject
;
using
Boxed
=
NativeExtendedRecord
;
~
NativeExtendedRecord
();
static
CppType
toCpp
(
JNIEnv
*
jniEnv
,
JniType
j
);
static
::
djinni
::
LocalRef
<
JniType
>
fromCpp
(
JNIEnv
*
jniEnv
,
const
CppType
&
c
);
private:
NativeExtendedRecord
();
friend
::
djinni
::
JniClass
<
NativeExtendedRecord
>
;
const
::
djinni
::
GlobalRef
<
jclass
>
clazz
{
::
djinni
::
jniFindClass
(
"com/dropbox/djinni/test/ExtendedRecord"
)
};
const
jmethodID
jconstructor
{
::
djinni
::
jniGetMethodID
(
clazz
.
get
(),
"<init>"
,
"(Z)V"
)
};
const
jfieldID
field_mFoo
{
::
djinni
::
jniGetFieldID
(
clazz
.
get
(),
"mFoo"
,
"Z"
)
};
};
}
// namespace djinni_generated
test-suite/generated-src/objc/DBExtendedRecord+Private.h
0 → 100644
View file @
55ff8e7e
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from extended_record.djinni
#import "DBExtendedRecord.h"
#include "../extended_record.hpp"
static_assert
(
__has_feature
(
objc_arc
),
"Djinni requires ARC to be enabled for this file"
);
@
class
DBExtendedRecord
;
namespace
djinni_generated
{
struct
ExtendedRecord
{
using
CppType
=
::
testsuite
::
ExtendedRecord
;
using
ObjcType
=
DBExtendedRecord
*
;
using
Boxed
=
ExtendedRecord
;
static
CppType
toCpp
(
ObjcType
objc
);
static
ObjcType
fromCpp
(
const
CppType
&
cpp
);
};
}
// namespace djinni_generated
test-suite/generated-src/objc/DBExtendedRecord+Private.mm
0 → 100644
View file @
55ff8e7e
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from extended_record.djinni
#import "DBExtendedRecord+Private.h"
#import "DJIMarshal+Private.h"
#include <cassert>
namespace
djinni_generated
{
auto
ExtendedRecord
::
toCpp
(
ObjcType
obj
)
->
CppType
{
assert
(
obj
);
return
{
::
djinni
::
Bool
::
toCpp
(
obj
.
foo
)};
}
auto
ExtendedRecord
::
fromCpp
(
const
CppType
&
cpp
)
->
ObjcType
{
return
[[
DBExtendedRecord
alloc
]
initWithFoo
:(
::
djinni
:
:
Bool
::
fromCpp
(
cpp
.
foo
))];
}
}
// namespace djinni_generated
test-suite/generated-src/objc/DBExtendedRecord.h
0 → 100644
View file @
55ff8e7e
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from extended_record.djinni
#import <Foundation/Foundation.h>
/** Extended record */
@interface
DBExtendedRecord
:
NSObject
-
(
nonnull
instancetype
)
initWithFoo
:(
BOOL
)
foo
;
+
(
nonnull
instancetype
)
extendedRecordWithFoo
:(
BOOL
)
foo
;
@property
(
nonatomic
,
readonly
)
BOOL
foo
;
@end
test-suite/generated-src/objc/DBExtendedRecord.mm
0 → 100644
View file @
55ff8e7e
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from extended_record.djinni
#import "DBExtendedRecord.h"
@implementation
DBExtendedRecord
-
(
nonnull
instancetype
)
initWithFoo
:(
BOOL
)
foo
{
if
(
self
=
[
super
init
])
{
_foo
=
foo
;
}
return
self
;
}
+
(
nonnull
instancetype
)
extendedRecordWithFoo
:(
BOOL
)
foo
{
return
[[
self
alloc
]
initWithFoo
:
foo
];
}
-
(
NSString
*
)
description
{
return
[
NSString
stringWithFormat
:
@"<%@ %p foo:%@>"
,
self
.
class
,
self
,
@
(
self
.
foo
)];
}
@end
test-suite/generated-src/outFileList.txt
View file @
55ff8e7e
...
@@ -4,6 +4,7 @@ djinni-output-temp/cpp/record_with_duration_and_derivings.cpp
...
@@ -4,6 +4,7 @@ djinni-output-temp/cpp/record_with_duration_and_derivings.cpp
djinni-output-temp/cpp/date_record.hpp
djinni-output-temp/cpp/date_record.hpp
djinni-output-temp/cpp/date_record.cpp
djinni-output-temp/cpp/date_record.cpp
djinni-output-temp/cpp/map_date_record.hpp
djinni-output-temp/cpp/map_date_record.hpp
djinni-output-temp/cpp/extended_record_base.hpp
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
...
@@ -41,6 +42,7 @@ djinni-output-temp/java/TestDuration.java
...
@@ -41,6 +42,7 @@ djinni-output-temp/java/TestDuration.java
djinni-output-temp/java/RecordWithDurationAndDerivings.java
djinni-output-temp/java/RecordWithDurationAndDerivings.java
djinni-output-temp/java/DateRecord.java
djinni-output-temp/java/DateRecord.java
djinni-output-temp/java/MapDateRecord.java
djinni-output-temp/java/MapDateRecord.java
djinni-output-temp/java/ExtendedRecord.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
...
@@ -77,6 +79,8 @@ djinni-output-temp/jni/NativeDateRecord.hpp
...
@@ -77,6 +79,8 @@ djinni-output-temp/jni/NativeDateRecord.hpp
djinni-output-temp/jni/NativeDateRecord.cpp
djinni-output-temp/jni/NativeDateRecord.cpp
djinni-output-temp/jni/NativeMapDateRecord.hpp
djinni-output-temp/jni/NativeMapDateRecord.hpp
djinni-output-temp/jni/NativeMapDateRecord.cpp
djinni-output-temp/jni/NativeMapDateRecord.cpp
djinni-output-temp/jni/NativeExtendedRecord.hpp
djinni-output-temp/jni/NativeExtendedRecord.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
...
@@ -139,6 +143,8 @@ djinni-output-temp/objc/DBDateRecord.h
...
@@ -139,6 +143,8 @@ djinni-output-temp/objc/DBDateRecord.h
djinni-output-temp/objc/DBDateRecord.mm
djinni-output-temp/objc/DBDateRecord.mm
djinni-output-temp/objc/DBMapDateRecord.h
djinni-output-temp/objc/DBMapDateRecord.h
djinni-output-temp/objc/DBMapDateRecord.mm
djinni-output-temp/objc/DBMapDateRecord.mm
djinni-output-temp/objc/DBExtendedRecord.h
djinni-output-temp/objc/DBExtendedRecord.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
...
@@ -189,6 +195,8 @@ djinni-output-temp/objc/DBDateRecord+Private.h
...
@@ -189,6 +195,8 @@ djinni-output-temp/objc/DBDateRecord+Private.h
djinni-output-temp/objc/DBDateRecord+Private.mm
djinni-output-temp/objc/DBDateRecord+Private.mm
djinni-output-temp/objc/DBMapDateRecord+Private.h
djinni-output-temp/objc/DBMapDateRecord+Private.h
djinni-output-temp/objc/DBMapDateRecord+Private.mm
djinni-output-temp/objc/DBMapDateRecord+Private.mm
djinni-output-temp/objc/DBExtendedRecord+Private.h
djinni-output-temp/objc/DBExtendedRecord+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
...
...
test-suite/handwritten-src/cpp/extended_record.cpp
0 → 100644
View file @
55ff8e7e
#include "extended_record.hpp"
using
namespace
testsuite
;
ExtendedRecord
::
ExtendedRecord
()
:
ExtendedRecordBase
(
true
)
{}
test-suite/handwritten-src/cpp/extended_record.hpp
0 → 100644
View file @
55ff8e7e
#pragma once
#include "extended_record_base.hpp"
namespace
testsuite
{
struct
ExtendedRecord
:
public
ExtendedRecordBase
{
using
ExtendedRecordBase
::
ExtendedRecordBase
;
ExtendedRecord
();
};
}
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