static/README.wasm.md | 3 - static/source/unoembindhelpers/PrimaryBindings.cxx | 8 +-- unotest/source/embindtest/embindtest.js | 53 +++++++++++---------- 3 files changed, 34 insertions(+), 30 deletions(-)
New commits: commit 20f1f529a29fdbc6a531a8c82f4aeff8ff3908bd Author: Stephan Bergmann <stephan.bergm...@allotropia.de> AuthorDate: Fri Mar 8 18:01:21 2024 +0100 Commit: Stephan Bergmann <stephan.bergm...@allotropia.de> CommitDate: Fri Mar 8 22:45:26 2024 +0100 Embind construction of UNO Any Type Change-Id: Iac5ac8de7bfb19b90d54edc6f4b791d8c0e98977 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164594 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergm...@allotropia.de> diff --git a/static/source/unoembindhelpers/PrimaryBindings.cxx b/static/source/unoembindhelpers/PrimaryBindings.cxx index a250e31aa144..8fb5ad39a6da 100644 --- a/static/source/unoembindhelpers/PrimaryBindings.cxx +++ b/static/source/unoembindhelpers/PrimaryBindings.cxx @@ -279,7 +279,7 @@ EMSCRIPTEN_BINDINGS(PrimaryBindings) case TypeClass_STRING: return Any{ OUString(rObject.as<std::u16string>()) }; case TypeClass_TYPE: - return {}; //TODO + return css::uno::Any(rObject.as<css::uno::Type>()); case TypeClass_SEQUENCE: return {}; //TODO case TypeClass_ENUM: diff --git a/unotest/source/embindtest/embindtest.js b/unotest/source/embindtest/embindtest.js index c5cb7db12169..8568fa2acaa2 100644 --- a/unotest/source/embindtest/embindtest.js +++ b/unotest/source/embindtest/embindtest.js @@ -242,9 +242,9 @@ Module.addOnPostRun(function() { console.assert(v.get().toString() === 'long'); console.assert(test.isAnyType(v)); v.delete(); - //TODO: let a = new Module.uno_Any(Module.uno_Type.Type(), Module.uno_Type.Long()); - //TODO: console.assert(test.isAnyType(a)); - //TODO: a.delete(); + let a = new Module.uno_Any(Module.uno_Type.Type(), Module.uno_Type.Long()); + console.assert(test.isAnyType(a)); + a.delete(); } { let v = test.getAnySequence(); commit 80bb8c666f09264b0df7181d03ebad3b883de797 Author: Stephan Bergmann <stephan.bergm...@allotropia.de> AuthorDate: Fri Mar 8 17:50:57 2024 +0100 Commit: Stephan Bergmann <stephan.bergm...@allotropia.de> CommitDate: Fri Mar 8 22:45:11 2024 +0100 Redesign Embind UNO Any construction ...taking a full UNO Type instead of just a UNO Type class (so that it will be able to construct Any containing sequence, enum, struct, exception, and interface, in later steps); moving the Type argument first (as that looks more natural), and renaming from Any to uno_Any (in line with the other uno_Type, uno_Sequence_..., etc.) Change-Id: I154681c4b9187f5f5d037d503652fe7bcd41adcd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164593 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergm...@allotropia.de> diff --git a/static/README.wasm.md b/static/README.wasm.md index ef8a02f8261a..1abfd39de6c8 100644 --- a/static/README.wasm.md +++ b/static/README.wasm.md @@ -248,7 +248,8 @@ while (xParaEnumeration.hasMoreElements()) { xParagraph = new css.text.XTextRange(xParaEnumeration.nextElement(), Module.uno_Reference.FromAny); if (xParagraph.$is()) { xParaProps = new css.beans.XPropertySet(xParagraph.$query()); - let color = new Module.Any(Math.floor(Math.random() * 0xFFFFFF), css.uno.TypeClass.LONG); + let color = new Module.uno_Any( + Module.uno_Type.Long(), Math.floor(Math.random() * 0xFFFFFF)); xParaProps.setPropertyValue("CharColor", color); color.delete(); } diff --git a/static/source/unoembindhelpers/PrimaryBindings.cxx b/static/source/unoembindhelpers/PrimaryBindings.cxx index bfbf7d90b12d..a250e31aa144 100644 --- a/static/source/unoembindhelpers/PrimaryBindings.cxx +++ b/static/source/unoembindhelpers/PrimaryBindings.cxx @@ -248,9 +248,9 @@ EMSCRIPTEN_BINDINGS(PrimaryBindings) }); // Any - class_<Any>("Any") - .constructor(+[](const val& rObject, const TypeClass& rUnoType) -> Any { - switch (rUnoType) + class_<Any>("uno_Any") + .constructor(+[](const css::uno::Type& rUnoType, const val& rObject) -> Any { + switch (rUnoType.getTypeClass()) { case TypeClass_VOID: return {}; diff --git a/unotest/source/embindtest/embindtest.js b/unotest/source/embindtest/embindtest.js index a825946fee34..c5cb7db12169 100644 --- a/unotest/source/embindtest/embindtest.js +++ b/unotest/source/embindtest/embindtest.js @@ -112,7 +112,7 @@ Module.addOnPostRun(function() { console.assert(v.get() === undefined); console.assert(test.isAnyVoid(v)); v.delete(); - let a = new Module.Any(undefined, css.uno.TypeClass.VOID); + let a = new Module.uno_Any(Module.uno_Type.Void(), undefined); console.assert(test.isAnyVoid(a)); a.delete(); } @@ -122,7 +122,7 @@ Module.addOnPostRun(function() { console.assert(v.get() === true); console.assert(test.isAnyBoolean(v)); v.delete(); - let a = new Module.Any(true, css.uno.TypeClass.BOOLEAN); + let a = new Module.uno_Any(Module.uno_Type.Boolean(), true); console.assert(test.isAnyBoolean(a)); a.delete(); } @@ -132,7 +132,7 @@ Module.addOnPostRun(function() { console.assert(v.get() === -12); console.assert(test.isAnyByte(v)); v.delete(); - let a = new Module.Any(-12, css.uno.TypeClass.BYTE); + let a = new Module.uno_Any(Module.uno_Type.Byte(), -12); console.assert(test.isAnyByte(a)); a.delete(); } @@ -142,7 +142,7 @@ Module.addOnPostRun(function() { console.assert(v.get() === -1234); console.assert(test.isAnyShort(v)); v.delete(); - let a = new Module.Any(-1234, css.uno.TypeClass.SHORT); + let a = new Module.uno_Any(Module.uno_Type.Short(), -1234); console.assert(test.isAnyShort(a)); a.delete(); } @@ -152,7 +152,7 @@ Module.addOnPostRun(function() { console.assert(v.get() === 54321); console.assert(test.isAnyUnsignedShort(v)); v.delete(); - let a = new Module.Any(54321, css.uno.TypeClass.UNSIGNED_SHORT); + let a = new Module.uno_Any(Module.uno_Type.UnsignedShort(), 54321); console.assert(test.isAnyUnsignedShort(a)); a.delete(); } @@ -162,7 +162,7 @@ Module.addOnPostRun(function() { console.assert(v.get() === -123456); console.assert(test.isAnyLong(v)); v.delete(); - let a = new Module.Any(-123456, css.uno.TypeClass.LONG); + let a = new Module.uno_Any(Module.uno_Type.Long(), -123456); console.assert(test.isAnyLong(a)); a.delete(); } @@ -172,7 +172,7 @@ Module.addOnPostRun(function() { console.assert(v.get() === 3456789012); console.assert(test.isAnyUnsignedLong(v)); v.delete(); - let a = new Module.Any(3456789012, css.uno.TypeClass.UNSIGNED_LONG); + let a = new Module.uno_Any(Module.uno_Type.UnsignedLong(), 3456789012); console.assert(test.isAnyUnsignedLong(a)); a.delete(); } @@ -182,7 +182,7 @@ Module.addOnPostRun(function() { console.assert(v.get() === -123456789n); console.assert(test.isAnyHyper(v)); v.delete(); - let a = new Module.Any(-123456789n, css.uno.TypeClass.HYPER); + let a = new Module.uno_Any(Module.uno_Type.Hyper(), -123456789n); console.assert(test.isAnyHyper(a)); a.delete(); } @@ -192,7 +192,7 @@ Module.addOnPostRun(function() { console.assert(v.get() === 9876543210n); console.assert(test.isAnyUnsignedHyper(v)); v.delete(); - let a = new Module.Any(9876543210n, css.uno.TypeClass.UNSIGNED_HYPER); + let a = new Module.uno_Any(Module.uno_Type.UnsignedHyper(), 9876543210n); console.assert(test.isAnyUnsignedHyper(a)); a.delete(); } @@ -202,7 +202,7 @@ Module.addOnPostRun(function() { console.assert(v.get() === -10.25); console.assert(test.isAnyFloat(v)); v.delete(); - let a = new Module.Any(-10.25, css.uno.TypeClass.FLOAT); + let a = new Module.uno_Any(Module.uno_Type.Float(), -10.25); console.assert(test.isAnyFloat(a)); a.delete(); } @@ -212,7 +212,7 @@ Module.addOnPostRun(function() { console.assert(v.get() === 100.5); console.assert(test.isAnyDouble(v)); v.delete(); - let a = new Module.Any(100.5, css.uno.TypeClass.DOUBLE); + let a = new Module.uno_Any(Module.uno_Type.Double(), 100.5); console.assert(test.isAnyDouble(a)); a.delete(); } @@ -222,7 +222,7 @@ Module.addOnPostRun(function() { console.assert(v.get() === 'Ö'); console.assert(test.isAnyChar(v)); v.delete(); - let a = new Module.Any('Ö', css.uno.TypeClass.CHAR); + let a = new Module.uno_Any(Module.uno_Type.Char(), 'Ö'); console.assert(test.isAnyChar(a)); a.delete(); } @@ -232,7 +232,7 @@ Module.addOnPostRun(function() { console.assert(v.get() === 'hä'); console.assert(test.isAnyString(v)); v.delete(); - let a = new Module.Any('hä', css.uno.TypeClass.STRING); + let a = new Module.uno_Any(Module.uno_Type.String(), 'hä'); console.assert(test.isAnyString(a)); a.delete(); } @@ -242,7 +242,7 @@ Module.addOnPostRun(function() { console.assert(v.get().toString() === 'long'); console.assert(test.isAnyType(v)); v.delete(); - //TODO: let a = new Module.Any(Module.uno_Type.Long(), css.uno.TypeClass.TYPE); + //TODO: let a = new Module.uno_Any(Module.uno_Type.Type(), Module.uno_Type.Long()); //TODO: console.assert(test.isAnyType(a)); //TODO: a.delete(); } @@ -258,7 +258,7 @@ Module.addOnPostRun(function() { console.assert(test.isAnySequence(v)); v.delete(); let s = new Module.uno_Sequence_string(["foo", "barr", "bazzz"]); - //TODO: let a = new Module.Any(s, css.uno.TypeClass.SEQUENCE); + //TODO: let a = new Module.uno_Any(Module.uno_Type.Sequence(Module.uno_Type.String()), s); //TODO: console.assert(test.isAnySequence(a)); //TODO: a.delete(); s.delete(); @@ -269,8 +269,9 @@ Module.addOnPostRun(function() { console.assert(v.get() === uno.org.libreoffice.embindtest.Enum.E_2); console.assert(test.isAnyEnum(v)); v.delete(); - //TODO: let a = new Module.Any( - //TODO: uno.org.libreoffice.embindtest.Enum.E_2, css.uno.TypeClass.ENUM); + //TODO: let a = new Module.uno_Any( + //TODO: Module.uno_Type.Enum('org.libreoffice.embindtest.Enum'), + //TODO: uno.org.libreoffice.embindtest.Enum.E_2); //TODO: console.assert(test.isAnyEnum(a)); //TODO: a.delete(); } @@ -282,8 +283,9 @@ Module.addOnPostRun(function() { console.assert(v.get().m3 === 'hä'); console.assert(test.isAnyStruct(v)); v.delete(); - //TODO: let a = new Module.Any( - //TODO: {m1: -123456, m2: 100.5, m3: 'hä'}, css.uno.TypeClass.STRUCT); + //TODO: let a = new Module.uno_Any( + //TODO: Module.uno_Type.Struct('org.libreoffice.embindtest.Struct'), + //TODO: {m1: -123456, m2: 100.5, m3: 'hä'}); //TODO: console.assert(test.isAnyStruct(a)); //TODO: a.delete(); } @@ -297,9 +299,9 @@ Module.addOnPostRun(function() { console.assert(v.get().m3 === 'hä'); console.assert(test.isAnyException(v)); v.delete(); - //TODO: let a = new Module.Any( - //TODO: {Message: 'error', Context: null, m1: -123456, m2: 100.5, m3: 'hä'}, - //TODO: css.uno.TypeClass.EXCEPTION); + //TODO: let a = new Module.uno_Any( + //TODO: Module.uno_Type.Exception('org.libreoffice.embindtest.Exception'), + //TODO: {Message: 'error', Context: null, m1: -123456, m2: 100.5, m3: 'hä'}); //TODO: console.assert(test.isAnyException(a)); //TODO: a.delete(); } @@ -309,7 +311,8 @@ Module.addOnPostRun(function() { console.assert(v.get().$equals(test.$query())); console.assert(test.isAnyInterface(v)); v.delete(); - //TODO: let a = new Module.Any(test, css.uno.TypeClass.INTERFACE); + //TODO: let a = new Module.uno_Any( + //TODO: Module.uno_Type.Inteface('org.libreoffice.embindtest.Test'), test); //TODO: console.assert(test.isAnyInterface(a)); //TODO: a.delete(); }