summaryrefslogtreecommitdiff
path: root/matlab/src/Util.cpp
diff options
context:
space:
mode:
authorAustin Henriksen <austin@zeroc.com>2018-11-20 15:37:04 -0500
committerAustin Henriksen <austin@zeroc.com>2018-11-20 17:20:19 -0500
commitcc983b65fa72e035ad833336c4edb79acba0a5bd (patch)
tree6a4c38e62c5a8365dd65b8ab54168477738feb04 /matlab/src/Util.cpp
parentAdd version to doxygen config #61 (diff)
downloadice-cc983b65fa72e035ad833336c4edb79acba0a5bd.tar.bz2
ice-cc983b65fa72e035ad833336c4edb79acba0a5bd.tar.xz
ice-cc983b65fa72e035ad833336c4edb79acba0a5bd.zip
Added missing exceptions to convertException in MATLAB.
Fixed #248
Diffstat (limited to 'matlab/src/Util.cpp')
-rw-r--r--matlab/src/Util.cpp33
1 files changed, 25 insertions, 8 deletions
diff --git a/matlab/src/Util.cpp b/matlab/src/Util.cpp
index 30605a90eb1..7c65a88c903 100644
--- a/matlab/src/Util.cpp
+++ b/matlab/src/Util.cpp
@@ -429,6 +429,10 @@ IceMatlab::convertException(const std::exception& exc)
{
params[idx++] = createIdentity(e.id);
}
+ catch(const Ice::IllegalServantException& e)
+ {
+ params[idx++] = createStringFromUTF8(e.reason);
+ }
catch(const Ice::RequestFailedException& e)
{
params[idx++] = createIdentity(e.id);
@@ -449,6 +453,11 @@ IceMatlab::convertException(const std::exception& exc)
params[idx++] = mxCreateDoubleScalar(e.error);
params[idx++] = createStringFromUTF8(e.host);
}
+ catch(const Ice::BadMagicException& e)
+ {
+ params[idx++] = createStringFromUTF8(e.reason);
+ params[idx++] = createByteList(e.badMagic);
+ }
catch(const Ice::UnsupportedProtocolException& e)
{
params[idx++] = createStringFromUTF8(e.reason);
@@ -461,10 +470,6 @@ IceMatlab::convertException(const std::exception& exc)
params[idx++] = createEncodingVersion(e.bad);
params[idx++] = createEncodingVersion(e.supported);
}
- catch(const Ice::ConnectionManuallyClosedException& e)
- {
- params[idx++] = mxCreateLogicalScalar(e.graceful ? 1 : 0);
- }
catch(const Ice::NoValueFactoryException& e)
{
params[idx++] = createStringFromUTF8(e.reason);
@@ -480,6 +485,10 @@ IceMatlab::convertException(const std::exception& exc)
{
params[idx++] = createStringFromUTF8(e.reason);
}
+ catch(const Ice::ConnectionManuallyClosedException& e)
+ {
+ params[idx++] = mxCreateLogicalScalar(e.graceful ? 1 : 0);
+ }
catch(const Ice::FeatureNotSupportedException& e)
{
params[idx++] = createStringFromUTF8(e.unsupportedFeature);
@@ -488,10 +497,6 @@ IceMatlab::convertException(const std::exception& exc)
{
params[idx++] = createStringFromUTF8(e.reason);
}
- catch(const Ice::IllegalServantException& e)
- {
- params[idx++] = createStringFromUTF8(e.reason);
- }
catch(const Ice::LocalException&)
{
//
@@ -599,6 +604,18 @@ IceMatlab::createByteArray(const Ice::Byte* begin, const Ice::Byte* end)
}
mxArray*
+IceMatlab::createByteList(const vector<Ice::Byte>& v)
+{
+ auto r = mxCreateCellMatrix(1, static_cast<int>(v.size()));
+ mwIndex i = 0;
+ for(auto 0 = v.begin(); p != v.end(); ++p, ++i)
+ {
+ mxSetCell(r, i, createByte(*p));
+ }
+ return r;
+}
+
+mxArray*
IceMatlab::createCertificateList(const vector<IceSSL::CertificatePtr>& v)
{
auto r = mxCreateCellMatrix(1, static_cast<int>(v.size()));