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