Skip to content

Commit 90251d2

Browse files
authored
JavaScript: make use of make_::property() rather than explicitly specifying a setter and a getter.
2 parents 3ccbd10 + f971cd3 commit 90251d2

23 files changed

+296
-297
lines changed

src/bindings/javascript/file.cpp

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,10 @@ void fileApi()
2828

2929
emscripten::class_<libOpenCOR::File, emscripten::base<libOpenCOR::Logger>>("File")
3030
.smart_ptr_constructor("File", &libOpenCOR::File::create)
31-
.function("type", &libOpenCOR::File::type)
32-
.function("fileName", &libOpenCOR::File::fileName)
33-
.function("url", &libOpenCOR::File::url)
34-
.function("path", &libOpenCOR::File::path)
31+
.property("type", &libOpenCOR::File::type)
32+
.property("fileName", &libOpenCOR::File::fileName)
33+
.property("url", &libOpenCOR::File::url)
34+
.property("path", &libOpenCOR::File::path)
3535
.function("contents", emscripten::optional_override([](libOpenCOR::FilePtr &pThis) {
3636
auto contents = pThis->contents();
3737
auto view = emscripten::typed_memory_view(contents.size(), contents.data());
@@ -46,10 +46,10 @@ void fileApi()
4646

4747
pThis->setContents(libOpenCOR::UnsignedChars(contents, contents + pSize));
4848
}))
49-
.function("hasChildFiles", &libOpenCOR::File::hasChildFiles)
50-
.function("childFileCount", &libOpenCOR::File::childFileCount)
51-
.function("childFileNames", &libOpenCOR::File::childFileNames)
52-
.function("childFiles", &libOpenCOR::File::childFiles)
49+
.property("hasChildFiles", &libOpenCOR::File::hasChildFiles)
50+
.property("childFileCount", &libOpenCOR::File::childFileCount)
51+
.property("childFileNames", &libOpenCOR::File::childFileNames)
52+
.property("childFiles", &libOpenCOR::File::childFiles)
5353
.function("childFile", &libOpenCOR::File::childFile)
5454
.function("childFileFromFileName", &libOpenCOR::File::childFileFromFileName);
5555

@@ -66,9 +66,9 @@ void fileApi()
6666
.function("manage", &libOpenCOR::FileManager::manage)
6767
.function("unmanage", &libOpenCOR::FileManager::unmanage)
6868
.function("reset", &libOpenCOR::FileManager::reset)
69-
.function("hasFiles", &libOpenCOR::FileManager::hasFiles)
70-
.function("fileCount", &libOpenCOR::FileManager::fileCount)
71-
.function("files", &libOpenCOR::FileManager::files)
69+
.property("hasFiles", &libOpenCOR::FileManager::hasFiles)
70+
.property("fileCount", &libOpenCOR::FileManager::fileCount)
71+
.property("files", &libOpenCOR::FileManager::files)
7272
.function("file", &libOpenCOR::FileManager::file)
7373
.function("fileFromFileNameOrUrl", &libOpenCOR::FileManager::fileFromFileNameOrUrl);
7474
}

src/bindings/javascript/logger.cpp

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,17 @@ void loggerApi()
2121
// Logger API.
2222

2323
emscripten::class_<libOpenCOR::Logger>("Logger")
24-
.function("hasIssues", &libOpenCOR::Logger::hasIssues)
25-
.function("issueCount", &libOpenCOR::Logger::issueCount)
26-
.function("issues", &libOpenCOR::Logger::issues)
24+
.property("hasIssues", &libOpenCOR::Logger::hasIssues)
25+
.property("issueCount", &libOpenCOR::Logger::issueCount)
26+
.property("issues", &libOpenCOR::Logger::issues)
2727
.function("issue", &libOpenCOR::Logger::issue)
28-
.function("hasErrors", &libOpenCOR::Logger::hasErrors)
29-
.function("errorCount", &libOpenCOR::Logger::errorCount)
30-
.function("errors", &libOpenCOR::Logger::errors)
28+
.property("hasErrors", &libOpenCOR::Logger::hasErrors)
29+
.property("errorCount", &libOpenCOR::Logger::errorCount)
30+
.property("errors", &libOpenCOR::Logger::errors)
3131
.function("error", &libOpenCOR::Logger::error)
32-
.function("hasWarnings", &libOpenCOR::Logger::hasWarnings)
33-
.function("warningCount", &libOpenCOR::Logger::warningCount)
34-
.function("warnings", &libOpenCOR::Logger::warnings)
32+
.property("hasWarnings", &libOpenCOR::Logger::hasWarnings)
33+
.property("warningCount", &libOpenCOR::Logger::warningCount)
34+
.property("warnings", &libOpenCOR::Logger::warnings)
3535
.function("warning", &libOpenCOR::Logger::warning);
3636

