Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • caosdb/src/caosdb-octavelib
1 result
Show changes
Commits on Source (2)
...@@ -41,11 +41,12 @@ style: style_octave style_cpp ...@@ -41,11 +41,12 @@ style: style_octave style_cpp
.PHONY: style .PHONY: style
style_octave: style_octave:
mh_style --octave src doc test || ( echo 'You may want to run `make style_fix`.'; exit 1 ) @mh_style --octave src doc test || ( echo 'You may want to run `make style_fix`.'; exit 1 )
.PHONY: style_octave .PHONY: style_octave
CLANG_FORMAT ?= clang-format-11
style_cpp: style_cpp:
clang-format-11 --dry-run --verbose --Werror \ @$(CLANG_FORMAT) --dry-run --verbose --Werror \
$(shell find test/ src/ -type f \ $(shell find test/ src/ -type f \
-iname "*.cpp" -o -iname "*.hpp" -o -iname "*.h" -o -iname "*.h.in") \ -iname "*.cpp" -o -iname "*.hpp" -o -iname "*.h" -o -iname "*.h.in") \
|| ( echo 'You may want to run `make style_fix`.' ; exit 1 ) || ( echo 'You may want to run `make style_fix`.' ; exit 1 )
...@@ -54,7 +55,7 @@ style_cpp: ...@@ -54,7 +55,7 @@ style_cpp:
style_fix: style_fix:
echo "style_fix" echo "style_fix"
mh_style --fix --octave src doc test mh_style --fix --octave src doc test
clang-format-11 -i --verbose --Werror \ $(CLANG_FORMAT) -i --verbose --Werror \
$(shell find test/ src/ -type f \ $(shell find test/ src/ -type f \
-iname "*.cpp" -o -iname "*.hpp" -o -iname "*.h" -o -iname "*.h.in") -iname "*.cpp" -o -iname "*.hpp" -o -iname "*.h" -o -iname "*.h.in")
.PHONY: style_fix .PHONY: style_fix
......
[requires] [requires]
caosdb/[>=0.0.16] caosdb/[>=0.0.17]
[generators] [generators]
cmake cmake
...@@ -232,7 +232,7 @@ classdef Entity < handle ...@@ -232,7 +232,7 @@ classdef Entity < handle
end end
% Create the errors, warnings, infos % Create the errors, warnings, infos
function result = create_messages(~, data, level) function result = create_messages(data, level)
result = cell(); result = cell();
if isfield(data, level) if isfield(data, level)
for message = getfield(data, level) for message = getfield(data, level)
......
...@@ -253,24 +253,27 @@ auto mxFromCaosDBMessages(const ce::Messages &messages) -> mxArray * { ...@@ -253,24 +253,27 @@ auto mxFromCaosDBMessages(const ce::Messages &messages) -> mxArray * {
auto mxFromDataType(const ce::DataType &data_type) -> mxArray * { auto mxFromDataType(const ce::DataType &data_type) -> mxArray * {
namespace ce = ce; namespace ce = ce;
auto is_list = mxScalarLOGICAL(data_type.IsList());
mxArray *dtype_name; mxArray *dtype_name;
mxArray *is_reference; auto is_list = mxScalarLOGICAL(data_type.IsList());
auto is_reference = mxScalarLOGICAL(data_type.IsReference());
if (data_type.IsList()) { if (data_type.IsList()) {
const auto &list_datatype = data_type.AsList(); const auto &list_datatype = data_type.GetAsList();
is_reference = mxScalarLOGICAL(list_datatype.IsListOfReference()); is_reference = mxScalarLOGICAL(list_datatype.IsListOfReference());
if (list_datatype.IsListOfReference()) { if (list_datatype.IsListOfReference()) {
dtype_name = mxCreateString(list_datatype.GetReferenceDataType().GetName().c_str()); dtype_name = mxCreateString(list_datatype.GetReferenceDataType().GetName().c_str());
} else { } else if (list_datatype.IsListOfAtomic()) {
dtype_name = mxEnumToString<ce::AtomicDataType>(list_datatype.GetAtomicDataType()); dtype_name = mxEnumToString<ce::AtomicDataType>(list_datatype.GetAtomicDataType());
}
} else {
is_reference = mxScalarLOGICAL(data_type.IsReference());
if (data_type.IsReference()) {
dtype_name = mxCreateString(data_type.AsReference().GetName().c_str());
} else { } else {
dtype_name = mxEnumToString<ce::AtomicDataType>(data_type.AsAtomic()); throw std::logic_error(string("Unexpected data type: " + data_type.ToString()));
} }
} else if (data_type.IsReference()) {
dtype_name = mxCreateString(data_type.GetAsReference().GetName().c_str());
} else if (data_type.IsAtomic()) {
dtype_name = mxEnumToString<ce::AtomicDataType>(data_type.GetAsAtomic());
} else if (data_type.ToString() == "{}") {
return mxEmptySparse(); // Workaround to denote a Null value: sparse array
} else {
throw std::logic_error(string("Unexpected data type: " + data_type.ToString()));
} }
// clang-format off // clang-format off
...@@ -295,18 +298,18 @@ auto mxFromValue(const ce::Value &value) -> mxArray * { ...@@ -295,18 +298,18 @@ auto mxFromValue(const ce::Value &value) -> mxArray * {
if (value.IsNull()) { if (value.IsNull()) {
return mxEmptySparse(); // Workaround to denote a Null value: sparse array return mxEmptySparse(); // Workaround to denote a Null value: sparse array
} else if (value.IsString()) { // Scalars are converted to normal arrays. } else if (value.IsString()) { // Scalars are converted to normal arrays.
return mxCreateString(value.AsString().c_str()); return mxCreateString(value.GetAsString().c_str());
} else if (value.IsDouble()) { } else if (value.IsDouble()) {
return mxScalarDOUBLE(value.AsDouble()); return mxScalarDOUBLE(value.GetAsDouble());
} else if (value.IsBool()) { } else if (value.IsBool()) {
return mxScalarLOGICAL(value.AsBool()); return mxScalarLOGICAL(value.GetAsBool());
} else if (value.IsInteger()) { } else if (value.IsInt64()) {
return mxScalarINT64(value.AsInteger()); return mxScalarINT64(value.GetAsInt64());
} else if (!value.IsList()) { } else if (!value.IsVector()) {
throw std::logic_error(string("Unexpected value type: " + value.ToString())); throw std::logic_error(string("Unexpected value type: " + value.ToString()));
} }
// It's a list now -> convert to cell array always. // It's a list now -> convert to cell array always.
auto list = value.AsList(); auto list = value.GetAsVector();
auto *result = mxCreateCellArray(0, (mwSize *)nullptr); auto *result = mxCreateCellArray(0, (mwSize *)nullptr);
if (list.empty()) { // Empty list: empty cell array if (list.empty()) { // Empty list: empty cell array
return result; return result;
...@@ -316,25 +319,25 @@ auto mxFromValue(const ce::Value &value) -> mxArray * { ...@@ -316,25 +319,25 @@ auto mxFromValue(const ce::Value &value) -> mxArray * {
if (list_value.IsString()) { // String if (list_value.IsString()) { // String
result = mxCreateCellArray(2, dims.data()); result = mxCreateCellArray(2, dims.data());
for (size_t i = 0; i < list.size(); ++i) { for (size_t i = 0; i < list.size(); ++i) {
mxSetCell(result, i, mxCreateString(list[i].AsString().c_str())); mxSetCell(result, i, mxCreateString(list[i].GetAsString().c_str()));
} }
} else if (list_value.IsBool()) { // Bool } else if (list_value.IsBool()) { // Bool
result = mxCreateLogicalArray(2, dims.data()); result = mxCreateLogicalArray(2, dims.data());
auto *data = static_cast<mxLogical *>(mxGetData(result)); auto *data = static_cast<mxLogical *>(mxGetData(result));
for (size_t i = 0; i < list.size(); ++i) { for (size_t i = 0; i < list.size(); ++i) {
data[i] = list[i].AsBool(); data[i] = list[i].GetAsBool();
} }
} else if (list_value.IsInteger()) { // Int } else if (list_value.IsInt64()) { // Int
result = mxCreateNumericArray(2, dims.data(), mxINT64_CLASS, mxREAL); result = mxCreateNumericArray(2, dims.data(), mxINT64_CLASS, mxREAL);
auto *data = static_cast<INT64_T *>(mxGetData(result)); auto *data = static_cast<INT64_T *>(mxGetData(result));
for (size_t i = 0; i < list.size(); ++i) { for (size_t i = 0; i < list.size(); ++i) {
data[i] = list[i].AsInteger(); data[i] = list[i].GetAsInt64();
} }
} else if (list_value.IsDouble()) { // Double } else if (list_value.IsDouble()) { // Double
result = mxCreateNumericArray(2, dims.data(), mxDOUBLE_CLASS, mxREAL); result = mxCreateNumericArray(2, dims.data(), mxDOUBLE_CLASS, mxREAL);
auto *data = static_cast<double *>(mxGetData(result)); auto *data = static_cast<double *>(mxGetData(result));
for (size_t i = 0; i < list.size(); ++i) { for (size_t i = 0; i < list.size(); ++i) {
data[i] = list[i].AsInteger(); data[i] = list[i].GetAsDouble();
} }
} else { } else {
throw std::logic_error("Unexpected list value type"); throw std::logic_error("Unexpected list value type");
......