1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
|
// **********************************************************************
//
// Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
//
// This copy of Ice is licensed to you under the terms described in the
// ICE_LICENSE file included in this distribution.
//
// **********************************************************************
#include <Ice/Ice.h>
#include <Ice/RegisterPlugins.h>
#include <IceUtil/Time.h>
#include "ice.h"
#include "Util.h"
using namespace std;
using namespace IceMatlab;
extern "C"
{
mxArray*
Ice_initialize(mxArray* args, void* propsImpl, void** r)
{
try
{
Ice::StringSeq a;
getStringList(args, a);
//
// Collect InitializationData members.
//
Ice::InitializationData id;
//
// Properties
//
if(propsImpl)
{
id.properties = deref<Ice::Properties>(propsImpl);
}
*r = new shared_ptr<Ice::Communicator>(Ice::initialize(a, id));
return createResultValue(createStringList(a));
}
catch(const std::exception& ex)
{
return createResultException(convertException(ex));
}
return 0;
}
mxArray*
Ice_stringToIdentity(mxArray* s)
{
try
{
return createResultValue(createIdentity(Ice::stringToIdentity(getStringFromUTF16(s))));
}
catch(const std::exception& ex)
{
return createResultException(convertException(ex));
}
return 0;
}
mxArray*
Ice_identityToString(mxArray* id, mxArray* mode)
{
try
{
Ice::ToStringMode m = static_cast<Ice::ToStringMode>(getEnumerator(mode, "Ice.ToStringMode"));
Ice::Identity ident;
getIdentity(id, ident);
return createResultValue(createStringFromUTF8(Ice::identityToString(ident, m)));
}
catch(const std::exception& ex)
{
return createResultException(convertException(ex));
}
return 0;
}
mxArray*
Ice_stringVersion()
{
return createResultValue(createStringFromUTF8(ICE_STRING_VERSION));
}
mxArray*
Ice_intVersion(int* v)
{
*v = ICE_INT_VERSION;
return 0;
}
mxArray*
Ice_currentEncoding()
{
return createResultValue(createEncodingVersion(Ice::currentEncoding));
}
mxArray*
Ice_currentProtocol()
{
return createResultValue(createProtocolVersion(Ice::currentProtocol));
}
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.
//
void
mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
}
}
|