3737
// Issue API.
@@ -42,9 +42,9 @@ void loggerApi()
4242

4343
emscripten::class_<libOpenCOR::Issue>("Issue")
4444
.smart_ptr<libOpenCOR::IssuePtr>("Issue")
45-
.function("type", &libOpenCOR::Issue::type)
46-
.function("typeAsString", &libOpenCOR::Issue::typeAsString)
47-
.function("description", &libOpenCOR::Issue::description);
45+
.property("type", &libOpenCOR::Issue::type)
46+
.property("typeAsString", &libOpenCOR::Issue::typeAsString)
47+
.property("description", &libOpenCOR::Issue::description);
4848

4949
EM_ASM({
5050
Module["Issue"]["Type"] = Module["Issue.Type"];

src/bindings/javascript/sed.cpp

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -43,21 +43,21 @@ void sedApi()
4343
.constructor(&libOpenCOR::SedDocument::defaultCreate)
4444
.function("serialise", emscripten::select_overload<std::string() const>(&libOpenCOR::SedDocument::serialise))
4545
.function("serialise", emscripten::select_overload<std::string(const std::string &) const>(&libOpenCOR::SedDocument::serialise))
46-
.function("hasModels", &libOpenCOR::SedDocument::hasModels)
47-
.function("modelCount", &libOpenCOR::SedDocument::modelCount)
48-
.function("models", &libOpenCOR::SedDocument::models)
46+
.property("hasModels", &libOpenCOR::SedDocument::hasModels)
47+
.property("modelCount", &libOpenCOR::SedDocument::modelCount)
48+
.property("models", &libOpenCOR::SedDocument::models)
4949
.function("model", &libOpenCOR::SedDocument::model)
5050
.function("addModel", &libOpenCOR::SedDocument::addModel)
5151
.function("removeModel", &libOpenCOR::SedDocument::removeModel)
52-
.function("hasSimulations", &libOpenCOR::SedDocument::hasSimulations)
53-
.function("simulationCount", &libOpenCOR::SedDocument::simulationCount)
54-
.function("simulations", &libOpenCOR::SedDocument::simulations)
52+
.property("hasSimulations", &libOpenCOR::SedDocument::hasSimulations)
53+
.property("simulationCount", &libOpenCOR::SedDocument::simulationCount)
54+
.property("simulations", &libOpenCOR::SedDocument::simulations)
5555
.function("simulation", &libOpenCOR::SedDocument::simulation)
5656
.function("addSimulation", &libOpenCOR::SedDocument::addSimulation)
5757
.function("removeSimulation", &libOpenCOR::SedDocument::removeSimulation)
58-
.function("hasTasks", &libOpenCOR::SedDocument::hasTasks)
59-
.function("taskCount", &libOpenCOR::SedDocument::taskCount)
60-
.function("tasks", &libOpenCOR::SedDocument::tasks)
58+
.property("hasTasks", &libOpenCOR::SedDocument::hasTasks)
59+
.property("taskCount", &libOpenCOR::SedDocument::taskCount)
60+
.property("tasks", &libOpenCOR::SedDocument::tasks)
6161
.function("task", &libOpenCOR::SedDocument::task)
6262
.function("addTask", &libOpenCOR::SedDocument::addTask)
6363
.function("removeTask", &libOpenCOR::SedDocument::removeTask)
@@ -68,37 +68,37 @@ void sedApi()
6868
emscripten::class_<libOpenCOR::SedInstance, emscripten::base<libOpenCOR::Logger>>("SedInstance")
6969
.smart_ptr<libOpenCOR::SedInstancePtr>("SedInstance")
7070
.function("run", &libOpenCOR::SedInstance::run)
71-
.function("tasks", &libOpenCOR::SedInstance::tasks);
71+
.property("tasks", &libOpenCOR::SedInstance::tasks);
7272

7373
// SedInstanceTask API.
7474

7575
emscripten::class_<libOpenCOR::SedInstanceTask, emscripten::base<libOpenCOR::Logger>>("SedInstanceTask")
7676
.smart_ptr<libOpenCOR::SedInstanceTaskPtr>("SedInstanceTask")
77-
.function("voi", &libOpenCOR::SedInstanceTask::voi)
78-
.function("voiAsArray", &libOpenCOR::SedInstanceTask::voiAsArray)
79-
.function("voiName", &libOpenCOR::SedInstanceTask::voiName)
80-
.function("voiUnit", &libOpenCOR::SedInstanceTask::voiUnit)
81-
.function("stateCount", &libOpenCOR::SedInstanceTask::stateCount)
77+
.property("voi", &libOpenCOR::SedInstanceTask::voi)
78+
.property("voiAsArray", &libOpenCOR::SedInstanceTask::voiAsArray)
79+
.property("voiName", &libOpenCOR::SedInstanceTask::voiName)
80+
.property("voiUnit", &libOpenCOR::SedInstanceTask::voiUnit)
81+
.property("stateCount", &libOpenCOR::SedInstanceTask::stateCount)
8282
.function("state", &libOpenCOR::SedInstanceTask::state)
8383
.function("stateAsArray", &libOpenCOR::SedInstanceTask::stateAsArray)
8484
.function("stateName", &libOpenCOR::SedInstanceTask::stateName)
8585
.function("stateUnit", &libOpenCOR::SedInstanceTask::stateUnit)
86-
.function("rateCount", &libOpenCOR::SedInstanceTask::rateCount)
86+
.property("rateCount", &libOpenCOR::SedInstanceTask::rateCount)
8787
.function("rate", &libOpenCOR::SedInstanceTask::rate)
8888
.function("rateAsArray", &libOpenCOR::SedInstanceTask::rateAsArray)
8989
.function("rateName", &libOpenCOR::SedInstanceTask::rateName)
9090
.function("rateUnit", &libOpenCOR::SedInstanceTask::rateUnit)
91-
.function("constantCount", &libOpenCOR::SedInstanceTask::constantCount)
91+
.property("constantCount", &libOpenCOR::SedInstanceTask::constantCount)
9292
.function("constant", &libOpenCOR::SedInstanceTask::constant)
9393
.function("constantAsArray", &libOpenCOR::SedInstanceTask::constantAsArray)
9494
.function("constantName", &libOpenCOR::SedInstanceTask::constantName)
9595
.function("constantUnit", &libOpenCOR::SedInstanceTask::constantUnit)
96-
.function("computedConstantCount", &libOpenCOR::SedInstanceTask::computedConstantCount)
96+
.property("computedConstantCount", &libOpenCOR::SedInstanceTask::computedConstantCount)
9797
.function("computedConstant", &libOpenCOR::SedInstanceTask::computedConstant)
9898
.function("computedConstantAsArray", &libOpenCOR::SedInstanceTask::computedConstantAsArray)
9999
.function("computedConstantName", &libOpenCOR::SedInstanceTask::computedConstantName)
100100
.function("computedConstantUnit", &libOpenCOR::SedInstanceTask::computedConstantUnit)
101-
.function("algebraicCount", &libOpenCOR::SedInstanceTask::algebraicCount)
101+
.property("algebraicCount", &libOpenCOR::SedInstanceTask::algebraicCount)
102102
.function("algebraic", &libOpenCOR::SedInstanceTask::algebraic)
103103
.function("algebraicAsArray", &libOpenCOR::SedInstanceTask::algebraicAsArray)
104104
.function("algebraicName", &libOpenCOR::SedInstanceTask::algebraicName)
@@ -108,7 +108,7 @@ void sedApi()
108108

109109
emscripten::class_<libOpenCOR::SedModel, emscripten::base<libOpenCOR::SedBase>>("SedModel")
110110
.smart_ptr_constructor("SedModel", &libOpenCOR::SedModel::create)
111-
.function("file", &libOpenCOR::SedModel::file);
111+
.property("file", &libOpenCOR::SedModel::file);
112112

113113
// SedOutput API.
114114

src/bindings/javascript/solver.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ void solverApi()
2525
.value("NLA", libOpenCOR::Solver::Type::NLA);
2626

2727
emscripten::class_<libOpenCOR::Solver, emscripten::base<libOpenCOR::Logger>>("Solver")
28-
.function("type", &libOpenCOR::Solver::type)
29-
.function("id", &libOpenCOR::Solver::id)
30-
.function("name", &libOpenCOR::Solver::name);
28+
.property("type", &libOpenCOR::Solver::type)
29+
.property("id", &libOpenCOR::Solver::id)
30+
.property("name", &libOpenCOR::Solver::name);
3131

3232
EM_ASM({
3333
Module["Solver"]["Type"] = Module["Solver.Type"];

tests/api/version/tests.cpp

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,27 @@ limitations under the License.
2222

2323
TEST(VersionTest, libOpenCOR)
2424
{
25+
static const int NINETEEN_HUNDRED = 1900;
26+
static const int ONE = 1;
27+
28+
auto now = std::chrono::system_clock::now();
29+
auto now_time_t = std::chrono::system_clock::to_time_t(now);
30+
std::tm local_tm {};
31+
32+
#ifdef _WIN32
33+
localtime_s(&local_tm, &now_time_t); // NOLINT
34+
#else
35+
localtime_r(&now_time_t, &local_tm); // NOLINT
36+
#endif
37+
38+
auto year = NINETEEN_HUNDRED + local_tm.tm_year;
39+
auto month = ONE + local_tm.tm_mon;
40+
auto day = local_tm.tm_mday;
41+
2542
static const int TEN_THOUSAND = 10000;
2643
static const int HUNDRED = 100;
2744
static const int TEN = 10;
2845

29-
auto now = std::chrono::year_month_day {std::chrono::time_point_cast<std::chrono::days>(std::chrono::system_clock::now())};
30-
auto year = static_cast<int>(now.year());
31-
auto month = static_cast<int>(static_cast<unsigned>(now.month()));
32-
auto day = static_cast<int>(static_cast<unsigned>(now.day()));
3346
int version = 0;
3447
int number = TEN_THOUSAND * year + HUNDRED * month + day;
3548

tests/bindings/javascript/file.basic.test.js

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,10 @@ describe("File basic tests", () => {
4444
test("Local file", () => {
4545
const file = new libopencor.File(utils.LOCAL_FILE);
4646

47-
expect(file.type().value).toBe(libopencor.File.Type.UNKNOWN_FILE.value);
48-
expect(file.fileName()).toBe(utils.LOCAL_FILE);
49-
expect(file.url()).toBe("");
50-
expect(file.path()).toBe(utils.LOCAL_FILE);
47+
expect(file.type.value).toBe(libopencor.File.Type.UNKNOWN_FILE.value);
48+
expect(file.fileName).toBe(utils.LOCAL_FILE);
49+
expect(file.url).toBe("");
50+
expect(file.path).toBe(utils.LOCAL_FILE);
5151
expect(file.contents()).toStrictEqual(utils.NO_CONTENTS);
5252
expectIssues(libopencor, file, expectedUnknownFileIssues);
5353

@@ -56,7 +56,7 @@ describe("File basic tests", () => {
5656
utils.SOME_UNKNOWN_CONTENTS.length,
5757
);
5858

59-
expect(file.type().value).toBe(libopencor.File.Type.UNKNOWN_FILE.value);
59+
expect(file.type.value).toBe(libopencor.File.Type.UNKNOWN_FILE.value);
6060
expect(file.contents()).toStrictEqual(utils.SOME_UNKNOWN_CONTENTS);
6161
expectIssues(libopencor, file, expectedUnknownFileIssues);
6262

@@ -66,10 +66,10 @@ describe("File basic tests", () => {
6666
test("Remote file", () => {
6767
const file = new libopencor.File(utils.REMOTE_FILE);
6868

69-
expect(file.type().value).toBe(libopencor.File.Type.UNKNOWN_FILE.value);
70-
expect(file.fileName()).toBe("/some/path/file");
71-
expect(file.url()).toBe(utils.REMOTE_FILE);
72-
expect(file.path()).toBe(utils.REMOTE_FILE);
69+
expect(file.type.value).toBe(libopencor.File.Type.UNKNOWN_FILE.value);
70+
expect(file.fileName).toBe("/some/path/file");
71+
expect(file.url).toBe(utils.REMOTE_FILE);
72+
expect(file.path).toBe(utils.REMOTE_FILE);
7373
expect(file.contents()).toStrictEqual(utils.NO_CONTENTS);
7474
expectIssues(libopencor, file, expectedUnknownFileIssues);
7575

@@ -78,7 +78,7 @@ describe("File basic tests", () => {
7878
utils.SOME_UNKNOWN_CONTENTS.length,
7979
);
8080

81-
expect(file.type().value).toBe(libopencor.File.Type.UNKNOWN_FILE.value);
81+
expect(file.type.value).toBe(libopencor.File.Type.UNKNOWN_FILE.value);
8282
expect(file.contents()).toStrictEqual(utils.SOME_UNKNOWN_CONTENTS);
8383
expectIssues(libopencor, file, expectedUnknownFileIssues);
8484

@@ -88,9 +88,9 @@ describe("File basic tests", () => {
8888
test("File manager", () => {
8989
const fileManager = libopencor.FileManager.instance();
9090

91-
expect(fileManager.hasFiles()).toBe(false);
92-
expect(fileManager.fileCount()).toBe(0);
93-
expect(fileManager.files().size()).toBe(0);
91+
expect(fileManager.hasFiles).toBe(false);
92+
expect(fileManager.fileCount).toBe(0);
93+
expect(fileManager.files.size()).toBe(0);
9494
expect(fileManager.file(0)).toStrictEqual(null);
9595
expect(fileManager.fileFromFileNameOrUrl(utils.LOCAL_FILE)).toStrictEqual(
9696
null,
@@ -99,49 +99,49 @@ describe("File basic tests", () => {
9999
const localFile = new libopencor.File(utils.LOCAL_FILE);
100100
const sameFileManager = libopencor.FileManager.instance();
101101

102-
expect(sameFileManager.hasFiles()).toBe(true);
103-
expect(sameFileManager.fileCount()).toBe(1);
104-
expect(sameFileManager.files().size()).toBe(1);
102+
expect(sameFileManager.hasFiles).toBe(true);
103+
expect(sameFileManager.fileCount).toBe(1);
104+
expect(sameFileManager.files.size()).toBe(1);
105105
expect(fileManager.file(0)).toStrictEqual(localFile);
106106
expect(
107107
sameFileManager.fileFromFileNameOrUrl(utils.LOCAL_FILE),
108108
).toStrictEqual(localFile);
109109

110110
const remoteFile = new libopencor.File(utils.REMOTE_FILE);
111111

112-
expect(fileManager.hasFiles()).toBe(true);
113-
expect(fileManager.fileCount()).toBe(2);
114-
expect(fileManager.files().size()).toBe(2);
112+
expect(fileManager.hasFiles).toBe(true);
113+
expect(fileManager.fileCount).toBe(2);
114+
expect(fileManager.files.size()).toBe(2);
115115
expect(fileManager.file(1)).toStrictEqual(remoteFile);
116116
expect(fileManager.fileFromFileNameOrUrl(utils.REMOTE_FILE)).toStrictEqual(
117117
remoteFile,
118118
);
119119

120120
sameFileManager.unmanage(localFile);
121121

122-
expect(sameFileManager.hasFiles()).toBe(true);
123-
expect(sameFileManager.fileCount()).toBe(1);
124-
expect(sameFileManager.files().size()).toBe(1);
122+
expect(sameFileManager.hasFiles).toBe(true);
123+
expect(sameFileManager.fileCount).toBe(1);
124+
expect(sameFileManager.files.size()).toBe(1);
125125
expect(fileManager.file(1)).toStrictEqual(null);
126126
expect(
127127
sameFileManager.fileFromFileNameOrUrl(utils.LOCAL_FILE),
128128
).toStrictEqual(null);
129129

130130
sameFileManager.manage(localFile);
131131

132-
expect(sameFileManager.hasFiles()).toBe(true);
133-
expect(sameFileManager.fileCount()).toBe(2);
134-
expect(sameFileManager.files().size()).toBe(2);
132+
expect(sameFileManager.hasFiles).toBe(true);
133+
expect(sameFileManager.fileCount).toBe(2);
134+
expect(sameFileManager.files.size()).toBe(2);
135135
expect(fileManager.file(1)).toStrictEqual(localFile);
136136
expect(
137137
sameFileManager.fileFromFileNameOrUrl(utils.LOCAL_FILE),
138138
).toStrictEqual(localFile);
139139

140140
fileManager.reset();
141141

142-
expect(fileManager.hasFiles()).toBe(false);
143-
expect(fileManager.fileCount()).toBe(0);
144-
expect(fileManager.files().size()).toBe(0);
142+
expect(fileManager.hasFiles).toBe(false);
143+
expect(fileManager.fileCount).toBe(0);
144+
expect(fileManager.files.size()).toBe(0);
145145
expect(fileManager.file(0)).toStrictEqual(null);
146146
expect(fileManager.file(1)).toStrictEqual(null);
147147
expect(fileManager.fileFromFileNameOrUrl(utils.REMOTE_FILE)).toStrictEqual(

tests/bindings/javascript/file.child.test.js

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -61,12 +61,10 @@ describe("File type tests", () => {
6161

6262
file.setContents(omexContentsPtr, omexContents.length);
6363

64-
expect(file.hasChildFiles()).toBe(true);
65-
expect(file.childFileCount()).toBe(specificChildFileNames.length + 1);
66-
expect(file.childFileNames().size()).toBe(
67-
specificChildFileNames.length + 1,
68-
);
69-
expect(file.childFiles().size()).toBe(specificChildFileNames.length + 1);
64+
expect(file.hasChildFiles).toBe(true);
65+
expect(file.childFileCount).toBe(specificChildFileNames.length + 1);
66+
expect(file.childFileNames.size()).toBe(specificChildFileNames.length + 1);
67+
expect(file.childFiles.size()).toBe(specificChildFileNames.length + 1);
7068

7169
let index = -1;
7270
const simulationFile = file.childFileFromFileName("simulation.json");
@@ -92,10 +90,10 @@ describe("File type tests", () => {
9290
test("No child files", () => {
9391
const file = new libopencor.File(utils.resourcePath(utils.UNKNOWN_FILE));
9492

95-
expect(file.hasChildFiles()).toBe(false);
96-
expect(file.childFileCount()).toBe(0);
97-
expect(file.childFileNames().size()).toBe(0);
98-
expect(file.childFiles().size()).toBe(0);
93+
expect(file.hasChildFiles).toBe(false);
94+
expect(file.childFileCount).toBe(0);
95+
expect(file.childFileNames.size()).toBe(0);
96+
expect(file.childFiles.size()).toBe(0);
9997
expect(file.childFile(0)).toBeNull();
10098
expect(file.childFileFromFileName(utils.UNKNOWN_FILE)).toBeNull();
10199

0 commit comments

Comments
 (0)