diff options
Diffstat (limited to 'matlab/src')
-rw-r--r-- | matlab/src/IceMatlab/Communicator.cpp | 81 | ||||
-rw-r--r-- | matlab/src/IceMatlab/Init.cpp | 37 | ||||
-rw-r--r-- | matlab/src/IceMatlab/InputStream.cpp | 224 | ||||
-rw-r--r-- | matlab/src/IceMatlab/InputStream.h | 6 | ||||
-rw-r--r-- | matlab/src/IceMatlab/ObjectPrx.cpp | 20 | ||||
-rw-r--r-- | matlab/src/IceMatlab/OutputStream.cpp | 468 | ||||
-rw-r--r-- | matlab/src/IceMatlab/Util.cpp | 3 | ||||
-rw-r--r-- | matlab/src/IceMatlab/icematlab.h | 91 |
8 files changed, 176 insertions, 754 deletions
diff --git a/matlab/src/IceMatlab/Communicator.cpp b/matlab/src/IceMatlab/Communicator.cpp index 0d4208bf9f9..a9a0b02c98f 100644 --- a/matlab/src/IceMatlab/Communicator.cpp +++ b/matlab/src/IceMatlab/Communicator.cpp @@ -13,6 +13,7 @@ #include <Ice/Proxy.h> #include <Ice/OutputStream.h> #include "icematlab.h" +#include "ObjectPrx.h" #include "Util.h" #define SELF (*(reinterpret_cast<shared_ptr<Ice::Communicator>*>(self))) @@ -31,12 +32,57 @@ Ice_Communicator__release(void* self) } EXPORTED_FUNCTION mxArray* +Ice_Communicator_identityToString(void* self, mxArray* id) +{ + try + { + Ice::Identity ident; + getIdentity(id, ident); + return createResultValue(createStringFromUTF8(SELF->identityToString(ident))); + } + catch(const std::exception& ex) + { + return createResultException(convertException(ex)); + } + return 0; +} + +EXPORTED_FUNCTION mxArray* Ice_Communicator_stringToProxy(void* self, const char* s, void** proxy) { try { shared_ptr<Ice::ObjectPrx> p = SELF->stringToProxy(s); - *proxy = new shared_ptr<Ice::ObjectPrx>(p); + if(p) + { + *proxy = new shared_ptr<Ice::ObjectPrx>(p); + } + else + { + *proxy = 0; + } + } + catch(const std::exception& ex) + { + return convertException(ex); + } + return 0; +} + +EXPORTED_FUNCTION mxArray* +Ice_Communicator_propertyToProxy(void* self, const char* prop, void** proxy) +{ + try + { + shared_ptr<Ice::ObjectPrx> p = SELF->propertyToProxy(prop); + if(p) + { + *proxy = new shared_ptr<Ice::ObjectPrx>(p); + } + else + { + *proxy = 0; + } } catch(const std::exception& ex) { @@ -46,6 +92,39 @@ Ice_Communicator_stringToProxy(void* self, const char* s, void** proxy) } EXPORTED_FUNCTION mxArray* +Ice_Communicator_proxyToProperty(void* self, void* proxy, const char* prop) +{ + assert(proxy); + try + { + shared_ptr<Ice::ObjectPrx> p = getProxy(proxy); + Ice::PropertyDict d = SELF->proxyToProperty(p, prop); + return createResultValue(createStringMap(d)); + } + catch(const std::exception& ex) + { + return createResultException(convertException(ex)); + } + return 0; +} + +EXPORTED_FUNCTION mxArray* +Ice_Communicator_proxyToString(void* self, void* proxy) +{ + assert(proxy); + try + { + shared_ptr<Ice::ObjectPrx> p = getProxy(proxy); + return createResultValue(createStringFromUTF8(SELF->proxyToString(p))); + } + catch(const std::exception& ex) + { + return createResultException(convertException(ex)); + } + return 0; +} + +EXPORTED_FUNCTION mxArray* Ice_Communicator_getProperties(void* self, void** props) { try diff --git a/matlab/src/IceMatlab/Init.cpp b/matlab/src/IceMatlab/Init.cpp index 772647763f1..f67860dbaa7 100644 --- a/matlab/src/IceMatlab/Init.cpp +++ b/matlab/src/IceMatlab/Init.cpp @@ -139,7 +139,6 @@ Ice_initialize(mxArray* args, void* propsImpl, void** r) id.properties = *(reinterpret_cast<shared_ptr<Ice::Properties>*>(propsImpl)); } - //id.valueFactoryManager = make_shared<ValueFactoryManager>(); //id.logger = make_shared<Logger>(""); // TODO shared_ptr<Ice::Communicator> c = Ice::initialize(a, id); @@ -169,13 +168,14 @@ Ice_stringToIdentity(mxArray* s) } EXPORTED_FUNCTION mxArray* -Ice_identityToString(mxArray* id) +Ice_identityToString(mxArray* id, int mode) { try { + Ice::ToStringMode m = static_cast<Ice::ToStringMode>(mode); Ice::Identity ident; getIdentity(id, ident); - return createResultValue(createStringFromUTF8(Ice::identityToString(ident))); + return createResultValue(createStringFromUTF8(Ice::identityToString(ident, m))); } catch(const std::exception& ex) { @@ -184,6 +184,37 @@ Ice_identityToString(mxArray* id) return 0; } +EXPORTED_FUNCTION mxArray* +Ice_stringVersion() +{ + return createResultValue(createStringFromUTF8(ICE_STRING_VERSION)); +} + +EXPORTED_FUNCTION mxArray* +Ice_intVersion(int* v) +{ + *v = ICE_INT_VERSION; + return 0; +} + +EXPORTED_FUNCTION mxArray* +Ice_currentEncoding() +{ + return createResultValue(createEncodingVersion(Ice::currentEncoding)); +} + +EXPORTED_FUNCTION mxArray* +Ice_currentProtocol() +{ + return createResultValue(createProtocolVersion(Ice::currentProtocol)); +} + +EXPORTED_FUNCTION mxArray* +Ice_currentProtocolEncoding() +{ + return createResultValue(createEncodingVersion(Ice::currentProtocolEncoding)); +} + // // This function exists so that mex may be used to compile the library. It is not otherwise needed. // diff --git a/matlab/src/IceMatlab/InputStream.cpp b/matlab/src/IceMatlab/InputStream.cpp index 83c7173bcc5..afbc2d147a4 100644 --- a/matlab/src/IceMatlab/InputStream.cpp +++ b/matlab/src/IceMatlab/InputStream.cpp @@ -15,7 +15,7 @@ #include "InputStream.h" #include "Util.h" -#define SELF (reinterpret_cast<IceMatlab::InputStreamData*>(self)) +#define SELF (reinterpret_cast<InputStreamData*>(self)) using namespace std; using namespace IceMatlab; @@ -23,6 +23,12 @@ using namespace IceMatlab; namespace { +struct InputStreamData +{ + std::vector<Ice::Byte> data; + Ice::InputStream* in; +}; + template<typename T> mxArray* readSeq(Ice::InputStream* in, mxClassID cls) @@ -46,51 +52,6 @@ readSeq(Ice::InputStream* in, mxClassID cls) return 0; } -template<typename T> -mxArray* -readOpt(Ice::InputStream* in, int tag, mxClassID cls) -{ - try - { - Ice::optional<T> opt; - in->read(tag, opt); - if(opt.has_value()) - { - mxArray* r = mxCreateUninitNumericMatrix(1, 1, cls, mxREAL); - *(reinterpret_cast<T*>(mxGetData(r))) = opt.value(); - return createResultValue(r); - } - } - catch(const std::exception& ex) - { - return createResultException(convertException(ex)); - } - return 0; -} - -template<typename T> -mxArray* -readSeqOpt(Ice::InputStream* in, int tag, mxClassID cls) -{ - try - { - Ice::optional<pair<const T*, const T*>> opt; - in->read(tag, opt); - const size_t sz = opt.value().second - opt.value().first; - if(opt.has_value() && sz > 0) - { - mxArray* r = mxCreateUninitNumericMatrix(1, sz / sizeof(T), cls, mxREAL); - memcpy(reinterpret_cast<T*>(mxGetData(r)), opt.value().first, sz); - return createResultValue(r); - } - } - catch(const std::exception& ex) - { - return createResultException(convertException(ex)); - } - return 0; -} - } void* @@ -153,47 +114,6 @@ Ice_InputStream_readBoolSeq(void* self) } EXPORTED_FUNCTION mxArray* -Ice_InputStream_readBoolOpt(void* self, int tag) -{ - try - { - Ice::optional<bool> opt; - SELF->in->read(tag, opt); - if(opt.has_value()) - { - return createResultValue(mxCreateLogicalScalar(opt.value())); - } - } - catch(const std::exception& ex) - { - return createResultException(convertException(ex)); - } - return 0; -} - -EXPORTED_FUNCTION mxArray* -Ice_InputStream_readBoolSeqOpt(void* self, int tag) -{ - try - { - Ice::optional<pair<const bool*, const bool*>> opt; - SELF->in->read(tag, opt); - const size_t sz = opt.value().second - opt.value().first; - if(opt.has_value() && sz > 0) - { - mxArray* r = mxCreateLogicalMatrix(1, sz); - memcpy(mxGetLogicals(r), opt.value().first, sz); - return createResultValue(r); - } - } - catch(const std::exception& ex) - { - return createResultException(convertException(ex)); - } - return 0; -} - -EXPORTED_FUNCTION mxArray* Ice_InputStream_readByte(void* self, unsigned char* v) { try @@ -216,18 +136,6 @@ Ice_InputStream_readByteSeq(void* self) } EXPORTED_FUNCTION mxArray* -Ice_InputStream_readByteOpt(void* self, int tag) -{ - return readOpt<Ice::Byte>(SELF->in, tag, mxUINT8_CLASS); -} - -EXPORTED_FUNCTION mxArray* -Ice_InputStream_readByteSeqOpt(void* self, int tag) -{ - return readSeqOpt<Ice::Byte>(SELF->in, tag, mxUINT8_CLASS); -} - -EXPORTED_FUNCTION mxArray* Ice_InputStream_readShort(void* self, short* v) { try @@ -248,18 +156,6 @@ Ice_InputStream_readShortSeq(void* self) } EXPORTED_FUNCTION mxArray* -Ice_InputStream_readShortOpt(void* self, int tag) -{ - return readOpt<short>(SELF->in, tag, mxINT16_CLASS); -} - -EXPORTED_FUNCTION mxArray* -Ice_InputStream_readShortSeqOpt(void* self, int tag) -{ - return readSeqOpt<short>(SELF->in, tag, mxINT16_CLASS); -} - -EXPORTED_FUNCTION mxArray* Ice_InputStream_readInt(void* self, int* v) { try @@ -280,18 +176,6 @@ Ice_InputStream_readIntSeq(void* self) } EXPORTED_FUNCTION mxArray* -Ice_InputStream_readIntOpt(void* self, int tag) -{ - return readOpt<int>(SELF->in, tag, mxINT32_CLASS); -} - -EXPORTED_FUNCTION mxArray* -Ice_InputStream_readIntSeqOpt(void* self, int tag) -{ - return readSeqOpt<int>(SELF->in, tag, mxINT32_CLASS); -} - -EXPORTED_FUNCTION mxArray* Ice_InputStream_readLong(void* self, long long* v) { try @@ -312,18 +196,6 @@ Ice_InputStream_readLongSeq(void* self) } EXPORTED_FUNCTION mxArray* -Ice_InputStream_readLongOpt(void* self, int tag) -{ - return readOpt<long long>(SELF->in, tag, mxINT64_CLASS); -} - -EXPORTED_FUNCTION mxArray* -Ice_InputStream_readLongSeqOpt(void* self, int tag) -{ - return readSeqOpt<long long>(SELF->in, tag, mxINT64_CLASS); -} - -EXPORTED_FUNCTION mxArray* Ice_InputStream_readFloat(void* self, float* v) { try @@ -344,18 +216,6 @@ Ice_InputStream_readFloatSeq(void* self) } EXPORTED_FUNCTION mxArray* -Ice_InputStream_readFloatOpt(void* self, int tag) -{ - return readOpt<float>(SELF->in, tag, mxSINGLE_CLASS); -} - -EXPORTED_FUNCTION mxArray* -Ice_InputStream_readFloatSeqOpt(void* self, int tag) -{ - return readSeqOpt<float>(SELF->in, tag, mxSINGLE_CLASS); -} - -EXPORTED_FUNCTION mxArray* Ice_InputStream_readDouble(void* self, double* v) { try @@ -376,18 +236,6 @@ Ice_InputStream_readDoubleSeq(void* self) } EXPORTED_FUNCTION mxArray* -Ice_InputStream_readDoubleOpt(void* self, int tag) -{ - return readOpt<double>(SELF->in, tag, mxDOUBLE_CLASS); -} - -EXPORTED_FUNCTION mxArray* -Ice_InputStream_readDoubleSeqOpt(void* self, int tag) -{ - return readSeqOpt<double>(SELF->in, tag, mxDOUBLE_CLASS); -} - -EXPORTED_FUNCTION mxArray* Ice_InputStream_readString(void* self) { string s; @@ -419,43 +267,6 @@ Ice_InputStream_readStringSeq(void* self) } EXPORTED_FUNCTION mxArray* -Ice_InputStream_readStringOpt(void* self, int tag) -{ - try - { - Ice::optional<string> opt; - SELF->in->read(tag, opt); - if(opt.has_value()) - { - return createResultValue(createStringFromUTF8(opt.value())); - } - } - catch(const std::exception& ex) - { - return createResultException(convertException(ex)); - } - return 0; -} - -EXPORTED_FUNCTION mxArray* -Ice_InputStream_readStringSeqOpt(void* self, int tag) -{ - try - { - if(SELF->in->readOptional(tag, Ice::OptionalFormat::FSize)) - { - SELF->in->skip(4); - return Ice_InputStream_readStringSeq(self); - } - } - catch(const std::exception& ex) - { - return createResultException(convertException(ex)); - } - return 0; -} - -EXPORTED_FUNCTION mxArray* Ice_InputStream_skip(void* self, int n) { try @@ -535,20 +346,11 @@ Ice_InputStream_readProxy(void* self, void** r) } EXPORTED_FUNCTION mxArray* -Ice_InputStream_readProxyOpt(void* self, int tag, void** r) +Ice_InputStream_readEnum(void* self, int maxValue, int* r) { try { - Ice::optional<shared_ptr<Ice::ObjectPrx>> opt; - SELF->in->readAll({tag}, opt); - if(opt.has_value()) - { - *r = new shared_ptr<Ice::ObjectPrx>(opt.value()); - } - else - { - *r = 0; - } + *r = SELF->in->readEnum(maxValue); } catch(const std::exception& ex) { @@ -558,11 +360,11 @@ Ice_InputStream_readProxyOpt(void* self, int tag, void** r) } EXPORTED_FUNCTION mxArray* -Ice_InputStream_readEnum(void* self, int maxValue, int* r) +Ice_InputStream_pos(void* self, unsigned int* pos) { try { - *r = SELF->in->readEnum(maxValue); + *pos = SELF->in->pos(); } catch(const std::exception& ex) { @@ -572,11 +374,11 @@ Ice_InputStream_readEnum(void* self, int maxValue, int* r) } EXPORTED_FUNCTION mxArray* -Ice_InputStream_pos(void* self, unsigned int* pos) +Ice_InputStream_setPos(void* self, unsigned int pos) { try { - *pos = SELF->in->pos(); + SELF->in->pos(pos); } catch(const std::exception& ex) { diff --git a/matlab/src/IceMatlab/InputStream.h b/matlab/src/IceMatlab/InputStream.h index a801d6a5cb4..f86b1121c9a 100644 --- a/matlab/src/IceMatlab/InputStream.h +++ b/matlab/src/IceMatlab/InputStream.h @@ -12,12 +12,6 @@ namespace IceMatlab { -struct InputStreamData -{ - std::vector<Ice::Byte> data; - Ice::InputStream* in; -}; - // // Consumes the vector. // diff --git a/matlab/src/IceMatlab/ObjectPrx.cpp b/matlab/src/IceMatlab/ObjectPrx.cpp index 0bdb8c32087..2c2145ced2f 100644 --- a/matlab/src/IceMatlab/ObjectPrx.cpp +++ b/matlab/src/IceMatlab/ObjectPrx.cpp @@ -13,6 +13,7 @@ #include "icematlab.h" #include "Future.h" #include "InputStream.h" +#include "ObjectPrx.h" #include "Util.h" #define DEREF(x) (*(reinterpret_cast<shared_ptr<Ice::ObjectPrx>*>(x))) @@ -201,6 +202,12 @@ GetConnectionFuture::isFinished() const } +shared_ptr<Ice::ObjectPrx> +IceMatlab::getProxy(void* p) +{ + return DEREF(p); +} + extern "C" { @@ -391,13 +398,6 @@ Ice_ObjectPrx_ice_toString(void* self) } EXPORTED_FUNCTION mxArray* -Ice_ObjectPrx_ice_getCommunicator(void* self, void** r) -{ - *r = new shared_ptr<Ice::Communicator>(SELF->ice_getCommunicator()); - return 0; -} - -EXPORTED_FUNCTION mxArray* Ice_ObjectPrx_ice_getIdentity(void* self) { return createResultValue(createIdentity(SELF->ice_getIdentity())); @@ -601,14 +601,14 @@ Ice_ObjectPrx_ice_connectionCached(void* self, unsigned char v, void** r) } EXPORTED_FUNCTION mxArray* -Ice_ObjectPrx_ice_getEndpointSelection(void* self, Ice_EndpointSelectionType* r) +Ice_ObjectPrx_ice_getEndpointSelection(void* self, int* r) { - *r = SELF->ice_getEndpointSelection() == Ice::EndpointSelectionType::Random ? Random : Ordered; + *r = static_cast<int>(SELF->ice_getEndpointSelection()); return 0; } EXPORTED_FUNCTION mxArray* -Ice_ObjectPrx_ice_endpointSelection(void* self, Ice_EndpointSelectionType v, void** r) +Ice_ObjectPrx_ice_endpointSelection(void* self, int v, void** r) { try { diff --git a/matlab/src/IceMatlab/OutputStream.cpp b/matlab/src/IceMatlab/OutputStream.cpp index 46dee32dc62..d72957ee86c 100644 --- a/matlab/src/IceMatlab/OutputStream.cpp +++ b/matlab/src/IceMatlab/OutputStream.cpp @@ -18,88 +18,12 @@ using namespace std; using namespace IceMatlab; -namespace -{ - -typedef std::map<mxArray*, shared_ptr<Ice::Value>> ValueMap; - -// -// A Closure instance is associated with an OutputStream whenever values are marshaled. -// -struct Closure -{ - ValueMap valueMap; - mxArray* stream; -}; - -// -// ValueWriter wraps a Matlab object for marshaling. -// -class ValueWriter : public Ice::Value -{ -public: - - ValueWriter(mxArray*); - - virtual void ice_preMarshal(); - - virtual void _iceWrite(Ice::OutputStream*) const; - virtual void _iceRead(Ice::InputStream*); - -protected: - - virtual shared_ptr<Ice::Value> _iceCloneImpl() const; - -private: - - mxArray* _value; -}; - -ValueWriter::ValueWriter(mxArray* v) : - _value(v) -{ -} - -void -ValueWriter::ice_preMarshal() -{ - mexCallMATLAB(0, 0, 1, &_value, "ice_preMarshal"); -} - -void -ValueWriter::_iceWrite(Ice::OutputStream* os) const -{ - Closure* c = reinterpret_cast<Closure*>(os->getClosure()); - assert(c); - - mxArray* params[2]; - params[0] = _value; - params[1] = c->stream; - mexCallMATLAB(0, 0, 2, params, "iceWrite_"); -} - -void -ValueWriter::_iceRead(Ice::InputStream*) -{ - assert(false); -} - -shared_ptr<Ice::Value> -ValueWriter::_iceCloneImpl() const -{ - return nullptr; -} - -} - extern "C" { EXPORTED_FUNCTION mxArray* Ice_OutputStream__release(void* self) { - Closure* c = reinterpret_cast<Closure*>(SELF->getClosure()); - delete c; delete SELF; return 0; } @@ -119,20 +43,6 @@ Ice_OutputStream_writeBool(void* self, unsigned char v) } EXPORTED_FUNCTION mxArray* -Ice_OutputStream_writeBoolOpt(void* self, int tag, unsigned char v) -{ - try - { - SELF->writeAll({tag}, IceUtil::Optional<bool>(v == 1)); - } - catch(const std::exception& ex) - { - return convertException(ex); - } - return 0; -} - -EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeBoolSeq(void* self, const unsigned char* v, int size) { const bool* p = reinterpret_cast<const bool*>(v); @@ -148,24 +58,6 @@ Ice_OutputStream_writeBoolSeq(void* self, const unsigned char* v, int size) } EXPORTED_FUNCTION mxArray* -Ice_OutputStream_writeBoolSeqOpt(void* self, int tag, const unsigned char* v, int size) -{ - const bool* p = reinterpret_cast<const bool*>(v); - try - { - if(SELF->writeOptional(tag, Ice::OptionalFormat::VSize)) - { - SELF->write(p, p + size); - } - } - catch(const std::exception& ex) - { - return convertException(ex); - } - return 0; -} - -EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeByte(void* self, unsigned char v) { try @@ -180,20 +72,6 @@ Ice_OutputStream_writeByte(void* self, unsigned char v) } EXPORTED_FUNCTION mxArray* -Ice_OutputStream_writeByteOpt(void* self, int tag, unsigned char v) -{ - try - { - SELF->writeAll({tag}, IceUtil::Optional<Ice::Byte>(static_cast<Ice::Byte>(v))); - } - catch(const std::exception& ex) - { - return convertException(ex); - } - return 0; -} - -EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeByteSeq(void* self, const unsigned char* v, int size) { const Ice::Byte* p = reinterpret_cast<const Ice::Byte*>(v); @@ -209,24 +87,6 @@ Ice_OutputStream_writeByteSeq(void* self, const unsigned char* v, int size) } EXPORTED_FUNCTION mxArray* -Ice_OutputStream_writeByteSeqOpt(void* self, int tag, const unsigned char* v, int size) -{ - const Ice::Byte* p = reinterpret_cast<const Ice::Byte*>(v); - try - { - if(SELF->writeOptional(tag, Ice::OptionalFormat::VSize)) - { - SELF->write(p, p + size); - } - } - catch(const std::exception& ex) - { - return convertException(ex); - } - return 0; -} - -EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeShort(void* self, short v) { try @@ -241,20 +101,6 @@ Ice_OutputStream_writeShort(void* self, short v) } EXPORTED_FUNCTION mxArray* -Ice_OutputStream_writeShortOpt(void* self, int tag, short v) -{ - try - { - SELF->writeAll({tag}, IceUtil::Optional<short>(v)); - } - catch(const std::exception& ex) - { - return convertException(ex); - } - return 0; -} - -EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeShortSeq(void* self, const short* v, int size) { try @@ -269,23 +115,6 @@ Ice_OutputStream_writeShortSeq(void* self, const short* v, int size) } EXPORTED_FUNCTION mxArray* -Ice_OutputStream_writeShortSeqOpt(void* self, int tag, const short* v, int size) -{ - try - { - if(SELF->writeOptional(tag, Ice::OptionalFormat::VSize)) - { - SELF->write(v, v + size); - } - } - catch(const std::exception& ex) - { - return convertException(ex); - } - return 0; -} - -EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeInt(void* self, int v) { try @@ -300,20 +129,6 @@ Ice_OutputStream_writeInt(void* self, int v) } EXPORTED_FUNCTION mxArray* -Ice_OutputStream_writeIntOpt(void* self, int tag, int v) -{ - try - { - SELF->writeAll({tag}, IceUtil::Optional<int>(v)); - } - catch(const std::exception& ex) - { - return convertException(ex); - } - return 0; -} - -EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeIntSeq(void* self, const int* v, int size) { try @@ -328,23 +143,6 @@ Ice_OutputStream_writeIntSeq(void* self, const int* v, int size) } EXPORTED_FUNCTION mxArray* -Ice_OutputStream_writeIntSeqOpt(void* self, int tag, const int* v, int size) -{ - try - { - if(SELF->writeOptional(tag, Ice::OptionalFormat::VSize)) - { - SELF->write(v, v + size); - } - } - catch(const std::exception& ex) - { - return convertException(ex); - } - return 0; -} - -EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeLong(void* self, long long v) { try @@ -359,20 +157,6 @@ Ice_OutputStream_writeLong(void* self, long long v) } EXPORTED_FUNCTION mxArray* -Ice_OutputStream_writeLongOpt(void* self, int tag, long long v) -{ - try - { - SELF->writeAll({tag}, IceUtil::Optional<long long>(v)); - } - catch(const std::exception& ex) - { - return convertException(ex); - } - return 0; -} - -EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeLongSeq(void* self, const long long* v, int size) { try @@ -387,23 +171,6 @@ Ice_OutputStream_writeLongSeq(void* self, const long long* v, int size) } EXPORTED_FUNCTION mxArray* -Ice_OutputStream_writeLongSeqOpt(void* self, int tag, const long long* v, int size) -{ - try - { - if(SELF->writeOptional(tag, Ice::OptionalFormat::VSize)) - { - SELF->write(v, v + size); - } - } - catch(const std::exception& ex) - { - return convertException(ex); - } - return 0; -} - -EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeFloat(void* self, float v) { try @@ -418,20 +185,6 @@ Ice_OutputStream_writeFloat(void* self, float v) } EXPORTED_FUNCTION mxArray* -Ice_OutputStream_writeFloatOpt(void* self, int tag, float v) -{ - try - { - SELF->writeAll({tag}, IceUtil::Optional<float>(v)); - } - catch(const std::exception& ex) - { - return convertException(ex); - } - return 0; -} - -EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeFloatSeq(void* self, const float* v, int size) { try @@ -446,23 +199,6 @@ Ice_OutputStream_writeFloatSeq(void* self, const float* v, int size) } EXPORTED_FUNCTION mxArray* -Ice_OutputStream_writeFloatSeqOpt(void* self, int tag, const float* v, int size) -{ - try - { - if(SELF->writeOptional(tag, Ice::OptionalFormat::VSize)) - { - SELF->write(v, v + size); - } - } - catch(const std::exception& ex) - { - return convertException(ex); - } - return 0; -} - -EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeDouble(void* self, double v) { try @@ -477,20 +213,6 @@ Ice_OutputStream_writeDouble(void* self, double v) } EXPORTED_FUNCTION mxArray* -Ice_OutputStream_writeDoubleOpt(void* self, int tag, double v) -{ - try - { - SELF->writeAll({tag}, IceUtil::Optional<double>(v)); - } - catch(const std::exception& ex) - { - return convertException(ex); - } - return 0; -} - -EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeDoubleSeq(void* self, const double* v, int size) { try @@ -505,23 +227,6 @@ Ice_OutputStream_writeDoubleSeq(void* self, const double* v, int size) } EXPORTED_FUNCTION mxArray* -Ice_OutputStream_writeDoubleSeqOpt(void* self, int tag, const double* v, int size) -{ - try - { - if(SELF->writeOptional(tag, Ice::OptionalFormat::VSize)) - { - SELF->write(v, v + size); - } - } - catch(const std::exception& ex) - { - return convertException(ex); - } - return 0; -} - -EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeString(void* self, mxArray* str) { try @@ -536,23 +241,6 @@ Ice_OutputStream_writeString(void* self, mxArray* str) } EXPORTED_FUNCTION mxArray* -Ice_OutputStream_writeStringOpt(void* self, int tag, mxArray* str) -{ - try - { - if(SELF->writeOptional(tag, Ice::OptionalFormat::VSize)) - { - SELF->write(getStringFromUTF16(str), false); - } - } - catch(const std::exception& ex) - { - return convertException(ex); - } - return 0; -} - -EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeStringSeq(void* self, mxArray* v) { try @@ -589,29 +277,6 @@ Ice_OutputStream_writeStringSeq(void* self, mxArray* v) } EXPORTED_FUNCTION mxArray* -Ice_OutputStream_writeStringSeqOpt(void* self, int tag, mxArray* v) -{ - try - { - if(SELF->writeOptional(tag, Ice::OptionalFormat::FSize)) - { - Ice::OutputStream::size_type pos = SELF->startSize(); - mxArray* ex = Ice_OutputStream_writeStringSeq(self, v); - if(ex) - { - return ex; - } - SELF->endSize(pos); - } - } - catch(const std::exception& ex) - { - return convertException(ex); - } - return 0; -} - -EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeSize(void* self, int size) { try @@ -645,22 +310,6 @@ Ice_OutputStream_writeProxy(void* self, void* proxy) } EXPORTED_FUNCTION mxArray* -Ice_OutputStream_writeProxyOpt(void* self, int tag, void* proxy) -{ - assert(proxy); // Wrapper only calls this function for a non-nil value. - shared_ptr<Ice::ObjectPrx> p = *(reinterpret_cast<shared_ptr<Ice::ObjectPrx>*>(proxy)); - try - { - SELF->writeAll({tag}, IceUtil::Optional<shared_ptr<Ice::ObjectPrx>>(p)); - } - catch(const std::exception& ex) - { - return convertException(ex); - } - return 0; -} - -EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeEnum(void* self, int val, int maxValue) { try @@ -675,88 +324,11 @@ Ice_OutputStream_writeEnum(void* self, int val, int maxValue) } EXPORTED_FUNCTION mxArray* -Ice_OutputStream_writeValue(void* self, mxArray* stream, mxArray* val) -{ - if(mxIsEmpty(val)) - { - shared_ptr<Ice::Value> nil = nullptr; - SELF->write(nil); - return 0; - } - - // - // Attach a Closure instance to the stream upon writing the first non-nil Value. - // - Closure* c = reinterpret_cast<Closure*>(SELF->getClosure()); - if(!c) - { - c = new Closure; - c->stream = stream; - SELF->setClosure(c); - } - - // - // We're assuming that a mxArray pointer uniquely identifies an object. We use the closure's map to - // track the instances. - // - shared_ptr<Ice::Value> w; - ValueMap::iterator p = c->valueMap.find(val); - if(p == c->valueMap.end()) - { - w = make_shared<ValueWriter>(val); - c->valueMap.insert(ValueMap::value_type(val, w)); - } - else - { - w = p->second; - } - - try - { - SELF->write(w); - } - catch(const std::exception& ex) - { - return convertException(ex); - } - return 0; -} - -EXPORTED_FUNCTION mxArray* -Ice_OutputStream_writeValueOpt(void* self, int tag, mxArray* stream, mxArray* val) -{ - // - // We assume an empty value means an unset optional (as opposed to an optional set to a null value). - // - if(!mxIsEmpty(val) && SELF->writeOptional(tag, Ice::OptionalFormat::Class)) - { - return Ice_OutputStream_writeValue(self, stream, val); - } - - return 0; -} - -EXPORTED_FUNCTION mxArray* -Ice_OutputStream_startEncapsulation(void* self) -{ - try - { - SELF->startEncapsulation(); - } - catch(const std::exception& ex) - { - return convertException(ex); - } - return 0; -} - -EXPORTED_FUNCTION mxArray* -Ice_OutputStream_startEncapsulationWithFormat(void* self, Ice_FormatType t) +Ice_OutputStream_startSize(void* self, unsigned int* pos) { - Ice::FormatType type = static_cast<Ice::FormatType>(t); try { - SELF->startEncapsulation(SELF->getEncoding(), type); + *pos = static_cast<unsigned int>(SELF->startSize()); } catch(const std::exception& ex) { @@ -766,11 +338,11 @@ Ice_OutputStream_startEncapsulationWithFormat(void* self, Ice_FormatType t) } EXPORTED_FUNCTION mxArray* -Ice_OutputStream_endEncapsulation(void* self) +Ice_OutputStream_endSize(void* self, unsigned int pos) { try { - SELF->endEncapsulation(); + SELF->endSize(pos); } catch(const std::exception& ex) { @@ -780,11 +352,11 @@ Ice_OutputStream_endEncapsulation(void* self) } EXPORTED_FUNCTION mxArray* -Ice_OutputStream_startSlice(void* self, const char* typeId, int compactId, unsigned char last) +Ice_OutputStream_pos(void* self, unsigned int* pos) { try { - SELF->startSlice(typeId, compactId, last == 1); + *pos = SELF->pos(); } catch(const std::exception& ex) { @@ -794,26 +366,19 @@ Ice_OutputStream_startSlice(void* self, const char* typeId, int compactId, unsig } EXPORTED_FUNCTION mxArray* -Ice_OutputStream_endSlice(void* self) +Ice_OutputStream_rewriteByte(void* self, unsigned char v, unsigned int pos) { - try - { - SELF->endSlice(); - } - catch(const std::exception& ex) - { - return convertException(ex); - } + Ice::Byte* dest = &(*(SELF->b.begin() + pos)); + *dest = v; return 0; } EXPORTED_FUNCTION mxArray* -Ice_OutputStream_writeOptional(void* self, int tag, Ice_OptionalFormat f, unsigned char* supportsOptionals) +Ice_OutputStream_rewriteInt(void* self, int v, unsigned int pos) { - Ice::OptionalFormat fmt = static_cast<Ice::OptionalFormat>(f); try { - *supportsOptionals = SELF->writeOptional(tag, fmt); + SELF->rewrite(v, pos); } catch(const std::exception& ex) { @@ -823,11 +388,12 @@ Ice_OutputStream_writeOptional(void* self, int tag, Ice_OptionalFormat f, unsign } EXPORTED_FUNCTION mxArray* -Ice_OutputStream_startSize(void* self, unsigned int* pos) +Ice_OutputStream_writeBlob(void* self, const unsigned char* v, int size) { + const Ice::Byte* p = reinterpret_cast<const Ice::Byte*>(v); try { - *pos = static_cast<unsigned int>(SELF->startSize()); + SELF->writeBlob(p, size); } catch(const std::exception& ex) { @@ -837,15 +403,15 @@ Ice_OutputStream_startSize(void* self, unsigned int* pos) } EXPORTED_FUNCTION mxArray* -Ice_OutputStream_endSize(void* self, unsigned int pos) +Ice_OutputStream_getEncoding(void* self) { try { - SELF->endSize(pos); + return createResultValue(createEncodingVersion(SELF->getEncoding())); } catch(const std::exception& ex) { - return convertException(ex); + return createResultException(convertException(ex)); } return 0; } diff --git a/matlab/src/IceMatlab/Util.cpp b/matlab/src/IceMatlab/Util.cpp index d4c15b7255e..8414c716f2e 100644 --- a/matlab/src/IceMatlab/Util.cpp +++ b/matlab/src/IceMatlab/Util.cpp @@ -66,7 +66,7 @@ IceMatlab::createStringFromUTF8(const string& s) #else u16string utf16 = wstring_convert<codecvt_utf8_utf16<char16_t>, char16_t>{}.from_bytes(s.data()); #endif - mwSize dims[2] = { 1, utf16.size() }; + mwSize dims[2] = { 1, static_cast<mwSize>(utf16.size()) }; mxArray* r = mxCreateCharArray(2, dims); mxChar* buf = mxGetChars(r); int i = 0; @@ -440,6 +440,7 @@ IceMatlab::convertException(const std::exception& exc) } catch(const Ice::UnsupportedEncodingException& e) { + params[idx++] = createStringFromUTF8(e.reason); params[idx++] = createEncodingVersion(e.bad); params[idx++] = createEncodingVersion(e.supported); } diff --git a/matlab/src/IceMatlab/icematlab.h b/matlab/src/IceMatlab/icematlab.h index 0b52babf28c..016efe2d633 100644 --- a/matlab/src/IceMatlab/icematlab.h +++ b/matlab/src/IceMatlab/icematlab.h @@ -26,10 +26,19 @@ typedef struct mxArray_tag mxArray; // Forward declaration to avoid importing me EXPORTED_FUNCTION mxArray* Ice_initialize(mxArray*, void*, void**); EXPORTED_FUNCTION mxArray* Ice_stringToIdentity(mxArray*); -EXPORTED_FUNCTION mxArray* Ice_identityToString(mxArray*); +EXPORTED_FUNCTION mxArray* Ice_identityToString(mxArray*, int); +EXPORTED_FUNCTION mxArray* Ice_stringVersion(); +EXPORTED_FUNCTION mxArray* Ice_intVersion(int*); +EXPORTED_FUNCTION mxArray* Ice_currentEncoding(); +EXPORTED_FUNCTION mxArray* Ice_currentProtocol(); +EXPORTED_FUNCTION mxArray* Ice_currentProtocolEncoding(); EXPORTED_FUNCTION mxArray* Ice_Communicator__release(void*); +EXPORTED_FUNCTION mxArray* Ice_Communicator_identityToString(void*, mxArray*); EXPORTED_FUNCTION mxArray* Ice_Communicator_stringToProxy(void*, const char*, void**); +EXPORTED_FUNCTION mxArray* Ice_Communicator_propertyToProxy(void*, const char*, void**); +EXPORTED_FUNCTION mxArray* Ice_Communicator_proxyToProperty(void*, void*, const char*); +EXPORTED_FUNCTION mxArray* Ice_Communicator_proxyToString(void*, void*); EXPORTED_FUNCTION mxArray* Ice_Communicator_getProperties(void*, void**); EXPORTED_FUNCTION mxArray* Ice_Communicator_createOutputStream(void*, mxArray*, void**); EXPORTED_FUNCTION mxArray* Ice_Communicator_destroy(void*); @@ -41,12 +50,6 @@ typedef enum Idempotent } Ice_OperationMode; -typedef enum -{ - Random, - Ordered -} Ice_EndpointSelectionType; - EXPORTED_FUNCTION mxArray* Ice_ObjectPrx__release(void*); EXPORTED_FUNCTION mxArray* Ice_ObjectPrx_equals(void*, void*, unsigned char*); EXPORTED_FUNCTION mxArray* Ice_ObjectPrx_ice_createOutputStream(void*, void**); @@ -58,7 +61,6 @@ EXPORTED_FUNCTION mxArray* Ice_ObjectPrx_ice_invokeAsync(void*, const char*, Ice void**); EXPORTED_FUNCTION mxArray* Ice_ObjectPrx_ice_invokeAsyncNC(void*, const char*, Ice_OperationMode, void*, void**); EXPORTED_FUNCTION mxArray* Ice_ObjectPrx_ice_toString(void*); -EXPORTED_FUNCTION mxArray* Ice_ObjectPrx_ice_getCommunicator(void*, void**); EXPORTED_FUNCTION mxArray* Ice_ObjectPrx_ice_getIdentity(void*); EXPORTED_FUNCTION mxArray* Ice_ObjectPrx_ice_identity(void*, mxArray*, void**); EXPORTED_FUNCTION mxArray* Ice_ObjectPrx_ice_getContext(void*); @@ -77,8 +79,8 @@ EXPORTED_FUNCTION mxArray* Ice_ObjectPrx_ice_getConnectionId(void*); EXPORTED_FUNCTION mxArray* Ice_ObjectPrx_ice_connectionId(void*, const char*, void**); EXPORTED_FUNCTION mxArray* Ice_ObjectPrx_ice_isConnectionCached(void*, unsigned char*); EXPORTED_FUNCTION mxArray* Ice_ObjectPrx_ice_connectionCached(void*, unsigned char, void**); -EXPORTED_FUNCTION mxArray* Ice_ObjectPrx_ice_getEndpointSelection(void*, Ice_EndpointSelectionType*); -EXPORTED_FUNCTION mxArray* Ice_ObjectPrx_ice_endpointSelection(void*, Ice_EndpointSelectionType, void**); +EXPORTED_FUNCTION mxArray* Ice_ObjectPrx_ice_getEndpointSelection(void*, int*); +EXPORTED_FUNCTION mxArray* Ice_ObjectPrx_ice_endpointSelection(void*, int, void**); EXPORTED_FUNCTION mxArray* Ice_ObjectPrx_ice_getEncodingVersion(void*); EXPORTED_FUNCTION mxArray* Ice_ObjectPrx_ice_encodingVersion(void*, mxArray*, void**); EXPORTED_FUNCTION mxArray* Ice_ObjectPrx_ice_getRouter(void*, void**); @@ -97,6 +99,8 @@ EXPORTED_FUNCTION mxArray* Ice_ObjectPrx_ice_isBatchOneway(void*, unsigned char* EXPORTED_FUNCTION mxArray* Ice_ObjectPrx_ice_batchOneway(void*, void**); EXPORTED_FUNCTION mxArray* Ice_ObjectPrx_ice_isDatagram(void*, unsigned char*); EXPORTED_FUNCTION mxArray* Ice_ObjectPrx_ice_datagram(void*, void**); +EXPORTED_FUNCTION mxArray* Ice_ObjectPrx_ice_isBatchDatagram(void*, unsigned char*); +EXPORTED_FUNCTION mxArray* Ice_ObjectPrx_ice_batchDatagram(void*, void**); EXPORTED_FUNCTION mxArray* Ice_ObjectPrx_ice_compress(void*, unsigned char, void**); EXPORTED_FUNCTION mxArray* Ice_ObjectPrx_ice_timeout(void*, int, void**); EXPORTED_FUNCTION mxArray* Ice_ObjectPrx_ice_getConnection(void*, void**); @@ -128,114 +132,59 @@ EXPORTED_FUNCTION mxArray* Ice_SentFuture_state(void*); EXPORTED_FUNCTION mxArray* Ice_SentFuture_cancel(void*); EXPORTED_FUNCTION mxArray* Ice_SentFuture_check(void*); -typedef enum -{ - DefaultFormat, - CompactFormat, - SlicedFormat -} Ice_FormatType; - -typedef enum -{ - OptionalFormatF1 = 0, - OptionalFormatF2 = 1, - OptionalFormatF4 = 2, - OptionalFormatF8 = 3, - OptionalFormatSize = 4, - OptionalFormatVSize = 5, - OptionalFormatFSize = 6, - OptionalFormatClass = 7 -} Ice_OptionalFormat; - EXPORTED_FUNCTION mxArray* Ice_OutputStream__release(void*); EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeBool(void*, unsigned char); -EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeBoolOpt(void*, int, unsigned char); EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeBoolSeq(void*, const unsigned char*, int); -EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeBoolSeqOpt(void*, int, const unsigned char*, int); EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeByte(void*, unsigned char); -EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeByteOpt(void*, int, unsigned char); EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeByteSeq(void*, const unsigned char*, int); -EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeByteSeqOpt(void*, int, const unsigned char*, int); EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeShort(void*, short); -EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeShortOpt(void*, int, short); EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeShortSeq(void*, const short*, int); -EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeShortSeqOpt(void*, int, const short*, int); EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeInt(void*, int); -EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeIntOpt(void*, int, int); EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeIntSeq(void*, const int*, int); -EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeIntSeqOpt(void*, int, const int*, int); EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeLong(void*, long long); -EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeLongOpt(void*, int, long long); EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeLongSeq(void*, const long long*, int); -EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeLongSeqOpt(void*, int, const long long*, int); EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeFloat(void*, float); -EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeFloatOpt(void*, int, float); EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeFloatSeq(void*, const float*, int); -EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeFloatSeqOpt(void*, int, const float*, int); EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeDouble(void*, double); -EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeDoubleOpt(void*, int, double); EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeDoubleSeq(void*, const double*, int); -EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeDoubleSeqOpt(void*, int, const double*, int); EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeString(void*, mxArray*); -EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeStringOpt(void*, int, mxArray*); EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeStringSeq(void*, mxArray*); -EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeStringSeqOpt(void*, int, mxArray*); EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeSize(void*, int); EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeProxy(void*, void*); -EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeProxyOpt(void*, int, void*); EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeEnum(void*, int, int); -EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeValue(void*, mxArray*, mxArray*); -EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeValueOpt(void*, int, mxArray*, mxArray*); -EXPORTED_FUNCTION mxArray* Ice_OutputStream_startEncapsulation(void*); -EXPORTED_FUNCTION mxArray* Ice_OutputStream_startEncapsulationWithFormat(void*, Ice_FormatType); -EXPORTED_FUNCTION mxArray* Ice_OutputStream_endEncapsulation(void*); -EXPORTED_FUNCTION mxArray* Ice_OutputStream_startSlice(void*, const char*, int, unsigned char); -EXPORTED_FUNCTION mxArray* Ice_OutputStream_endSlice(void*); -EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeOptional(void*, int, Ice_OptionalFormat, unsigned char*); EXPORTED_FUNCTION mxArray* Ice_OutputStream_startSize(void*, unsigned int*); EXPORTED_FUNCTION mxArray* Ice_OutputStream_endSize(void*, unsigned int); +EXPORTED_FUNCTION mxArray* Ice_OutputStream_pos(void*, unsigned int*); +EXPORTED_FUNCTION mxArray* Ice_OutputStream_rewriteByte(void*, unsigned char, unsigned int); +EXPORTED_FUNCTION mxArray* Ice_OutputStream_rewriteInt(void*, int, unsigned int); +EXPORTED_FUNCTION mxArray* Ice_OutputStream_writeBlob(void*, const unsigned char*, int); +EXPORTED_FUNCTION mxArray* Ice_OutputStream_getEncoding(void*); EXPORTED_FUNCTION mxArray* Ice_InputStream__release(void*); EXPORTED_FUNCTION mxArray* Ice_InputStream_readBool(void*, unsigned char*); EXPORTED_FUNCTION mxArray* Ice_InputStream_readBoolSeq(void*); -EXPORTED_FUNCTION mxArray* Ice_InputStream_readBoolOpt(void*, int); -EXPORTED_FUNCTION mxArray* Ice_InputStream_readBoolSeqOpt(void*, int); EXPORTED_FUNCTION mxArray* Ice_InputStream_readByte(void*, unsigned char*); EXPORTED_FUNCTION mxArray* Ice_InputStream_readByteSeq(void*); -EXPORTED_FUNCTION mxArray* Ice_InputStream_readByteOpt(void*, int); -EXPORTED_FUNCTION mxArray* Ice_InputStream_readByteSeqOpt(void*, int); EXPORTED_FUNCTION mxArray* Ice_InputStream_readShort(void*, short*); EXPORTED_FUNCTION mxArray* Ice_InputStream_readShortSeq(void*); -EXPORTED_FUNCTION mxArray* Ice_InputStream_readShortOpt(void*, int); -EXPORTED_FUNCTION mxArray* Ice_InputStream_readShortSeqOpt(void*, int); EXPORTED_FUNCTION mxArray* Ice_InputStream_readInt(void*, int*); EXPORTED_FUNCTION mxArray* Ice_InputStream_readIntSeq(void*); -EXPORTED_FUNCTION mxArray* Ice_InputStream_readIntOpt(void*, int); -EXPORTED_FUNCTION mxArray* Ice_InputStream_readIntSeqOpt(void*, int); EXPORTED_FUNCTION mxArray* Ice_InputStream_readLong(void*, long long*); EXPORTED_FUNCTION mxArray* Ice_InputStream_readLongSeq(void*); -EXPORTED_FUNCTION mxArray* Ice_InputStream_readLongOpt(void*, int); -EXPORTED_FUNCTION mxArray* Ice_InputStream_readLongSeqOpt(void*, int); EXPORTED_FUNCTION mxArray* Ice_InputStream_readFloat(void*, float*); EXPORTED_FUNCTION mxArray* Ice_InputStream_readFloatSeq(void*); -EXPORTED_FUNCTION mxArray* Ice_InputStream_readFloatOpt(void*, int); -EXPORTED_FUNCTION mxArray* Ice_InputStream_readFloatSeqOpt(void*, int); EXPORTED_FUNCTION mxArray* Ice_InputStream_readDouble(void*, double*); EXPORTED_FUNCTION mxArray* Ice_InputStream_readDoubleSeq(void*); -EXPORTED_FUNCTION mxArray* Ice_InputStream_readDoubleOpt(void*, int); -EXPORTED_FUNCTION mxArray* Ice_InputStream_readDoubleSeqOpt(void*, int); EXPORTED_FUNCTION mxArray* Ice_InputStream_readString(void*); EXPORTED_FUNCTION mxArray* Ice_InputStream_readStringSeq(void*); -EXPORTED_FUNCTION mxArray* Ice_InputStream_readStringOpt(void*, int); -EXPORTED_FUNCTION mxArray* Ice_InputStream_readStringSeqOpt(void*, int); EXPORTED_FUNCTION mxArray* Ice_InputStream_skip(void*, int); EXPORTED_FUNCTION mxArray* Ice_InputStream_skipSize(void*); EXPORTED_FUNCTION mxArray* Ice_InputStream_getEncoding(void*); EXPORTED_FUNCTION mxArray* Ice_InputStream_readSize(void*, int*); EXPORTED_FUNCTION mxArray* Ice_InputStream_readProxy(void*, void**); -EXPORTED_FUNCTION mxArray* Ice_InputStream_readProxyOpt(void*, int, void**); EXPORTED_FUNCTION mxArray* Ice_InputStream_readEnum(void*, int, int*); EXPORTED_FUNCTION mxArray* Ice_InputStream_pos(void*, unsigned int*); +EXPORTED_FUNCTION mxArray* Ice_InputStream_setPos(void*, unsigned int); EXPORTED_FUNCTION mxArray* Ice_InputStream_size(void*, unsigned int*); EXPORTED_FUNCTION mxArray* Ice_InputStream_getBytes(void*, unsigned int, unsigned int); |