diff --git a/3.4.0/404.html b/3.4.0/404.html new file mode 100644 index 000000000..bcea18a37 --- /dev/null +++ b/3.4.0/404.html @@ -0,0 +1,1951 @@ + + + + + + + + + + + + + + + + + + + + + + + Software Development Kit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ +

404 - Not found

+ +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/3.4.0/about.html b/3.4.0/about.html new file mode 100644 index 000000000..5e5ffa99d --- /dev/null +++ b/3.4.0/about.html @@ -0,0 +1,1987 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + About - Software Development Kit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

About

+ +

Copyright © 2020-2024 Bosch Rexroth AG. All rights reserved.

+

Please note that any trademarks, logos and pictures contained or linked to in this Software are owned by or copyright © Bosch Rexroth AG 2023 and not licensed under the Software's license terms.

+

https://www.boschrexroth.com/en/dc/imprint/

+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/3.4.0/api/net/html/DatalayerSystem_8cs_source.html b/3.4.0/api/net/html/DatalayerSystem_8cs_source.html new file mode 100644 index 000000000..beee2a1a4 --- /dev/null +++ b/3.4.0/api/net/html/DatalayerSystem_8cs_source.html @@ -0,0 +1,396 @@ + + + + + + + +ctrlX Data Layer .NET API: D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/DatalayerSystem.cs Source File +D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/DatalayerSystem.cs Source File + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
DatalayerSystem.cs
+
+
+
1using Datalayer.Internal;
+
2using System;
+
3using System.Collections.Generic;
+
4
+
5namespace Datalayer
+
6{
+
10 public class DatalayerSystem : IDatalayerSystem, INative
+
11 {
+
12 private unsafe void* _nativePtr;
+
13
+
14 private IFactory _factory;
+
15 private IConverter _converter;
+
16
+
17 private readonly string _ipcPath;
+
18
+
19 private bool _disposedValue;
+
20 private bool _isStarted;
+
21
+
22 private readonly List<Client> _clients = new List<Client>();
+
23 private readonly List<Provider> _providers = new List<Provider>();
+
24
+
30 public DatalayerSystem(string ipcPath = "")
+
31 {
+
32 _ipcPath = ipcPath ?? throw new ArgumentNullException(nameof(ipcPath));
+
33
+
34 var ipcPathBuffer = StringBuffer.FromString(_ipcPath);
+
35 unsafe
+
36 {
+
37 _nativePtr = NativeMethods.Datalayer.DLR_systemCreate(ipcPathBuffer.ToNativePtr());
+
38 }
+
39 }
+
40
+
44 unsafe void* INative.NativePtr => _nativePtr;
+
45
+
49 internal List<Client> Clients => _clients;
+
50
+
54 internal List<Provider> Providers => _providers;
+
55
+
56 #region Disposing
+
57
+
61 public bool IsDisposed => _disposedValue;
+
62
+
67 protected virtual void Dispose(bool disposing)
+
68 {
+
69 if (!_disposedValue)
+
70 {
+
71 if (disposing)
+
72 {
+
73 // dispose managed state (managed objects)
+
74 }
+
75
+
76 // free unmanaged resources (unmanaged objects) and override finalizer
+
77 Delete();
+
78 // set large fields to null
+
79 _disposedValue = true;
+
80 }
+
81 }
+
82
+ +
87 {
+
88 // Do not change this code. Put cleanup code in 'Dispose(bool disposing)' method
+
89 Dispose(disposing: false);
+
90 }
+
91
+
92
+
96 public void Dispose()
+
97 {
+
98 // Do not change this code. Put cleanup code in 'Dispose(bool disposing)' method
+
99 Dispose(disposing: true);
+
100 GC.SuppressFinalize(this);
+
101 }
+
102
+
106 private void Delete()
+
107 {
+
108 unsafe
+
109 {
+
110 if (_nativePtr == null)
+
111 {
+
112 return;
+
113 }
+
114
+
115 //Stop implicitly, first
+
116 if (!IsDisposed)
+
117 {
+
118 Stop();
+
119 }
+
120
+
121 NativeMethods.Datalayer.DLR_systemDelete(_nativePtr);
+
122 _isStarted = false;
+
123 _nativePtr = null;
+
124 _disposedValue = true;
+
125 }
+
126 }
+
127
+
131 private void DeleteChildren()
+
132 {
+
133 //Delete clients
+
134 foreach (var client in _clients)
+
135 {
+
136 client.Delete();
+
137 }
+
138 _clients.Clear();
+
139
+
140 //Delete providers
+
141 foreach (var provider in _providers)
+
142 {
+
143 provider.Delete();
+
144 }
+
145 _providers.Clear();
+
146 }
+
147 #endregion
+
148
+
149 #region Public Consts
+
150
+
154 public static readonly int DefaultClientPort = 2069;
+
155
+
159 public static readonly int DefaultProviderPort = 2070;
+
160
+
165 public static readonly string ProtocolSchemeTcp = "tcp://";
+
166
+
171 public static readonly string ProtocolSchemeIpc = "ipc://";
+
172
+
173 #endregion
+
174
+
175 #region Public Properties
+
176
+
181 public string IpcPath
+
182 {
+
183 get
+
184 {
+
185 if (IsDisposed)
+
186 {
+
187 throw new ObjectDisposedException(Utils.Strings.ErrorObjectDisposed);
+
188 }
+
189
+
190 return _ipcPath;
+
191 }
+
192 }
+
193
+
198 public bool IsStarted
+
199 {
+
200 get
+
201 {
+
202 if (IsDisposed)
+
203 {
+
204 throw new ObjectDisposedException(Utils.Strings.ErrorObjectDisposed);
+
205 }
+
206
+
207 return _isStarted;
+
208 }
+
209 }
+
210
+
216 public string BfbsPath
+
217 {
+
218 set
+
219 {
+
220 if (IsDisposed)
+
221 {
+
222 throw new ObjectDisposedException(Utils.Strings.ErrorObjectDisposed);
+
223 }
+
224
+
225 if (value == null)
+
226 {
+
227 throw new ArgumentNullException(nameof(value));
+
228 }
+
229
+
230 var valueBuffer = StringBuffer.FromString(value);
+
231 unsafe
+
232 {
+
233
+
234 NativeMethods.Datalayer.DLR_systemSetBfbsPath(_nativePtr, valueBuffer.ToNativePtr());
+
235 }
+
236 }
+
237 }
+
238
+
239 #endregion
+
240
+
241 #region Public Methods
+
242
+
255 public void Start(bool startBroker = false)
+
256 {
+
257 if (IsDisposed)
+
258 {
+
259 throw new ObjectDisposedException(Utils.Strings.ErrorObjectDisposed);
+
260 }
+
261
+
262 unsafe
+
263 {
+
264 NativeMethods.Datalayer.DLR_systemStart(_nativePtr, Convert.ToByte(startBroker));
+
265 }
+
266 _isStarted = true;
+
267 }
+
268
+
273 public void Stop()
+
274 {
+
275 //If the system has been stopped, it's completely useless
+
276
+
277 if (IsDisposed)
+
278 {
+
279 throw new ObjectDisposedException(Utils.Strings.ErrorObjectDisposed);
+
280 }
+
281
+
282 //We have to delete the children BEFORE stopping, else stop never returns (hang)
+
283 DeleteChildren();
+
284
+
285 unsafe
+
286 {
+
287 NativeMethods.Datalayer.DLR_systemStop(_nativePtr, Convert.ToByte(true));
+
288 _isStarted = false;
+
289 }
+
290 }
+
291
+ +
298 {
+
299 get
+
300 {
+
301 if (IsDisposed)
+
302 {
+
303 throw new ObjectDisposedException(Utils.Strings.ErrorObjectDisposed);
+
304 }
+
305
+
306 if (_factory == null)
+
307 {
+
308 //System has to be started to get valid factory pointer
+
309 if (!_isStarted)
+
310 {
+
311 throw new InvalidOperationException("DatalayerSystem not started");
+
312 }
+
313
+
314 unsafe
+
315 {
+
316 void* factoryPtr = NativeMethods.Datalayer.DLR_systemFactory(_nativePtr);
+
317 _factory = new Factory(this, factoryPtr);
+
318 }
+
319 }
+
320 return _factory;
+
321 }
+
322 }
+
323
+ +
329 {
+
330 get
+
331 {
+
332 if (IsDisposed)
+
333 {
+
334 throw new ObjectDisposedException(Utils.Strings.ErrorObjectDisposed);
+
335 }
+
336
+
337 if (_converter == null)
+
338 {
+
339 unsafe
+
340 {
+
341 void* converterPtr = NativeMethods.Datalayer.DLR_systemJsonConverter(_nativePtr);
+
342 _converter = new Converter(converterPtr);
+
343 }
+
344 }
+
345 return _converter;
+
346 }
+
347 }
+
348
+
349 #endregion
+
350 }
+
351}
+
Provides the implementation for IDatalayerSystem.
+
string IpcPath
Gets the path for interprocess communication.
+
DatalayerSystem(string ipcPath="")
Initializes a new instance of the DatalayerSystem class.
+
void Stop()
Stops the DatalayerSystem.
+
static readonly string ProtocolSchemeTcp
Gets the protocol scheme for TCP communication. Recommended to connect to a DatalayerSystem not runni...
+
static readonly int DefaultProviderPort
Gets the default Provider port.
+
void Dispose()
Dispose the instance.
+
string BfbsPath
Sets the binary Flatbuffer path, which contains *.bfbs files.
+
static readonly int DefaultClientPort
Gets the default Client port.
+
virtual void Dispose(bool disposing)
Disposes the instance.
+
bool IsStarted
Gets a value that indicates whether the DatalayerSystem is started.
+
static readonly string ProtocolSchemeIpc
Gets the protocol scheme for IPC communication. Recommended to connect to a DatalayerSystem running o...
+
IConverter Converter
Gets the Converter for Variant to JSON conversions.
+
bool IsDisposed
Gets a value that indicates whether the instance is already disposed and useless.
+
IFactory Factory
Gets the Factory to create Clients and Providers.
+
void Start(bool startBroker=false)
Starts the DatalayerSystem.
+
The IConverter interface.
Definition: IConverter.cs:9
+
The IDatalayerSystem interface.
+
The IFactory interface.
Definition: IFactory.cs:9
+ +
+
+ + + + diff --git a/3.4.0/api/net/html/Enums_8cs_source.html b/3.4.0/api/net/html/Enums_8cs_source.html new file mode 100644 index 000000000..ba4fd60be --- /dev/null +++ b/3.4.0/api/net/html/Enums_8cs_source.html @@ -0,0 +1,440 @@ + + + + + + + +ctrlX Data Layer .NET API: D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/Enums.cs Source File +D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/Enums.cs Source File + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Enums.cs
+
+
+
1using System;
+
2
+
3namespace Datalayer
+
4{
+
8 [Flags]
+ +
10 {
+
14 None = 0,
+
18 Read = 1 << 0,
+
22 Write = 1 << 1,
+
26 Create = 1 << 2,
+
30 Delete = 1 << 3,
+
34 Browse = 1 << 4,
+
38 All = ~(~0 << 5)
+
39 }
+
40
+
44 public enum DLR_MEMORYTYPE
+
45 {
+ +
50
+ +
55
+ +
60
+ +
65
+ +
70 }
+
71
+
75 public enum DLR_SCHEMA
+
76 {
+ +
81
+ +
86
+ +
91
+ +
96
+ +
101
+ +
106
+ +
111 }
+
112
+ +
117 {
+
122 Idle,
+
123
+
128 Ping,
+
129
+
134 Reconnect,
+
135 }
+
136
+
140 public enum DLR_RESULT
+
141 {
+
145 DL_OK = 0,
+
146
+ +
151
+
155 DL_FAILED = unchecked((int)0x80000001),
+
156
+
160 DL_INVALID_ADDRESS = unchecked((int)0x80010001),
+
161
+
165 DL_UNSUPPORTED = unchecked((int)0x80010002),
+
166
+
170 DL_OUT_OF_MEMORY = unchecked((int)0x80010003),
+
171
+
175 DL_LIMIT_MIN = unchecked((int)0x80010004),
+
176
+
180 DL_LIMIT_MAX = unchecked((int)0x80010005),
+
181
+
185 DL_TYPE_MISMATCH = unchecked((int)0x80010006),
+
186
+
190 DL_SIZE_MISMATCH = unchecked((int)0x80010007),
+
191
+
195 DL_INVALID_FLOATINGPOINT = unchecked((int)0x80010009),
+
196
+
200 DL_INVALID_HANDLE = unchecked((int)0x8001000A),
+
201
+
205 DL_INVALID_OPERATION_MODE = unchecked((int)0x8001000B),
+
206
+
210 DL_INVALID_CONFIGURATION = unchecked((int)0x8001000C),
+
211
+
215 DL_INVALID_VALUE = unchecked((int)0x8001000D),
+
216
+
220 DL_SUBMODULE_FAILURE = unchecked((int)0x8001000E),
+
221
+
225 DL_TIMEOUT = unchecked((int)0x8001000F),
+
226
+
230 DL_ALREADY_EXISTS = unchecked((int)0x80010010),
+
231
+
235 DL_CREATION_FAILED = unchecked((int)0x80010011),
+
236
+
240 DL_VERSION_MISMATCH = unchecked((int)0x80010012),
+
241
+
245 DL_DEPRECATED = unchecked((int)0x80010013),
+
246
+
250 DL_PERMISSION_DENIED = unchecked((int)0x80010014),
+
251
+
255 DL_NOT_INITIALIZED = unchecked((int)0x80010015),
+
256
+
260 DL_MISSING_ARGUMENT = unchecked((int)0x80010016),
+
261
+
265 DL_TOO_MANY_ARGUMENTS = unchecked((int)0x80010017),
+
266
+
270 DL_RESOURCE_UNAVAILABLE = unchecked((int)0x80010018),
+
271
+
275 DL_COMMUNICATION_ERROR = unchecked((int)0x80010019),
+
276
+
280 DL_TOO_MANY_OPERATIONS = unchecked((int)0x8001001A),
+
281
+
285 DL_WOULD_BLOCK = unchecked((int)0x8001001B),
+
286
+
290 DL_COMM_PROTOCOL_ERROR = unchecked((int)0x80020001),
+
291
+
295 DL_COMM_INVALID_HEADER = unchecked((int)0x80020002),
+
296
+
300 DL_CLIENT_NOT_CONNECTED = unchecked((int)0x80030001),
+
301
+
305 DL_PROVIDER_RESET_TIMEOUT = unchecked((int)0x80040001),
+
306
+
310 DL_PROVIDER_UPDATE_TIMEOUT = unchecked((int)0x80040002),
+
311
+
315 DL_PROVIDER_SUB_HANDLING = unchecked((int)0x80040003),
+
316
+
320 DL_RT_NOTOPEN = unchecked((int)0x80060001),
+
321
+
325 DL_RT_INVALIDOBJECT = unchecked((int)0x80060002),
+
326
+
330 DL_RT_WRONGREVISON = unchecked((int)0x80060003),
+
331
+
335 DL_RT_NOVALIDDATA = unchecked((int)0x80060004),
+
336
+
340 DL_RT_MEMORYLOCKED = unchecked((int)0x80060005),
+
341
+
345 DL_RT_INVALIDMEMORYMAP = unchecked((int)0x80060006),
+
346
+
350 DL_RT_INVALID_RETAIN = unchecked((int)0x80060007),
+
351
+
355 DL_RT_INTERNAL_ERROR = unchecked((int)0x80060008),
+
356
+
360 DL_RT_MALLOC_FAILED = unchecked((int)0x80060009),
+
361
+
365 DL_RT_WOULD_BLOCK = unchecked((int)0x8006000A),
+
366
+
370 DL_SEC_NOTOKEN = unchecked((int)0x80070001),
+
371
+
375 DL_SEC_INVALIDSESSION = unchecked((int)0x80070002),
+
376
+
380 DL_SEC_INVALIDTOKENCONTENT = unchecked((int)0x80070003),
+
381
+
385 DL_SEC_UNAUTHORIZED = unchecked((int)0x80070004),
+
386
+
390 DL_SEC_PAYMENT_REQUIRED = unchecked((int)0x80070005),
+
391 }
+
392
+ +
397 {
+ +
402
+ +
407
+ +
412
+ +
417
+ +
422
+ +
427
+ +
432
+ +
437
+ +
442
+ +
447
+ +
452
+ +
457
+ +
462
+ +
467
+ +
472
+ +
477
+ +
482
+ +
487
+ +
492
+ +
497
+ +
502
+ +
507
+ +
512
+ +
517
+ +
522
+ +
527
+ +
532
+ +
537
+ +
542 }
+
543}
+ +
DLR_RESULT
The result.
Definition: Enums.cs:141
+
@ DL_INVALID_VALUE
Invalid value.
+
@ DL_COMMUNICATION_ERROR
Low level communication error occurred.
+
@ DL_INVALID_ADDRESS
Address not found, address invalid (browse of this node not possible, write -> address not valid).
+
@ DL_RT_INVALIDMEMORYMAP
RT invalid memory map.
+
@ DL_TIMEOUT
Request timeout.
+
@ DL_RT_NOVALIDDATA
RT no valid data.
+
@ DL_RT_INTERNAL_ERROR
RT internal error.
+
@ DL_NOT_INITIALIZED
Object not initialized yet.
+
@ DL_OUT_OF_MEMORY
Out of memory or resources (RAM, sockets, handles, disk space ...).
+
@ DL_INVALID_HANDLE
Invalid handle argument or NULL pointer argument.
+
@ DL_PERMISSION_DENIED
Request declined due to missing permission rights.
+
@ DL_RESOURCE_UNAVAILABLE
Resource unavailable.
+
@ DL_CLIENT_NOT_CONNECTED
Client not connected.
+
@ DL_OK_NO_CONTENT
Function call succeeded with no content.
+
@ DL_RT_WRONGREVISON
RT wrong memory revision.
+
@ DL_RT_NOTOPEN
RT not open.
+
@ DL_SEC_NOTOKEN
No token found.
+
@ DL_VERSION_MISMATCH
Version conflict.
+
@ DL_MISSING_ARGUMENT
Missing argument (eg. missing argument in fbs).
+
@ DL_RT_INVALIDOBJECT
RT invalid object.
+
@ DL_COMM_PROTOCOL_ERROR
Internal protocol error.
+
@ DL_RT_MEMORYLOCKED
RT memory already locked.
+
@ DL_DEPRECATED
Deprecated - function not longer supported.
+
@ DL_COMM_INVALID_HEADER
Internal header mismatch.
+
@ DL_PROVIDER_UPDATE_TIMEOUT
Provider update timeout.
+
@ DL_TYPE_MISMATCH
Wrong flatbuffer type, wrong data type.
+
@ DL_WOULD_BLOCK
Request would block, you have called a synchronous function in a callback from a asynchronous functio...
+
@ DL_TOO_MANY_ARGUMENTS
To many arguments.
+
@ DL_RT_WOULD_BLOCK
BeginAccess would block because there are no data.
+
@ DL_SEC_INVALIDTOKENCONTENT
Token has wrong content.
+
@ DL_PROVIDER_RESET_TIMEOUT
Provider reset timeout.
+
@ DL_SIZE_MISMATCH
Size mismatch, present size doesn't match requested size.
+
@ DL_FAILED
Function call failed.
+
@ DL_LIMIT_MAX
The maximum of a limitation is exceeded.
+
@ DL_LIMIT_MIN
The minimum of a limitation is exceeded.
+
@ DL_INVALID_FLOATINGPOINT
Invalid floating point number.
+
@ DL_SEC_PAYMENT_REQUIRED
Payment required.
+
@ DL_UNSUPPORTED
Function not implemented.
+
@ DL_ALREADY_EXISTS
Create: resource already exists.
+
@ DL_INVALID_OPERATION_MODE
Not accessible due to invalid operation mode (write not possible).
+
@ DL_CREATION_FAILED
Error during creation.
+
@ DL_SEC_UNAUTHORIZED
Unauthorized.
+
@ DL_SEC_INVALIDSESSION
Token not valid (session not found).
+
@ DL_RT_INVALID_RETAIN
RT invalid retain.
+
@ DL_OK
Function call succeeded.
+
@ DL_TOO_MANY_OPERATIONS
Request can't be handled due to too many operations.
+
@ DL_INVALID_CONFIGURATION
Mismatch of this value with other configured values.
+
@ DL_SUBMODULE_FAILURE
Error in submodule.
+
@ DL_PROVIDER_SUB_HANDLING
Provider default subscription handling.
+
@ DL_RT_MALLOC_FAILED
Allocation of shared memory failed - datalayer-shm connected?
+
DLR_MEMORYTYPE
The memory type.
Definition: Enums.cs:45
+
@ MemoryType_SharedRetain
Shared retain memory type.
+
@ MemoryType_Output
Output memory type.
+
@ MemoryType_Shared
Shared memory type.
+
@ MemoryType_Unknown
Unknown memory type.
+
@ MemoryType_Input
Input memory type.
+
DLR_TIMEOUT_SETTING
The timeout setting.
Definition: Enums.cs:117
+
@ Reconnect
Timeout a reconnect attempt will be done if client looses connection to broker. Default: 1000 ms.
+
@ Ping
Timeout to wait for a response of a request. If timeout is exceeded, the request will be aborted with...
+
@ Idle
Timeout to check whether the broker is still active when client is idle. Default: 30000 ms.
+
AllowedOperationFlags
The AllowedOperationFlags enumeration flags.
Definition: Enums.cs:10
+ + + + + + + +
DLR_VARIANT_TYPE
DLR_VARIANT_TYPE.
Definition: Enums.cs:397
+
@ DLR_VARIANT_TYPE_ARRAY_OF_INT64
Array of Signed int 64 bit.
+
@ DLR_VARIANT_TYPE_STRING
String (UTF-8)
+
@ DLR_VARIANT_TYPE_UINT8
Unsigned int 8 bit.
+
@ DLR_VARIANT_TYPE_INT8
Signed int 8 bit.
+
@ DLR_VARIANT_TYPE_UINT32
Unsigned int 32 bit.
+
@ DLR_VARIANT_TYPE_UINT64
Unsigned int 64 bit.
+
@ DLR_VARIANT_TYPE_ARRAY_OF_INT16
Array of Signed int 16 bit.
+
@ DLR_VARIANT_TYPE_RAW
Raw bytes.
+
@ DLR_VARIANT_TYPE_INT64
Signed int 64 bit.
+
@ DLR_VARIANT_TYPE_ARRAY_OF_UINT32
Array of Unsigned int 32 bit.
+
@ DLR_VARIANT_TYPE_FLATBUFFERS
Bytes as a complex data type encoded as a flatbuffer.
+
@ DLR_VARIANT_TYPE_ARRAY_OF_INT32
Array of Signed int 32 bit.
+
@ DLR_VARIANT_TYPE_ARRAY_OF_UINT64
Array of Unsigned int 64 bit.
+
@ DLR_VARIANT_TYPE_ARRAY_OF_FLOAT64
Array of float 64 bit.
+
@ DLR_VARIANT_TYPE_ARRAY_OF_UINT16
Array of Unsigned int 16 bit.
+
@ DLR_VARIANT_TYPE_INT32
Signed int 32 bit.
+
@ DLR_VARIANT_TYPE_ARRAY_OF_STRING
Array of string (UTF-8)
+
@ DLR_VARIANT_TYPE_ARRAY_OF_BOOL8
Array of bool 8 bit.
+
@ DLR_VARIANT_TYPE_BOOL8
Bool 8 bit.
+
@ DLR_VARIANT_TYPE_TIMESTAMP
Timestamp (FILETIME) 64 bit 100ns since 1.1.1601 (UTC)
+
@ DLR_VARIANT_TYPE_ARRAY_OF_TIMESTAMP
Array of Timestamp (FILETIME) 64 bit 100ns since 1.1.1601 (UTC)
+
@ DLR_VARIANT_TYPE_UINT16
Unsigned int 16 bit.
+
@ DLR_VARIANT_TYPE_ARRAY_OF_INT8
Array of Signed int 8 bit.
+
@ DLR_VARIANT_TYPE_FLOAT32
Float 32 bit.
+
@ DLR_VARIANT_TYPE_INT16
Signed int 16 bit.
+
@ DLR_VARIANT_TYPE_ARRAY_OF_UINT8
Array of Unsigned int 8 bit.
+
@ DLR_VARIANT_TYPE_FLOAT64
Float 64 bit.
+
@ DLR_VARIANT_TYPE_UNKNOWN
Unknown datatype.
+
@ DLR_VARIANT_TYPE_ARRAY_OF_FLOAT32
Array of float 32 bit.
+
DLR_SCHEMA
The schema.
Definition: Enums.cs:76
+
@ DLR_SCHEMA_MEMORY_MAP
Map schema.
+
@ DLR_SCHEMA_PROBLEM
Problem schema.
+
@ DLR_SCHEMA_METADATA
Metadata schema.
+
@ DLR_SCHEMA_REFLECTION
Reflection schema.
+
@ DLR_SCHEMA_DIAGNOSIS
Diagnosis schema.
+
@ DLR_SCHEMA_TOKEN
Token schema.
+
@ DLR_SCHEMA_MEMORY
Memory schema.
+
+
+ + + + diff --git a/3.4.0/api/net/html/IBulkItem_8cs_source.html b/3.4.0/api/net/html/IBulkItem_8cs_source.html new file mode 100644 index 000000000..ad616c42c --- /dev/null +++ b/3.4.0/api/net/html/IBulkItem_8cs_source.html @@ -0,0 +1,136 @@ + + + + + + + +ctrlX Data Layer .NET API: D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/IBulkItem.cs Source File +D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/IBulkItem.cs Source File + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
IBulkItem.cs
+
+
+
1using System;
+
2
+
3namespace Datalayer
+
4{
+
8 public interface IBulkItem
+
9 {
+
13 string Address { get; }
+
14
+
18 IVariant Value { get; }
+
19
+ +
24
+
28 DateTime Timestamp { get; }
+
29 }
+
30}
+
The IBulkItem interface.
Definition: IBulkItem.cs:9
+
IVariant Value
Gets the value.
Definition: IBulkItem.cs:18
+
DateTime Timestamp
Gets the timestamp.
Definition: IBulkItem.cs:28
+
string Address
Gets the address.
Definition: IBulkItem.cs:13
+
DLR_RESULT Result
Gets the result.
Definition: IBulkItem.cs:23
+
The IVariant interface.
Definition: IVariant.cs:10
+ +
DLR_RESULT
The result.
Definition: Enums.cs:141
+
+
+ + + + diff --git a/3.4.0/api/net/html/IBulk_8cs_source.html b/3.4.0/api/net/html/IBulk_8cs_source.html new file mode 100644 index 000000000..b1f4d893e --- /dev/null +++ b/3.4.0/api/net/html/IBulk_8cs_source.html @@ -0,0 +1,127 @@ + + + + + + + +ctrlX Data Layer .NET API: D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/IBulk.cs Source File +D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/IBulk.cs Source File + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
IBulk.cs
+
+
+
1using System;
+
2
+
3namespace Datalayer
+
4{
+
8 public interface IBulk : INativeDisposable
+
9 {
+
14 IBulkItem[] Items { get; }
+
15 }
+
16}
+
The IBulkItem interface.
Definition: IBulkItem.cs:9
+
The IBulk interface.
Definition: IBulk.cs:9
+
IBulkItem[] Items
Gets the items.
Definition: IBulk.cs:14
+
The INativeDisposable interface.
+ +
+
+ + + + diff --git a/3.4.0/api/net/html/IClientAsyncBulkResult_8cs_source.html b/3.4.0/api/net/html/IClientAsyncBulkResult_8cs_source.html new file mode 100644 index 000000000..655ad28ad --- /dev/null +++ b/3.4.0/api/net/html/IClientAsyncBulkResult_8cs_source.html @@ -0,0 +1,128 @@ + + + + + + + +ctrlX Data Layer .NET API: D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/IClientAsyncBulkResult.cs Source File +D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/IClientAsyncBulkResult.cs Source File + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
IClientAsyncBulkResult.cs
+
+
+
1namespace Datalayer
+
2{
+
6 public interface IClientAsyncBulkResult
+
7 {
+
11 IBulkItem[] Items { get; }
+
12
+ +
17 }
+
18}
+
The IBulkItem interface.
Definition: IBulkItem.cs:9
+
The IClientAsyncBulkResult interface.
+
IBulkItem[] Items
Gets the items.
+
DLR_RESULT Result
Gets the result.
+ +
DLR_RESULT
The result.
Definition: Enums.cs:141
+
+
+ + + + diff --git a/3.4.0/api/net/html/IClientAsyncResult_8cs_source.html b/3.4.0/api/net/html/IClientAsyncResult_8cs_source.html new file mode 100644 index 000000000..59ef9d235 --- /dev/null +++ b/3.4.0/api/net/html/IClientAsyncResult_8cs_source.html @@ -0,0 +1,128 @@ + + + + + + + +ctrlX Data Layer .NET API: D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/IClientAsyncResult.cs Source File +D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/IClientAsyncResult.cs Source File + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
IClientAsyncResult.cs
+
+
+
1namespace Datalayer
+
2{
+
6 public interface IClientAsyncResult
+
7 {
+
11 IVariant Value { get; }
+
12
+ +
17 }
+
18}
+
The IClientAsyncResult interface.
+
IVariant Value
Gets the value.
+
DLR_RESULT Result
Gets the result.
+
The IVariant interface.
Definition: IVariant.cs:10
+ +
DLR_RESULT
The result.
Definition: Enums.cs:141
+
+
+ + + + diff --git a/3.4.0/api/net/html/IClient_8cs_source.html b/3.4.0/api/net/html/IClient_8cs_source.html new file mode 100644 index 000000000..9d7ea784c --- /dev/null +++ b/3.4.0/api/net/html/IClient_8cs_source.html @@ -0,0 +1,265 @@ + + + + + + + +ctrlX Data Layer .NET API: D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/IClient.cs Source File +D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/IClient.cs Source File + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
IClient.cs
+
+
+
1using System;
+
2using System.Threading.Tasks;
+
3
+
4namespace Datalayer
+
5{
+
9 public interface IClient : INativeDisposable
+
10 {
+ +
15
+
20 bool IsConnected { get; }
+
21
+ +
27
+ +
34
+ +
43
+ +
50
+
56 Task<IClientAsyncResult> PingAsync();
+
57
+
65 (DLR_RESULT result, IVariant value) Read(string address);
+
66
+
74 Task<IClientAsyncResult> ReadAsync(string address);
+
75
+
84 Task<IClientAsyncResult> ReadAsync(string address, IVariant args);
+
85
+
94 (DLR_RESULT result, IVariant value) Read(string address, IVariant args);
+
95
+
103
+
104 //[Obsolete("Please use the corresponding bulk method.")]
+
105 (DLR_RESULT[] result, IVariant[] value) ReadMulti(string[] addresses);
+
106
+
114 (DLR_RESULT result, IBulkItem[] items) BulkRead(string[] addresses);
+
115
+
125 (DLR_RESULT result, IBulkItem[] items) BulkRead(string[] addresses, IVariant[] args);
+
126
+
134 Task<IClientAsyncBulkResult> BulkReadAsync(string[] addresses);
+
135
+
145 Task<IClientAsyncBulkResult> BulkReadAsync(string[] addresses, IVariant[] args);
+
146
+
154 //[Obsolete("Please use the corresponding bulk method.")]
+
155 Task<IClientAsyncResult[]> ReadMultiAsync(string[] addresses);
+
156
+
165 (DLR_RESULT result, IVariant value) ReadJson(string address, int indentStep = 0);
+
166
+
176 (DLR_RESULT result, IVariant value) ReadJson(string address, IVariant args, int indentStep = 0);
+
177
+
186 Task<IClientAsyncResult> ReadJsonAsync(string address, int indentStep = 0);
+
187
+
197 Task<IClientAsyncResult> ReadJsonAsync(string address, IVariant args, int indentStep = 0);
+
198
+
206 (DLR_RESULT result, IVariant value) ReadMetadata(string address);
+
207
+
215 Task<IClientAsyncResult> ReadMetadataAsync(string address);
+
216
+
224 (DLR_RESULT result, IBulkItem[] items) BulkReadMetadata(string[] addresses);
+
225
+
233 Task<IClientAsyncBulkResult> BulkReadMetadataAsync(string[] addresses);
+
234
+
243 DLR_RESULT Write(string address, IVariant writeValue);
+
244
+
253 Task<IClientAsyncResult> WriteAsync(string address, IVariant writeValue);
+
254
+
264 //[Obsolete("Please use the corresponding bulk method.")]
+
265 DLR_RESULT[] WriteMulti(string[] addresses, IVariant[] writeValues);
+
266
+
276 //[Obsolete("Please use the corresponding bulk method.")]
+
277 Task<IClientAsyncResult[]> WriteMultiAsync(string[] addresses, IVariant[] writeValues);
+
278
+
288 (DLR_RESULT result, IBulkItem[] items) BulkWrite(string[] addresses, IVariant[] writeValues);
+
289
+
299 Task<IClientAsyncBulkResult> BulkWriteAsync(string[] addresses, IVariant[] writeValues);
+
300
+
309 (DLR_RESULT, IVariant error) WriteJson(string address, string json);
+
310
+
319 Task<IClientAsyncResult> WriteJsonAsync(string address, string json);
+
320
+
328 (DLR_RESULT result, IVariant value) Browse(string address);
+
329
+
337 Task<IClientAsyncResult> BrowseAsync(string address);
+
338
+
346 (DLR_RESULT result, IBulkItem[] items) BulkBrowse(string[] addresses);
+
347
+
355 Task<IClientAsyncBulkResult> BulkBrowseAsync(string[] addresses);
+
356
+
365 (DLR_RESULT result, IVariant value) Create(string address, IVariant args);
+
366
+
382 Task<IClientAsyncResult> CreateAsync(string address, IVariant args);
+
383
+
392 (DLR_RESULT result, IBulkItem[] items) BulkCreate(string[] addresses, IVariant[] args);
+
393
+
402 Task<IClientAsyncBulkResult> BulkCreateAsync(string[] addresses, IVariant[] args);
+
403
+
411 DLR_RESULT Remove(string address);
+
412
+
420 Task<IClientAsyncResult> RemoveAsync(string address);
+
421
+
429 (DLR_RESULT result, IBulkItem[] items) BulkRemove(string[] addresses);
+
430
+
438 Task<IClientAsyncBulkResult> BulkRemoveAsync(string[] addresses);
+
439
+
448 (DLR_RESULT result, ISubscription subscription) CreateSubscription(IVariant subscriptionPropertiesFlatbuffers, object userData);
+
449
+
475 Task<ISubscriptionAsyncResult> CreateSubscriptionAsync(IVariant subscriptionPropertiesFlatbuffers, object userData);
+
476 }
+
477}
+
The IBulkItem interface.
Definition: IBulkItem.cs:9
+
The IClient interface.
Definition: IClient.cs:10
+
Task< IClientAsyncResult > ReadJsonAsync(string address, IVariant args, int indentStep=0)
Reads a node value as JSON with arguments asynchronously.
+
DLR_RESULT[] result
Reads values from a list of nodes.
Definition: IClient.cs:105
+
Task< IClientAsyncResult > CreateAsync(string address, IVariant args)
Creates a node with arguments asynchronously.
+
DLR_RESULT[] WriteMulti(string[] addresses, IVariant[] writeValues)
Writes a list of values to a list of nodes.
+
Task< IClientAsyncBulkResult > BulkReadAsync(string[] addresses)
Reads values from a list of nodes asynchronously.
+
DLR_RESULT
Writes a JSON value to a node.
Definition: IClient.cs:309
+
Task< IClientAsyncResult > ReadJsonAsync(string address, int indentStep=0)
Reads a node value as JSON asynchronously.
+
DLR_RESULT Remove(string address)
Removes a node.
+
Task< IClientAsyncBulkResult > BulkBrowseAsync(string[] addresses)
Browses a list of nodes asynchronously.
+
Task< IClientAsyncBulkResult > BulkRemoveAsync(string[] addresses)
Removes a list of nodes asynchronously.
+
Task< IClientAsyncBulkResult > BulkReadMetadataAsync(string[] addresses)
Reads the metadata from a list of nodes asynchronously.
+
Task< IClientAsyncResult > PingAsync()
Pings the remote asynchronously.
+
DLR_RESULT Ping()
Pings the remote.
+
Task< IClientAsyncBulkResult > BulkWriteAsync(string[] addresses, IVariant[] writeValues)
Writes a list of values to a list of nodes asynchronously.
+
Task< IClientAsyncBulkResult > BulkCreateAsync(string[] addresses, IVariant[] args)
Creates a list of nodes with arguments asynchronously.
+
Task< IClientAsyncResult[]> ReadMultiAsync(string[] addresses)
Reads values from a list of nodes asynchronously.
+
Task< ISubscriptionAsyncResult > CreateSubscriptionAsync(IVariant subscriptionPropertiesFlatbuffers, object userData)
Creates an subscription asynchronously.
+
Task< IClientAsyncBulkResult > BulkReadAsync(string[] addresses, IVariant[] args)
Reads values from a list of nodes with arguments asynchronously.
+
Task< IClientAsyncResult > WriteAsync(string address, IVariant writeValue)
Writes a value to a node asynchronously.
+
DLR_RESULT result
Reads a node value.
Definition: IClient.cs:65
+
DLR_RESULT Write(string address, IVariant writeValue)
Writes the value to a node.
+
Task< IClientAsyncResult[]> WriteMultiAsync(string[] addresses, IVariant[] writeValues)
Writes a list of values to a list of nodes asynchronously.
+
IVariant AuthToken
Gets the authentication token (JWT) as string.
Definition: IClient.cs:33
+
Task< IClientAsyncResult > WriteJsonAsync(string address, string json)
Writes a JSON value to a node asynchronously.
+
bool IsConnected
Checks the connection.
Definition: IClient.cs:20
+
Task< IClientAsyncResult > RemoveAsync(string address)
Removes a node asynchronously.
+
IDatalayerSystem System
Gets the system.
Definition: IClient.cs:14
+
Task< IClientAsyncResult > BrowseAsync(string address)
Browses a node asynchronously.
+
DLR_RESULT SetTimeout(DLR_TIMEOUT_SETTING timeout, uint value)
Sets the timeout of each request.
+
Task< IClientAsyncResult > ReadAsync(string address, IVariant args)
Reads a node value with arguments asynchronously.
+
DLR_RESULT ConnectionStatus
Gets the connection status.
Definition: IClient.cs:26
+
Task< IClientAsyncResult > ReadAsync(string address)
Reads a node value asynchronously.
+
Task< IClientAsyncResult > ReadMetadataAsync(string address)
Reads the metadata of a node asynchronously.
+
The IDatalayerSystem interface.
+
The INativeDisposable interface.
+
The ISubscription interface.
+
The IVariant interface.
Definition: IVariant.cs:10
+ +
DLR_RESULT
The result.
Definition: Enums.cs:141
+
DLR_TIMEOUT_SETTING
The timeout setting.
Definition: Enums.cs:117
+ + + +
+
+ + + + diff --git a/3.4.0/api/net/html/IConverter_8cs_source.html b/3.4.0/api/net/html/IConverter_8cs_source.html new file mode 100644 index 000000000..fb996eee9 --- /dev/null +++ b/3.4.0/api/net/html/IConverter_8cs_source.html @@ -0,0 +1,136 @@ + + + + + + + +ctrlX Data Layer .NET API: D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/IConverter.cs Source File +D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/IConverter.cs Source File + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
IConverter.cs
+
+
+
1using System;
+
2
+
3namespace Datalayer
+
4{
+
8 public interface IConverter
+
9 {
+
17 (DLR_RESULT result, IVariant value) GenerateJsonSimple(IVariant value, int indentStep = 0);
+
18
+
27 (DLR_RESULT result, IVariant value) GenerateJsonComplex(IVariant valueFlatbuffers, IVariant typeFlatbuffers, int indentStep = 0);
+
28
+
35 (DLR_RESULT result, IVariant value, IVariant error) ParseJsonSimple(string json);
+
36
+
44 (DLR_RESULT result, IVariant value, IVariant error) ParseJsonComplex(string json, IVariant typeFlatbuffers);
+
45
+
51 (DLR_RESULT result, IVariant value) GetSchema(DLR_SCHEMA schema);
+
52 }
+
53}
+
The IConverter interface.
Definition: IConverter.cs:9
+
DLR_RESULT result
Generates a JSON string out of a simple Variant.
Definition: IConverter.cs:17
+
The IVariant interface.
Definition: IVariant.cs:10
+ +
DLR_RESULT
The result.
Definition: Enums.cs:141
+
DLR_SCHEMA
The schema.
Definition: Enums.cs:76
+
+
+ + + + diff --git a/3.4.0/api/net/html/IDataChangedEventArgs_8cs_source.html b/3.4.0/api/net/html/IDataChangedEventArgs_8cs_source.html new file mode 100644 index 000000000..32a9e161a --- /dev/null +++ b/3.4.0/api/net/html/IDataChangedEventArgs_8cs_source.html @@ -0,0 +1,134 @@ + + + + + + + +ctrlX Data Layer .NET API: D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/IDataChangedEventArgs.cs Source File +D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/IDataChangedEventArgs.cs Source File + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
IDataChangedEventArgs.cs
+
+
+
1namespace Datalayer
+
2{
+
6 public interface IDataChangedEventArgs
+
7 {
+ +
12
+ +
17
+
21 uint Count { get; }
+
22
+
26 object UserData { get; }
+
27 }
+
28}
+
The IDataChangedEventArgs interface.
+ +
INotifyItem Item
Gets the item.
+
object UserData
Gets the user data.
+
DLR_RESULT Result
Gets the result.
+
The INotifyItem interface.
Definition: INotifyItem.cs:7
+ +
DLR_RESULT
The result.
Definition: Enums.cs:141
+
+
+ + + + diff --git a/3.4.0/api/net/html/IDatalayerSystem_8cs_source.html b/3.4.0/api/net/html/IDatalayerSystem_8cs_source.html new file mode 100644 index 000000000..521b4b634 --- /dev/null +++ b/3.4.0/api/net/html/IDatalayerSystem_8cs_source.html @@ -0,0 +1,146 @@ + + + + + + + +ctrlX Data Layer .NET API: D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/IDatalayerSystem.cs Source File +D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/IDatalayerSystem.cs Source File + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
IDatalayerSystem.cs
+
+
+
1using System;
+
2
+
3namespace Datalayer
+
4{
+ +
9 {
+
14 string IpcPath { get; }
+
15
+
20 bool IsStarted { get; }
+
21
+
34 void Start(bool startBroker);
+
35
+
40 void Stop();
+
41
+ +
48
+ +
54
+
60 string BfbsPath { set; }
+
61 }
+
62}
+
The IConverter interface.
Definition: IConverter.cs:9
+
The IDatalayerSystem interface.
+
string IpcPath
Gets the interprocess communication path.
+
void Stop()
Stops the DatalayerSystem.
+
string BfbsPath
Sets the binary Flatbuffer path, which contains *.bfbs files.
+
bool IsStarted
Checks if the DatalayerSystem is started.
+
IConverter Converter
Gets the Converter for Variant to JSON conversions.
+
void Start(bool startBroker)
Starts the DatalayerSystem.
+
IFactory Factory
Gets the Factory to create Clients and Providers.
+
The IFactory interface.
Definition: IFactory.cs:9
+
The INativeDisposable interface.
+ +
+
+ + + + diff --git a/3.4.0/api/net/html/IFactory_8cs_source.html b/3.4.0/api/net/html/IFactory_8cs_source.html new file mode 100644 index 000000000..365763142 --- /dev/null +++ b/3.4.0/api/net/html/IFactory_8cs_source.html @@ -0,0 +1,130 @@ + + + + + + + +ctrlX Data Layer .NET API: D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/IFactory.cs Source File +D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/IFactory.cs Source File + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
IFactory.cs
+
+
+
1using System;
+
2
+
3namespace Datalayer
+
4{
+
8 public interface IFactory
+
9 {
+
17 IClient CreateClient(string remote);
+
18
+
26 IProvider CreateProvider(string remote);
+
27 }
+
28}
+
The IClient interface.
Definition: IClient.cs:10
+
The IFactory interface.
Definition: IFactory.cs:9
+
IClient CreateClient(string remote)
Creates a ctrlX Data Layer client and connects. Automatically reconnects if the connection is interru...
+
IProvider CreateProvider(string remote)
Creates a ctrlX Data Layer provider and connects. Automatically reconnects if the connection is inter...
+
The IProvider interface.
Definition: IProvider.cs:9
+ +
+
+ + + + diff --git a/3.4.0/api/net/html/INativeDisposable_8cs_source.html b/3.4.0/api/net/html/INativeDisposable_8cs_source.html new file mode 100644 index 000000000..e22f7bf32 --- /dev/null +++ b/3.4.0/api/net/html/INativeDisposable_8cs_source.html @@ -0,0 +1,125 @@ + + + + + + + +ctrlX Data Layer .NET API: D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/INativeDisposable.cs Source File +D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/INativeDisposable.cs Source File + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
INativeDisposable.cs
+
+
+
1using System;
+
2
+
3namespace Datalayer
+
4{
+
8 public interface INativeDisposable : IDisposable
+
9 {
+
13 bool IsDisposed { get; }
+
14 }
+
15}
+
The INativeDisposable interface.
+
bool IsDisposed
Checks disposed.
+ +
+
+ + + + diff --git a/3.4.0/api/net/html/INotifyItem_8cs_source.html b/3.4.0/api/net/html/INotifyItem_8cs_source.html new file mode 100644 index 000000000..e6f222a4e --- /dev/null +++ b/3.4.0/api/net/html/INotifyItem_8cs_source.html @@ -0,0 +1,127 @@ + + + + + + + +ctrlX Data Layer .NET API: D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/INotifyItem.cs Source File +D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/INotifyItem.cs Source File + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
INotifyItem.cs
+
+
+
1namespace Datalayer
+
2{
+
6 public interface INotifyItem
+
7 {
+
11 IVariant Value { get; }
+
12
+
16 IVariant Info { get; }
+
17 }
+
18}
+
The INotifyItem interface.
Definition: INotifyItem.cs:7
+
IVariant Value
Gets the value.
Definition: INotifyItem.cs:11
+
IVariant Info
Gets the info.
Definition: INotifyItem.cs:16
+
The IVariant interface.
Definition: IVariant.cs:10
+ +
+
+ + + + diff --git a/3.4.0/api/net/html/IProviderNodeHandler_8cs_source.html b/3.4.0/api/net/html/IProviderNodeHandler_8cs_source.html new file mode 100644 index 000000000..8f61145fc --- /dev/null +++ b/3.4.0/api/net/html/IProviderNodeHandler_8cs_source.html @@ -0,0 +1,140 @@ + + + + + + + +ctrlX Data Layer .NET API: D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/IProviderNodeHandler.cs Source File +D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/IProviderNodeHandler.cs Source File + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
IProviderNodeHandler.cs
+
+
+
1namespace Datalayer
+
2{
+
6 public interface IProviderNodeHandler
+
7 {
+
14 void OnCreate(string address, IVariant args, IProviderNodeResult result);
+
15
+
21 void OnRemove(string address, IProviderNodeResult result);
+
22
+
28 void OnMetadata(string address, IProviderNodeResult result);
+
29
+
35 void OnBrowse(string address, IProviderNodeResult result);
+
36
+
43 void OnRead(string address, IVariant args, IProviderNodeResult result);
+
44
+
51 void OnWrite(string address, IVariant writeValue, IProviderNodeResult result);
+
52 }
+
53}
+
The IProviderNodeHandler interface.
+
void OnRemove(string address, IProviderNodeResult result)
Method to be called for a remove request.
+
void OnCreate(string address, IVariant args, IProviderNodeResult result)
Method to be called for a create request.
+
void OnMetadata(string address, IProviderNodeResult result)
Method to be called for a metadata request.
+
void OnRead(string address, IVariant args, IProviderNodeResult result)
Method to be called for a read request.
+
void OnBrowse(string address, IProviderNodeResult result)
Method to be called for a browse request.
+
void OnWrite(string address, IVariant writeValue, IProviderNodeResult result)
Method to be called for a write request.
+
The IProviderNodeResult interface.
+
The IVariant interface.
Definition: IVariant.cs:10
+ +
+
+ + + + diff --git a/3.4.0/api/net/html/IProviderNodeResult_8cs_source.html b/3.4.0/api/net/html/IProviderNodeResult_8cs_source.html new file mode 100644 index 000000000..033e1a9c8 --- /dev/null +++ b/3.4.0/api/net/html/IProviderNodeResult_8cs_source.html @@ -0,0 +1,129 @@ + + + + + + + +ctrlX Data Layer .NET API: D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/IProviderNodeResult.cs Source File +D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/IProviderNodeResult.cs Source File + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
IProviderNodeResult.cs
+
+
+
1
+
2namespace Datalayer
+
3{
+
7 public interface IProviderNodeResult
+
8 {
+
13 void SetResult(DLR_RESULT result);
+
14
+
20 void SetResult(DLR_RESULT result, IVariant value);
+
21 }
+
22}
+
The IProviderNodeResult interface.
+
void SetResult(DLR_RESULT result, IVariant value)
Sets the result
+
void SetResult(DLR_RESULT result)
Sets the result.
+
The IVariant interface.
Definition: IVariant.cs:10
+ +
DLR_RESULT
The result.
Definition: Enums.cs:141
+
+
+ + + + diff --git a/3.4.0/api/net/html/IProviderNode_8cs_source.html b/3.4.0/api/net/html/IProviderNode_8cs_source.html new file mode 100644 index 000000000..bf894b4e1 --- /dev/null +++ b/3.4.0/api/net/html/IProviderNode_8cs_source.html @@ -0,0 +1,135 @@ + + + + + + + +ctrlX Data Layer .NET API: D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/IProviderNode.cs Source File +D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/IProviderNode.cs Source File + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
IProviderNode.cs
+
+
+
1using System;
+
2
+
3namespace Datalayer
+
4{
+ +
9 {
+ +
14
+ +
19
+
29 DLR_RESULT SetTimeout(uint timeoutMillis);
+
30 }
+
31}
+
The INativeDisposable interface.
+
The IProviderNodeHandler interface.
+
The IProvider interface.
Definition: IProviderNode.cs:9
+
IProvider Provider
Gets the provider.
+
DLR_RESULT SetTimeout(uint timeoutMillis)
Set timeout for a node for asynchron requests (default value is 10000 ms). If the handler method of t...
+
IProviderNodeHandler Handler
Gets the handler.
+
The IProvider interface.
Definition: IProvider.cs:9
+ +
DLR_RESULT
The result.
Definition: Enums.cs:141
+
+
+ + + + diff --git a/3.4.0/api/net/html/IProvider_8cs_source.html b/3.4.0/api/net/html/IProvider_8cs_source.html new file mode 100644 index 000000000..4d59d34a7 --- /dev/null +++ b/3.4.0/api/net/html/IProvider_8cs_source.html @@ -0,0 +1,167 @@ + + + + + + + +ctrlX Data Layer .NET API: D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/IProvider.cs Source File +D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/IProvider.cs Source File + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
IProvider.cs
+
+
+
1using System;
+
2
+
3namespace Datalayer
+
4{
+
8 public interface IProvider : INativeDisposable
+
9 {
+ +
14
+ +
21
+
26 bool IsConnected { get; }
+
27
+ +
37
+
46 DLR_RESULT RegisterType(string address, string bfbsPath);
+
47
+
56 DLR_RESULT RegisterTypeVariant(string address, IVariant flatbuffers);
+
57
+
65 DLR_RESULT UnregisterType(string address);
+
66
+
75 (DLR_RESULT, IProviderNode) RegisterNode(string address, IProviderNodeHandler handler);
+
76
+
84 DLR_RESULT UnregisterNode(string address);
+
85
+
91 (DLR_RESULT, IVariant) RegisteredNodePaths();
+
92
+
98 (DLR_RESULT, IVariant) RegisteredType(string address);
+
99
+
105 (DLR_RESULT, IVariant) RejectedNodePaths();
+
106
+ +
113
+ +
120 }
+
121}
+
The IDatalayerSystem interface.
+
The INativeDisposable interface.
+
The IProviderNodeHandler interface.
+
The IProvider interface.
Definition: IProviderNode.cs:9
+
The IProvider interface.
Definition: IProvider.cs:9
+
DLR_RESULT
Registers the node to the ctrlX Data Layer.
Definition: IProvider.cs:75
+
DLR_RESULT UnregisterNode(string address)
Unregisters the node from the ctrlX Data Layer.
+
DLR_RESULT PublishEvent(IVariant data, IVariant eventInfo)
Publishes an event.
+
DLR_RESULT RegisterTypeVariant(string address, IVariant flatbuffers)
Registers the type to the ctrlX Data Layer.
+
DLR_RESULT UnregisterType(string address)
Unregisters the type from the ctrlX Data Layer.
+
DLR_RESULT RegisterType(string address, string bfbsPath)
Registers the type to the ctrlX Data Layer.
+
DLR_RESULT Stop()
Stops the provider.
+
IVariant AuthToken
Gets the authentication token (JWT) as flatbuffers 'Token' while processing requests.
Definition: IProvider.cs:20
+
bool IsConnected
Checks the connection.
Definition: IProvider.cs:26
+
DLR_RESULT Start()
Starts the provider.
+
IDatalayerSystem System
Gets the system.
Definition: IProvider.cs:13
+
The IVariant interface.
Definition: IVariant.cs:10
+ +
DLR_RESULT
The result.
Definition: Enums.cs:141
+
+
+ + + + diff --git a/3.4.0/api/net/html/ISubscriptionAsyncResult_8cs_source.html b/3.4.0/api/net/html/ISubscriptionAsyncResult_8cs_source.html new file mode 100644 index 000000000..86bfdcc3d --- /dev/null +++ b/3.4.0/api/net/html/ISubscriptionAsyncResult_8cs_source.html @@ -0,0 +1,125 @@ + + + + + + + +ctrlX Data Layer .NET API: D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/ISubscriptionAsyncResult.cs Source File +D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/ISubscriptionAsyncResult.cs Source File + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
ISubscriptionAsyncResult.cs
+
+
+
1namespace Datalayer
+
2{
+ +
7 {
+ +
12 }
+
13}
+
The IClientAsyncResult interface.
+
The ISubscriptionAsyncResult interface.
+
ISubscription Subscription
Gets the subscription.
+
The ISubscription interface.
+ +
+
+ + + + diff --git a/3.4.0/api/net/html/ISubscription_8cs_source.html b/3.4.0/api/net/html/ISubscription_8cs_source.html new file mode 100644 index 000000000..85ba43143 --- /dev/null +++ b/3.4.0/api/net/html/ISubscription_8cs_source.html @@ -0,0 +1,210 @@ + + + + + + + +ctrlX Data Layer .NET API: D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/ISubscription.cs Source File +D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/ISubscription.cs Source File + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
ISubscription.cs
+
+
+
1using System;
+
2using System.Threading.Tasks;
+
3
+
4namespace Datalayer
+
5{
+
6#if NETSTANDARD2_0
+
10 public static class Subscription
+
11 {
+
12 #region Public Subscription Consts
+
13
+
17 public static readonly uint DefaultKeepaliveIntervalMillis = 60000;
+
18
+
22 public static readonly uint DefaultPublishIntervalMillis = 1000;
+
23
+
27 public static readonly uint DefaultErrorIntervalMillis = 10000;
+
28
+
32 public static readonly ulong DefaultSamplingIntervalMicros = 1000000;
+
33
+
34 #endregion
+
35 }
+
36
+
42 public delegate void DataChangedEventHandler(ISubscription subscription, IDataChangedEventArgs args);
+
43#endif
+
44
+ +
49 {
+
50#if !NETSTANDARD2_0
+
51
+
52 #region Public Subscription Consts
+
53
+
57 public static readonly uint DefaultKeepaliveIntervalMillis = 60000;
+
58
+
62 public static readonly uint DefaultPublishIntervalMillis = 1000;
+
63
+
67 public static readonly uint DefaultErrorIntervalMillis = 10000;
+
68
+
72 public static readonly ulong DefaultSamplingIntervalMicros = 1000000;
+
73
+
74 #endregion
+
75
+ +
82#endif
+
83
+ +
88
+
92 IClient Client { get; }
+
93
+
97 string Id { get; }
+
98
+
102 object UserData { get; }
+
103
+
131 DLR_RESULT Subscribe(string address);
+
132
+
140 Task<ISubscriptionAsyncResult> SubscribeAsync(string address);
+
141
+
149 DLR_RESULT SubscribeMulti(string[] addresses);
+
150
+
158 Task<ISubscriptionAsyncResult> SubscribeMultiAsync(string[] addresses);
+
159
+
167 DLR_RESULT Unsubscribe(string address);
+
168
+
176 Task<ISubscriptionAsyncResult> UnsubscribeAsync(string address);
+
177
+
185 DLR_RESULT UnsubscribeMulti(string[] addresses);
+
186
+
194 Task<ISubscriptionAsyncResult> UnsubscribeMultiAsync(string[] addresses);
+
195
+ +
202
+
208 Task<ISubscriptionAsyncResult> UnsubscribeAllAsync();
+
209 }
+
210}
+
The IClient interface.
Definition: IClient.cs:10
+
The IDataChangedEventArgs interface.
+
The INativeDisposable interface.
+
The ISubscription interface.
+
string Id
Gets the subscription id.
+
IClient Client
Gets the client.
+
static readonly uint DefaultKeepaliveIntervalMillis
The default keep alive interval in milli seconds.
+
Task< ISubscriptionAsyncResult > UnsubscribeAsync(string address)
Unsubscribes to a node asynchronously.
+
delegate void DataChangedEventHandler(ISubscription subscription, IDataChangedEventArgs args)
The DataChanged event delegate.
+
Task< ISubscriptionAsyncResult > SubscribeMultiAsync(string[] addresses)
Subscribes to a list of nodes asynchronously.
+
static readonly ulong DefaultSamplingIntervalMicros
The default sampling interval in micro seconds.
+
DLR_RESULT Subscribe(string address)
Subscribes to a node.
+
static readonly uint DefaultErrorIntervalMillis
The default error interval in milli seconds.
+
DataChangedEventHandler DataChanged
Gets the DataChanged event.
+
DLR_RESULT SubscribeMulti(string[] addresses)
Subscribes to a list of nodes.
+
DLR_RESULT UnsubscribeMulti(string[] addresses)
Unsubscribes to a list of nodes.
+
DLR_RESULT Unsubscribe(string address)
Unsubscribes the node.
+
Task< ISubscriptionAsyncResult > UnsubscribeMultiAsync(string[] addresses)
Unsubscribes a list of nodes asynchronously.
+
Task< ISubscriptionAsyncResult > SubscribeAsync(string address)
Subscribes to a node asynchronously.
+
DLR_RESULT UnsubscribeAll()
Unsubscribes all subscribed nodes.
+
static readonly uint DefaultPublishIntervalMillis
The default publish interval in milli seconds.
+
Task< ISubscriptionAsyncResult > UnsubscribeAllAsync()
Unsubscribes all subscribed nodes asynchronously.
+
object UserData
Gets the user data.
+ +
DLR_RESULT
The result.
Definition: Enums.cs:141
+
+
+ + + + diff --git a/3.4.0/api/net/html/IVariant_8cs_source.html b/3.4.0/api/net/html/IVariant_8cs_source.html new file mode 100644 index 000000000..56f739717 --- /dev/null +++ b/3.4.0/api/net/html/IVariant_8cs_source.html @@ -0,0 +1,253 @@ + + + + + + + +ctrlX Data Layer .NET API: D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/IVariant.cs Source File +D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/IVariant.cs Source File + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
IVariant.cs
+
+
+
1using Google.FlatBuffers;
+
2using System;
+
3
+
4namespace Datalayer
+
5{
+
9 public interface IVariant : INativeDisposable
+
10 {
+
15 object Value { get; }
+
16
+
22 bool Equals(Variant other);
+
23
+ +
28
+ +
35
+
40 string JsonDataType { get; }
+
41
+
46 bool IsArray { get; }
+
47
+
52 bool IsString { get; }
+
53
+
58 bool IsBool { get; }
+
59
+
65 bool IsNumber { get; }
+
66
+
71 bool IsFlatbuffers { get; }
+
72
+
77 bool IsNull { get; }
+
78
+
83 bool ToBool();
+
84
+
90 sbyte ToSByte();
+
91
+
97 byte ToByte();
+
98
+
104 short ToInt16();
+
105
+
111 ushort ToUInt16();
+
112
+
118 int ToInt32();
+
119
+
125 uint ToUInt32();
+
126
+
132 long ToInt64();
+
133
+
139 ulong ToUInt64();
+
140
+
146 float ToFloat();
+
147
+
153 double ToDouble();
+
154
+
162 string ToString();
+
163
+
169 DateTime ToDateTime();
+
170
+
176 bool[] ToBoolArray();
+
177
+
183 sbyte[] ToSByteArray();
+
184
+
190 byte[] ToByteArray();
+
191
+
197 short[] ToInt16Array();
+
198
+
204 ushort[] ToUInt16Array();
+
205
+ +
212
+ +
219
+
225 long[] ToInt64Array();
+
226
+
232 ulong[] ToUInt64Array();
+
233
+
239 float[] ToFloatArray();
+
240
+
245 double[] ToDoubleArray();
+
246
+
251 string[] ToStringArray();
+
252
+
257 DateTime[] ToDateTimeArray();
+
258
+ +
265
+
271 ByteBuffer ToFlatbuffers();
+
272
+
281 (DLR_RESULT result, IVariant value) GetDataFromFlatbuffers(IVariant typeFlatbuffers, string query);
+
282
+ +
290
+ +
298 }
+
299}
+
Provides the implementation for IVariant.
Definition: Variant.cs:18
+
The INativeDisposable interface.
+
The IVariant interface.
Definition: IVariant.cs:10
+
string[] ToStringArray()
Converts the value to an array of strings.
+
short ToInt16()
Converts the value to a 16-bit signed integer.
+
long[] ToInt64Array()
Converts the value to an array of 64-bit signed integers.
+
sbyte ToSByte()
Converts the value to an 8-bit signed integer.
+
float[] ToFloatArray()
Converts the value to an array of float.
+
double ToDouble()
Converts the value to a double-precision floating-point number.
+
string ToString()
Converts the value to string. If the value can't be converted for any reason, an empty string is retu...
+
sbyte[] ToSByteArray()
Converts the value to an array of an 8-bit signed integers.
+
ushort[] ToUInt16Array()
Converts the value to an array of 16-bit unsigned integers.
+
object Value
Gets the value of the variant.
Definition: IVariant.cs:15
+
DateTime ToDateTime()
Converts the value to DateTime.
+
short[] ToInt16Array()
Converts the value to an array of 16-bit signed integers.
+
double[] ToDoubleArray()
Converts the value to an array of double-precision floating-point numbers.
+
ByteBuffer ToFlatbuffers()
Converts the value to flatbuffers.
+
uint ToUInt32()
Converts the value to a 32-bit unsigned integer.
+
byte ToByte()
Converts the value to an 8-bit unsigned integer.
+
ulong[] ToUInt64Array()
Converts the value to an array of 64-bit unsigned integers.
+
bool IsString
Gets a value that indicates whether the Variant contains a string value.
Definition: IVariant.cs:52
+
byte[] ToByteArray()
Converts the value to an array of 8-bit unsigned integers.
+
DLR_RESULT CheckConvert(DLR_VARIANT_TYPE dataType)
Gets a value that indicates whether the variant can be converted to another type.
+
bool IsNull
Checks if the value is null.
Definition: IVariant.cs:77
+
bool Equals(Variant other)
Gets a value that indicates whether the values are equal.
+
bool IsFlatbuffers
Checks if the value is flatbuffers.
Definition: IVariant.cs:71
+
byte[] ToRawByteArray()
Converts the value to an array of 8-bit raw integers.
+
DLR_VARIANT_TYPE DataType
Gets the data type of the variant.
Definition: IVariant.cs:34
+
int GetHashCode()
Gets the hash code of the variant.
+
DLR_RESULT result
Gets data of a complex Variant (flatbuffers) by query.
Definition: IVariant.cs:281
+
bool ToBool()
Converts the value to bool.
+
uint[] ToUInt32Array()
Converts the value to an array of 32-bit unsigned integers.
+
long ToInt64()
Converts the value to a 64-bit signed integer.
+
Variant Clone()
Clones the value.
+
ulong ToUInt64()
Converts the value to a 64-bit unsigned integer.
+
string JsonDataType
Gets the data type as JSON string.
Definition: IVariant.cs:40
+
bool IsBool
Gets a value that indicates whether the Variant contains a boolean value.
Definition: IVariant.cs:58
+
ushort ToUInt16()
Converts the value to a 16-bit unsigned integer.
+
float ToFloat()
Converts the value to float.
+
int ToInt32()
Converts the value to a 32-bit signed integer.
+
bool IsNumber
Gets a value that indicates whether the Variant contains a numeric value Returns false for numeric ar...
Definition: IVariant.cs:65
+
int[] ToInt32Array()
Converts the value to an array of 32-bit signed integers.
+
bool IsArray
Checks if the value is an array.
Definition: IVariant.cs:46
+
DateTime[] ToDateTimeArray()
Converts the value to an array of DateTime.
+
bool[] ToBoolArray()
Converts the value to an array of bool value.
+ +
DLR_RESULT
The result.
Definition: Enums.cs:141
+
DLR_VARIANT_TYPE
DLR_VARIANT_TYPE.
Definition: Enums.cs:397
+
+
+ + + + diff --git a/3.4.0/api/net/html/MetadataBuilder_8cs_source.html b/3.4.0/api/net/html/MetadataBuilder_8cs_source.html new file mode 100644 index 000000000..af76ef9c3 --- /dev/null +++ b/3.4.0/api/net/html/MetadataBuilder_8cs_source.html @@ -0,0 +1,263 @@ + + + + + + + +ctrlX Data Layer .NET API: D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/MetadataBuilder.cs Source File +D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/MetadataBuilder.cs Source File + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
MetadataBuilder.cs
+
+
+
1using comm.datalayer;
+
2using Google.FlatBuffers;
+
3using System.Collections.Generic;
+
4
+
5namespace Datalayer
+
6{
+
10 public class MetadataBuilder
+
11 {
+
15 private readonly FlatBufferBuilder _builder;
+
16
+
20 private readonly List<Offset<Reference>> _references;
+
21
+
25 private readonly List<Offset<Extension>> _extensions;
+
26
+
30 private readonly List<Offset<LocaleText>> _displayNames;
+
31
+
35 private readonly List<Offset<LocaleText>> _descriptions;
+
36
+
40 private StringOffset _descriptionOffset;
+
41
+
45 private StringOffset _descriptionUrlOffset;
+
46
+
50 private NodeClass _nodeClass = NodeClass.Node;
+
51
+
55 private StringOffset _displayNameOffset;
+
56
+
60 private DisplayFormat _displayFormat = DisplayFormat.Auto;
+
61
+
65 private StringOffset _unitOffset;
+
66
+
70 private Offset<AllowedOperations> _allowedOperationsOffset;
+
71
+
78 public MetadataBuilder(AllowedOperationFlags allowedOperationFlags, string description = "",
+
79 string descriptionUrl = "")
+
80 {
+
81 _builder = new FlatBufferBuilder(Variant.DefaultFlatbuffersInitialSize);
+
82 _references = new List<Offset<Reference>>();
+
83 _extensions = new List<Offset<Extension>>();
+
84 _displayNames = new List<Offset<LocaleText>>();
+
85 _descriptions = new List<Offset<LocaleText>>();
+
86
+
87 // Set mandatory fields in constructor
+
88 _allowedOperationsOffset = AllowedOperations.CreateAllowedOperations(_builder,
+
89 (allowedOperationFlags & AllowedOperationFlags.Read) == AllowedOperationFlags.Read,
+
90 (allowedOperationFlags & AllowedOperationFlags.Write) == AllowedOperationFlags.Write,
+
91 (allowedOperationFlags & AllowedOperationFlags.Create) == AllowedOperationFlags.Create,
+
92 (allowedOperationFlags & AllowedOperationFlags.Delete) == AllowedOperationFlags.Delete,
+
93 (allowedOperationFlags & AllowedOperationFlags.Browse) == AllowedOperationFlags.Browse);
+
94 _descriptionOffset = _builder.CreateString(description);
+
95 _descriptionUrlOffset = _builder.CreateString(descriptionUrl);
+
96 }
+
97
+
103 public MetadataBuilder SetNodeClass(NodeClass nodeClass)
+
104 {
+
105 _nodeClass = nodeClass;
+
106 return this;
+
107 }
+
108
+
114 public MetadataBuilder SetDisplayName(string displayName)
+
115 {
+
116 _displayNameOffset = _builder.CreateString(displayName);
+
117 return this;
+
118 }
+
119
+
125 public MetadataBuilder SetDisplayFormat(DisplayFormat displayFormat)
+
126 {
+
127 _displayFormat = displayFormat;
+
128 return this;
+
129 }
+
130
+
136 public MetadataBuilder SetUnit(string unit)
+
137 {
+
138 _unitOffset = _builder.CreateString(unit);
+
139 return this;
+
140 }
+
141
+
148 public MetadataBuilder AddReference(ReferenceType type, string targetAddress)
+
149 {
+
150 _references.Add(Reference.CreateReference(_builder, _builder.CreateString(type.Value), _builder.CreateString(targetAddress)));
+
151 return this;
+
152 }
+
153
+
160 public MetadataBuilder AddExtension(string key, string value)
+
161 {
+
162 _extensions.Add(Extension.CreateExtension(_builder, _builder.CreateString(key), _builder.CreateString(value)));
+
163 return this;
+
164 }
+
165
+
172 public MetadataBuilder AddDisplayName(string localeId, string text)
+
173 {
+
174 _displayNames.Add(LocaleText.CreateLocaleText(_builder, _builder.CreateString(localeId), _builder.CreateString(text)));
+
175 return this;
+
176 }
+
177
+
184 public MetadataBuilder AddDescription(string localeId, string text)
+
185 {
+
186 _descriptions.Add(LocaleText.CreateLocaleText(_builder, _builder.CreateString(localeId), _builder.CreateString(text)));
+
187 return this;
+
188 }
+
189
+
194 public Variant Build()
+
195 {
+
196 var referencesVector = _references.Count == 0
+
197 ? new VectorOffset(0)
+
198 : Reference.CreateSortedVectorOfReference(_builder, _references.ToArray());
+
199 var extensionsVector = _extensions.Count == 0
+
200 ? new VectorOffset(0)
+
201 : Extension.CreateSortedVectorOfExtension(_builder, _extensions.ToArray());
+
202 var descriptionsVector = _descriptions.Count == 0
+
203 ? new VectorOffset(0)
+
204 : LocaleText.CreateSortedVectorOfLocaleText(_builder, _descriptions.ToArray());
+
205 var displayNamesVector = _displayNames.Count == 0
+
206 ? new VectorOffset(0)
+
207 : LocaleText.CreateSortedVectorOfLocaleText(_builder, _displayNames.ToArray());
+
208
+
209 var offsetMetadata = Metadata.CreateMetadata(_builder,
+
210 _nodeClass,
+
211 _allowedOperationsOffset,
+
212 _descriptionOffset,
+
213 _descriptionUrlOffset,
+
214 _displayNameOffset,
+
215 _displayFormat,
+
216 _unitOffset,
+
217 extensionsVector,
+
218 referencesVector,
+
219 descriptionsVector,
+
220 displayNamesVector);
+
221
+
222 Metadata.FinishMetadataBuffer(_builder, offsetMetadata);
+
223 return new Variant(_builder);
+
224 }
+
225 }
+
226}
+
Provides a convenient way to to build up a Metadata flatbuffers.
+
MetadataBuilder SetUnit(string unit)
Sets the unit.
+
MetadataBuilder AddReference(ReferenceType type, string targetAddress)
Adds the reference.
+
MetadataBuilder SetDisplayName(string displayName)
Sets the display name.
+
MetadataBuilder SetNodeClass(NodeClass nodeClass)
Sets the node class.
+
MetadataBuilder SetDisplayFormat(DisplayFormat displayFormat)
Sets the display format.
+
MetadataBuilder AddDescription(string localeId, string text)
Adds the description.
+
MetadataBuilder AddDisplayName(string localeId, string text)
Adds the display name.
+
Variant Build()
Builds this instance.
+
MetadataBuilder AddExtension(string key, string value)
Adds the extension.
+
MetadataBuilder(AllowedOperationFlags allowedOperationFlags, string description="", string descriptionUrl="")
Initializes a new instance of the MetadataBuilder class.
+
Represents a type of reference.
Definition: ReferenceType.cs:7
+
string Value
Gets the value.
+
Provides the implementation for IVariant.
Definition: Variant.cs:18
+
static readonly int DefaultFlatbuffersInitialSize
Gets the default Flatbuffers initial size in bytes.
Definition: Variant.cs:730
+ +
AllowedOperationFlags
The AllowedOperationFlags enumeration flags.
Definition: Enums.cs:10
+
+
+ + + + diff --git a/3.4.0/api/net/html/ProtocolScheme_8cs_source.html b/3.4.0/api/net/html/ProtocolScheme_8cs_source.html new file mode 100644 index 000000000..324880a45 --- /dev/null +++ b/3.4.0/api/net/html/ProtocolScheme_8cs_source.html @@ -0,0 +1,130 @@ + + + + + + + +ctrlX Data Layer .NET API: D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/ProtocolScheme.cs Source File +D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/ProtocolScheme.cs Source File + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
ProtocolScheme.cs
+
+
+
1namespace Datalayer
+
2{
+
3 public enum ProtocolScheme
+
4 {
+
9 AUTO,
+
10
+
14 IPC,
+
15
+
17 // TCP (Transmission Control Protocol)
+
19 TCP
+
20 }
+
21}
+ + + +
@ IPC
IPC (Inter Process Communication)
+
@ AUTO
Autodect the protocol IPC (Inter Process Communication) if running inside SNAP otherwise TCP (Transmi...
+
+
+ + + + diff --git a/3.4.0/api/net/html/ReferenceType_8cs_source.html b/3.4.0/api/net/html/ReferenceType_8cs_source.html new file mode 100644 index 000000000..099120e6a --- /dev/null +++ b/3.4.0/api/net/html/ReferenceType_8cs_source.html @@ -0,0 +1,161 @@ + + + + + + + +ctrlX Data Layer .NET API: D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/ReferenceType.cs Source File +D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/ReferenceType.cs Source File + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
ReferenceType.cs
+
+
+
1namespace Datalayer
+
2{
+
6 public class ReferenceType
+
7 {
+
12 private ReferenceType(string value)
+
13 {
+
14 Value = value;
+
15 }
+
16
+
23 public string Value { get; }
+
24
+
31 public override string ToString()
+
32 {
+
33 return Value;
+
34 }
+
35
+
43 public static ReferenceType ReadType => new ReferenceType("readType");
+
44
+
51 public static ReferenceType ReadInType => new ReferenceType("readInType");
+
52
+
59 public static ReferenceType ReadOutType => new ReferenceType("readOutType");
+
60
+
68 public static ReferenceType WriteType => new ReferenceType("writeType");
+
69
+
76 public static ReferenceType WriteInType => new ReferenceType("writeInType");
+
77
+
84 public static ReferenceType WriteOutType => new ReferenceType("writeOutType");
+
85
+
92 public static ReferenceType CreateType => new ReferenceType("createType");
+
93
+
100 public static ReferenceType Uses => new ReferenceType("uses");
+
101
+
108 public static ReferenceType HasSave => new ReferenceType("hasSave");
+
109 }
+
110}
+
Represents a type of reference.
Definition: ReferenceType.cs:7
+
static ReferenceType ReadType
Gets the type of the read.
+
static ReferenceType ReadOutType
Gets the type of the read out.
+
static ReferenceType HasSave
Gets the has save.
+
static ReferenceType CreateType
Gets the type of the create.
+
static ReferenceType Uses
Gets the uses.
+
static ReferenceType WriteInType
Gets the type of the write in.
+
static ReferenceType WriteOutType
Gets the type of the write out.
+
static ReferenceType WriteType
Gets the type of the write.
+
static ReferenceType ReadInType
Gets the type of the read in.
+
override string ToString()
Converts to string.
+
string Value
Gets the value.
+ +
+
+ + + + diff --git a/3.4.0/api/net/html/Remote_8cs_source.html b/3.4.0/api/net/html/Remote_8cs_source.html new file mode 100644 index 000000000..5801b6f11 --- /dev/null +++ b/3.4.0/api/net/html/Remote_8cs_source.html @@ -0,0 +1,250 @@ + + + + + + + +ctrlX Data Layer .NET API: D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/Remote.cs Source File +D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/Remote.cs Source File + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Remote.cs
+
+
+
1using System;
+
2
+
3namespace Datalayer
+
4{
+
57 public class Remote
+
58 {
+
62 public string Ip { get; private set; }
+
63
+
67 public string User { get; private set; }
+
68
+
72 public string Password { get; private set; }
+
73
+
77 public int? Port { get; private set; }
+
78
+
82 public int SslPort { get; private set; }
+
83
+
87 public ProtocolScheme ProtocolScheme { get; private set; }
+
88
+
100 public Remote(ProtocolScheme protocolScheme = ProtocolScheme.AUTO, string ip = "192.168.1.1", string user = "boschrexroth", string password = "boschrexroth", int sslPort = 443, int? port = null)
+
101 {
+
102 ProtocolScheme = protocolScheme;
+
103 Ip = ip ?? throw new ArgumentNullException(nameof(ip));
+
104 User = user ?? throw new ArgumentNullException(nameof(user));
+
105 Password = password ?? throw new ArgumentNullException(nameof(password));
+
106 SslPort = sslPort;
+
107
+
108 if (port.HasValue)
+
109 {
+
110 Port = port >= 0 ? port.Value : throw new ArgumentException("invalid port");
+
111 }
+
112 }
+
113
+
118 public override string ToString()
+
119 {
+ +
121 {
+ +
123 }
+
124
+
125 return !Port.HasValue ?
+
126 $"{Protocol}{User}:{Password}@{Ip}?sslport={SslPort}" :
+
127 $"{Protocol}{User}:{Password}@{Ip}:{Port.Value}?sslport={SslPort}";
+
128 }
+
129
+
134 public string Protocol
+
135 {
+
136 get
+
137 {
+
138 switch (ProtocolScheme)
+
139 {
+
140 case ProtocolScheme.AUTO:
+
141 return AutodetectProtocol();
+
142 case ProtocolScheme.TCP:
+ +
144 case ProtocolScheme.IPC:
+ +
146 default:
+
147 throw new NotSupportedException("Unknown protocol scheme");
+
148 }
+
149 }
+
150 }
+
151
+
156 private static string AutodetectProtocol()
+
157 {
+
158 if (Environment.GetEnvironmentVariable("SNAP") != null &&
+
159 Environment.GetEnvironmentVariable("SNAP_NAME") != "dotnet-sdk")
+
160 {
+ +
162 }
+
163
+
164 return DatalayerSystem.ProtocolSchemeTcp;
+
165 }
+
166
+
172 //private static bool IsLocalHost(string hostNameOrIpAddress)
+
173 //{
+
174 // if (string.IsNullOrEmpty(hostNameOrIpAddress))
+
175 // {
+
176 // return false;
+
177 // }
+
178
+
179 // var hostName = Dns.GetHostName();
+
180
+
181 // // Known localhost identifiers for IPv4 and IPv6
+
182 // if (hostNameOrIpAddress.Equals("localhost", StringComparison.OrdinalIgnoreCase) ||
+
183 // hostNameOrIpAddress.Equals(hostName, StringComparison.OrdinalIgnoreCase) ||
+
184 // hostNameOrIpAddress.Equals("127.0.0.1", StringComparison.Ordinal) ||
+
185 // hostNameOrIpAddress.Equals("::1", StringComparison.Ordinal) ||
+
186 // hostNameOrIpAddress.Equals("0:0:0:0:0:0:0:1", StringComparison.Ordinal))
+
187 // {
+
188 // return true;
+
189 // }
+
190
+
191 // try
+
192 // {
+
193 // var testIPs = Dns.GetHostAddresses(hostNameOrIpAddress);
+
194
+
195 // //1. Test IP's against LoopBack
+
196 // if (testIPs.Any(IPAddress.IsLoopback))
+
197 // {
+
198 // return true;
+
199 // }
+
200
+
201 // //2. Test IP's against local machine IP's
+
202 // var localIPs = Dns.GetHostAddresses(hostName);
+
203 // foreach (var testIp in testIPs)
+
204 // {
+
205 // foreach (var localIp in localIPs)
+
206 // {
+
207 // if (string.Equals(testIp.ToString(), localIp.ToString(), StringComparison.Ordinal))
+
208 // {
+
209 // return true;
+
210 // }
+
211 // }
+
212 // }
+
213 // return false;
+
214 // }
+
215 // catch (SocketException)
+
216 // {
+
217 // return false;
+
218 // }
+
219 //}
+
220 }
+
221}
+
Provides the implementation for IDatalayerSystem.
+
static readonly string ProtocolSchemeTcp
Gets the protocol scheme for TCP communication. Recommended to connect to a DatalayerSystem not runni...
+
static readonly string ProtocolSchemeIpc
Gets the protocol scheme for IPC communication. Recommended to connect to a DatalayerSystem running o...
+
Provides a container for a TCP remote connection string.
Definition: Remote.cs:58
+
string Protocol
The communication protocol scheme scheme.
Definition: Remote.cs:135
+
int SslPort
Gets the port number of the SSL connection.
Definition: Remote.cs:82
+
int? Port
Gets the port number of the connection.
Definition: Remote.cs:77
+
string Password
Gets the user password.
Definition: Remote.cs:72
+
string User
Gets the user name.
Definition: Remote.cs:67
+
override string ToString()
Creates the remote connection string for TCP or IPC.
Definition: Remote.cs:118
+
Remote(ProtocolScheme protocolScheme=ProtocolScheme.AUTO, string ip="192.168.1.1", string user="boschrexroth", string password="boschrexroth", int sslPort=443, int? port=null)
Initializes a new instance of the Remote class.
Definition: Remote.cs:100
+
string Ip
Gets the IP address of the ctrlX CORE.
Definition: Remote.cs:62
+ + +
+
+ + + + diff --git a/3.4.0/api/net/html/ResultExtensions_8cs_source.html b/3.4.0/api/net/html/ResultExtensions_8cs_source.html new file mode 100644 index 000000000..6f5025b6c --- /dev/null +++ b/3.4.0/api/net/html/ResultExtensions_8cs_source.html @@ -0,0 +1,133 @@ + + + + + + + +ctrlX Data Layer .NET API: D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/ResultExtensions.cs Source File +D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/ResultExtensions.cs Source File + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
ResultExtensions.cs
+
+
+
1namespace Datalayer
+
2{
+
6 public static class ResultExtensions
+
7 {
+
13 public static bool IsGood(this DLR_RESULT result)
+
14 {
+
15 return result == DLR_RESULT.DL_OK || result == DLR_RESULT.DL_OK_NO_CONTENT;
+
16 }
+
17
+
23 public static bool IsBad(this DLR_RESULT result)
+
24 {
+
25 return !IsGood(result);
+
26 }
+
27 }
+
28}
+
Provides extension methods for DLR_RESULT.
+
static bool IsBad(this DLR_RESULT result)
Gets a value that indicates whether the result is bad.
+
static bool IsGood(this DLR_RESULT result)
Gets a value that indicates whether the result is good.
+ +
DLR_RESULT
The result.
Definition: Enums.cs:141
+
+
+ + + + diff --git a/3.4.0/api/net/html/SubscriptionPropertiesBuilder_8cs_source.html b/3.4.0/api/net/html/SubscriptionPropertiesBuilder_8cs_source.html new file mode 100644 index 000000000..348d20459 --- /dev/null +++ b/3.4.0/api/net/html/SubscriptionPropertiesBuilder_8cs_source.html @@ -0,0 +1,267 @@ + + + + + + + +ctrlX Data Layer .NET API: D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/SubscriptionPropertiesBuilder.cs Source File +D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/SubscriptionPropertiesBuilder.cs Source File + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
SubscriptionPropertiesBuilder.cs
+
+
+
1using comm.datalayer;
+
2using Google.FlatBuffers;
+
3using System.Collections.Generic;
+
4
+
5namespace Datalayer
+
6{
+ +
11 {
+
15 private readonly FlatBufferBuilder _builder;
+
16
+
20 private readonly List<Offset<Property>> _rules;
+
21
+
22
+
26
+
27#if NETSTANDARD2_0
+
28 private uint _errorIntervalMillis = Subscription.DefaultErrorIntervalMillis;
+
29#else
+
30 private uint _errorIntervalMillis = ISubscription.DefaultErrorIntervalMillis;
+
31#endif
+
32
+
36 private StringOffset _idOffset;
+
37
+
41#if NETSTANDARD2_0
+
42 private uint _keepAliveIntervalMillis = Subscription.DefaultKeepaliveIntervalMillis;
+
43#else
+
44 private uint _keepAliveIntervalMillis = ISubscription.DefaultKeepaliveIntervalMillis;
+
45#endif
+
46
+
50#if NETSTANDARD2_0
+
51 private uint _publishIntervalMillis = Subscription.DefaultPublishIntervalMillis;
+
52#else
+
53 private uint _publishIntervalMillis = ISubscription.DefaultPublishIntervalMillis;
+
54#endif
+
55
+ +
61 {
+
62 _builder = new FlatBufferBuilder(Variant.DefaultFlatbuffersInitialSize);
+
63 _rules = new List<Offset<Property>>();
+
64
+
65 // Set mandatory fields in constructor
+
66 SetId(id);
+
67 }
+
68
+
74 private void SetId(string id)
+
75 {
+
76 _idOffset = _builder.CreateString(id);
+
77 }
+
78
+
84 public SubscriptionPropertiesBuilder SetKeepAliveIntervalMillis(uint keepAliveIntervalMillis)
+
85 {
+
86 _keepAliveIntervalMillis = keepAliveIntervalMillis;
+
87 return this;
+
88 }
+
89
+ +
96 {
+
97 _publishIntervalMillis = publishIntervalMillis;
+
98 return this;
+
99 }
+
100
+ +
107 {
+
108 _errorIntervalMillis = errorIntervalMillis;
+
109 return this;
+
110 }
+
111
+
117 public SubscriptionPropertiesBuilder SetSamplingIntervalMillis(ulong samplingIntervalMillis)
+
118 {
+
119 var samplingIntervalMicros = samplingIntervalMillis * 1000;
+
120 var sampling = Sampling.CreateSampling(_builder, samplingIntervalMicros);
+
121 var samplingProperty = Property.CreateProperty(_builder, Properties.Sampling, sampling.Value);
+
122 _rules.Add(samplingProperty);
+
123 return this;
+
124 }
+
125
+
131 public SubscriptionPropertiesBuilder SetSamplingIntervalMicros(ulong samplingIntervalMicros)
+
132 {
+
133 var sampling = Sampling.CreateSampling(_builder, samplingIntervalMicros);
+
134 var samplingProperty = Property.CreateProperty(_builder, Properties.Sampling, sampling.Value);
+
135 _rules.Add(samplingProperty);
+
136 return this;
+
137 }
+
138
+ +
145 {
+
146 var dataChangeFilter = DataChangeFilter.CreateDataChangeFilter(_builder, deadbandValue);
+
147 var dataChangeFilterProperty =
+
148 Property.CreateProperty(_builder, Properties.DataChangeFilter, dataChangeFilter.Value);
+
149 _rules.Add(dataChangeFilterProperty);
+
150 return this;
+
151 }
+
152
+
160 public SubscriptionPropertiesBuilder SetChangeEvents(DataChangeTrigger dataChangeTrigger,
+
161 bool browselistChange = false, bool metadataChange = false)
+
162 {
+
163 var changeEvents =
+
164 ChangeEvents.CreateChangeEvents(_builder, dataChangeTrigger, browselistChange, metadataChange);
+
165 var changeEventsProperty = Property.CreateProperty(_builder, Properties.ChangeEvents, changeEvents.Value);
+
166 _rules.Add(changeEventsProperty);
+
167 return this;
+
168 }
+
169
+
176 public SubscriptionPropertiesBuilder SetQueueing(uint queueSize, QueueBehaviour queueBehaviour)
+
177 {
+
178 var queuing = Queueing.CreateQueueing(_builder, queueSize, queueBehaviour);
+
179 var queuingProperty = Property.CreateProperty(_builder, Properties.Queueing, queuing.Value);
+
180 _rules.Add(queuingProperty);
+
181 return this;
+
182 }
+
183
+
189 public SubscriptionPropertiesBuilder SetCounting(bool countSubscriptions)
+
190 {
+
191 var counting = Counting.CreateCounting(_builder, countSubscriptions);
+
192 var countingProperty = Property.CreateProperty(_builder, Properties.Counting, counting.Value);
+
193 _rules.Add(countingProperty);
+
194 return this;
+
195 }
+
196
+
201 public Variant Build()
+
202 {
+
203 var rulesOffset = _rules.Count == 0
+
204 ? new VectorOffset(0)
+
205 : SubscriptionProperties.CreateRulesVector(_builder, _rules.ToArray());
+
206 var propertiesOffset = SubscriptionProperties.CreateSubscriptionProperties(_builder,
+
207 _idOffset,
+
208 _keepAliveIntervalMillis,
+
209 _publishIntervalMillis,
+
210 rulesOffset,
+
211 _errorIntervalMillis);
+
212
+
213 SubscriptionProperties.FinishSubscriptionPropertiesBuffer(_builder, propertiesOffset);
+
214 return new Variant(_builder);
+
215 }
+
216 }
+
217}
+
Provides a convenient way to build a SubscriptionProperties flatbuffers.
+
SubscriptionPropertiesBuilder SetSamplingIntervalMicros(ulong samplingIntervalMicros)
Sets the sampling interval in microseconds.
+
SubscriptionPropertiesBuilder SetQueueing(uint queueSize, QueueBehaviour queueBehaviour)
Sets the queueing.
+
SubscriptionPropertiesBuilder SetSamplingIntervalMillis(ulong samplingIntervalMillis)
Sets the sampling interval in milliseconds.
+
SubscriptionPropertiesBuilder SetPublishIntervalMillis(uint publishIntervalMillis)
Sets the publish interval in milliseconds.
+
SubscriptionPropertiesBuilder SetErrorIntervalMillis(uint errorIntervalMillis)
Sets the error interval in milliseconds.
+
SubscriptionPropertiesBuilder SetChangeEvents(DataChangeTrigger dataChangeTrigger, bool browselistChange=false, bool metadataChange=false)
Sets the change events.
+
SubscriptionPropertiesBuilder SetCounting(bool countSubscriptions)
Sets the counting.
+
SubscriptionPropertiesBuilder(string id)
Initializes a new instance of the SubscriptionPropertiesBuilder class.
+
Variant Build()
Builds this the SubscriptionProperties as flatbuffers object.
+
SubscriptionPropertiesBuilder SetDataChangeFilter(float deadbandValue)
Sets the data change filter.
+
SubscriptionPropertiesBuilder SetKeepAliveIntervalMillis(uint keepAliveIntervalMillis)
Sets the keep alive interval in milliseconds.
+
Provides the implementation for IVariant.
Definition: Variant.cs:18
+
static readonly int DefaultFlatbuffersInitialSize
Gets the default Flatbuffers initial size in bytes.
Definition: Variant.cs:730
+
The ISubscription interface.
+
static readonly uint DefaultKeepaliveIntervalMillis
The default keep alive interval in milli seconds.
+
static readonly uint DefaultErrorIntervalMillis
The default error interval in milli seconds.
+
static readonly uint DefaultPublishIntervalMillis
The default publish interval in milli seconds.
+ +
+
+ + + + diff --git a/3.4.0/api/net/html/Variant_8cs_source.html b/3.4.0/api/net/html/Variant_8cs_source.html new file mode 100644 index 000000000..88371b0c9 --- /dev/null +++ b/3.4.0/api/net/html/Variant_8cs_source.html @@ -0,0 +1,2000 @@ + + + + + + + +ctrlX Data Layer .NET API: D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/Variant.cs Source File +D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/Variant.cs Source File + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Variant.cs
+
+
+
1
+
2
+
3using Datalayer.Internal;
+
4using Google.FlatBuffers;
+
5using System;
+
6using System.Collections;
+
7using System.Diagnostics;
+
8using System.Linq;
+
9using System.Runtime.InteropServices;
+
10
+
11namespace Datalayer
+
12{
+
16 [DebuggerDisplay("{Value}")]
+
17 public class Variant : IVariant, INative
+
18 {
+
19 // Fields
+
20 private readonly bool _skipDelete;
+
21 private unsafe void* _nativePtr;
+
22
+
23 #region Internal Constructors
+
24
+
37 internal unsafe Variant(void* nativePtr)
+
38 {
+
39 _nativePtr = nativePtr;
+
40 _skipDelete = true;
+
41 }
+
42
+
43 #endregion
+
44
+
45 #region Internal Properties
+
46
+
50 internal unsafe bool IsNullPtr => _nativePtr == null;
+
51
+
55 unsafe void* INative.NativePtr => _nativePtr;
+
56
+
57 #endregion
+
58
+
59 #region Disposing
+
60
+
64 public bool IsDisposed { get; private set; }
+
65
+
70 protected virtual void Dispose(bool disposing)
+
71 {
+
72 if (!IsDisposed)
+
73 {
+
74 if (disposing)
+
75 {
+
76 // dispose managed state (managed objects)
+
77 }
+
78
+
79 // free unmanaged resources (unmanaged objects) and override finalizer
+
80 Delete();
+
81 // set large fields to null
+
82 IsDisposed = true;
+
83 }
+
84 }
+
85
+
89 private void Delete()
+
90 {
+
91 unsafe
+
92 {
+
93 if (_skipDelete)
+
94 {
+
95 _nativePtr = null;
+
96 return;
+
97 }
+
98
+
99 NativeMethods.Datalayer.DLR_variantDelete(_nativePtr);
+
100 _nativePtr = null;
+
101 }
+
102 }
+
103
+
107 ~Variant()
+
108 {
+
109 // Do not change this code. Put cleanup code in 'Dispose(bool disposing)' method
+
110 Dispose(disposing: false);
+
111 }
+
112
+
116 public void Dispose()
+
117 {
+
118 // Do not change this code. Put cleanup code in 'Dispose(bool disposing)' method
+
119 Dispose(disposing: true);
+
120 GC.SuppressFinalize(this);
+
121 }
+
122
+
123 #endregion
+
124
+
125 #region Public Constructors
+
126
+
130 public Variant()
+
131 {
+
132 unsafe
+
133 {
+
134 _nativePtr = NativeMethods.Datalayer.DLR_variantCreate();
+
135 }
+
136 }
+
137
+
143 public Variant(IVariant other)
+
144 : this()
+
145 {
+
146 if (other == null)
+
147 {
+
148 throw new ArgumentNullException(nameof(other));
+
149 }
+
150
+
151 unsafe
+
152 {
+
153 if (NativeMethods.Datalayer.DLR_variantCopy(_nativePtr, other.ToNativePtr()).IsBad())
+
154 {
+
155 throw new InvalidOperationException(Utils.Strings.ErrorObjectNotCreatable);
+
156 }
+
157 }
+
158 }
+
159
+
165 public Variant(bool value)
+
166 : this()
+
167 {
+
168 if (SetBool(value).IsBad())
+
169 {
+
170 throw new InvalidOperationException(Utils.Strings.ErrorObjectNotCreatable);
+
171 }
+
172 }
+
173
+
180 public Variant(string value)
+
181 : this()
+
182 {
+
183 if (SetString(value).IsBad())
+
184 {
+
185 throw new InvalidOperationException(Utils.Strings.ErrorObjectNotCreatable);
+
186 }
+
187 }
+
188
+
194 public Variant(sbyte value)
+
195 : this()
+
196 {
+
197 if (SetInt8(value).IsBad())
+
198 {
+
199 throw new InvalidOperationException(Utils.Strings.ErrorObjectNotCreatable);
+
200 }
+
201 }
+
202
+
208 public Variant(short value)
+
209 : this()
+
210 {
+
211 if (SetInt16(value).IsBad())
+
212 {
+
213 throw new InvalidOperationException(Utils.Strings.ErrorObjectNotCreatable);
+
214 }
+
215 }
+
216
+
222 public Variant(int value)
+
223 : this()
+
224 {
+
225 if (SetInt32(value).IsBad())
+
226 {
+
227 throw new InvalidOperationException(Utils.Strings.ErrorObjectNotCreatable);
+
228 }
+
229 }
+
230
+
236 public Variant(long value)
+
237 : this()
+
238 {
+
239 if (SetInt64(value).IsBad())
+
240 {
+
241 throw new InvalidOperationException(Utils.Strings.ErrorObjectNotCreatable);
+
242 }
+
243 }
+
244
+
250 public Variant(DateTime value)
+
251 : this()
+
252 {
+
253 if (SetTimestamp(value).IsBad())
+
254 {
+
255 throw new InvalidOperationException(Utils.Strings.ErrorObjectNotCreatable);
+
256 }
+
257 }
+
258
+
264 public Variant(byte value)
+
265 : this()
+
266 {
+
267 if (SetUInt8(value).IsBad())
+
268 {
+
269 throw new InvalidOperationException(Utils.Strings.ErrorObjectNotCreatable);
+
270 }
+
271 }
+
272
+
278 public Variant(ushort value)
+
279 : this()
+
280 {
+
281 if (SetUInt16(value).IsBad())
+
282 {
+
283 throw new InvalidOperationException(Utils.Strings.ErrorObjectNotCreatable);
+
284 }
+
285 }
+
286
+
292 public Variant(uint value)
+
293 : this()
+
294 {
+
295 if (SetUInt32(value).IsBad())
+
296 {
+
297 throw new InvalidOperationException(Utils.Strings.ErrorObjectNotCreatable);
+
298 }
+
299 }
+
300
+
306 public Variant(ulong value)
+
307 : this()
+
308 {
+
309 if (SetUInt64(value).IsBad())
+
310 {
+
311 throw new InvalidOperationException(Utils.Strings.ErrorObjectNotCreatable);
+
312 }
+
313 }
+
314
+
320 public Variant(float value)
+
321 : this()
+
322 {
+
323 if (SetFloat32(value).IsBad())
+
324 {
+
325 throw new InvalidOperationException(Utils.Strings.ErrorObjectNotCreatable);
+
326 }
+
327 }
+
328
+
334 public Variant(double value)
+
335 : this()
+
336 {
+
337 if (SetFloat64(value).IsBad())
+
338 {
+
339 throw new InvalidOperationException(Utils.Strings.ErrorObjectNotCreatable);
+
340 }
+
341 }
+
342
+
349 public Variant(bool[] value)
+
350 : this()
+
351 {
+
352 if (SetArrayOfBool(value).IsBad())
+
353 {
+
354 throw new InvalidOperationException(Utils.Strings.ErrorObjectNotCreatable);
+
355 }
+
356 }
+
357
+
364 public Variant(string[] value)
+
365 : this()
+
366 {
+
367 if (SetArrayOfString(value).IsBad())
+
368 {
+
369 throw new InvalidOperationException(Utils.Strings.ErrorObjectNotCreatable);
+
370 }
+
371 }
+
372
+
379 public Variant(sbyte[] value)
+
380 : this()
+
381 {
+
382 if (SetArrayOfInt8(value).IsBad())
+
383 {
+
384 throw new InvalidOperationException(Utils.Strings.ErrorObjectNotCreatable);
+
385 }
+
386 }
+
387
+
394 public Variant(short[] value)
+
395 : this()
+
396 {
+
397 if (SetArrayOfInt16(value).IsBad())
+
398 {
+
399 throw new InvalidOperationException(Utils.Strings.ErrorObjectNotCreatable);
+
400 }
+
401 }
+
402
+
409 public Variant(int[] value)
+
410 : this()
+
411 {
+
412 if (SetArrayOfInt32(value).IsBad())
+
413 {
+
414 throw new InvalidOperationException(Utils.Strings.ErrorObjectNotCreatable);
+
415 }
+
416 }
+
417
+
424 public Variant(long[] value)
+
425 : this()
+
426 {
+
427 if (SetArrayOfInt64(value).IsBad())
+
428 {
+
429 throw new InvalidOperationException(Utils.Strings.ErrorObjectNotCreatable);
+
430 }
+
431 }
+
432
+
440 public Variant(byte[] value, bool raw = false)
+
441 : this()
+
442 {
+
443 if (raw)
+
444 {
+
445 if (SetArrayOfRawBytes(value).IsBad())
+
446 {
+
447 throw new InvalidOperationException(Utils.Strings.ErrorObjectNotCreatable);
+
448 }
+
449 }
+
450 else
+
451 {
+
452 if (SetArrayOfUInt8(value).IsBad())
+
453 {
+
454 throw new InvalidOperationException(Utils.Strings.ErrorObjectNotCreatable);
+
455 }
+
456 }
+
457 }
+
458
+
465 public Variant(ushort[] value)
+
466 : this()
+
467 {
+
468 if (SetArrayOfUInt16(value).IsBad())
+
469 {
+
470 throw new InvalidOperationException(Utils.Strings.ErrorObjectNotCreatable);
+
471 }
+
472 }
+
473
+
480 public Variant(uint[] value)
+
481 : this()
+
482 {
+
483 if (SetArrayOfUInt32(value).IsBad())
+
484 {
+
485 throw new InvalidOperationException(Utils.Strings.ErrorObjectNotCreatable);
+
486 }
+
487 }
+
488
+
495 public Variant(ulong[] value)
+
496 : this()
+
497 {
+
498 if (SetArrayOfUInt64(value).IsBad())
+
499 {
+
500 throw new InvalidOperationException(Utils.Strings.ErrorObjectNotCreatable);
+
501 }
+
502 }
+
503
+
510 public Variant(float[] value)
+
511 : this()
+
512 {
+
513 if (SetArrayOfFloat32(value).IsBad())
+
514 {
+
515 throw new InvalidOperationException(Utils.Strings.ErrorObjectNotCreatable);
+
516 }
+
517 }
+
518
+
525 public Variant(double[] value)
+
526 : this()
+
527 {
+
528 if (SetArrayOfFloat64(value).IsBad())
+
529 {
+
530 throw new InvalidOperationException(Utils.Strings.ErrorObjectNotCreatable);
+
531 }
+
532 }
+
533
+
534
+
541 public Variant(DateTime[] value)
+
542 : this()
+
543 {
+
544 if (SetArrayOfTimestamp(value).IsBad())
+
545 {
+
546 throw new InvalidOperationException(Utils.Strings.ErrorObjectNotCreatable);
+
547 }
+
548 }
+
549
+
556 public Variant(ByteBuffer flatBuffers)
+
557 : this()
+
558 {
+
559 if (SetFlatbuffers(flatBuffers).IsBad())
+
560 {
+
561 throw new InvalidOperationException(Utils.Strings.ErrorObjectNotCreatable);
+
562 }
+
563 }
+
564
+
571 public Variant(FlatBufferBuilder builder)
+
572 : this()
+
573 {
+
574 if (builder == null)
+
575 {
+
576 throw new ArgumentNullException(nameof(builder));
+
577 }
+
578
+
579 if (SetFlatbuffers(builder.DataBuffer).IsBad())
+
580 {
+
581 throw new InvalidOperationException(Utils.Strings.ErrorObjectNotCreatable);
+
582 }
+
583 }
+
584
+
585 #endregion
+
586
+
587 #region Public Overrides
+
588
+
594 public override bool Equals(object obj)
+
595 {
+
596 return Equals(obj as Variant);
+
597 }
+
598
+
605 public bool Equals(Variant other)
+
606 {
+
607 if (other is null)
+
608 {
+
609 return false;
+
610 }
+
611
+
612 if (ReferenceEquals(this, other))
+
613 {
+
614 return true;
+
615 }
+
616
+
617 var dataType = DataType;
+
618 if (dataType != other.DataType)
+
619 {
+
620 return false;
+
621 }
+
622
+
623 //Arrays
+
624 if (Utils.IsArray(dataType))
+
625 {
+
626 return StructuralComparisons.StructuralEqualityComparer.Equals(Value, other.Value);
+
627 }
+
628
+
629 //Flatbuffers
+
630 if (dataType == DLR_VARIANT_TYPE.DLR_VARIANT_TYPE_FLATBUFFERS)
+
631 {
+
632 return StructuralComparisons.StructuralEqualityComparer.Equals(ToFlatbuffers().ToSizedArray(), other.ToFlatbuffers().ToSizedArray());
+
633 }
+
634
+
635 //Scalars
+
636 return Equals(Value, other.Value);
+
637 }
+
638
+
643 public override int GetHashCode()
+
644 {
+
645 var v = Value;
+
646 return v != null ? base.GetHashCode() ^ v.GetHashCode() : base.GetHashCode();
+
647 }
+
648
+
654 public override string ToString()
+
655 {
+
656 if (IsNull)
+
657 {
+
658 return string.Empty;
+
659 }
+
660
+
661 unsafe
+
662 {
+
663 var length = Convert.ToInt32(GetSize().ToUInt32()) - 1;
+
664 if (length <= 0)
+
665 {
+
666 return string.Empty;
+
667 }
+
668
+
669 var stringBuffer =
+
670 StringBuffer.FromNativePtr(NativeMethods.Datalayer.DLR_variantGetSTRING(_nativePtr), length);
+
671 return stringBuffer.ToString();
+
672 }
+
673 }
+
674
+
681 public static bool operator ==(Variant l, Variant r)
+
682 {
+
683 //x not null
+
684 if (l is Variant)
+
685 {
+
686 return l.Equals(r);
+
687 }
+
688
+
689 //y not null
+
690 if (r is Variant)
+
691 {
+
692 return r.Equals(l);
+
693 }
+
694
+
695 //Both null
+
696 return true;
+
697 }
+
698
+
705 public static bool operator !=(Variant l, Variant r)
+
706 {
+
707 //x not null
+
708 if (l is Variant)
+
709 {
+
710 return !l.Equals(r);
+
711 }
+
712
+
713 //y not null
+
714 if (r is Variant)
+
715 {
+
716 return !r.Equals(l);
+
717 }
+
718
+
719 //Both null
+
720 return false;
+
721 }
+
722
+
723 #endregion
+
724
+
725 #region Public Statics
+
726
+
730 public static readonly int DefaultFlatbuffersInitialSize = 1024;
+
731
+
735 public static readonly Variant Null = new Variant();
+
736
+
740 public static readonly Variant Zero = new Variant(0);
+
741
+
745 public static readonly Variant One = new Variant(1);
+
746
+
750 public static readonly Variant Empty = new Variant(string.Empty);
+
751
+
755 public static readonly Variant True = new Variant(true);
+
756
+
760 public static readonly Variant False = new Variant(false);
+
761
+
762 #endregion
+
763
+
764 #region Public Getters
+
765
+
770 public object Value
+
771 {
+
772 get
+
773 {
+
774 switch (DataType)
+
775 {
+
776 case DLR_VARIANT_TYPE.DLR_VARIANT_TYPE_BOOL8:
+
777 return ToBool();
+
778 case DLR_VARIANT_TYPE.DLR_VARIANT_TYPE_INT8:
+
779 return ToSByte();
+
780 case DLR_VARIANT_TYPE.DLR_VARIANT_TYPE_UINT8:
+
781 return ToByte();
+
782 case DLR_VARIANT_TYPE.DLR_VARIANT_TYPE_INT16:
+
783 return ToInt16();
+
784 case DLR_VARIANT_TYPE.DLR_VARIANT_TYPE_UINT16:
+
785 return ToUInt16();
+
786 case DLR_VARIANT_TYPE.DLR_VARIANT_TYPE_INT32:
+
787 return ToInt32();
+
788 case DLR_VARIANT_TYPE.DLR_VARIANT_TYPE_UINT32:
+
789 return ToUInt32();
+
790 case DLR_VARIANT_TYPE.DLR_VARIANT_TYPE_INT64:
+
791 return ToInt64();
+
792 case DLR_VARIANT_TYPE.DLR_VARIANT_TYPE_UINT64:
+
793 return ToUInt64();
+
794 case DLR_VARIANT_TYPE.DLR_VARIANT_TYPE_FLOAT32:
+
795 return ToFloat();
+
796 case DLR_VARIANT_TYPE.DLR_VARIANT_TYPE_FLOAT64:
+
797 return ToDouble();
+
798 case DLR_VARIANT_TYPE.DLR_VARIANT_TYPE_STRING:
+
799 return ToString();
+
800 case DLR_VARIANT_TYPE.DLR_VARIANT_TYPE_TIMESTAMP:
+
801 return ToDateTime();
+
802 case DLR_VARIANT_TYPE.DLR_VARIANT_TYPE_ARRAY_OF_BOOL8:
+
803 return ToBoolArray();
+
804 case DLR_VARIANT_TYPE.DLR_VARIANT_TYPE_ARRAY_OF_INT8:
+
805 return ToSByteArray();
+
806 case DLR_VARIANT_TYPE.DLR_VARIANT_TYPE_ARRAY_OF_UINT8:
+
807 return ToByteArray();
+
808 case DLR_VARIANT_TYPE.DLR_VARIANT_TYPE_ARRAY_OF_INT16:
+
809 return ToInt16Array();
+
810 case DLR_VARIANT_TYPE.DLR_VARIANT_TYPE_ARRAY_OF_UINT16:
+
811 return ToUInt16Array();
+
812 case DLR_VARIANT_TYPE.DLR_VARIANT_TYPE_ARRAY_OF_INT32:
+
813 return ToInt32Array();
+
814 case DLR_VARIANT_TYPE.DLR_VARIANT_TYPE_ARRAY_OF_UINT32:
+
815 return ToUInt32Array();
+
816 case DLR_VARIANT_TYPE.DLR_VARIANT_TYPE_ARRAY_OF_INT64:
+
817 return ToInt64Array();
+
818 case DLR_VARIANT_TYPE.DLR_VARIANT_TYPE_ARRAY_OF_UINT64:
+
819 return ToUInt64Array();
+
820 case DLR_VARIANT_TYPE.DLR_VARIANT_TYPE_ARRAY_OF_FLOAT32:
+
821 return ToFloatArray();
+
822 case DLR_VARIANT_TYPE.DLR_VARIANT_TYPE_ARRAY_OF_FLOAT64:
+
823 return ToDoubleArray();
+
824 case DLR_VARIANT_TYPE.DLR_VARIANT_TYPE_ARRAY_OF_STRING:
+
825 return ToStringArray();
+
826 case DLR_VARIANT_TYPE.DLR_VARIANT_TYPE_ARRAY_OF_TIMESTAMP:
+
827 return ToDateTimeArray();
+
828 case DLR_VARIANT_TYPE.DLR_VARIANT_TYPE_RAW:
+
829 return ToRawByteArray();
+
830 case DLR_VARIANT_TYPE.DLR_VARIANT_TYPE_FLATBUFFERS:
+
831 return ToFlatbuffers();
+
832 case DLR_VARIANT_TYPE.DLR_VARIANT_TYPE_UNKNOWN:
+
833 default:
+
834 return null;
+
835 }
+
836 }
+
837 }
+
838
+
843 public bool IsNull => DataType == DLR_VARIANT_TYPE.DLR_VARIANT_TYPE_UNKNOWN;
+
844
+
849 public bool IsString => DataType == DLR_VARIANT_TYPE.DLR_VARIANT_TYPE_STRING;
+
850
+
855 public bool IsBool => DataType == DLR_VARIANT_TYPE.DLR_VARIANT_TYPE_BOOL8;
+
856
+
861 public bool IsFlatbuffers => DataType == DLR_VARIANT_TYPE.DLR_VARIANT_TYPE_FLATBUFFERS;
+
862
+
867 public bool IsArray
+
868 {
+
869 get
+
870 {
+
871 if (IsDisposed)
+
872 {
+
873 throw new ObjectDisposedException(Utils.Strings.ErrorObjectDisposed);
+
874 }
+
875
+
876 return Utils.IsArray(DataType);
+
877 }
+
878 }
+
879
+
885 public bool IsNumber
+
886 {
+
887 get
+
888 {
+
889 if (IsDisposed)
+
890 {
+
891 throw new ObjectDisposedException(Utils.Strings.ErrorObjectDisposed);
+
892 }
+
893
+
894 return Utils.IsNumber(DataType);
+
895 }
+
896 }
+
897
+
903 public bool ToBool()
+
904 {
+
905 if (IsNull)
+
906 {
+
907 return false;
+
908 }
+
909
+
910 unsafe
+
911 {
+
912 return NativeMethods.Datalayer.DLR_variantGetBOOL8(_nativePtr);
+
913 }
+
914 }
+
915
+
921 public sbyte ToSByte()
+
922 {
+
923 if (IsNull)
+
924 {
+
925 return 0;
+
926 }
+
927
+
928 unsafe
+
929 {
+
930 return NativeMethods.Datalayer.DLR_variantGetINT8(_nativePtr);
+
931 }
+
932 }
+
933
+
939 public byte ToByte()
+
940 {
+
941 if (IsNull)
+
942 {
+
943 return 0;
+
944 }
+
945
+
946 unsafe
+
947 {
+
948 return NativeMethods.Datalayer.DLR_variantGetUINT8(_nativePtr);
+
949 }
+
950 }
+
951
+
957 public short ToInt16()
+
958 {
+
959 if (IsNull)
+
960 {
+
961 return 0;
+
962 }
+
963
+
964 unsafe
+
965 {
+
966 return NativeMethods.Datalayer.DLR_variantGetINT16(_nativePtr);
+
967 }
+
968 }
+
969
+
975 public ushort ToUInt16()
+
976 {
+
977 if (IsNull)
+
978 {
+
979 return 0;
+
980 }
+
981
+
982 unsafe
+
983 {
+
984 return NativeMethods.Datalayer.DLR_variantGetUINT16(_nativePtr);
+
985 }
+
986 }
+
987
+
993 public int ToInt32()
+
994 {
+
995 if (IsNull)
+
996 {
+
997 return 0;
+
998 }
+
999
+
1000 unsafe
+
1001 {
+
1002 return NativeMethods.Datalayer.DLR_variantGetINT32(_nativePtr);
+
1003 }
+
1004 }
+
1005
+
1011 public uint ToUInt32()
+
1012 {
+
1013 if (IsNull)
+
1014 {
+
1015 return 0;
+
1016 }
+
1017
+
1018 unsafe
+
1019 {
+
1020 return NativeMethods.Datalayer.DLR_variantGetUINT32(_nativePtr);
+
1021 }
+
1022 }
+
1023
+
1029 public long ToInt64()
+
1030 {
+
1031 if (IsNull)
+
1032 {
+
1033 return 0;
+
1034 }
+
1035
+
1036 unsafe
+
1037 {
+
1038 return NativeMethods.Datalayer.DLR_variantGetINT64(_nativePtr);
+
1039 }
+
1040 }
+
1041
+
1047 public ulong ToUInt64()
+
1048 {
+
1049 if (IsNull)
+
1050 {
+
1051 return 0;
+
1052 }
+
1053
+
1054 unsafe
+
1055 {
+
1056 return NativeMethods.Datalayer.DLR_variantGetUINT64(_nativePtr);
+
1057 }
+
1058 }
+
1059
+
1064 public DateTime ToDateTime()
+
1065 {
+
1066 //uint64 (FILETIME) 64 bit 100ns since 1.1.1601 (UTC) -> long -> DateTime
+
1067 return DateTime.FromFileTimeUtc(Convert.ToInt64(ToUInt64()));
+
1068 }
+
1069
+
1075 public float ToFloat()
+
1076 {
+
1077 if (IsNull)
+
1078 {
+
1079 return 0;
+
1080 }
+
1081
+
1082 unsafe
+
1083 {
+
1084 return NativeMethods.Datalayer.DLR_variantGetFLOAT32(_nativePtr);
+
1085 }
+
1086 }
+
1087
+
1093 public double ToDouble()
+
1094 {
+
1095 if (IsNull)
+
1096 {
+
1097 return 0;
+
1098 }
+
1099
+
1100 unsafe
+
1101 {
+
1102 return NativeMethods.Datalayer.DLR_variantGetFLOAT64(_nativePtr);
+
1103 }
+
1104 }
+
1105
+
1111 public bool[] ToBoolArray()
+
1112 {
+
1113 if (IsNull)
+
1114 {
+
1115 return null;
+
1116 }
+
1117
+
1118 unsafe
+
1119 {
+
1120 bool* p = NativeMethods.Datalayer.DLR_variantGetArrayOfBOOL8(_nativePtr);
+
1121 if (p == null)
+
1122 {
+
1123 return Array.Empty<bool>();
+
1124 }
+
1125
+
1126 // memcopy not available: we have to iterate
+
1127
+
1128 //var array = new bool[GetCount().ToUInt32()];
+
1129 //Marshal.Copy((IntPtr)p, array, 0, array.Length);
+
1130
+
1131 var count = GetCount().ToUInt32();
+
1132 var array = new bool[count];
+
1133 for (var i = 0; i < count; i++)
+
1134 {
+
1135 array[i] = p[i];
+
1136 }
+
1137 return array;
+
1138 }
+
1139 }
+
1140
+
1146 public sbyte[] ToSByteArray()
+
1147 {
+
1148 if (IsNull)
+
1149 {
+
1150 return null;
+
1151 }
+
1152
+
1153 unsafe
+
1154 {
+
1155 sbyte* p = NativeMethods.Datalayer.DLR_variantGetArrayOfINT8(_nativePtr);
+
1156 if (p == null)
+
1157 {
+
1158 return Array.Empty<sbyte>();
+
1159 }
+
1160
+
1161 // memcopy not available: we have to iterate
+
1162
+
1163 //var array = new sbyte[GetCount().ToUInt32()];
+
1164 //Marshal.Copy((IntPtr)p, array, 0, array.Length);
+
1165
+
1166 var count = GetCount().ToUInt32();
+
1167 var array = new sbyte[count];
+
1168 for (var i = 0; i < count; i++)
+
1169 {
+
1170 array[i] = p[i];
+
1171 }
+
1172 return array;
+
1173 }
+
1174 }
+
1175
+
1181 public byte[] ToByteArray()
+
1182 {
+
1183 if (IsNull)
+
1184 {
+
1185 return null;
+
1186 }
+
1187
+
1188 unsafe
+
1189 {
+
1190 byte* p = NativeMethods.Datalayer.DLR_variantGetArrayOfUINT8(_nativePtr);
+
1191 if (p == null)
+
1192 {
+
1193 return Array.Empty<byte>();
+
1194 }
+
1195
+
1196 var array = new byte[GetCount().ToUInt32()];
+
1197 Marshal.Copy((IntPtr)p, array, 0, array.Length);
+
1198 return array;
+
1199 }
+
1200 }
+
1201
+
1207 public short[] ToInt16Array()
+
1208 {
+
1209 if (IsNull)
+
1210 {
+
1211 return null;
+
1212 }
+
1213
+
1214 unsafe
+
1215 {
+
1216 short* p = NativeMethods.Datalayer.DLR_variantGetArrayOfINT16(_nativePtr);
+
1217 if (p == null)
+
1218 {
+
1219 return Array.Empty<short>();
+
1220 }
+
1221
+
1222 var array = new short[GetCount().ToUInt32()];
+
1223 Marshal.Copy((IntPtr)p, array, 0, array.Length);
+
1224 return array;
+
1225 }
+
1226 }
+
1227
+
1233 public ushort[] ToUInt16Array()
+
1234 {
+
1235 if (IsNull)
+
1236 {
+
1237 return null;
+
1238 }
+
1239
+
1240 unsafe
+
1241 {
+
1242 ushort* p = NativeMethods.Datalayer.DLR_variantGetArrayOfUINT16(_nativePtr);
+
1243 if (p == null)
+
1244 {
+
1245 return Array.Empty<ushort>();
+
1246 }
+
1247 // memcopy not available: we have to iterate
+
1248
+
1249 //var array = new ushort[GetCount().ToUInt32()];
+
1250 //Marshal.Copy((IntPtr)p, array, 0, array.Length);
+
1251
+
1252 var count = GetCount().ToUInt32();
+
1253 var array = new ushort[count];
+
1254 for (var i = 0; i < count; i++)
+
1255 {
+
1256 array[i] = p[i];
+
1257 }
+
1258 return array;
+
1259 }
+
1260 }
+
1261
+
1267 public int[] ToInt32Array()
+
1268 {
+
1269 if (IsNull)
+
1270 {
+
1271 return null;
+
1272 }
+
1273
+
1274 unsafe
+
1275 {
+
1276 int* p = NativeMethods.Datalayer.DLR_variantGetArrayOfINT32(_nativePtr);
+
1277 if (p == null)
+
1278 {
+
1279 return Array.Empty<int>();
+
1280 }
+
1281
+
1282 var array = new int[GetCount().ToUInt32()];
+
1283 Marshal.Copy((IntPtr)p, array, 0, array.Length);
+
1284 return array;
+
1285 }
+
1286 }
+
1287
+
1293 public uint[] ToUInt32Array()
+
1294 {
+
1295 if (IsNull)
+
1296 {
+
1297 return null;
+
1298 }
+
1299
+
1300 unsafe
+
1301 {
+
1302 uint* p = NativeMethods.Datalayer.DLR_variantGetArrayOfUINT32(_nativePtr);
+
1303 if (p == null)
+
1304 {
+
1305 return Array.Empty<uint>();
+
1306 }
+
1307
+
1308 // memcopy not available: we have to iterate
+
1309
+
1310 //var array = new uint[GetCount().ToUInt32()];
+
1311 //Marshal.Copy((IntPtr)p, array, 0, array.Length);
+
1312
+
1313 var count = GetCount().ToUInt32();
+
1314 var array = new uint[count];
+
1315 for (var i = 0; i < count; i++)
+
1316 {
+
1317 array[i] = p[i];
+
1318 }
+
1319 return array;
+
1320 }
+
1321 }
+
1322
+
1328 public long[] ToInt64Array()
+
1329 {
+
1330 if (IsNull)
+
1331 {
+
1332 return null;
+
1333 }
+
1334
+
1335 unsafe
+
1336 {
+
1337 long* p = NativeMethods.Datalayer.DLR_variantGetArrayOfINT64(_nativePtr);
+
1338 if (p == null)
+
1339 {
+
1340 return Array.Empty<long>();
+
1341 }
+
1342
+
1343 var array = new long[GetCount().ToUInt32()];
+
1344 Marshal.Copy((IntPtr)p, array, 0, array.Length);
+
1345 return array;
+
1346 }
+
1347 }
+
1348
+
1354 public ulong[] ToUInt64Array()
+
1355 {
+
1356 if (IsNull)
+
1357 {
+
1358 return null;
+
1359 }
+
1360
+
1361 unsafe
+
1362 {
+
1363 ulong* p = NativeMethods.Datalayer.DLR_variantGetArrayOfUINT64(_nativePtr);
+
1364 if (p == null)
+
1365 {
+
1366 return Array.Empty<ulong>();
+
1367 }
+
1368
+
1369 // memcopy not available: we have to iterate
+
1370
+
1371 //var array = new ulong[GetCount().ToUInt32()];
+
1372 //Marshal.Copy((IntPtr)p, array, 0, array.Length);
+
1373
+
1374 var count = GetCount().ToUInt32();
+
1375 var array = new ulong[count];
+
1376 for (var i = 0; i < count; i++)
+
1377 {
+
1378 array[i] = p[i];
+
1379 }
+
1380 return array;
+
1381 }
+
1382 }
+
1383
+
1389 public float[] ToFloatArray()
+
1390 {
+
1391 if (IsNull)
+
1392 {
+
1393 return null;
+
1394 }
+
1395
+
1396 unsafe
+
1397 {
+
1398 float* p = NativeMethods.Datalayer.DLR_variantGetArrayOfFLOAT32(_nativePtr);
+
1399 if (p == null)
+
1400 {
+
1401 return Array.Empty<float>();
+
1402 }
+
1403
+
1404 var array = new float[GetCount().ToUInt32()];
+
1405 Marshal.Copy((IntPtr)p, array, 0, array.Length);
+
1406 return array;
+
1407 }
+
1408 }
+
1409
+
1415 public double[] ToDoubleArray()
+
1416 {
+
1417 if (IsNull)
+
1418 {
+
1419 return null;
+
1420 }
+
1421
+
1422 unsafe
+
1423 {
+
1424 double* p = NativeMethods.Datalayer.DLR_variantGetArrayOfFLOAT64(_nativePtr);
+
1425 if (p == null)
+
1426 {
+
1427 return Array.Empty<double>();
+
1428 }
+
1429
+
1430 var array = new double[GetCount().ToUInt32()];
+
1431 Marshal.Copy((IntPtr)p, array, 0, array.Length);
+
1432 return array;
+
1433 }
+
1434 }
+
1435
+
1441 public string[] ToStringArray()
+
1442 {
+
1443 if (IsNull)
+
1444 {
+
1445 return null;
+
1446 }
+
1447
+
1448 unsafe
+
1449 {
+
1450 sbyte** p = NativeMethods.Datalayer.DLR_variantGetArrayOfSTRING(_nativePtr);
+
1451 if (p == null)
+
1452 {
+
1453 return Array.Empty<string>();
+
1454 }
+
1455
+
1456 var count = GetCount().ToUInt32();
+
1457 var stringBufferArray = StringBufferArray.FromNativePtr(p, count);
+
1458 return stringBufferArray.ToStringArray();
+
1459 }
+
1460 }
+
1461
+
1467 public DateTime[] ToDateTimeArray()
+
1468 {
+
1469 //uint64 (FILETIME) 64 bit 100ns since 1.1.1601 (UTC) -> long -> DateTime
+
1470 return ToUInt64Array()?.Select(v => DateTime.FromFileTimeUtc(Convert.ToInt64(v))).ToArray();
+
1471 }
+
1472
+ +
1478 {
+
1479 get
+
1480 {
+
1481 if (IsDisposed)
+
1482 {
+
1483 throw new ObjectDisposedException(Utils.Strings.ErrorObjectDisposed);
+
1484 }
+
1485
+
1486 if (IsNullPtr)
+
1487 {
+
1488 return DLR_VARIANT_TYPE.DLR_VARIANT_TYPE_UNKNOWN;
+
1489 }
+
1490
+
1491 unsafe
+
1492 {
+
1493 return NativeMethods.Datalayer.DLR_variantGetType(_nativePtr);
+
1494 }
+
1495 }
+
1496 }
+
1497
+
1502 public string JsonDataType
+
1503 {
+
1504 get
+
1505 {
+
1506 if (IsDisposed)
+
1507 {
+
1508 throw new ObjectDisposedException(Utils.Strings.ErrorObjectDisposed);
+
1509 }
+
1510
+
1511 return Utils.ToJsonDataType(DataType);
+
1512 }
+
1513 }
+
1514
+
1520 public ByteBuffer ToFlatbuffers()
+
1521 {
+
1522 if (IsNull)
+
1523 {
+
1524 return null;
+
1525 }
+
1526
+
1527 if (!IsFlatbuffers)
+
1528 {
+
1529 return null;
+
1530 }
+
1531
+
1532 unsafe
+
1533 {
+
1534 byte* p = NativeMethods.Datalayer.DLR_variantGetData(_nativePtr);
+
1535 if (p == null)
+
1536 {
+
1537 return null;
+
1538 }
+
1539
+
1540 var array = new byte[GetCount().ToUInt32()];
+
1541 Marshal.Copy((IntPtr)p, array, 0, array.Length);
+
1542 return new ByteBuffer(array);
+
1543 }
+
1544 }
+
1545
+
1551 public byte[] ToRawByteArray()
+
1552 {
+
1553 if (IsNull)
+
1554 {
+
1555 return null;
+
1556 }
+
1557
+
1558 unsafe
+
1559 {
+
1560 byte* p = NativeMethods.Datalayer.DLR_variantGetData(_nativePtr);
+
1561 if (p == null)
+
1562 {
+
1563 return Array.Empty<byte>();
+
1564 }
+
1565
+
1566 var array = new byte[GetCount().ToUInt32()];
+
1567 Marshal.Copy((IntPtr)p, array, 0, array.Length);
+
1568 return array;
+
1569 }
+
1570 }
+
1571
+
1572 #endregion
+
1573
+
1574 #region Public Methods
+
1575
+
1584 public (DLR_RESULT result, IVariant value) GetDataFromFlatbuffers(IVariant typeFlatbuffers, string query)
+
1585 {
+
1586 if (IsDisposed)
+
1587 {
+
1588 throw new ObjectDisposedException(Utils.Strings.ErrorObjectDisposed);
+
1589 }
+
1590
+
1591 if (typeFlatbuffers == null)
+
1592 {
+
1593 throw new ArgumentNullException(nameof(typeFlatbuffers));
+
1594 }
+
1595
+
1596 if (query == null)
+
1597 {
+
1598 throw new ArgumentNullException(nameof(query));
+
1599 }
+
1600
+
1601 if (IsNull)
+
1602 {
+
1603 return (DLR_RESULT.DL_INVALID_VALUE, Null);
+
1604 }
+
1605
+
1606 var dataValue = new Variant();
+
1607 var queryBuffer = StringBuffer.FromString(query);
+
1608
+
1609 unsafe
+
1610 {
+
1611 return (NativeMethods.Datalayer.DLR_getDataFromFlatbuffers(
+
1612 this.ToNativePtr(),
+
1613 typeFlatbuffers.ToNativePtr(),
+
1614 queryBuffer.ToNativePtr(),
+
1615 dataValue.ToNativePtr()), dataValue);
+
1616 }
+
1617 }
+
1618
+ +
1625 {
+
1626 if (IsDisposed)
+
1627 {
+
1628 throw new ObjectDisposedException(Utils.Strings.ErrorObjectDisposed);
+
1629 }
+
1630
+
1631 if (IsNullPtr)
+
1632 {
+
1633 return new Variant();
+
1634 }
+
1635
+
1636 unsafe
+
1637 {
+
1638 var clone = new Variant();
+
1639 if (NativeMethods.Datalayer.DLR_variantCopy(clone.ToNativePtr(), this.ToNativePtr()).IsBad())
+
1640 {
+
1641 throw new InvalidOperationException(Utils.Strings.ErrorObjectNotCloneable);
+
1642 }
+
1643
+
1644 return clone;
+
1645 }
+
1646 }
+
1647
+ +
1655 {
+
1656 if (IsNull)
+
1657 {
+
1658 return DLR_RESULT.DL_TYPE_MISMATCH;
+
1659 }
+
1660
+
1661 unsafe
+
1662 {
+
1663 return NativeMethods.Datalayer.DLR_variantCheckConvert(_nativePtr, type);
+
1664 }
+
1665 }
+
1666
+
1667 #endregion
+
1668
+
1669 #region Public Implicit Operators
+
1670
+
1675 public static implicit operator Variant(bool source)
+
1676 {
+
1677 return new Variant(source);
+
1678 }
+
1679
+
1684 public static implicit operator Variant(bool[] source)
+
1685 {
+
1686 return new Variant(source);
+
1687 }
+
1688
+
1693 public static implicit operator Variant(sbyte source)
+
1694 {
+
1695 return new Variant(source);
+
1696 }
+
1697
+
1701 public static implicit operator Variant(sbyte[] source)
+
1702 {
+
1703 return new Variant(source);
+
1704 }
+
1705
+
1710 public static implicit operator Variant(byte source)
+
1711 {
+
1712 return new Variant(source);
+
1713 }
+
1714
+
1718 public static implicit operator Variant(byte[] source)
+
1719 {
+
1720 return new Variant(source);
+
1721 }
+
1722
+
1727 public static implicit operator Variant(short source)
+
1728 {
+
1729 return new Variant(source);
+
1730 }
+
1731
+
1735 public static implicit operator Variant(short[] source)
+
1736 {
+
1737 return new Variant(source);
+
1738 }
+
1743 public static implicit operator Variant(ushort source)
+
1744 {
+
1745 return new Variant(source);
+
1746 }
+
1747
+
1751 public static implicit operator Variant(ushort[] source)
+
1752 {
+
1753 return new Variant(source);
+
1754 }
+
1755
+
1760 public static implicit operator Variant(int source)
+
1761 {
+
1762 return new Variant(source);
+
1763 }
+
1764
+
1769 public static implicit operator Variant(int[] source)
+
1770 {
+
1771 return new Variant(source);
+
1772 }
+
1773
+
1778 public static implicit operator Variant(uint source)
+
1779 {
+
1780 return new Variant(source);
+
1781 }
+
1782
+
1787 public static implicit operator Variant(uint[] source)
+
1788 {
+
1789 return new Variant(source);
+
1790 }
+
1791
+
1796 public static implicit operator Variant(long source)
+
1797 {
+
1798 return new Variant(source);
+
1799 }
+
1800
+
1805 public static implicit operator Variant(long[] source)
+
1806 {
+
1807 return new Variant(source);
+
1808 }
+
1809
+
1814 public static implicit operator Variant(ulong source)
+
1815 {
+
1816 return new Variant(source);
+
1817 }
+
1818
+
1822 public static implicit operator Variant(ulong[] source)
+
1823 {
+
1824 return new Variant(source);
+
1825 }
+
1826
+
1831 public static implicit operator Variant(float source)
+
1832 {
+
1833 return new Variant(source);
+
1834 }
+
1835
+
1839 public static implicit operator Variant(float[] source)
+
1840 {
+
1841 return new Variant(source);
+
1842 }
+
1843
+
1848 public static implicit operator Variant(double source)
+
1849 {
+
1850 return new Variant(source);
+
1851 }
+
1852
+
1856 public static implicit operator Variant(double[] source)
+
1857 {
+
1858 return new Variant(source);
+
1859 }
+
1860
+
1865 public static implicit operator Variant(string source)
+
1866 {
+
1867 return new Variant(source);
+
1868 }
+
1869
+
1874 public static implicit operator Variant(string[] source)
+
1875 {
+
1876 return new Variant(source);
+
1877 }
+
1878
+
1883 public static implicit operator Variant(DateTime source)
+
1884 {
+
1885 return new Variant(source);
+
1886 }
+
1887
+
1892 public static implicit operator Variant(DateTime[] source)
+
1893 {
+
1894 return new Variant(source);
+
1895 }
+
1896
+
1901 public static implicit operator Variant(FlatBufferBuilder source)
+
1902 {
+
1903 return new Variant(source);
+
1904 }
+
1905
+
1910 public static implicit operator Variant(ByteBuffer source)
+
1911 {
+
1912 return new Variant(source);
+
1913 }
+
1914
+
1915 #endregion
+
1916
+
1917 #region Private Setter
+
1918
+
1924 private DLR_RESULT SetBool(bool value)
+
1925 {
+
1926 unsafe
+
1927 {
+
1928 return NativeMethods.Datalayer.DLR_variantSetBOOL8(_nativePtr, Convert.ToByte(value));
+
1929 }
+
1930 }
+
1931
+
1937 private DLR_RESULT SetInt8(sbyte value)
+
1938 {
+
1939 unsafe
+
1940 {
+
1941 return NativeMethods.Datalayer.DLR_variantSetINT8(_nativePtr, value);
+
1942 }
+
1943 }
+
1944
+
1950 private DLR_RESULT SetUInt8(byte value)
+
1951 {
+
1952 unsafe
+
1953 {
+
1954 return NativeMethods.Datalayer.DLR_variantSetUINT8(_nativePtr, value);
+
1955 }
+
1956 }
+
1957
+
1963 private DLR_RESULT SetInt16(short value)
+
1964 {
+
1965 unsafe
+
1966 {
+
1967 return NativeMethods.Datalayer.DLR_variantSetINT16(_nativePtr, value);
+
1968 }
+
1969 }
+
1970
+
1976 private DLR_RESULT SetUInt16(ushort value)
+
1977 {
+
1978 unsafe
+
1979 {
+
1980 return NativeMethods.Datalayer.DLR_variantSetUINT16(_nativePtr, value);
+
1981 }
+
1982 }
+
1983
+
1989 private DLR_RESULT SetInt32(int value)
+
1990 {
+
1991 unsafe
+
1992 {
+
1993 return NativeMethods.Datalayer.DLR_variantSetINT32(_nativePtr, value);
+
1994 }
+
1995 }
+
1996
+
2002 private DLR_RESULT SetUInt32(uint value)
+
2003 {
+
2004 unsafe
+
2005 {
+
2006 return NativeMethods.Datalayer.DLR_variantSetUINT32(_nativePtr, value);
+
2007 }
+
2008 }
+
2009
+
2015 private DLR_RESULT SetInt64(long value)
+
2016 {
+
2017 unsafe
+
2018 {
+
2019 return NativeMethods.Datalayer.DLR_variantSetINT64(_nativePtr, value);
+
2020 }
+
2021 }
+
2022
+
2028 private DLR_RESULT SetUInt64(ulong value)
+
2029 {
+
2030 unsafe
+
2031 {
+
2032 return NativeMethods.Datalayer.DLR_variantSetUINT64(_nativePtr, value);
+
2033 }
+
2034 }
+
2035
+
2041 private DLR_RESULT SetFloat32(float value)
+
2042 {
+
2043 unsafe
+
2044 {
+
2045 return NativeMethods.Datalayer.DLR_variantSetFLOAT32(_nativePtr, value);
+
2046 }
+
2047 }
+
2048
+
2054 private DLR_RESULT SetFloat64(double value)
+
2055 {
+
2056 unsafe
+
2057 {
+
2058 return NativeMethods.Datalayer.DLR_variantSetFLOAT64(_nativePtr, value);
+
2059 }
+
2060 }
+
2061
+
2068 private DLR_RESULT SetString(string value)
+
2069 {
+
2070 if (value == null)
+
2071 {
+
2072 throw new ArgumentNullException(nameof(value));
+
2073 }
+
2074
+
2075 var valueBuffer = StringBuffer.FromString(value);
+
2076 unsafe
+
2077 {
+
2078 return NativeMethods.Datalayer.DLR_variantSetSTRING(_nativePtr, valueBuffer.ToNativePtr());
+
2079 }
+
2080 }
+
2081
+
2087 private DLR_RESULT SetTimestamp(DateTime value)
+
2088 {
+
2089 unsafe
+
2090 {
+
2091 try
+
2092 {
+
2093 //DateTime -> FileTimeUtc -> ulong -> uint64 (FILETIME) 64 bit 100ns since 1.1.1601 (UTC)
+
2094 return NativeMethods.Datalayer.DLR_variantSetTimestamp(_nativePtr, Convert.ToUInt64(value.ToFileTimeUtc()));
+
2095 }
+
2096 catch (ArgumentOutOfRangeException)
+
2097 {
+
2098 // The resulting file time would represent a date and time before 12:00 midnight January 1, 1601 C.E. UTC.
+
2099 return DLR_RESULT.DL_FAILED;
+
2100 }
+
2101 }
+
2102 }
+
2103
+
2110 private DLR_RESULT SetArrayOfBool(bool[] value)
+
2111 {
+
2112 if (value == null)
+
2113 {
+
2114 throw new ArgumentNullException(nameof(value));
+
2115 }
+
2116
+
2117 unsafe
+
2118 {
+
2119 fixed (bool* p = value)
+
2120 {
+
2121 return NativeMethods.Datalayer.DLR_variantSetARRAY_OF_BOOL8(_nativePtr, p, new UIntPtr(Convert.ToUInt32(value.Length)));
+
2122 }
+
2123 }
+
2124 }
+
2125
+
2132 private DLR_RESULT SetArrayOfInt8(sbyte[] value)
+
2133 {
+
2134 if (value == null)
+
2135 {
+
2136 throw new ArgumentNullException(nameof(value));
+
2137 }
+
2138
+
2139 unsafe
+
2140 {
+
2141 fixed (sbyte* p = value)
+
2142 {
+
2143 return NativeMethods.Datalayer.DLR_variantSetARRAY_OF_INT8(_nativePtr, p, new UIntPtr(Convert.ToUInt32(value.Length)));
+
2144 }
+
2145 }
+
2146 }
+
2147
+
2154 private DLR_RESULT SetArrayOfUInt8(byte[] value)
+
2155 {
+
2156 if (value == null)
+
2157 {
+
2158 throw new ArgumentNullException(nameof(value));
+
2159 }
+
2160
+
2161 unsafe
+
2162 {
+
2163 fixed (byte* p = value)
+
2164 {
+
2165 return NativeMethods.Datalayer.DLR_variantSetARRAY_OF_UINT8(_nativePtr, p, new UIntPtr(Convert.ToUInt32(value.Length)));
+
2166 }
+
2167 }
+
2168 }
+
2169
+
2176 private DLR_RESULT SetArrayOfInt16(short[] value)
+
2177 {
+
2178 if (value == null)
+
2179 {
+
2180 throw new ArgumentNullException(nameof(value));
+
2181 }
+
2182
+
2183 unsafe
+
2184 {
+
2185 fixed (short* p = value)
+
2186 {
+
2187 return NativeMethods.Datalayer.DLR_variantSetARRAY_OF_INT16(_nativePtr, p, new UIntPtr(Convert.ToUInt32(value.Length)));
+
2188 }
+
2189 }
+
2190 }
+
2191
+
2198 private DLR_RESULT SetArrayOfUInt16(ushort[] value)
+
2199 {
+
2200 if (value == null)
+
2201 {
+
2202 throw new ArgumentNullException(nameof(value));
+
2203 }
+
2204
+
2205 unsafe
+
2206 {
+
2207 fixed (ushort* p = value)
+
2208 {
+
2209 return NativeMethods.Datalayer.DLR_variantSetARRAY_OF_UINT16(_nativePtr, p, new UIntPtr(Convert.ToUInt32(value.Length)));
+
2210 }
+
2211 }
+
2212 }
+
2213
+
2220 private DLR_RESULT SetArrayOfInt32(int[] value)
+
2221 {
+
2222 if (value == null)
+
2223 {
+
2224 throw new ArgumentNullException(nameof(value));
+
2225 }
+
2226
+
2227 unsafe
+
2228 {
+
2229 fixed (int* p = value)
+
2230 {
+
2231 return NativeMethods.Datalayer.DLR_variantSetARRAY_OF_INT32(_nativePtr, p, new UIntPtr(Convert.ToUInt32(value.Length)));
+
2232 }
+
2233 }
+
2234 }
+
2235
+
2242 private DLR_RESULT SetArrayOfUInt32(uint[] value)
+
2243 {
+
2244 if (value == null)
+
2245 {
+
2246 throw new ArgumentNullException(nameof(value));
+
2247 }
+
2248
+
2249 unsafe
+
2250 {
+
2251 fixed (uint* p = value)
+
2252 {
+
2253 return NativeMethods.Datalayer.DLR_variantSetARRAY_OF_UINT32(_nativePtr, p, new UIntPtr(Convert.ToUInt32(value.Length)));
+
2254 }
+
2255 }
+
2256 }
+
2257
+
2264 private DLR_RESULT SetArrayOfInt64(long[] value)
+
2265 {
+
2266 if (value == null)
+
2267 {
+
2268 throw new ArgumentNullException(nameof(value));
+
2269 }
+
2270
+
2271 unsafe
+
2272 {
+
2273 fixed (long* p = value)
+
2274 {
+
2275 return NativeMethods.Datalayer.DLR_variantSetARRAY_OF_INT64(_nativePtr, p, new UIntPtr(Convert.ToUInt32(value.Length)));
+
2276 }
+
2277 }
+
2278 }
+
2279
+
2286 private DLR_RESULT SetArrayOfUInt64(ulong[] value)
+
2287 {
+
2288 if (value == null)
+
2289 {
+
2290 throw new ArgumentNullException(nameof(value));
+
2291 }
+
2292
+
2293 unsafe
+
2294 {
+
2295 fixed (ulong* p = value)
+
2296 {
+
2297 return NativeMethods.Datalayer.DLR_variantSetARRAY_OF_UINT64(_nativePtr, p, new UIntPtr(Convert.ToUInt32(value.Length)));
+
2298 }
+
2299 }
+
2300 }
+
2301
+
2308 private DLR_RESULT SetArrayOfFloat32(float[] value)
+
2309 {
+
2310 if (value == null)
+
2311 {
+
2312 throw new ArgumentNullException(nameof(value));
+
2313 }
+
2314
+
2315 unsafe
+
2316 {
+
2317 fixed (float* p = value)
+
2318 {
+
2319 return NativeMethods.Datalayer.DLR_variantSetARRAY_OF_FLOAT32(_nativePtr, p, new UIntPtr(Convert.ToUInt32(value.Length)));
+
2320 }
+
2321 }
+
2322 }
+
2323
+
2330 private DLR_RESULT SetArrayOfFloat64(double[] value)
+
2331 {
+
2332 if (value == null)
+
2333 {
+
2334 throw new ArgumentNullException(nameof(value));
+
2335 }
+
2336
+
2337 unsafe
+
2338 {
+
2339 fixed (double* p = value)
+
2340 {
+
2341 return NativeMethods.Datalayer.DLR_variantSetARRAY_OF_FLOAT64(_nativePtr, p, new UIntPtr(Convert.ToUInt32(value.Length)));
+
2342 }
+
2343 }
+
2344 }
+
2345
+
2352 private DLR_RESULT SetArrayOfTimestamp(DateTime[] value)
+
2353 {
+
2354 if (value == null)
+
2355 {
+
2356 throw new ArgumentNullException(nameof(value));
+
2357 }
+
2358
+
2359 unsafe
+
2360 {
+
2361 try
+
2362 {
+
2363 //DateTime -> FileTimeUtc -> ulong -> uint64 (FILETIME) 64 bit 100ns since 1.1.1601 (UTC)
+
2364 var timeStamps = value.Select(v => Convert.ToUInt64(v.ToFileTimeUtc())).ToArray();
+
2365
+
2366 fixed (ulong* p = timeStamps)
+
2367 {
+
2368 return NativeMethods.Datalayer.DLR_variantSetARRAY_OF_TIMESTAMP(_nativePtr, p, new UIntPtr(Convert.ToUInt32(timeStamps.Length)));
+
2369 }
+
2370 }
+
2371 catch (ArgumentOutOfRangeException)
+
2372 {
+
2373 // The resulting file time would represent a date and time before 12:00 midnight January 1, 1601 C.E. UTC.
+
2374 return DLR_RESULT.DL_FAILED;
+
2375 }
+
2376 }
+
2377 }
+
2378
+
2385 private DLR_RESULT SetArrayOfString(string[] value)
+
2386 {
+
2387 if (value == null)
+
2388 {
+
2389 throw new ArgumentNullException(nameof(value));
+
2390 }
+
2391
+
2392
+
2393 var stringBufferArray = StringBufferArray.FromStringArray(value);
+
2394 unsafe
+
2395 {
+
2396 return NativeMethods.Datalayer.DLR_variantSetARRAY_OF_STRING(_nativePtr, stringBufferArray.ToNativePtr(), new UIntPtr(Convert.ToUInt32(value.Length)));
+
2397 }
+
2398 }
+
2399
+
2406 private DLR_RESULT SetFlatbuffers(ByteBuffer value)
+
2407 {
+
2408 if (value == null)
+
2409 {
+
2410 throw new ArgumentNullException(nameof(value));
+
2411 }
+
2412
+
2413 // Note: We have to convert Flatbuffers original byte[] to a sbyte[], because of bad Datalayer ANSI-C API design (which would be a incompabible change to byte[]).
+
2414
+
2415 //OPTION A: SLOW: Convert byte[] to sbyte[] bytewise
+
2416 //var sbyteArray = Array.ConvertAll(value.ToSizedArray(), b => unchecked((sbyte)b));
+
2417 //unsafe
+
2418 //{
+
2419 // fixed (sbyte* p = sbyteArray)
+
2420 // {
+
2421 // return NativeMethods.Datalayer.DLR_variantSetFlatbuffers(_nativePtr, p, new UIntPtr(Convert.ToUInt32(sbyteArray.Length)));
+
2422 // }
+
2423 //}
+
2424
+
2425 //OPTION B: FASTER: Use ClockCopy to convert byte[] to sbyte[]
+
2426 //var buffer = value.ToSizedArray();
+
2427 //sbyte[] sbyteArray = new sbyte[buffer.Length];
+
2428 //Buffer.BlockCopy(buffer, 0, sbyteArray, 0, buffer.Length);
+
2429 //unsafe
+
2430 //{
+
2431 // fixed (sbyte* p = sbyteArray)
+
2432 // {
+
2433 // return NativeMethods.Datalayer.DLR_variantSetFlatbuffers(_nativePtr, p, new UIntPtr(Convert.ToUInt32(sbyteArray.Length)));
+
2434 // }
+
2435 //}
+
2436
+
2437 //OPTION C: FASTEST: Convert byte* to sbyte*, pointing to original memory(no copy)
+
2438 var byteArray = value.ToSizedArray();
+
2439 unsafe
+
2440 {
+
2441 fixed (byte* p = byteArray)
+
2442 {
+
2443 sbyte* psByte = (sbyte*)p;
+
2444 return NativeMethods.Datalayer.DLR_variantSetFlatbuffers(_nativePtr, psByte, new UIntPtr(Convert.ToUInt32(byteArray.Length)));
+
2445 }
+
2446 }
+
2447 }
+
2448
+
2455 private DLR_RESULT SetArrayOfRawBytes(byte[] value)
+
2456 {
+
2457 if (value == null)
+
2458 {
+
2459 throw new ArgumentNullException(nameof(value));
+
2460 }
+
2461
+
2462 unsafe
+
2463 {
+
2464 fixed (byte* p = value)
+
2465 {
+
2466 sbyte* psByte = (sbyte*)p;
+
2467 return NativeMethods.Datalayer.DLR_variantSetRaw(_nativePtr, psByte, new UIntPtr(Convert.ToUInt32(value.Length)));
+
2468 }
+
2469 }
+
2470 }
+
2471
+
2472 #endregion
+
2473
+
2474 #region Private Methods
+
2475
+
2480 internal UIntPtr GetSize()
+
2481 {
+
2482 if (IsNull)
+
2483 {
+
2484 return UIntPtr.Zero;
+
2485 }
+
2486
+
2487 unsafe
+
2488 {
+
2489 return NativeMethods.Datalayer.DLR_variantGetSize(_nativePtr);
+
2490 }
+
2491 }
+
2492
+
2497 internal UIntPtr GetCount()
+
2498 {
+
2499 if (IsNull)
+
2500 {
+
2501 return UIntPtr.Zero;
+
2502 }
+
2503
+
2504 unsafe
+
2505 {
+
2506 return NativeMethods.Datalayer.DLR_variantGetCount(_nativePtr);
+
2507 }
+
2508 }
+
2509 #endregion
+
2510 }
+
2511}
+
Provides the implementation for IVariant.
Definition: Variant.cs:18
+
string[] ToStringArray()
Gets the value as string array.
Definition: Variant.cs:1441
+
short ToInt16()
Gets the value as short.
Definition: Variant.cs:957
+
long[] ToInt64Array()
Gets the value as long array.
Definition: Variant.cs:1328
+
sbyte ToSByte()
Gets the value as sbyte.
Definition: Variant.cs:921
+
float[] ToFloatArray()
Gets the value as float array.
Definition: Variant.cs:1389
+
double ToDouble()
Gets the value as double.
Definition: Variant.cs:1093
+
Variant(sbyte[] value)
Initializes a new instance of the Variant class.
Definition: Variant.cs:379
+
Variant(string value)
Initializes a new instance of the Variant class.
Definition: Variant.cs:180
+
sbyte[] ToSByteArray()
Gets the value as sbyte array.
Definition: Variant.cs:1146
+
ushort[] ToUInt16Array()
Gets the value as ushort array.
Definition: Variant.cs:1233
+
Variant(int value)
Initializes a new instance of the Variant class.
Definition: Variant.cs:222
+
Variant(ByteBuffer flatBuffers)
Initializes a new instance of the Variant class.
Definition: Variant.cs:556
+
static readonly Variant Zero
Gets a Variant with value '0' of data type 'int' (Int32).
Definition: Variant.cs:740
+
object Value
Gets the value.
Definition: Variant.cs:771
+
Variant(DateTime value)
Initializes a new instance of the Variant class.
Definition: Variant.cs:250
+
DateTime ToDateTime()
Converts the value to a timestamp.
Definition: Variant.cs:1064
+
short[] ToInt16Array()
Gets the value as short array.
Definition: Variant.cs:1207
+
Variant()
Initializes a new instance of the Variant class.
Definition: Variant.cs:130
+
Variant(bool[] value)
Initializes a new instance of the Variant class.
Definition: Variant.cs:349
+
double[] ToDoubleArray()
Gets the value as double array.
Definition: Variant.cs:1415
+
ByteBuffer ToFlatbuffers()
Gets the value as Flatbuffers.
Definition: Variant.cs:1520
+
uint ToUInt32()
Gets the value as uint.
Definition: Variant.cs:1011
+
Variant(DateTime[] value)
Initializes a new instance of the Variant class.
Definition: Variant.cs:541
+
byte ToByte()
Gets the value as byte.
Definition: Variant.cs:939
+
ulong[] ToUInt64Array()
Gets the value as ulong array.
Definition: Variant.cs:1354
+
bool IsString
Gets a value that indicates whether the Variant contains a string value.
Definition: Variant.cs:849
+
byte[] ToByteArray()
Gets the value as byte array.
Definition: Variant.cs:1181
+
Variant(ulong value)
Initializes a new instance of the Variant class.
Definition: Variant.cs:306
+
static readonly Variant One
Gets a Variant with value '1' of data type 'int' (Int32).
Definition: Variant.cs:745
+
Variant(ushort value)
Initializes a new instance of the Variant class.
Definition: Variant.cs:278
+
Variant(sbyte value)
Initializes a new instance of the Variant class.
Definition: Variant.cs:194
+
bool IsNull
Gets a value that indicates whether the Variant is null.
Definition: Variant.cs:843
+
Variant(short[] value)
Initializes a new instance of the Variant class.
Definition: Variant.cs:394
+
void Dispose()
Disposes the instance.
Definition: Variant.cs:116
+
Variant(IVariant other)
Initializes a new instance of the Variant class.
Definition: Variant.cs:143
+
bool Equals(Variant other)
Returns a value that indicates if this Variant equals given Variant.
Definition: Variant.cs:605
+
Variant(byte[] value, bool raw=false)
Initializes a new instance of the Variant class.
Definition: Variant.cs:440
+
override int GetHashCode()
Gets the HashCode of this Variant.
Definition: Variant.cs:643
+
bool IsFlatbuffers
Gets a value that indicates whether the Variant contains Flatbuffers.
Definition: Variant.cs:861
+
Variant(long value)
Initializes a new instance of the Variant class.
Definition: Variant.cs:236
+
byte[] ToRawByteArray()
Gets the value as raw byte array (UTF8).
Definition: Variant.cs:1551
+
DLR_VARIANT_TYPE DataType
Gets the data type.
Definition: Variant.cs:1478
+
DLR_RESULT result
Gets data of a complex Variant (flatbuffers) by query.
Definition: Variant.cs:1584
+
bool ToBool()
Gets the value as bool.
Definition: Variant.cs:903
+
Variant(bool value)
Initializes a new instance of the Variant class.
Definition: Variant.cs:165
+
uint[] ToUInt32Array()
Gets the value as uint array.
Definition: Variant.cs:1293
+
virtual void Dispose(bool disposing)
Disposes the instance.
Definition: Variant.cs:70
+
Variant(byte value)
Initializes a new instance of the Variant class.
Definition: Variant.cs:264
+
static readonly int DefaultFlatbuffersInitialSize
Gets the default Flatbuffers initial size in bytes.
Definition: Variant.cs:730
+
Variant(float value)
Initializes a new instance of the Variant class.
Definition: Variant.cs:320
+
Variant(uint[] value)
Initializes a new instance of the Variant class.
Definition: Variant.cs:480
+
static readonly Variant Null
Gets a Variant with no value of data type 'DLR_VARIANT_TYPE_UNKNOWN'.
Definition: Variant.cs:735
+
Variant(double value)
Initializes a new instance of the Variant class.
Definition: Variant.cs:334
+
long ToInt64()
Gets the value as long.
Definition: Variant.cs:1029
+
Variant Clone()
Clones the instance.
Definition: Variant.cs:1624
+
Variant(double[] value)
Initializes a new instance of the Variant class.
Definition: Variant.cs:525
+
override string ToString()
Gets the value as string.
Definition: Variant.cs:654
+
static bool operator!=(Variant l, Variant r)
s Unequality Operator.
Definition: Variant.cs:705
+
ulong ToUInt64()
Gets the value as ulong.
Definition: Variant.cs:1047
+
override bool Equals(object obj)
Returns a value that indicates if this Variant equals given object.
Definition: Variant.cs:594
+
string JsonDataType
Gets the Json data type.
Definition: Variant.cs:1503
+
Variant(string[] value)
Initializes a new instance of the Variant class.
Definition: Variant.cs:364
+
bool IsDisposed
Gets a value that indicates whether the instance is disposed.
Definition: Variant.cs:64
+
Variant(short value)
Initializes a new instance of the Variant class.
Definition: Variant.cs:208
+
Variant(ushort[] value)
Initializes a new instance of the Variant class.
Definition: Variant.cs:465
+
bool IsBool
Gets a value that indicates whether the Variant contains a boolean value.
Definition: Variant.cs:855
+
static readonly Variant True
Gets a Variant with boolean value 'true'.
Definition: Variant.cs:755
+
Variant(float[] value)
Initializes a new instance of the Variant class.
Definition: Variant.cs:510
+
DLR_RESULT CheckConvert(DLR_VARIANT_TYPE type)
Checks if the Variant is convertable to given data type.
Definition: Variant.cs:1654
+
static bool operator==(Variant l, Variant r)
Equality Operator.
Definition: Variant.cs:681
+
ushort ToUInt16()
Gets the value as ushort.
Definition: Variant.cs:975
+
Variant(uint value)
Initializes a new instance of the Variant class.
Definition: Variant.cs:292
+
float ToFloat()
Gets the value as float.
Definition: Variant.cs:1075
+
Variant(ulong[] value)
Initializes a new instance of the Variant class.
Definition: Variant.cs:495
+
static readonly Variant False
Gets a Variant with boolean value 'false'.
Definition: Variant.cs:760
+
int ToInt32()
Gets the value as int.
Definition: Variant.cs:993
+
static readonly Variant Empty
Gets a Variant with empty string value.
Definition: Variant.cs:750
+
bool IsNumber
Gets a value that indicates whether the Variant contains a numeric value. Returns false for numeric a...
Definition: Variant.cs:886
+
Variant(long[] value)
Initializes a new instance of the Variant class.
Definition: Variant.cs:424
+
Variant(FlatBufferBuilder builder)
Initializes a new instance of the Variant class.
Definition: Variant.cs:571
+
int[] ToInt32Array()
Gets the value as int array.
Definition: Variant.cs:1267
+
bool IsArray
Gets a value that indicates whether the Variant is an array.
Definition: Variant.cs:868
+
Variant(int[] value)
Initializes a new instance of the Variant class.
Definition: Variant.cs:409
+
DateTime[] ToDateTimeArray()
Gets the value as DateTime array.
Definition: Variant.cs:1467
+
bool[] ToBoolArray()
Gets the value as bool array.
Definition: Variant.cs:1111
+
The IVariant interface.
Definition: IVariant.cs:10
+ +
DLR_RESULT
The result.
Definition: Enums.cs:141
+
DLR_VARIANT_TYPE
DLR_VARIANT_TYPE.
Definition: Enums.cs:397
+
+
+ + + + diff --git a/3.4.0/api/net/html/annotated.html b/3.4.0/api/net/html/annotated.html new file mode 100644 index 000000000..bef51d428 --- /dev/null +++ b/3.4.0/api/net/html/annotated.html @@ -0,0 +1,142 @@ + + + + + + + +ctrlX Data Layer .NET API: Class List +Class List + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Class List
+
+
+
Here are the classes, structs, unions and interfaces with brief descriptions:
+
[detail level 12]
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
 NDatalayer
 CDatalayerSystemProvides the implementation for IDatalayerSystem
 CIBulkThe IBulk interface
 CIBulkItemThe IBulkItem interface
 CIClientThe IClient interface
 CIClientAsyncBulkResultThe IClientAsyncBulkResult interface
 CIClientAsyncResultThe IClientAsyncResult interface
 CIConverterThe IConverter interface
 CIDataChangedEventArgsThe IDataChangedEventArgs interface
 CIDatalayerSystemThe IDatalayerSystem interface
 CIFactoryThe IFactory interface
 CINativeDisposableThe INativeDisposable interface
 CINotifyItemThe INotifyItem interface
 CIProviderThe IProvider interface
 CIProviderNodeThe IProvider interface
 CIProviderNodeHandlerThe IProviderNodeHandler interface
 CIProviderNodeResultThe IProviderNodeResult interface
 CISubscriptionThe ISubscription interface
 CISubscriptionAsyncResultThe ISubscriptionAsyncResult interface
 CIVariantThe IVariant interface
 CMetadataBuilderProvides a convenient way to to build up a Metadata flatbuffers
 CReferenceTypeRepresents a type of reference
 CRemoteProvides a container for a TCP remote connection string
 CResultExtensionsProvides extension methods for DLR_RESULT
 CSubscriptionPropertiesBuilderProvides a convenient way to build a SubscriptionProperties flatbuffers
 CVariantProvides the implementation for IVariant
+
+
+
+ + + + diff --git a/3.4.0/api/net/html/annotated_dup.js b/3.4.0/api/net/html/annotated_dup.js new file mode 100644 index 000000000..7b8f30b11 --- /dev/null +++ b/3.4.0/api/net/html/annotated_dup.js @@ -0,0 +1,30 @@ +var annotated_dup = +[ + [ "Datalayer", "namespaceDatalayer.html", [ + [ "DatalayerSystem", "classDatalayer_1_1DatalayerSystem.html", "classDatalayer_1_1DatalayerSystem" ], + [ "IBulk", "interfaceDatalayer_1_1IBulk.html", "interfaceDatalayer_1_1IBulk" ], + [ "IBulkItem", "interfaceDatalayer_1_1IBulkItem.html", "interfaceDatalayer_1_1IBulkItem" ], + [ "IClient", "interfaceDatalayer_1_1IClient.html", "interfaceDatalayer_1_1IClient" ], + [ "IClientAsyncBulkResult", "interfaceDatalayer_1_1IClientAsyncBulkResult.html", "interfaceDatalayer_1_1IClientAsyncBulkResult" ], + [ "IClientAsyncResult", "interfaceDatalayer_1_1IClientAsyncResult.html", "interfaceDatalayer_1_1IClientAsyncResult" ], + [ "IConverter", "interfaceDatalayer_1_1IConverter.html", "interfaceDatalayer_1_1IConverter" ], + [ "IDataChangedEventArgs", "interfaceDatalayer_1_1IDataChangedEventArgs.html", "interfaceDatalayer_1_1IDataChangedEventArgs" ], + [ "IDatalayerSystem", "interfaceDatalayer_1_1IDatalayerSystem.html", "interfaceDatalayer_1_1IDatalayerSystem" ], + [ "IFactory", "interfaceDatalayer_1_1IFactory.html", "interfaceDatalayer_1_1IFactory" ], + [ "INativeDisposable", "interfaceDatalayer_1_1INativeDisposable.html", "interfaceDatalayer_1_1INativeDisposable" ], + [ "INotifyItem", "interfaceDatalayer_1_1INotifyItem.html", "interfaceDatalayer_1_1INotifyItem" ], + [ "IProvider", "interfaceDatalayer_1_1IProvider.html", "interfaceDatalayer_1_1IProvider" ], + [ "IProviderNode", "interfaceDatalayer_1_1IProviderNode.html", "interfaceDatalayer_1_1IProviderNode" ], + [ "IProviderNodeHandler", "interfaceDatalayer_1_1IProviderNodeHandler.html", "interfaceDatalayer_1_1IProviderNodeHandler" ], + [ "IProviderNodeResult", "interfaceDatalayer_1_1IProviderNodeResult.html", "interfaceDatalayer_1_1IProviderNodeResult" ], + [ "ISubscription", "interfaceDatalayer_1_1ISubscription.html", "interfaceDatalayer_1_1ISubscription" ], + [ "ISubscriptionAsyncResult", "interfaceDatalayer_1_1ISubscriptionAsyncResult.html", "interfaceDatalayer_1_1ISubscriptionAsyncResult" ], + [ "IVariant", "interfaceDatalayer_1_1IVariant.html", "interfaceDatalayer_1_1IVariant" ], + [ "MetadataBuilder", "classDatalayer_1_1MetadataBuilder.html", "classDatalayer_1_1MetadataBuilder" ], + [ "ReferenceType", "classDatalayer_1_1ReferenceType.html", "classDatalayer_1_1ReferenceType" ], + [ "Remote", "classDatalayer_1_1Remote.html", "classDatalayer_1_1Remote" ], + [ "ResultExtensions", "classDatalayer_1_1ResultExtensions.html", "classDatalayer_1_1ResultExtensions" ], + [ "SubscriptionPropertiesBuilder", "classDatalayer_1_1SubscriptionPropertiesBuilder.html", "classDatalayer_1_1SubscriptionPropertiesBuilder" ], + [ "Variant", "classDatalayer_1_1Variant.html", "classDatalayer_1_1Variant" ] + ] ] +]; \ No newline at end of file diff --git a/3.4.0/api/net/html/bc_s.png b/3.4.0/api/net/html/bc_s.png new file mode 100644 index 000000000..224b29aa9 Binary files /dev/null and b/3.4.0/api/net/html/bc_s.png differ diff --git a/3.4.0/api/net/html/bc_sd.png b/3.4.0/api/net/html/bc_sd.png new file mode 100644 index 000000000..31ca888dc Binary files /dev/null and b/3.4.0/api/net/html/bc_sd.png differ diff --git a/3.4.0/api/net/html/bdwn.png b/3.4.0/api/net/html/bdwn.png new file mode 100644 index 000000000..940a0b950 Binary files /dev/null and b/3.4.0/api/net/html/bdwn.png differ diff --git a/3.4.0/api/net/html/classDatalayer_1_1DatalayerSystem-members.html b/3.4.0/api/net/html/classDatalayer_1_1DatalayerSystem-members.html new file mode 100644 index 000000000..70233a17a --- /dev/null +++ b/3.4.0/api/net/html/classDatalayer_1_1DatalayerSystem-members.html @@ -0,0 +1,130 @@ + + + + + + + +ctrlX Data Layer .NET API: Member List +Member List + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
DatalayerSystem Member List
+
+
+ +

This is the complete list of members for DatalayerSystem, including all inherited members.

+ + + + + + + + + + + + + + + + +
BfbsPathDatalayerSystem
ConverterDatalayerSystem
DatalayerSystem(string ipcPath="")DatalayerSysteminline
DefaultClientPortDatalayerSystemstatic
DefaultProviderPortDatalayerSystemstatic
Dispose(bool disposing)DatalayerSysteminlineprotectedvirtual
Dispose()DatalayerSysteminline
FactoryDatalayerSystem
IpcPathDatalayerSystem
IsDisposedDatalayerSystem
IsStartedDatalayerSystem
ProtocolSchemeIpcDatalayerSystemstatic
ProtocolSchemeTcpDatalayerSystemstatic
Start(bool startBroker=false)DatalayerSysteminline
Stop()DatalayerSysteminline
+
+ + + + diff --git a/3.4.0/api/net/html/classDatalayer_1_1DatalayerSystem.html b/3.4.0/api/net/html/classDatalayer_1_1DatalayerSystem.html new file mode 100644 index 000000000..97f496fe5 --- /dev/null +++ b/3.4.0/api/net/html/classDatalayer_1_1DatalayerSystem.html @@ -0,0 +1,741 @@ + + + + + + + +ctrlX Data Layer .NET API: DatalayerSystem Class Reference +DatalayerSystem Class Reference + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
DatalayerSystem Class Reference
+
+
+ +

Provides the implementation for IDatalayerSystem. + More...

+
+Inheritance diagram for DatalayerSystem:
+
+
+ + +IDatalayerSystem +INativeDisposable + +
+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 DatalayerSystem (string ipcPath="")
 Initializes a new instance of the DatalayerSystem class.
 
void Dispose ()
 Dispose the instance.
 
void Start (bool startBroker=false)
 Starts the DatalayerSystem.
 
void Stop ()
 Stops the DatalayerSystem.
 
void Start (bool startBroker)
 Starts the DatalayerSystem.
 
void Stop ()
 Stops the DatalayerSystem.
 
+ + + + + + + + + + + + + +

+Static Public Attributes

static readonly int DefaultClientPort = 2069
 Gets the default Client port.
 
static readonly int DefaultProviderPort = 2070
 Gets the default Provider port.
 
static readonly string ProtocolSchemeIpc = "ipc://"
 Gets the protocol scheme for IPC communication. Recommended to connect to a DatalayerSystem running on localhost.
 
static readonly string ProtocolSchemeTcp = "tcp://"
 Gets the protocol scheme for TCP communication. Recommended to connect to a DatalayerSystem not running on localhost.
 
+ + + + +

+Protected Member Functions

virtual void Dispose (bool disposing)
 Disposes the instance.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Properties

string BfbsPath [set]
 Sets the binary Flatbuffer path, which contains *.bfbs files.
 
IConverter Converter [get]
 Gets the Converter for Variant to JSON conversions.
 
IFactory Factory [get]
 Gets the Factory to create Clients and Providers.
 
string IpcPath [get]
 Gets the path for interprocess communication.
 
bool IsDisposed [get]
 Gets a value that indicates whether the instance is already disposed and useless.
 
bool IsStarted [get]
 Gets a value that indicates whether the DatalayerSystem is started.
 
- Properties inherited from IDatalayerSystem
string BfbsPath [set]
 Sets the binary Flatbuffer path, which contains *.bfbs files.
 
IConverter Converter [get]
 Gets the Converter for Variant to JSON conversions.
 
IFactory Factory [get]
 Gets the Factory to create Clients and Providers.

Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
InvalidOperationExceptionOperation not allowed.
+
+
+
 
string IpcPath [get]
 Gets the interprocess communication path.
 
bool IsStarted [get]
 Checks if the DatalayerSystem is started.
 
- Properties inherited from INativeDisposable
bool IsDisposed [get]
 Checks disposed.
 
+

Detailed Description

+

Provides the implementation for IDatalayerSystem.

+ +

Definition at line 10 of file DatalayerSystem.cs.

+

Constructor & Destructor Documentation

+ +

◆ DatalayerSystem()

+ +
+
+ + + + + +
+ + + + + + + + +
DatalayerSystem (string ipcPath = "")
+
+inline
+
+ +

Initializes a new instance of the DatalayerSystem class.

+
Parameters
+ + +
ipcPathPath for interprocess communication. Leave empty for automatic detection.
+
+
+
Exceptions
+ + +
ArgumentNullExceptionArgument cannot be null.
+
+
+ +

Definition at line 30 of file DatalayerSystem.cs.

+ +
+
+

Member Function Documentation

+ +

◆ Dispose() [1/2]

+ +
+
+ + + + + +
+ + + + + + + +
void Dispose ()
+
+inline
+
+ +

Dispose the instance.

+ +

Definition at line 96 of file DatalayerSystem.cs.

+ +

References DatalayerSystem.Dispose().

+ +

Referenced by DatalayerSystem.Dispose().

+ +
+
+ +

◆ Dispose() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void Dispose (bool disposing)
+
+inlineprotectedvirtual
+
+ +

Disposes the instance.

+
Parameters
+ + +
disposingFalse if called by Finalizer, else true.
+
+
+ +

Definition at line 67 of file DatalayerSystem.cs.

+ +
+
+ +

◆ Start()

+ +
+
+ + + + + +
+ + + + + + + + +
void Start (bool startBroker = false)
+
+inline
+
+ +

Starts the DatalayerSystem.

+
Parameters
+ + +
startBrokerUse true to start a broker. If you are a user of the ctrlX Data Layer, set to false.
+
+
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+

Example

using var system = new DatalayerSystem();
+
system.Start(startBroker: false);
+
Provides the implementation for IDatalayerSystem.
+
+

Implements IDatalayerSystem.

+ +

Definition at line 255 of file DatalayerSystem.cs.

+ +

References DatalayerSystem.IsDisposed.

+ +
+
+ +

◆ Stop()

+ +
+
+ + + + + +
+ + + + + + + +
void Stop ()
+
+inline
+
+ +

Stops the DatalayerSystem.

+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implements IDatalayerSystem.

+ +

Definition at line 273 of file DatalayerSystem.cs.

+ +

References DatalayerSystem.IsDisposed.

+ +
+
+

Member Data Documentation

+ +

◆ DefaultClientPort

+ +
+
+ + + + + +
+ + + + +
readonly int DefaultClientPort = 2069
+
+static
+
+ +

Gets the default Client port.

+ +

Definition at line 154 of file DatalayerSystem.cs.

+ +
+
+ +

◆ DefaultProviderPort

+ +
+
+ + + + + +
+ + + + +
readonly int DefaultProviderPort = 2070
+
+static
+
+ +

Gets the default Provider port.

+ +

Definition at line 159 of file DatalayerSystem.cs.

+ +
+
+ +

◆ ProtocolSchemeIpc

+ +
+
+ + + + + +
+ + + + +
readonly string ProtocolSchemeIpc = "ipc://"
+
+static
+
+ +

Gets the protocol scheme for IPC communication. Recommended to connect to a DatalayerSystem running on localhost.

+ +

Definition at line 171 of file DatalayerSystem.cs.

+ +

Referenced by Remote.ToString().

+ +
+
+ +

◆ ProtocolSchemeTcp

+ +
+
+ + + + + +
+ + + + +
readonly string ProtocolSchemeTcp = "tcp://"
+
+static
+
+ +

Gets the protocol scheme for TCP communication. Recommended to connect to a DatalayerSystem not running on localhost.

+ +

Definition at line 165 of file DatalayerSystem.cs.

+ +
+
+

Property Documentation

+ +

◆ BfbsPath

+ +
+
+ + + + + +
+ + + + +
string BfbsPath
+
+set
+
+ +

Sets the binary Flatbuffer path, which contains *.bfbs files.

+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
+
+
+ +

Implements IDatalayerSystem.

+ +

Definition at line 216 of file DatalayerSystem.cs.

+ +
+
+ +

◆ Converter

+ +
+
+ + + + + +
+ + + + +
IConverter Converter
+
+get
+
+ +

Gets the Converter for Variant to JSON conversions.

+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implements IDatalayerSystem.

+ +

Definition at line 328 of file DatalayerSystem.cs.

+ +
+
+ +

◆ Factory

+ +
+
+ + + + + +
+ + + + +
IFactory Factory
+
+get
+
+ +

Gets the Factory to create Clients and Providers.

+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
InvalidOperationExceptionOperation not allowed.
+
+
+ +

Implements IDatalayerSystem.

+ +

Definition at line 297 of file DatalayerSystem.cs.

+ +
+
+ +

◆ IpcPath

+ +
+
+ + + + + +
+ + + + +
string IpcPath
+
+get
+
+ +

Gets the path for interprocess communication.

+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implements IDatalayerSystem.

+ +

Definition at line 181 of file DatalayerSystem.cs.

+ +
+
+ +

◆ IsDisposed

+ +
+
+ + + + + +
+ + + + +
bool IsDisposed
+
+get
+
+ +

Gets a value that indicates whether the instance is already disposed and useless.

+ +

Implements INativeDisposable.

+ +

Definition at line 61 of file DatalayerSystem.cs.

+ +

Referenced by DatalayerSystem.Start(), and DatalayerSystem.Stop().

+ +
+
+ +

◆ IsStarted

+ +
+
+ + + + + +
+ + + + +
bool IsStarted
+
+get
+
+ +

Gets a value that indicates whether the DatalayerSystem is started.

+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implements IDatalayerSystem.

+ +

Definition at line 198 of file DatalayerSystem.cs.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/3.4.0/api/net/html/classDatalayer_1_1DatalayerSystem.js b/3.4.0/api/net/html/classDatalayer_1_1DatalayerSystem.js new file mode 100644 index 000000000..6a17047e2 --- /dev/null +++ b/3.4.0/api/net/html/classDatalayer_1_1DatalayerSystem.js @@ -0,0 +1,18 @@ +var classDatalayer_1_1DatalayerSystem = +[ + [ "DatalayerSystem", "classDatalayer_1_1DatalayerSystem.html#a0f208074ce7167a7f29265797aa5491e", null ], + [ "Dispose", "classDatalayer_1_1DatalayerSystem.html#a6e2d745cdb7a7b983f861ed6a9a541a7", null ], + [ "Dispose", "classDatalayer_1_1DatalayerSystem.html#a8ad4348ef0f9969025bab397e7e27e26", null ], + [ "Start", "classDatalayer_1_1DatalayerSystem.html#aedc8062676da3b418c85610e41174812", null ], + [ "Stop", "classDatalayer_1_1DatalayerSystem.html#a17a237457e57625296e6b24feb19c60a", null ], + [ "DefaultClientPort", "classDatalayer_1_1DatalayerSystem.html#a7b066806d7327c9a1f11c9598fb7efa6", null ], + [ "DefaultProviderPort", "classDatalayer_1_1DatalayerSystem.html#a5ed5ed67b5b2d4921715868cc4fd80fc", null ], + [ "ProtocolSchemeIpc", "classDatalayer_1_1DatalayerSystem.html#a9898cbe4eb1903205a9ce4414bc53df8", null ], + [ "ProtocolSchemeTcp", "classDatalayer_1_1DatalayerSystem.html#a32418123bb8575e5f4e584c16b0ad695", null ], + [ "BfbsPath", "classDatalayer_1_1DatalayerSystem.html#a7aab1ae266e615d729f60decf8a6de5f", null ], + [ "Converter", "classDatalayer_1_1DatalayerSystem.html#aa2305cf58e178ab1f86fb44b27827da1", null ], + [ "Factory", "classDatalayer_1_1DatalayerSystem.html#abefeb4acffc919ce04ebd948daa06b85", null ], + [ "IpcPath", "classDatalayer_1_1DatalayerSystem.html#a07d6bca7b87c1e03c76407fdf8fe7006", null ], + [ "IsDisposed", "classDatalayer_1_1DatalayerSystem.html#ab96a71c70205ed1aa4af692ee7f35403", null ], + [ "IsStarted", "classDatalayer_1_1DatalayerSystem.html#a9414c6daba9ce4aab80fa4c7ed02d507", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/net/html/classDatalayer_1_1DatalayerSystem.png b/3.4.0/api/net/html/classDatalayer_1_1DatalayerSystem.png new file mode 100644 index 000000000..d7c43a420 Binary files /dev/null and b/3.4.0/api/net/html/classDatalayer_1_1DatalayerSystem.png differ diff --git a/3.4.0/api/net/html/classDatalayer_1_1MetadataBuilder-members.html b/3.4.0/api/net/html/classDatalayer_1_1MetadataBuilder-members.html new file mode 100644 index 000000000..41efe0d15 --- /dev/null +++ b/3.4.0/api/net/html/classDatalayer_1_1MetadataBuilder-members.html @@ -0,0 +1,125 @@ + + + + + + + +ctrlX Data Layer .NET API: Member List +Member List + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
MetadataBuilder Member List
+
+
+ +

This is the complete list of members for MetadataBuilder, including all inherited members.

+ + + + + + + + + + + +
AddDescription(string localeId, string text)MetadataBuilderinline
AddDisplayName(string localeId, string text)MetadataBuilderinline
AddExtension(string key, string value)MetadataBuilderinline
AddReference(ReferenceType type, string targetAddress)MetadataBuilderinline
Build()MetadataBuilderinline
MetadataBuilder(AllowedOperationFlags allowedOperationFlags, string description="", string descriptionUrl="")MetadataBuilderinline
SetDisplayFormat(DisplayFormat displayFormat)MetadataBuilderinline
SetDisplayName(string displayName)MetadataBuilderinline
SetNodeClass(NodeClass nodeClass)MetadataBuilderinline
SetUnit(string unit)MetadataBuilderinline
+
+ + + + diff --git a/3.4.0/api/net/html/classDatalayer_1_1MetadataBuilder.html b/3.4.0/api/net/html/classDatalayer_1_1MetadataBuilder.html new file mode 100644 index 000000000..e98522e11 --- /dev/null +++ b/3.4.0/api/net/html/classDatalayer_1_1MetadataBuilder.html @@ -0,0 +1,590 @@ + + + + + + + +ctrlX Data Layer .NET API: MetadataBuilder Class Reference +MetadataBuilder Class Reference + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
MetadataBuilder Class Reference
+
+
+ +

Provides a convenient way to to build up a Metadata flatbuffers. + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 MetadataBuilder (AllowedOperationFlags allowedOperationFlags, string description="", string descriptionUrl="")
 Initializes a new instance of the MetadataBuilder class.
 
MetadataBuilder AddDescription (string localeId, string text)
 Adds the description.
 
MetadataBuilder AddDisplayName (string localeId, string text)
 Adds the display name.
 
MetadataBuilder AddExtension (string key, string value)
 Adds the extension.
 
MetadataBuilder AddReference (ReferenceType type, string targetAddress)
 Adds the reference.
 
Variant Build ()
 Builds this instance.
 
MetadataBuilder SetDisplayFormat (DisplayFormat displayFormat)
 Sets the display format.
 
MetadataBuilder SetDisplayName (string displayName)
 Sets the display name.
 
MetadataBuilder SetNodeClass (NodeClass nodeClass)
 Sets the node class.
 
MetadataBuilder SetUnit (string unit)
 Sets the unit.
 
+

Detailed Description

+

Provides a convenient way to to build up a Metadata flatbuffers.

+ +

Definition at line 10 of file MetadataBuilder.cs.

+

Constructor & Destructor Documentation

+ +

◆ MetadataBuilder()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
MetadataBuilder (AllowedOperationFlags allowedOperationFlags,
string description = "",
string descriptionUrl = "" 
)
+
+inline
+
+ +

Initializes a new instance of the MetadataBuilder class.

+
Parameters
+ + + + +
allowedOperationFlagsThe allowed operation flags.
descriptionThe description.
descriptionUrlThe description URL.
+
+
+ +

Definition at line 78 of file MetadataBuilder.cs.

+ +

References Variant.DefaultFlatbuffersInitialSize.

+ +
+
+

Member Function Documentation

+ +

◆ AddDescription()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
MetadataBuilder AddDescription (string localeId,
string text 
)
+
+inline
+
+ +

Adds the description.

+
Parameters
+ + + +
localeIdThe local identifier (en, de, ...).
textThe text.
+
+
+
Returns
The MetadataBuilder instance.
+ +

Definition at line 184 of file MetadataBuilder.cs.

+ +
+
+ +

◆ AddDisplayName()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
MetadataBuilder AddDisplayName (string localeId,
string text 
)
+
+inline
+
+ +

Adds the display name.

+
Parameters
+ + + +
localeIdThe local identifier (en, de, ...).
textThe text.
+
+
+
Returns
The MetadataBuilder instance.
+ +

Definition at line 172 of file MetadataBuilder.cs.

+ +
+
+ +

◆ AddExtension()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
MetadataBuilder AddExtension (string key,
string value 
)
+
+inline
+
+ +

Adds the extension.

+
Parameters
+ + + +
keyThe key.
valueThe value.
+
+
+
Returns
The MetadataBuilder instance.
+ +

Definition at line 160 of file MetadataBuilder.cs.

+ +
+
+ +

◆ AddReference()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
MetadataBuilder AddReference (ReferenceType type,
string targetAddress 
)
+
+inline
+
+ +

Adds the reference.

+
Parameters
+ + + +
typeThe type.
targetAddressThe target address.
+
+
+
Returns
The MetadataBuilder instance.
+ +

Definition at line 148 of file MetadataBuilder.cs.

+ +

References ReferenceType.Value.

+ +
+
+ +

◆ Build()

+ +
+
+ + + + + +
+ + + + + + + +
Variant Build ()
+
+inline
+
+ +

Builds this instance.

+
Returns
The MetadataBuilder instance.
+ +

Definition at line 194 of file MetadataBuilder.cs.

+ +
+
+ +

◆ SetDisplayFormat()

+ +
+
+ + + + + +
+ + + + + + + + +
MetadataBuilder SetDisplayFormat (DisplayFormat displayFormat)
+
+inline
+
+ +

Sets the display format.

+
Parameters
+ + +
displayFormatThe display format.
+
+
+
Returns
The MetadataBuilder instance.
+ +

Definition at line 125 of file MetadataBuilder.cs.

+ +
+
+ +

◆ SetDisplayName()

+ +
+
+ + + + + +
+ + + + + + + + +
MetadataBuilder SetDisplayName (string displayName)
+
+inline
+
+ +

Sets the display name.

+
Parameters
+ + +
displayNameThe display name.
+
+
+
Returns
The MetadataBuilder instance.
+ +

Definition at line 114 of file MetadataBuilder.cs.

+ +
+
+ +

◆ SetNodeClass()

+ +
+
+ + + + + +
+ + + + + + + + +
MetadataBuilder SetNodeClass (NodeClass nodeClass)
+
+inline
+
+ +

Sets the node class.

+
Parameters
+ + +
nodeClassThe node class.
+
+
+
Returns
The MetadataBuilder instance.
+ +

Definition at line 103 of file MetadataBuilder.cs.

+ +
+
+ +

◆ SetUnit()

+ +
+
+ + + + + +
+ + + + + + + + +
MetadataBuilder SetUnit (string unit)
+
+inline
+
+ +

Sets the unit.

+
Parameters
+ + +
unitThe unit.
+
+
+
Returns
The MetadataBuilder instance.
+ +

Definition at line 136 of file MetadataBuilder.cs.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/3.4.0/api/net/html/classDatalayer_1_1MetadataBuilder.js b/3.4.0/api/net/html/classDatalayer_1_1MetadataBuilder.js new file mode 100644 index 000000000..10dff2e3c --- /dev/null +++ b/3.4.0/api/net/html/classDatalayer_1_1MetadataBuilder.js @@ -0,0 +1,13 @@ +var classDatalayer_1_1MetadataBuilder = +[ + [ "MetadataBuilder", "classDatalayer_1_1MetadataBuilder.html#a9c1b73fb1f408391e7526342097c7f9c", null ], + [ "AddDescription", "classDatalayer_1_1MetadataBuilder.html#a43e3829710540cf1f83c7dc7801457c9", null ], + [ "AddDisplayName", "classDatalayer_1_1MetadataBuilder.html#a8bb5b21928a152cfce296f7d882c69b8", null ], + [ "AddExtension", "classDatalayer_1_1MetadataBuilder.html#a954622ccf3822a0103cde8eb8d6798f6", null ], + [ "AddReference", "classDatalayer_1_1MetadataBuilder.html#a274ede3bbe3acef267269ac6c6ccf912", null ], + [ "Build", "classDatalayer_1_1MetadataBuilder.html#a93ff61a70da95f2c796a056dd85a9b2c", null ], + [ "SetDisplayFormat", "classDatalayer_1_1MetadataBuilder.html#a3dfefc3cc9924bb05fa8a03cbad35697", null ], + [ "SetDisplayName", "classDatalayer_1_1MetadataBuilder.html#a28a911c6965e8bc86f1d52ca42d89227", null ], + [ "SetNodeClass", "classDatalayer_1_1MetadataBuilder.html#a2953c4356b024469b0516fe6769a363d", null ], + [ "SetUnit", "classDatalayer_1_1MetadataBuilder.html#a19302e54a182fd8dde5ef303acd182c1", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/net/html/classDatalayer_1_1ReferenceType-members.html b/3.4.0/api/net/html/classDatalayer_1_1ReferenceType-members.html new file mode 100644 index 000000000..e975812c2 --- /dev/null +++ b/3.4.0/api/net/html/classDatalayer_1_1ReferenceType-members.html @@ -0,0 +1,126 @@ + + + + + + + +ctrlX Data Layer .NET API: Member List +Member List + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
ReferenceType Member List
+
+
+ +

This is the complete list of members for ReferenceType, including all inherited members.

+ + + + + + + + + + + + +
CreateTypeReferenceTypestatic
HasSaveReferenceTypestatic
ReadInTypeReferenceTypestatic
ReadOutTypeReferenceTypestatic
ReadTypeReferenceTypestatic
ToString()ReferenceTypeinline
UsesReferenceTypestatic
ValueReferenceType
WriteInTypeReferenceTypestatic
WriteOutTypeReferenceTypestatic
WriteTypeReferenceTypestatic
+
+ + + + diff --git a/3.4.0/api/net/html/classDatalayer_1_1ReferenceType.html b/3.4.0/api/net/html/classDatalayer_1_1ReferenceType.html new file mode 100644 index 000000000..b2b530eda --- /dev/null +++ b/3.4.0/api/net/html/classDatalayer_1_1ReferenceType.html @@ -0,0 +1,473 @@ + + + + + + + +ctrlX Data Layer .NET API: ReferenceType Class Reference +ReferenceType Class Reference + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
ReferenceType Class Reference
+
+
+ +

Represents a type of reference. + More...

+ + + + + +

+Public Member Functions

override string ToString ()
 Converts to string.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Properties

static ReferenceType CreateType [get]
 Gets the type of the create.
 
static ReferenceType HasSave [get]
 Gets the has save.
 
static ReferenceType ReadInType [get]
 Gets the type of the read in.
 
static ReferenceType ReadOutType [get]
 Gets the type of the read out.
 
static ReferenceType ReadType [get]
 Gets the type of the read.
 
static ReferenceType Uses [get]
 Gets the uses.
 
string Value [get]
 Gets the value.
 
static ReferenceType WriteInType [get]
 Gets the type of the write in.
 
static ReferenceType WriteOutType [get]
 Gets the type of the write out.
 
static ReferenceType WriteType [get]
 Gets the type of the write.
 
+

Detailed Description

+

Represents a type of reference.

+ +

Definition at line 6 of file ReferenceType.cs.

+

Member Function Documentation

+ +

◆ ToString()

+ +
+
+ + + + + +
+ + + + + + + +
override string ToString ()
+
+inline
+
+ +

Converts to string.

+
Returns
A string that represents this instance. .
+ +

Definition at line 31 of file ReferenceType.cs.

+ +

References ReferenceType.Value.

+ +
+
+

Property Documentation

+ +

◆ CreateType

+ +
+
+ + + + + +
+ + + + +
ReferenceType CreateType
+
+staticget
+
+ +

Gets the type of the create.

+

The type when creating a value (absolute node address).

+ +

Definition at line 92 of file ReferenceType.cs.

+ +
+
+ +

◆ HasSave

+ +
+
+ + + + + +
+ + + + +
ReferenceType HasSave
+
+staticget
+
+ +

Gets the has save.

+

Reference to a save node address which needs to be called after node change to persist the new value.

+ +

Definition at line 108 of file ReferenceType.cs.

+ +
+
+ +

◆ ReadInType

+ +
+
+ + + + + +
+ + + + +
ReferenceType ReadInType
+
+staticget
+
+ +

Gets the type of the read in.

+

The input type when reading a value.

+ +

Definition at line 51 of file ReferenceType.cs.

+ +
+
+ +

◆ ReadOutType

+ +
+
+ + + + + +
+ + + + +
ReferenceType ReadOutType
+
+staticget
+
+ +

Gets the type of the read out.

+

The output type when reading a value.

+ +

Definition at line 59 of file ReferenceType.cs.

+ +
+
+ +

◆ ReadType

+ +
+
+ + + + + +
+ + + + +
ReferenceType ReadType
+
+staticget
+
+ +

Gets the type of the read.

+

The type when reading a value (absolute node address). Input/Output type are the same.

+ +

Definition at line 43 of file ReferenceType.cs.

+ +
+
+ +

◆ Uses

+ +
+
+ + + + + +
+ + + + +
ReferenceType Uses
+
+staticget
+
+ +

Gets the uses.

+

Referenced (list of) absolute node addresses .

+ +

Definition at line 100 of file ReferenceType.cs.

+ +
+
+ +

◆ Value

+ +
+
+ + + + + +
+ + + + +
string Value
+
+get
+
+ +

Gets the value.

+

The value.

+ +

Definition at line 23 of file ReferenceType.cs.

+ +

Referenced by MetadataBuilder.AddReference(), and ReferenceType.ToString().

+ +
+
+ +

◆ WriteInType

+ +
+
+ + + + + +
+ + + + +
ReferenceType WriteInType
+
+staticget
+
+ +

Gets the type of the write in.

+

The input type when writing a value.

+ +

Definition at line 76 of file ReferenceType.cs.

+ +
+
+ +

◆ WriteOutType

+ +
+
+ + + + + +
+ + + + +
ReferenceType WriteOutType
+
+staticget
+
+ +

Gets the type of the write out.

+

The output type when writing a value.

+ +

Definition at line 84 of file ReferenceType.cs.

+ +
+
+ +

◆ WriteType

+ +
+
+ + + + + +
+ + + + +
ReferenceType WriteType
+
+staticget
+
+ +

Gets the type of the write.

+

The type when writing a value (absolute node address). Input/Output type are the same.

+ +

Definition at line 68 of file ReferenceType.cs.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/3.4.0/api/net/html/classDatalayer_1_1ReferenceType.js b/3.4.0/api/net/html/classDatalayer_1_1ReferenceType.js new file mode 100644 index 000000000..ad38acb52 --- /dev/null +++ b/3.4.0/api/net/html/classDatalayer_1_1ReferenceType.js @@ -0,0 +1,14 @@ +var classDatalayer_1_1ReferenceType = +[ + [ "ToString", "classDatalayer_1_1ReferenceType.html#aa73e7c4dd1df5fd5fbf81c7764ee1533", null ], + [ "CreateType", "classDatalayer_1_1ReferenceType.html#a302bf5682531e20faec9a9b6e9b0a2cd", null ], + [ "HasSave", "classDatalayer_1_1ReferenceType.html#a246b810bc6905db59c2a75f296b71d0e", null ], + [ "ReadInType", "classDatalayer_1_1ReferenceType.html#aa009a0a22f04001f55e194e8d8306faf", null ], + [ "ReadOutType", "classDatalayer_1_1ReferenceType.html#a23a0c09636b7f8f1bef593ed179724a3", null ], + [ "ReadType", "classDatalayer_1_1ReferenceType.html#a21a03413de9f8f3810255fc62e36c83f", null ], + [ "Uses", "classDatalayer_1_1ReferenceType.html#a590d5833dd7739782502752d0004befd", null ], + [ "Value", "classDatalayer_1_1ReferenceType.html#af7b88db799d8f791f785e437bc6099d2", null ], + [ "WriteInType", "classDatalayer_1_1ReferenceType.html#a5d0ea2c95572ed7fa06d23320a74926c", null ], + [ "WriteOutType", "classDatalayer_1_1ReferenceType.html#a66042c1bc246be7a064aa33c7edc8c6b", null ], + [ "WriteType", "classDatalayer_1_1ReferenceType.html#a9fb27ed32816ad9c8dfde0eaaf2c4787", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/net/html/classDatalayer_1_1Remote-members.html b/3.4.0/api/net/html/classDatalayer_1_1Remote-members.html new file mode 100644 index 000000000..cf15fb6cb --- /dev/null +++ b/3.4.0/api/net/html/classDatalayer_1_1Remote-members.html @@ -0,0 +1,124 @@ + + + + + + + +ctrlX Data Layer .NET API: Member List +Member List + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Remote Member List
+
+
+ +

This is the complete list of members for Remote, including all inherited members.

+ + + + + + + + + + +
IpRemote
PasswordRemote
PortRemote
ProtocolRemote
ProtocolSchemeRemote
Remote(ProtocolScheme protocolScheme=ProtocolScheme.AUTO, string ip="192.168.1.1", string user="boschrexroth", string password="boschrexroth", int sslPort=443, int? port=null)Remoteinline
SslPortRemote
ToString()Remoteinline
UserRemote
+
+ + + + diff --git a/3.4.0/api/net/html/classDatalayer_1_1Remote.html b/3.4.0/api/net/html/classDatalayer_1_1Remote.html new file mode 100644 index 000000000..92e71d2de --- /dev/null +++ b/3.4.0/api/net/html/classDatalayer_1_1Remote.html @@ -0,0 +1,493 @@ + + + + + + + +ctrlX Data Layer .NET API: Remote Class Reference +Remote Class Reference + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Remote Class Reference
+
+
+ +

Provides a container for a TCP remote connection string. + More...

+ + + + + + + + +

+Public Member Functions

 Remote (ProtocolScheme protocolScheme=ProtocolScheme.AUTO, string ip="192.168.1.1", string user="boschrexroth", string password="boschrexroth", int sslPort=443, int? port=null)
 Initializes a new instance of the Remote class.
 
override string ToString ()
 Creates the remote connection string for TCP or IPC.
 
+ + + + + + + + + + + + + + + + + + + + + + +

+Properties

string Ip [get]
 Gets the IP address of the ctrlX CORE.
 
string Password [get]
 Gets the user password.
 
int? Port [get]
 Gets the port number of the connection.
 
string Protocol [get]
 The communication protocol scheme scheme.
 
ProtocolScheme ProtocolScheme [get]
 Gets the communication protocol scheme.
 
int SslPort [get]
 Gets the port number of the SSL connection.
 
string User [get]
 Gets the user name.
 
+

Detailed Description

+

Provides a container for a TCP remote connection string.

+

For ease of use, the default values for IP address, user, password and SSL port are chosen to match the settings of a newly created ctrlX CORE device:

+

Ip="192.168.1.1" User="boschrexroth" Password="boschrexroth" SslPort=443

+

with these variables, the tcp connection string can be formatted as follows:

+

tcp://{User}:{Password}Ip}?Sslport={sslPort}

+

If these values do not suit your use case, explicitly pass the parameters that require different values.

+

Here some examples:

+

1. ctrlX CORE or ctrlX CORE virtual with another IP address, user and password:

+

var remote = new Remote(ip: "192.168.1.100", user: "admin", password: "-$_U/{X$aG}Z3/e<");

+

2. ctrlX CORE virtual with port forwarding running on the same host as the app build environment (QEMU VM):

+

var remote = new Remote(ip: "10.0.2.2", sslPort: 8443)

+

Remarks: 10.0.2.2 is the IP address of the host from the point of view of the app build environment(QEMU VM). 8443 is the host SSL port, which is forwarded to the SSL port (defaults to 443) of the ctrlX CORE virtual

+

3. ctrlX CORE virtual with port forwarding running on windows build environment (MS Visual Studio):

+

var remote = new Remote(ip: "127.0.0.1", sslPort: 8443);

+

Remarks: 127.0.0.1 is the IP address of the ctrlX virtual on the windows host system. 8443 is the host SSL port, which is forwarded to the SSL port (defaults to 443) of the ctrlX CORE virtual

+

IMPORTANT: You don't need to change the parameter settings, before building a snap and installing the snap on a ctrlX CORE. The Remote util detects the snap environment and uses automatically inter process communication "ipc://". If you don't wan't to communicate to localhost (e.g. C2C), build up the remote string manually in the following form (SSL port defaults to 443 and is optional):

+

var remote = $"{DatalayerSystem.ProtocolSchemeTcp}{User}:{Password}@{Ip}?sslport={SslPort}";

+

If you have a special port, different from the default one (e.g. for port forwarding), set the port and build up the remote string manually in the following form (SSL port defaults to 443 and is optional):

+

var remote = $"{DatalayerSystem.ProtocolSchemeTcp}{User}:{Password}@{Ip}:{Port}?sslport={SslPort}";

+ +

Definition at line 57 of file Remote.cs.

+

Constructor & Destructor Documentation

+ +

◆ Remote()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Remote (ProtocolScheme protocolScheme = ProtocolScheme::AUTO,
string ip = "192.168.1.1",
string user = "boschrexroth",
string password = "boschrexroth",
int sslPort = 443,
int? port = null 
)
+
+inline
+
+ +

Initializes a new instance of the Remote class.

+
Parameters
+ + + + + + + +
protocolSchemeThe communication protocol scheme
ipThe IP address of the ctrlX CORE.
userThe user name.
passwordThe user password.
sslPortThe port number of the SSL connection.
portThe port number of connection.
+
+
+
Exceptions
+ + + +
ArgumentNullExceptionArgument cannot be null.
ArgumentExceptionInvalid arguments.
+
+
+ +

Definition at line 100 of file Remote.cs.

+ +

References Remote.Ip, Remote.Password, Remote.Port, Remote.SslPort, and Remote.User.

+ +
+
+

Member Function Documentation

+ +

◆ ToString()

+ +
+
+ + + + + +
+ + + + + + + +
override string ToString ()
+
+inline
+
+ +

Creates the remote connection string for TCP or IPC.

+
Returns
The remote connection string
+ +

Definition at line 118 of file Remote.cs.

+ +

References Remote.Protocol, and DatalayerSystem.ProtocolSchemeIpc.

+ +
+
+

Property Documentation

+ +

◆ Ip

+ +
+
+ + + + + +
+ + + + +
string Ip
+
+get
+
+ +

Gets the IP address of the ctrlX CORE.

+ +

Definition at line 62 of file Remote.cs.

+ +

Referenced by Remote.Remote().

+ +
+
+ +

◆ Password

+ +
+
+ + + + + +
+ + + + +
string Password
+
+get
+
+ +

Gets the user password.

+ +

Definition at line 72 of file Remote.cs.

+ +

Referenced by Remote.Remote().

+ +
+
+ +

◆ Port

+ +
+
+ + + + + +
+ + + + +
int? Port
+
+get
+
+ +

Gets the port number of the connection.

+ +

Definition at line 77 of file Remote.cs.

+ +

Referenced by Remote.Remote().

+ +
+
+ +

◆ Protocol

+ +
+
+ + + + + +
+ + + + +
string Protocol
+
+get
+
+ +

The communication protocol scheme scheme.

+
Returns
The current protocol scheme
+ +

Definition at line 134 of file Remote.cs.

+ +

Referenced by Remote.ToString().

+ +
+
+ +

◆ ProtocolScheme

+ +
+
+ + + + + +
+ + + + +
ProtocolScheme ProtocolScheme
+
+get
+
+ +

Gets the communication protocol scheme.

+ +

Definition at line 87 of file Remote.cs.

+ +
+
+ +

◆ SslPort

+ +
+
+ + + + + +
+ + + + +
int SslPort
+
+get
+
+ +

Gets the port number of the SSL connection.

+ +

Definition at line 82 of file Remote.cs.

+ +

Referenced by Remote.Remote().

+ +
+
+ +

◆ User

+ +
+
+ + + + + +
+ + + + +
string User
+
+get
+
+ +

Gets the user name.

+ +

Definition at line 67 of file Remote.cs.

+ +

Referenced by Remote.Remote().

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/3.4.0/api/net/html/classDatalayer_1_1Remote.js b/3.4.0/api/net/html/classDatalayer_1_1Remote.js new file mode 100644 index 000000000..9c8305636 --- /dev/null +++ b/3.4.0/api/net/html/classDatalayer_1_1Remote.js @@ -0,0 +1,12 @@ +var classDatalayer_1_1Remote = +[ + [ "Remote", "classDatalayer_1_1Remote.html#acd14cb587286e0bd0e758dee7c96edd2", null ], + [ "ToString", "classDatalayer_1_1Remote.html#aa73e7c4dd1df5fd5fbf81c7764ee1533", null ], + [ "Ip", "classDatalayer_1_1Remote.html#acfd2507889dd4ca10984553f890de256", null ], + [ "Password", "classDatalayer_1_1Remote.html#a9c7aae3a8518d5efd22e991b5944e0d4", null ], + [ "Port", "classDatalayer_1_1Remote.html#a6ad5b3ea4ce74ad5f98cd49ff8511689", null ], + [ "Protocol", "classDatalayer_1_1Remote.html#a0dda9c70e5a498baaa1cd780236ce1a1", null ], + [ "ProtocolScheme", "classDatalayer_1_1Remote.html#a3d08ba8bc2db79a0efb799146d13880f", null ], + [ "SslPort", "classDatalayer_1_1Remote.html#a67afb250f2fb0a12185f5b161deac88b", null ], + [ "User", "classDatalayer_1_1Remote.html#a9f8df451a16165b0cf243e37bf9c6b62", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/net/html/classDatalayer_1_1ResultExtensions-members.html b/3.4.0/api/net/html/classDatalayer_1_1ResultExtensions-members.html new file mode 100644 index 000000000..667fd50c1 --- /dev/null +++ b/3.4.0/api/net/html/classDatalayer_1_1ResultExtensions-members.html @@ -0,0 +1,117 @@ + + + + + + + +ctrlX Data Layer .NET API: Member List +Member List + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
ResultExtensions Member List
+
+
+ +

This is the complete list of members for ResultExtensions, including all inherited members.

+ + + +
IsBad(this DLR_RESULT result)ResultExtensionsinlinestatic
IsGood(this DLR_RESULT result)ResultExtensionsinlinestatic
+
+ + + + diff --git a/3.4.0/api/net/html/classDatalayer_1_1ResultExtensions.html b/3.4.0/api/net/html/classDatalayer_1_1ResultExtensions.html new file mode 100644 index 000000000..2433bb68f --- /dev/null +++ b/3.4.0/api/net/html/classDatalayer_1_1ResultExtensions.html @@ -0,0 +1,215 @@ + + + + + + + +ctrlX Data Layer .NET API: ResultExtensions Class Reference +ResultExtensions Class Reference + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
ResultExtensions Class Reference
+
+
+ +

Provides extension methods for DLR_RESULT. + More...

+ + + + + + + + +

+Static Public Member Functions

static bool IsBad (this DLR_RESULT result)
 Gets a value that indicates whether the result is bad.
 
static bool IsGood (this DLR_RESULT result)
 Gets a value that indicates whether the result is good.
 
+

Detailed Description

+

Provides extension methods for DLR_RESULT.

+ +

Definition at line 6 of file ResultExtensions.cs.

+

Member Function Documentation

+ +

◆ IsBad()

+ +
+
+ + + + + +
+ + + + + + + + +
static bool IsBad (this DLR_RESULT result)
+
+inlinestatic
+
+ +

Gets a value that indicates whether the result is bad.

+
Parameters
+ + +
resultThe result.
+
+
+
Returns
True if the result is bad, else false.
+ +

Definition at line 23 of file ResultExtensions.cs.

+ +

References ResultExtensions.IsGood().

+ +
+
+ +

◆ IsGood()

+ +
+
+ + + + + +
+ + + + + + + + +
static bool IsGood (this DLR_RESULT result)
+
+inlinestatic
+
+ +

Gets a value that indicates whether the result is good.

+
Parameters
+ + +
resultThe result.
+
+
+
Returns
True if the result is good, else false.
+ +

Definition at line 13 of file ResultExtensions.cs.

+ +

Referenced by ResultExtensions.IsBad().

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/3.4.0/api/net/html/classDatalayer_1_1ResultExtensions.js b/3.4.0/api/net/html/classDatalayer_1_1ResultExtensions.js new file mode 100644 index 000000000..dcec4bc57 --- /dev/null +++ b/3.4.0/api/net/html/classDatalayer_1_1ResultExtensions.js @@ -0,0 +1,5 @@ +var classDatalayer_1_1ResultExtensions = +[ + [ "IsBad", "classDatalayer_1_1ResultExtensions.html#a6f1dc9fcfe09617ac9976d377229edfb", null ], + [ "IsGood", "classDatalayer_1_1ResultExtensions.html#a80ecfbc560e18460982658281c7068cd", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/net/html/classDatalayer_1_1SubscriptionPropertiesBuilder-members.html b/3.4.0/api/net/html/classDatalayer_1_1SubscriptionPropertiesBuilder-members.html new file mode 100644 index 000000000..fdb783459 --- /dev/null +++ b/3.4.0/api/net/html/classDatalayer_1_1SubscriptionPropertiesBuilder-members.html @@ -0,0 +1,126 @@ + + + + + + + +ctrlX Data Layer .NET API: Member List +Member List + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
SubscriptionPropertiesBuilder Member List
+
+
+ +

This is the complete list of members for SubscriptionPropertiesBuilder, including all inherited members.

+ + + + + + + + + + + + +
Build()SubscriptionPropertiesBuilderinline
SetChangeEvents(DataChangeTrigger dataChangeTrigger, bool browselistChange=false, bool metadataChange=false)SubscriptionPropertiesBuilderinline
SetCounting(bool countSubscriptions)SubscriptionPropertiesBuilderinline
SetDataChangeFilter(float deadbandValue)SubscriptionPropertiesBuilderinline
SetErrorIntervalMillis(uint errorIntervalMillis)SubscriptionPropertiesBuilderinline
SetKeepAliveIntervalMillis(uint keepAliveIntervalMillis)SubscriptionPropertiesBuilderinline
SetPublishIntervalMillis(uint publishIntervalMillis)SubscriptionPropertiesBuilderinline
SetQueueing(uint queueSize, QueueBehaviour queueBehaviour)SubscriptionPropertiesBuilderinline
SetSamplingIntervalMicros(ulong samplingIntervalMicros)SubscriptionPropertiesBuilderinline
SetSamplingIntervalMillis(ulong samplingIntervalMillis)SubscriptionPropertiesBuilderinline
SubscriptionPropertiesBuilder(string id)SubscriptionPropertiesBuilderinline
+
+ + + + diff --git a/3.4.0/api/net/html/classDatalayer_1_1SubscriptionPropertiesBuilder.html b/3.4.0/api/net/html/classDatalayer_1_1SubscriptionPropertiesBuilder.html new file mode 100644 index 000000000..693872603 --- /dev/null +++ b/3.4.0/api/net/html/classDatalayer_1_1SubscriptionPropertiesBuilder.html @@ -0,0 +1,595 @@ + + + + + + + +ctrlX Data Layer .NET API: SubscriptionPropertiesBuilder Class Reference +SubscriptionPropertiesBuilder Class Reference + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
SubscriptionPropertiesBuilder Class Reference
+
+
+ +

Provides a convenient way to build a SubscriptionProperties flatbuffers. + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 SubscriptionPropertiesBuilder (string id)
 Initializes a new instance of the SubscriptionPropertiesBuilder class.
 
Variant Build ()
 Builds this the SubscriptionProperties as flatbuffers object.
 
SubscriptionPropertiesBuilder SetChangeEvents (DataChangeTrigger dataChangeTrigger, bool browselistChange=false, bool metadataChange=false)
 Sets the change events.
 
SubscriptionPropertiesBuilder SetCounting (bool countSubscriptions)
 Sets the counting.
 
SubscriptionPropertiesBuilder SetDataChangeFilter (float deadbandValue)
 Sets the data change filter.
 
SubscriptionPropertiesBuilder SetErrorIntervalMillis (uint errorIntervalMillis)
 Sets the error interval in milliseconds.
 
SubscriptionPropertiesBuilder SetKeepAliveIntervalMillis (uint keepAliveIntervalMillis)
 Sets the keep alive interval in milliseconds.
 
SubscriptionPropertiesBuilder SetPublishIntervalMillis (uint publishIntervalMillis)
 Sets the publish interval in milliseconds.
 
SubscriptionPropertiesBuilder SetQueueing (uint queueSize, QueueBehaviour queueBehaviour)
 Sets the queueing.
 
SubscriptionPropertiesBuilder SetSamplingIntervalMicros (ulong samplingIntervalMicros)
 Sets the sampling interval in microseconds.
 
SubscriptionPropertiesBuilder SetSamplingIntervalMillis (ulong samplingIntervalMillis)
 Sets the sampling interval in milliseconds.
 
+

Detailed Description

+

Provides a convenient way to build a SubscriptionProperties flatbuffers.

+ +

Definition at line 10 of file SubscriptionPropertiesBuilder.cs.

+

Constructor & Destructor Documentation

+ +

◆ SubscriptionPropertiesBuilder()

+ +
+
+ + + + + +
+ + + + + + + + +
SubscriptionPropertiesBuilder (string id)
+
+inline
+
+ +

Initializes a new instance of the SubscriptionPropertiesBuilder class.

+
Parameters
+ + +
idThe identifier.
+
+
+ +

Definition at line 60 of file SubscriptionPropertiesBuilder.cs.

+ +

References Variant.DefaultFlatbuffersInitialSize.

+ +
+
+

Member Function Documentation

+ +

◆ Build()

+ +
+
+ + + + + +
+ + + + + + + +
Variant Build ()
+
+inline
+
+ +

Builds this the SubscriptionProperties as flatbuffers object.

+
Returns
The SubscriptionPropertiesBuilder instance.
+ +

Definition at line 201 of file SubscriptionPropertiesBuilder.cs.

+ +
+
+ +

◆ SetChangeEvents()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
SubscriptionPropertiesBuilder SetChangeEvents (DataChangeTrigger dataChangeTrigger,
bool browselistChange = false,
bool metadataChange = false 
)
+
+inline
+
+ +

Sets the change events.

+
Parameters
+ + + + +
dataChangeTriggerThe data change trigger.
browselistChangeif set to true the change event is raised if the browse list changed.
metadataChangeif set to true the change event is raised if the meta data changed.
+
+
+
Returns
The SubscriptionPropertiesBuilder instance.
+ +

Definition at line 160 of file SubscriptionPropertiesBuilder.cs.

+ +
+
+ +

◆ SetCounting()

+ +
+
+ + + + + +
+ + + + + + + + +
SubscriptionPropertiesBuilder SetCounting (bool countSubscriptions)
+
+inline
+
+ +

Sets the counting.

+
Parameters
+ + +
countSubscriptionsif set to true nodes are counted if subscribed multiple times.
+
+
+
Returns
The SubscriptionPropertiesBuilder instance.
+ +

Definition at line 189 of file SubscriptionPropertiesBuilder.cs.

+ +
+
+ +

◆ SetDataChangeFilter()

+ +
+
+ + + + + +
+ + + + + + + + +
SubscriptionPropertiesBuilder SetDataChangeFilter (float deadbandValue)
+
+inline
+
+ +

Sets the data change filter.

+
Parameters
+ + +
deadbandValueThe deadband value.
+
+
+
Returns
The SubscriptionPropertiesBuilder instance.
+ +

Definition at line 144 of file SubscriptionPropertiesBuilder.cs.

+ +
+
+ +

◆ SetErrorIntervalMillis()

+ +
+
+ + + + + +
+ + + + + + + + +
SubscriptionPropertiesBuilder SetErrorIntervalMillis (uint errorIntervalMillis)
+
+inline
+
+ +

Sets the error interval in milliseconds.

+
Parameters
+ + +
errorIntervalMillisThe error interval in milliseconds.
+
+
+
Returns
The SubscriptionPropertiesBuilder instance.
+ +

Definition at line 106 of file SubscriptionPropertiesBuilder.cs.

+ +
+
+ +

◆ SetKeepAliveIntervalMillis()

+ +
+
+ + + + + +
+ + + + + + + + +
SubscriptionPropertiesBuilder SetKeepAliveIntervalMillis (uint keepAliveIntervalMillis)
+
+inline
+
+ +

Sets the keep alive interval in milliseconds.

+
Parameters
+ + +
keepAliveIntervalMillisThe keep alive interval in milliseconds.
+
+
+
Returns
The SubscriptionPropertiesBuilder instance.
+ +

Definition at line 84 of file SubscriptionPropertiesBuilder.cs.

+ +
+
+ +

◆ SetPublishIntervalMillis()

+ +
+
+ + + + + +
+ + + + + + + + +
SubscriptionPropertiesBuilder SetPublishIntervalMillis (uint publishIntervalMillis)
+
+inline
+
+ +

Sets the publish interval in milliseconds.

+
Parameters
+ + +
publishIntervalMillisThe publish interval in milliseconds.
+
+
+
Returns
The SubscriptionPropertiesBuilder instance.
+ +

Definition at line 95 of file SubscriptionPropertiesBuilder.cs.

+ +
+
+ +

◆ SetQueueing()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
SubscriptionPropertiesBuilder SetQueueing (uint queueSize,
QueueBehaviour queueBehaviour 
)
+
+inline
+
+ +

Sets the queueing.

+
Parameters
+ + + +
queueSizeSize of the queue.
queueBehaviourThe queue behaviour.
+
+
+
Returns
The SubscriptionPropertiesBuilder instance.
+ +

Definition at line 176 of file SubscriptionPropertiesBuilder.cs.

+ +
+
+ +

◆ SetSamplingIntervalMicros()

+ +
+
+ + + + + +
+ + + + + + + + +
SubscriptionPropertiesBuilder SetSamplingIntervalMicros (ulong samplingIntervalMicros)
+
+inline
+
+ +

Sets the sampling interval in microseconds.

+
Parameters
+ + +
samplingIntervalMicrosThe sampling interval in microseconds.
+
+
+
Returns
The SubscriptionPropertiesBuilder instance.
+ +

Definition at line 131 of file SubscriptionPropertiesBuilder.cs.

+ +
+
+ +

◆ SetSamplingIntervalMillis()

+ +
+
+ + + + + +
+ + + + + + + + +
SubscriptionPropertiesBuilder SetSamplingIntervalMillis (ulong samplingIntervalMillis)
+
+inline
+
+ +

Sets the sampling interval in milliseconds.

+
Parameters
+ + +
samplingIntervalMillisThe sampling interval in milliseconds.
+
+
+
Returns
The SubscriptionPropertiesBuilder instance.
+ +

Definition at line 117 of file SubscriptionPropertiesBuilder.cs.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/3.4.0/api/net/html/classDatalayer_1_1SubscriptionPropertiesBuilder.js b/3.4.0/api/net/html/classDatalayer_1_1SubscriptionPropertiesBuilder.js new file mode 100644 index 000000000..f7c96e071 --- /dev/null +++ b/3.4.0/api/net/html/classDatalayer_1_1SubscriptionPropertiesBuilder.js @@ -0,0 +1,14 @@ +var classDatalayer_1_1SubscriptionPropertiesBuilder = +[ + [ "SubscriptionPropertiesBuilder", "classDatalayer_1_1SubscriptionPropertiesBuilder.html#a906c787c69eda2cc0aaf995638d99512", null ], + [ "Build", "classDatalayer_1_1SubscriptionPropertiesBuilder.html#a93ff61a70da95f2c796a056dd85a9b2c", null ], + [ "SetChangeEvents", "classDatalayer_1_1SubscriptionPropertiesBuilder.html#a89d3c0e840c74d2087f93efccbe04377", null ], + [ "SetCounting", "classDatalayer_1_1SubscriptionPropertiesBuilder.html#a90528eca4c144dfddb28e33c6ec0228b", null ], + [ "SetDataChangeFilter", "classDatalayer_1_1SubscriptionPropertiesBuilder.html#aa0650d1e40db0e3f96b4d720e477ba49", null ], + [ "SetErrorIntervalMillis", "classDatalayer_1_1SubscriptionPropertiesBuilder.html#a75fa75449ff562e2aeff419e8d7c2029", null ], + [ "SetKeepAliveIntervalMillis", "classDatalayer_1_1SubscriptionPropertiesBuilder.html#ae6575bceae5ae51a1f37b2b78b2d4ddf", null ], + [ "SetPublishIntervalMillis", "classDatalayer_1_1SubscriptionPropertiesBuilder.html#a6c43b0e1274859ec6b100bb4e625fea5", null ], + [ "SetQueueing", "classDatalayer_1_1SubscriptionPropertiesBuilder.html#a258b8d4f7378c3fdfe9b29b46867b5e4", null ], + [ "SetSamplingIntervalMicros", "classDatalayer_1_1SubscriptionPropertiesBuilder.html#a2340a59e378666287264c1214482f177", null ], + [ "SetSamplingIntervalMillis", "classDatalayer_1_1SubscriptionPropertiesBuilder.html#a4e7e7c4968b1f86652ca01eebdb21d38", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/net/html/classDatalayer_1_1Variant-members.html b/3.4.0/api/net/html/classDatalayer_1_1Variant-members.html new file mode 100644 index 000000000..910b4b75b --- /dev/null +++ b/3.4.0/api/net/html/classDatalayer_1_1Variant-members.html @@ -0,0 +1,229 @@ + + + + + + + +ctrlX Data Layer .NET API: Member List +Member List + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Variant Member List
+
+
+ +

This is the complete list of members for Variant, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CheckConvert(DLR_VARIANT_TYPE type)Variantinline
Clone()Variantinline
DataTypeVariant
DefaultFlatbuffersInitialSizeVariantstatic
Dispose(bool disposing)Variantinlineprotectedvirtual
Dispose()Variantinline
EmptyVariantstatic
Equals(object obj)Variantinline
Equals(Variant other)Variantinline
FalseVariantstatic
GetDataFromFlatbuffers(IVariant typeFlatbuffers, string query) (defined in Variant)Variantinline
GetHashCode()Variantinline
IsArrayVariant
IsBoolVariant
IsDisposedVariant
IsFlatbuffersVariant
IsNullVariant
IsNumberVariant
IsStringVariant
JsonDataTypeVariant
NullVariantstatic
OneVariantstatic
operator Variant(bool source)Variantinlinestatic
operator Variant(bool[] source)Variantinlinestatic
operator Variant(sbyte source)Variantinlinestatic
operator Variant(sbyte[] source)Variantinlinestatic
operator Variant(byte source)Variantinlinestatic
operator Variant(byte[] source)Variantinlinestatic
operator Variant(short source)Variantinlinestatic
operator Variant(short[] source)Variantinlinestatic
operator Variant(ushort source)Variantinlinestatic
operator Variant(ushort[] source)Variantinlinestatic
operator Variant(int source)Variantinlinestatic
operator Variant(int[] source)Variantinlinestatic
operator Variant(uint source)Variantinlinestatic
operator Variant(uint[] source)Variantinlinestatic
operator Variant(long source)Variantinlinestatic
operator Variant(long[] source)Variantinlinestatic
operator Variant(ulong source)Variantinlinestatic
operator Variant(ulong[] source)Variantinlinestatic
operator Variant(float source)Variantinlinestatic
operator Variant(float[] source)Variantinlinestatic
operator Variant(double source)Variantinlinestatic
operator Variant(double[] source)Variantinlinestatic
operator Variant(string source)Variantinlinestatic
operator Variant(string[] source)Variantinlinestatic
operator Variant(DateTime source)Variantinlinestatic
operator Variant(DateTime[] source)Variantinlinestatic
operator Variant(FlatBufferBuilder source)Variantinlinestatic
operator Variant(ByteBuffer source)Variantinlinestatic
operator!=(Variant l, Variant r)Variantinlinestatic
operator==(Variant l, Variant r)Variantinlinestatic
resultVariant
ToBool()Variantinline
ToBoolArray()Variantinline
ToByte()Variantinline
ToByteArray()Variantinline
ToDateTime()Variantinline
ToDateTimeArray()Variantinline
ToDouble()Variantinline
ToDoubleArray()Variantinline
ToFlatbuffers()Variantinline
ToFloat()Variantinline
ToFloatArray()Variantinline
ToInt16()Variantinline
ToInt16Array()Variantinline
ToInt32()Variantinline
ToInt32Array()Variantinline
ToInt64()Variantinline
ToInt64Array()Variantinline
ToRawByteArray()Variantinline
ToSByte()Variantinline
ToSByteArray()Variantinline
ToString()Variantinline
ToStringArray()Variantinline
ToUInt16()Variantinline
ToUInt16Array()Variantinline
ToUInt32()Variantinline
ToUInt32Array()Variantinline
ToUInt64()Variantinline
ToUInt64Array()Variantinline
TrueVariantstatic
ValueVariant
Variant()Variantinline
Variant(IVariant other)Variantinline
Variant(bool value)Variantinline
Variant(string value)Variantinline
Variant(sbyte value)Variantinline
Variant(short value)Variantinline
Variant(int value)Variantinline
Variant(long value)Variantinline
Variant(DateTime value)Variantinline
Variant(byte value)Variantinline
Variant(ushort value)Variantinline
Variant(uint value)Variantinline
Variant(ulong value)Variantinline
Variant(float value)Variantinline
Variant(double value)Variantinline
Variant(bool[] value)Variantinline
Variant(string[] value)Variantinline
Variant(sbyte[] value)Variantinline
Variant(short[] value)Variantinline
Variant(int[] value)Variantinline
Variant(long[] value)Variantinline
Variant(byte[] value, bool raw=false)Variantinline
Variant(ushort[] value)Variantinline
Variant(uint[] value)Variantinline
Variant(ulong[] value)Variantinline
Variant(float[] value)Variantinline
Variant(double[] value)Variantinline
Variant(DateTime[] value)Variantinline
Variant(ByteBuffer flatBuffers)Variantinline
Variant(FlatBufferBuilder builder)Variantinline
ZeroVariantstatic
+
+ + + + diff --git a/3.4.0/api/net/html/classDatalayer_1_1Variant.html b/3.4.0/api/net/html/classDatalayer_1_1Variant.html new file mode 100644 index 000000000..17c2fd04f --- /dev/null +++ b/3.4.0/api/net/html/classDatalayer_1_1Variant.html @@ -0,0 +1,5030 @@ + + + + + + + +ctrlX Data Layer .NET API: Variant Class Reference +Variant Class Reference + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Variant Class Reference
+
+
+ +

Provides the implementation for IVariant. + More...

+
+Inheritance diagram for Variant:
+
+
+ + +IVariant +INativeDisposable + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 Variant ()
 Initializes a new instance of the Variant class.
 
 Variant (bool value)
 Initializes a new instance of the Variant class.
 
 Variant (bool[] value)
 Initializes a new instance of the Variant class.
 
 Variant (byte value)
 Initializes a new instance of the Variant class.
 
 Variant (byte[] value, bool raw=false)
 Initializes a new instance of the Variant class.
 
 Variant (ByteBuffer flatBuffers)
 Initializes a new instance of the Variant class.
 
 Variant (DateTime value)
 Initializes a new instance of the Variant class.
 
 Variant (DateTime[] value)
 Initializes a new instance of the Variant class.
 
 Variant (double value)
 Initializes a new instance of the Variant class.
 
 Variant (double[] value)
 Initializes a new instance of the Variant class.
 
 Variant (FlatBufferBuilder builder)
 Initializes a new instance of the Variant class.
 
 Variant (float value)
 Initializes a new instance of the Variant class.
 
 Variant (float[] value)
 Initializes a new instance of the Variant class.
 
 Variant (int value)
 Initializes a new instance of the Variant class.
 
 Variant (int[] value)
 Initializes a new instance of the Variant class.
 
 Variant (IVariant other)
 Initializes a new instance of the Variant class.
 
 Variant (long value)
 Initializes a new instance of the Variant class.
 
 Variant (long[] value)
 Initializes a new instance of the Variant class.
 
 Variant (sbyte value)
 Initializes a new instance of the Variant class.
 
 Variant (sbyte[] value)
 Initializes a new instance of the Variant class.
 
 Variant (short value)
 Initializes a new instance of the Variant class.
 
 Variant (short[] value)
 Initializes a new instance of the Variant class.
 
 Variant (string value)
 Initializes a new instance of the Variant class.
 
 Variant (string[] value)
 Initializes a new instance of the Variant class.
 
 Variant (uint value)
 Initializes a new instance of the Variant class.
 
 Variant (uint[] value)
 Initializes a new instance of the Variant class.
 
 Variant (ulong value)
 Initializes a new instance of the Variant class.
 
 Variant (ulong[] value)
 Initializes a new instance of the Variant class.
 
 Variant (ushort value)
 Initializes a new instance of the Variant class.
 
 Variant (ushort[] value)
 Initializes a new instance of the Variant class.
 
DLR_RESULT CheckConvert (DLR_VARIANT_TYPE type)
 Checks if the Variant is convertable to given data type.
 
Variant Clone ()
 Clones the instance.
 
void Dispose ()
 Disposes the instance.
 
override bool Equals (object obj)
 Returns a value that indicates if this Variant equals given object.
 
bool Equals (Variant other)
 Returns a value that indicates if this Variant equals given Variant.
 
DLR_RESULT IVariant value GetDataFromFlatbuffers (IVariant typeFlatbuffers, string query)
 
override int GetHashCode ()
 Gets the HashCode of this Variant.
 
bool ToBool ()
 Gets the value as bool.
 
bool[] ToBoolArray ()
 Gets the value as bool array.
 
byte ToByte ()
 Gets the value as byte.
 
byte[] ToByteArray ()
 Gets the value as byte array.
 
DateTime ToDateTime ()
 Converts the value to a timestamp.
 
DateTime[] ToDateTimeArray ()
 Gets the value as DateTime array.
 
double ToDouble ()
 Gets the value as double.
 
double[] ToDoubleArray ()
 Gets the value as double array.
 
ByteBuffer ToFlatbuffers ()
 Gets the value as Flatbuffers.
 
float ToFloat ()
 Gets the value as float.
 
float[] ToFloatArray ()
 Gets the value as float array.
 
short ToInt16 ()
 Gets the value as short.
 
short[] ToInt16Array ()
 Gets the value as short array.
 
int ToInt32 ()
 Gets the value as int.
 
int[] ToInt32Array ()
 Gets the value as int array.
 
long ToInt64 ()
 Gets the value as long.
 
long[] ToInt64Array ()
 Gets the value as long array.
 
byte[] ToRawByteArray ()
 Gets the value as raw byte array (UTF8).
 
sbyte ToSByte ()
 Gets the value as sbyte.
 
sbyte[] ToSByteArray ()
 Gets the value as sbyte array.
 
override string ToString ()
 Gets the value as string.
 
string[] ToStringArray ()
 Gets the value as string array.
 
ushort ToUInt16 ()
 Gets the value as ushort.
 
ushort[] ToUInt16Array ()
 Gets the value as ushort array.
 
uint ToUInt32 ()
 Gets the value as uint.
 
uint[] ToUInt32Array ()
 Gets the value as uint array.
 
ulong ToUInt64 ()
 Gets the value as ulong.
 
ulong[] ToUInt64Array ()
 Gets the value as ulong array.
 
DLR_RESULT CheckConvert (DLR_VARIANT_TYPE dataType)
 Gets a value that indicates whether the variant can be converted to another type.
 
Variant Clone ()
 Clones the value.
 
bool Equals (Variant other)
 Gets a value that indicates whether the values are equal.
 
+DLR_RESULT IVariant value GetDataFromFlatbuffers (IVariant typeFlatbuffers, string query)
 
int GetHashCode ()
 Gets the hash code of the variant.
 
bool ToBool ()
 Converts the value to bool.
 
bool[] ToBoolArray ()
 Converts the value to an array of bool value.
 
byte ToByte ()
 Converts the value to an 8-bit unsigned integer.
 
byte[] ToByteArray ()
 Converts the value to an array of 8-bit unsigned integers.
 
DateTime ToDateTime ()
 Converts the value to DateTime.
 
DateTime[] ToDateTimeArray ()
 Converts the value to an array of DateTime.
 
double ToDouble ()
 Converts the value to a double-precision floating-point number.
 
double[] ToDoubleArray ()
 Converts the value to an array of double-precision floating-point numbers.
 
ByteBuffer ToFlatbuffers ()
 Converts the value to flatbuffers.
 
float ToFloat ()
 Converts the value to float.
 
float[] ToFloatArray ()
 Converts the value to an array of float.
 
short ToInt16 ()
 Converts the value to a 16-bit signed integer.
 
short[] ToInt16Array ()
 Converts the value to an array of 16-bit signed integers.
 
int ToInt32 ()
 Converts the value to a 32-bit signed integer.
 
int[] ToInt32Array ()
 Converts the value to an array of 32-bit signed integers.
 
long ToInt64 ()
 Converts the value to a 64-bit signed integer.
 
long[] ToInt64Array ()
 Converts the value to an array of 64-bit signed integers.
 
byte[] ToRawByteArray ()
 Converts the value to an array of 8-bit raw integers.
 
sbyte ToSByte ()
 Converts the value to an 8-bit signed integer.
 
sbyte[] ToSByteArray ()
 Converts the value to an array of an 8-bit signed integers.
 
string ToString ()
 Converts the value to string. If the value can't be converted for any reason, an empty string is returned. For arrays and numbers an empty string is returned (not implemented yet).
 
string[] ToStringArray ()
 Converts the value to an array of strings.
 
ushort ToUInt16 ()
 Converts the value to a 16-bit unsigned integer.
 
ushort[] ToUInt16Array ()
 Converts the value to an array of 16-bit unsigned integers.
 
uint ToUInt32 ()
 Converts the value to a 32-bit unsigned integer.
 
uint[] ToUInt32Array ()
 Converts the value to an array of 32-bit unsigned integers.
 
ulong ToUInt64 ()
 Converts the value to a 64-bit unsigned integer.
 
ulong[] ToUInt64Array ()
 Converts the value to an array of 64-bit unsigned integers.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Static Public Member Functions

static implicit operator Variant (bool source)
 Implicit operator.
 
static implicit operator Variant (bool[] source)
 Implicit operator.
 
static implicit operator Variant (byte source)
 Implicit operator.
 
static implicit operator Variant (byte[] source)
 Implicit operator.
 
static implicit operator Variant (ByteBuffer source)
 Implicit operator.
 
static implicit operator Variant (DateTime source)
 Implicit operator.
 
static implicit operator Variant (DateTime[] source)
 Implicit operator.
 
static implicit operator Variant (double source)
 Implicit operator.
 
static implicit operator Variant (double[] source)
 Implicit operator.
 
static implicit operator Variant (FlatBufferBuilder source)
 Implicit operator.
 
static implicit operator Variant (float source)
 Implicit operator.
 
static implicit operator Variant (float[] source)
 Implicit operator.
 
static implicit operator Variant (int source)
 Implicit operator.
 
static implicit operator Variant (int[] source)
 Implicit operator.
 
static implicit operator Variant (long source)
 Implicit operator.
 
static implicit operator Variant (long[] source)
 Implicit operator.
 
static implicit operator Variant (sbyte source)
 Implicit operator.
 
static implicit operator Variant (sbyte[] source)
 Implicit operator.
 
static implicit operator Variant (short source)
 Implicit operator.
 
static implicit operator Variant (short[] source)
 Implicit operator.
 
static implicit operator Variant (string source)
 Implicit operator.
 
static implicit operator Variant (string[] source)
 Implicit operator.
 
static implicit operator Variant (uint source)
 Implicit operator.
 
static implicit operator Variant (uint[] source)
 Implicit operator.
 
static implicit operator Variant (ulong source)
 Implicit operator.
 
static implicit operator Variant (ulong[] source)
 Implicit operator.
 
static implicit operator Variant (ushort source)
 Implicit operator.
 
static implicit operator Variant (ushort[] source)
 Implicit operator.
 
static bool operator!= (Variant l, Variant r)
 s Unequality Operator.
 
static bool operator== (Variant l, Variant r)
 Equality Operator.
 
+ + + + + + + + +

+Public Attributes

DLR_RESULT result
 Gets data of a complex Variant (flatbuffers) by query.
 
- Public Attributes inherited from IVariant
DLR_RESULT result
 Gets data of a complex Variant (flatbuffers) by query.
 
+ + + + + + + + + + + + + + + + + + + + + + +

+Static Public Attributes

static readonly int DefaultFlatbuffersInitialSize = 1024
 Gets the default Flatbuffers initial size in bytes.
 
static readonly Variant Empty = new Variant(string.Empty)
 Gets a Variant with empty string value.
 
static readonly Variant False = new Variant(false)
 Gets a Variant with boolean value 'false'.
 
static readonly Variant Null = new Variant()
 Gets a Variant with no value of data type 'DLR_VARIANT_TYPE_UNKNOWN'.
 
static readonly Variant One = new Variant(1)
 Gets a Variant with value '1' of data type 'int' (Int32).
 
static readonly Variant True = new Variant(true)
 Gets a Variant with boolean value 'true'.
 
static readonly Variant Zero = new Variant(0)
 Gets a Variant with value '0' of data type 'int' (Int32).
 
+ + + + +

+Protected Member Functions

virtual void Dispose (bool disposing)
 Disposes the instance.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Properties

DLR_VARIANT_TYPE DataType [get]
 Gets the data type.
 
bool IsArray [get]
 Gets a value that indicates whether the Variant is an array.
 
bool IsBool [get]
 Gets a value that indicates whether the Variant contains a boolean value.
 
bool IsDisposed [get]
 Gets a value that indicates whether the instance is disposed.
 
bool IsFlatbuffers [get]
 Gets a value that indicates whether the Variant contains Flatbuffers.
 
bool IsNull [get]
 Gets a value that indicates whether the Variant is null.
 
bool IsNumber [get]
 Gets a value that indicates whether the Variant contains a numeric value. Returns false for numeric arrays and booleans.
 
bool IsString [get]
 Gets a value that indicates whether the Variant contains a string value.
 
string JsonDataType [get]
 Gets the Json data type.
 
object Value [get]
 Gets the value.
 
- Properties inherited from IVariant
DLR_VARIANT_TYPE DataType [get]
 Gets the data type of the variant.
 
bool IsArray [get]
 Checks if the value is an array.
 
bool IsBool [get]
 Gets a value that indicates whether the Variant contains a boolean value.
 
bool IsFlatbuffers [get]
 Checks if the value is flatbuffers.
 
bool IsNull [get]
 Checks if the value is null.
 
bool IsNumber [get]
 Gets a value that indicates whether the Variant contains a numeric value Returns false for numeric arrays and booleans.
 
bool IsString [get]
 Gets a value that indicates whether the Variant contains a string value.
 
string JsonDataType [get]
 Gets the data type as JSON string.
 
object Value [get]
 Gets the value of the variant.
 
- Properties inherited from INativeDisposable
bool IsDisposed [get]
 Checks disposed.
 
+

Detailed Description

+

Provides the implementation for IVariant.

+ +

Definition at line 17 of file Variant.cs.

+

Constructor & Destructor Documentation

+ +

◆ Variant() [1/30]

+ +
+
+ + + + + +
+ + + + + + + +
Variant ()
+
+inline
+
+ +

Initializes a new instance of the Variant class.

+ +

Definition at line 130 of file Variant.cs.

+ +

Referenced by Variant.Clone(), and Variant.operator Variant().

+ +
+
+ +

◆ Variant() [2/30]

+ +
+
+ + + + + +
+ + + + + + + + +
Variant (IVariant other)
+
+inline
+
+ +

Initializes a new instance of the Variant class.

+
Exceptions
+ + + +
ArgumentNullExceptionArgument cannot be null.
InvalidOperationExceptionObject can't be created
+
+
+ +

Definition at line 143 of file Variant.cs.

+ +
+
+ +

◆ Variant() [3/30]

+ +
+
+ + + + + +
+ + + + + + + + +
Variant (bool value)
+
+inline
+
+ +

Initializes a new instance of the Variant class.

+
Parameters
+ + +
valueThe value of the Variant.
+
+
+
Exceptions
+ + +
InvalidOperationExceptionObject can't be created
+
+
+ +

Definition at line 165 of file Variant.cs.

+ +
+
+ +

◆ Variant() [4/30]

+ +
+
+ + + + + +
+ + + + + + + + +
Variant (string value)
+
+inline
+
+ +

Initializes a new instance of the Variant class.

+
Parameters
+ + +
valueThe value of the Variant.
+
+
+
Exceptions
+ + + +
InvalidOperationExceptionObject can't be created
ArgumentNullExceptionArgument cannot be null.
+
+
+ +

Definition at line 180 of file Variant.cs.

+ +
+
+ +

◆ Variant() [5/30]

+ +
+
+ + + + + +
+ + + + + + + + +
Variant (sbyte value)
+
+inline
+
+ +

Initializes a new instance of the Variant class.

+
Parameters
+ + +
valueThe value of the Variant.
+
+
+
Exceptions
+ + +
InvalidOperationExceptionObject can't be created
+
+
+ +

Definition at line 194 of file Variant.cs.

+ +
+
+ +

◆ Variant() [6/30]

+ +
+
+ + + + + +
+ + + + + + + + +
Variant (short value)
+
+inline
+
+ +

Initializes a new instance of the Variant class.

+
Parameters
+ + +
valueThe value of the Variant.
+
+
+
Exceptions
+ + +
InvalidOperationExceptionObject can't be created
+
+
+ +

Definition at line 208 of file Variant.cs.

+ +
+
+ +

◆ Variant() [7/30]

+ +
+
+ + + + + +
+ + + + + + + + +
Variant (int value)
+
+inline
+
+ +

Initializes a new instance of the Variant class.

+
Parameters
+ + +
valueThe value of the Variant.
+
+
+
Exceptions
+ + +
InvalidOperationExceptionObject can't be created
+
+
+ +

Definition at line 222 of file Variant.cs.

+ +
+
+ +

◆ Variant() [8/30]

+ +
+
+ + + + + +
+ + + + + + + + +
Variant (long value)
+
+inline
+
+ +

Initializes a new instance of the Variant class.

+
Parameters
+ + +
valueThe value of the Variant.
+
+
+
Exceptions
+ + +
InvalidOperationExceptionObject can't be created
+
+
+ +

Definition at line 236 of file Variant.cs.

+ +
+
+ +

◆ Variant() [9/30]

+ +
+
+ + + + + +
+ + + + + + + + +
Variant (DateTime value)
+
+inline
+
+ +

Initializes a new instance of the Variant class.

+
Parameters
+ + +
valueThe value of the Variant.
+
+
+
Exceptions
+ + +
InvalidOperationExceptionObject can't be created
+
+
+ +

Definition at line 250 of file Variant.cs.

+ +
+
+ +

◆ Variant() [10/30]

+ +
+
+ + + + + +
+ + + + + + + + +
Variant (byte value)
+
+inline
+
+ +

Initializes a new instance of the Variant class.

+
Parameters
+ + +
valueThe value of the Variant.
+
+
+
Exceptions
+ + +
InvalidOperationExceptionObject can't be created
+
+
+ +

Definition at line 264 of file Variant.cs.

+ +
+
+ +

◆ Variant() [11/30]

+ +
+
+ + + + + +
+ + + + + + + + +
Variant (ushort value)
+
+inline
+
+ +

Initializes a new instance of the Variant class.

+
Parameters
+ + +
valueThe value of the Variant.
+
+
+
Exceptions
+ + +
InvalidOperationExceptionObject can't be created
+
+
+ +

Definition at line 278 of file Variant.cs.

+ +
+
+ +

◆ Variant() [12/30]

+ +
+
+ + + + + +
+ + + + + + + + +
Variant (uint value)
+
+inline
+
+ +

Initializes a new instance of the Variant class.

+
Parameters
+ + +
valueThe value of the Variant.
+
+
+
Exceptions
+ + +
InvalidOperationExceptionObject can't be created
+
+
+ +

Definition at line 292 of file Variant.cs.

+ +
+
+ +

◆ Variant() [13/30]

+ +
+
+ + + + + +
+ + + + + + + + +
Variant (ulong value)
+
+inline
+
+ +

Initializes a new instance of the Variant class.

+
Parameters
+ + +
valueThe value of the Variant.
+
+
+
Exceptions
+ + +
InvalidOperationExceptionObject can't be created
+
+
+ +

Definition at line 306 of file Variant.cs.

+ +
+
+ +

◆ Variant() [14/30]

+ +
+
+ + + + + +
+ + + + + + + + +
Variant (float value)
+
+inline
+
+ +

Initializes a new instance of the Variant class.

+
Parameters
+ + +
valueThe value of the Variant.
+
+
+
Exceptions
+ + +
InvalidOperationExceptionObject can't be created
+
+
+ +

Definition at line 320 of file Variant.cs.

+ +
+
+ +

◆ Variant() [15/30]

+ +
+
+ + + + + +
+ + + + + + + + +
Variant (double value)
+
+inline
+
+ +

Initializes a new instance of the Variant class.

+
Parameters
+ + +
valueThe value of the Variant.
+
+
+
Exceptions
+ + +
InvalidOperationExceptionObject can't be created
+
+
+ +

Definition at line 334 of file Variant.cs.

+ +
+
+ +

◆ Variant() [16/30]

+ +
+
+ + + + + +
+ + + + + + + + +
Variant (bool[] value)
+
+inline
+
+ +

Initializes a new instance of the Variant class.

+
Parameters
+ + +
valueThe value of the Variant.
+
+
+
Exceptions
+ + + +
InvalidOperationExceptionObject can't be created
ArgumentNullExceptionArgument cannot be null.
+
+
+ +

Definition at line 349 of file Variant.cs.

+ +
+
+ +

◆ Variant() [17/30]

+ +
+
+ + + + + +
+ + + + + + + + +
Variant (string[] value)
+
+inline
+
+ +

Initializes a new instance of the Variant class.

+
Parameters
+ + +
valueThe value of the Variant.
+
+
+
Exceptions
+ + + +
InvalidOperationExceptionObject can't be created
ArgumentNullExceptionArgument cannot be null.
+
+
+ +

Definition at line 364 of file Variant.cs.

+ +
+
+ +

◆ Variant() [18/30]

+ +
+
+ + + + + +
+ + + + + + + + +
Variant (sbyte[] value)
+
+inline
+
+ +

Initializes a new instance of the Variant class.

+
Parameters
+ + +
valueThe value of the Variant.
+
+
+
Exceptions
+ + + +
InvalidOperationExceptionObject can't be created
ArgumentNullExceptionArgument cannot be null.
+
+
+ +

Definition at line 379 of file Variant.cs.

+ +
+
+ +

◆ Variant() [19/30]

+ +
+
+ + + + + +
+ + + + + + + + +
Variant (short[] value)
+
+inline
+
+ +

Initializes a new instance of the Variant class.

+
Parameters
+ + +
valueThe value of the Variant.
+
+
+
Exceptions
+ + + +
InvalidOperationExceptionObject can't be created
ArgumentNullExceptionArgument cannot be null.
+
+
+ +

Definition at line 394 of file Variant.cs.

+ +
+
+ +

◆ Variant() [20/30]

+ +
+
+ + + + + +
+ + + + + + + + +
Variant (int[] value)
+
+inline
+
+ +

Initializes a new instance of the Variant class.

+
Parameters
+ + +
valueThe value of the Variant.
+
+
+
Exceptions
+ + + +
InvalidOperationExceptionObject can't be created
ArgumentNullExceptionArgument cannot be null.
+
+
+ +

Definition at line 409 of file Variant.cs.

+ +
+
+ +

◆ Variant() [21/30]

+ +
+
+ + + + + +
+ + + + + + + + +
Variant (long[] value)
+
+inline
+
+ +

Initializes a new instance of the Variant class.

+
Parameters
+ + +
valueThe value of the Variant.
+
+
+
Exceptions
+ + + +
InvalidOperationExceptionObject can't be created
ArgumentNullExceptionArgument cannot be null.
+
+
+ +

Definition at line 424 of file Variant.cs.

+ +
+
+ +

◆ Variant() [22/30]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
Variant (byte[] value,
bool raw = false 
)
+
+inline
+
+ +

Initializes a new instance of the Variant class.

+
Parameters
+ + + +
valueThe value of the Variant.
rawIf set to true, the data type of the variant is DLR_VARIANT_TYPE_RAW, else DLR_VARIANT_TYPE_ARRAY_OF_UINT8.
+
+
+
Exceptions
+ + + +
InvalidOperationExceptionObject can't be created
ArgumentNullExceptionArgument cannot be null.
+
+
+ +

Definition at line 440 of file Variant.cs.

+ +
+
+ +

◆ Variant() [23/30]

+ +
+
+ + + + + +
+ + + + + + + + +
Variant (ushort[] value)
+
+inline
+
+ +

Initializes a new instance of the Variant class.

+
Parameters
+ + +
valueThe value of the Variant.
+
+
+
Exceptions
+ + + +
InvalidOperationExceptionObject can't be created
ArgumentNullExceptionArgument cannot be null.
+
+
+ +

Definition at line 465 of file Variant.cs.

+ +
+
+ +

◆ Variant() [24/30]

+ +
+
+ + + + + +
+ + + + + + + + +
Variant (uint[] value)
+
+inline
+
+ +

Initializes a new instance of the Variant class.

+
Parameters
+ + +
valueThe value of the Variant.
+
+
+
Exceptions
+ + + +
InvalidOperationExceptionObject can't be created
ArgumentNullExceptionArgument cannot be null.
+
+
+ +

Definition at line 480 of file Variant.cs.

+ +
+
+ +

◆ Variant() [25/30]

+ +
+
+ + + + + +
+ + + + + + + + +
Variant (ulong[] value)
+
+inline
+
+ +

Initializes a new instance of the Variant class.

+
Parameters
+ + +
valueThe value of the Variant.
+
+
+
Exceptions
+ + + +
InvalidOperationExceptionObject can't be created
ArgumentNullExceptionArgument cannot be null.
+
+
+ +

Definition at line 495 of file Variant.cs.

+ +
+
+ +

◆ Variant() [26/30]

+ +
+
+ + + + + +
+ + + + + + + + +
Variant (float[] value)
+
+inline
+
+ +

Initializes a new instance of the Variant class.

+
Parameters
+ + +
valueThe value of the Variant.
+
+
+
Exceptions
+ + + +
InvalidOperationExceptionObject can't be created
ArgumentNullExceptionArgument cannot be null.
+
+
+ +

Definition at line 510 of file Variant.cs.

+ +
+
+ +

◆ Variant() [27/30]

+ +
+
+ + + + + +
+ + + + + + + + +
Variant (double[] value)
+
+inline
+
+ +

Initializes a new instance of the Variant class.

+
Parameters
+ + +
valueThe value of the Variant.
+
+
+
Exceptions
+ + + +
InvalidOperationExceptionObject can't be created
ArgumentNullExceptionArgument cannot be null.
+
+
+ +

Definition at line 525 of file Variant.cs.

+ +
+
+ +

◆ Variant() [28/30]

+ +
+
+ + + + + +
+ + + + + + + + +
Variant (DateTime[] value)
+
+inline
+
+ +

Initializes a new instance of the Variant class.

+
Parameters
+ + +
valueThe value of the Variant.
+
+
+
Exceptions
+ + + +
InvalidOperationExceptionObject can't be created
ArgumentNullExceptionArgument cannot be null.
+
+
+ +

Definition at line 541 of file Variant.cs.

+ +
+
+ +

◆ Variant() [29/30]

+ +
+
+ + + + + +
+ + + + + + + + +
Variant (ByteBuffer flatBuffers)
+
+inline
+
+ +

Initializes a new instance of the Variant class.

+
Parameters
+ + +
flatBuffersThe Flatbuffers.
+
+
+
Exceptions
+ + + +
InvalidOperationExceptionObject can't be created
ArgumentNullExceptionArgument cannot be null.
+
+
+ +

Definition at line 556 of file Variant.cs.

+ +
+
+ +

◆ Variant() [30/30]

+ +
+
+ + + + + +
+ + + + + + + + +
Variant (FlatBufferBuilder builder)
+
+inline
+
+ +

Initializes a new instance of the Variant class.

+
Parameters
+ + +
builderThe FlatBufferBuilder.
+
+
+
Exceptions
+ + + +
InvalidOperationExceptionObject can't be created
ArgumentNullExceptionArgument cannot be null.
+
+
+ +

Definition at line 571 of file Variant.cs.

+ +
+
+

Member Function Documentation

+ +

◆ CheckConvert()

+ +
+
+ + + + + +
+ + + + + + + + +
DLR_RESULT CheckConvert (DLR_VARIANT_TYPE type)
+
+inline
+
+ +

Checks if the Variant is convertable to given data type.

+
Parameters
+ + +
typeThe target type.
+
+
+
Returns
True if convertable, else false.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implements IVariant.

+ +

Definition at line 1654 of file Variant.cs.

+ +

References Variant.IsNull.

+ +
+
+ +

◆ Clone()

+ +
+
+ + + + + +
+ + + + + + + +
Variant Clone ()
+
+inline
+
+ +

Clones the instance.

+
Returns
Clone of the instance.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implements IVariant.

+ +

Definition at line 1624 of file Variant.cs.

+ +

References Variant.Variant(), and Variant.IsDisposed.

+ +
+
+ +

◆ Dispose() [1/2]

+ +
+
+ + + + + +
+ + + + + + + +
void Dispose ()
+
+inline
+
+ +

Disposes the instance.

+ +

Definition at line 116 of file Variant.cs.

+ +

References Variant.Dispose().

+ +

Referenced by Variant.Dispose().

+ +
+
+ +

◆ Dispose() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void Dispose (bool disposing)
+
+inlineprotectedvirtual
+
+ +

Disposes the instance.

+
Parameters
+ + +
disposingFalse if called by Finalizer, else true.
+
+
+ +

Definition at line 70 of file Variant.cs.

+ +

References Variant.IsDisposed.

+ +
+
+ +

◆ Equals() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + +
override bool Equals (object obj)
+
+inline
+
+ +

Returns a value that indicates if this Variant equals given object.

+
Parameters
+ + +
objThe other object.
+
+
+
Returns
True if equal, else false.
+ +

Definition at line 594 of file Variant.cs.

+ +

References Variant.Equals().

+ +

Referenced by Variant.Equals(), Variant.operator!=(), and Variant.operator==().

+ +
+
+ +

◆ Equals() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + +
bool Equals (Variant other)
+
+inline
+
+ +

Returns a value that indicates if this Variant equals given Variant.

+
Parameters
+ + +
otherThe other Variant.
+
+
+
Returns
True if equal, else false.
+ +

Implements IVariant.

+ +

Definition at line 605 of file Variant.cs.

+ +

References Variant.DataType, Variant.Equals(), Variant.ToFlatbuffers(), and Variant.Value.

+ +
+
+ +

◆ GetDataFromFlatbuffers()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
DLR_RESULT IVariant value GetDataFromFlatbuffers (IVariant typeFlatbuffers,
string query 
)
+
+inline
+
+ +

Implements IVariant.

+ +

Definition at line 1584 of file Variant.cs.

+ +
+
+ +

◆ GetHashCode()

+ +
+
+ + + + + +
+ + + + + + + +
override int GetHashCode ()
+
+inline
+
+ +

Gets the HashCode of this Variant.

+
Returns
The HashCode.
+ +

Implements IVariant.

+ +

Definition at line 643 of file Variant.cs.

+ +

References Variant.Value.

+ +
+
+ +

◆ operator Variant() [1/28]

+ +
+
+ + + + + +
+ + + + + + + + +
static implicit operator Variant (bool source)
+
+inlinestatic
+
+ +

Implicit operator.

+
Parameters
+ + +
sourceThe source
+
+
+ +

Definition at line 1675 of file Variant.cs.

+ +

References Variant.Variant().

+ +
+
+ +

◆ operator Variant() [2/28]

+ +
+
+ + + + + +
+ + + + + + + + +
static implicit operator Variant (bool[] source)
+
+inlinestatic
+
+ +

Implicit operator.

+
Parameters
+ + +
sourceThe source
+
+
+ +

Definition at line 1684 of file Variant.cs.

+ +

References Variant.Variant().

+ +
+
+ +

◆ operator Variant() [3/28]

+ +
+
+ + + + + +
+ + + + + + + + +
static implicit operator Variant (byte source)
+
+inlinestatic
+
+ +

Implicit operator.

+
Parameters
+ + +
sourceThe source
+
+
+ +

Definition at line 1710 of file Variant.cs.

+ +

References Variant.Variant().

+ +
+
+ +

◆ operator Variant() [4/28]

+ +
+
+ + + + + +
+ + + + + + + + +
static implicit operator Variant (byte[] source)
+
+inlinestatic
+
+ +

Implicit operator.

+ +

Definition at line 1718 of file Variant.cs.

+ +

References Variant.Variant().

+ +
+
+ +

◆ operator Variant() [5/28]

+ +
+
+ + + + + +
+ + + + + + + + +
static implicit operator Variant (ByteBuffer source)
+
+inlinestatic
+
+ +

Implicit operator.

+
Parameters
+ + +
sourceThe source
+
+
+ +

Definition at line 1910 of file Variant.cs.

+ +

References Variant.Variant().

+ +
+
+ +

◆ operator Variant() [6/28]

+ +
+
+ + + + + +
+ + + + + + + + +
static implicit operator Variant (DateTime source)
+
+inlinestatic
+
+ +

Implicit operator.

+
Parameters
+ + +
sourceThe source
+
+
+ +

Definition at line 1883 of file Variant.cs.

+ +

References Variant.Variant().

+ +
+
+ +

◆ operator Variant() [7/28]

+ +
+
+ + + + + +
+ + + + + + + + +
static implicit operator Variant (DateTime[] source)
+
+inlinestatic
+
+ +

Implicit operator.

+
Parameters
+ + +
sourceThe source
+
+
+ +

Definition at line 1892 of file Variant.cs.

+ +

References Variant.Variant().

+ +
+
+ +

◆ operator Variant() [8/28]

+ +
+
+ + + + + +
+ + + + + + + + +
static implicit operator Variant (double source)
+
+inlinestatic
+
+ +

Implicit operator.

+
Parameters
+ + +
sourceThe source
+
+
+ +

Definition at line 1848 of file Variant.cs.

+ +

References Variant.Variant().

+ +
+
+ +

◆ operator Variant() [9/28]

+ +
+
+ + + + + +
+ + + + + + + + +
static implicit operator Variant (double[] source)
+
+inlinestatic
+
+ +

Implicit operator.

+ +

Definition at line 1856 of file Variant.cs.

+ +

References Variant.Variant().

+ +
+
+ +

◆ operator Variant() [10/28]

+ +
+
+ + + + + +
+ + + + + + + + +
static implicit operator Variant (FlatBufferBuilder source)
+
+inlinestatic
+
+ +

Implicit operator.

+
Parameters
+ + +
sourceThe source
+
+
+ +

Definition at line 1901 of file Variant.cs.

+ +

References Variant.Variant().

+ +
+
+ +

◆ operator Variant() [11/28]

+ +
+
+ + + + + +
+ + + + + + + + +
static implicit operator Variant (float source)
+
+inlinestatic
+
+ +

Implicit operator.

+
Parameters
+ + +
sourceThe source
+
+
+ +

Definition at line 1831 of file Variant.cs.

+ +

References Variant.Variant().

+ +
+
+ +

◆ operator Variant() [12/28]

+ +
+
+ + + + + +
+ + + + + + + + +
static implicit operator Variant (float[] source)
+
+inlinestatic
+
+ +

Implicit operator.

+ +

Definition at line 1839 of file Variant.cs.

+ +

References Variant.Variant().

+ +
+
+ +

◆ operator Variant() [13/28]

+ +
+
+ + + + + +
+ + + + + + + + +
static implicit operator Variant (int source)
+
+inlinestatic
+
+ +

Implicit operator.

+
Parameters
+ + +
sourceThe source
+
+
+ +

Definition at line 1760 of file Variant.cs.

+ +

References Variant.Variant().

+ +
+
+ +

◆ operator Variant() [14/28]

+ +
+
+ + + + + +
+ + + + + + + + +
static implicit operator Variant (int[] source)
+
+inlinestatic
+
+ +

Implicit operator.

+
Parameters
+ + +
sourceThe source
+
+
+ +

Definition at line 1769 of file Variant.cs.

+ +

References Variant.Variant().

+ +
+
+ +

◆ operator Variant() [15/28]

+ +
+
+ + + + + +
+ + + + + + + + +
static implicit operator Variant (long source)
+
+inlinestatic
+
+ +

Implicit operator.

+
Parameters
+ + +
sourceThe source
+
+
+ +

Definition at line 1796 of file Variant.cs.

+ +

References Variant.Variant().

+ +
+
+ +

◆ operator Variant() [16/28]

+ +
+
+ + + + + +
+ + + + + + + + +
static implicit operator Variant (long[] source)
+
+inlinestatic
+
+ +

Implicit operator.

+
Parameters
+ + +
sourceThe source
+
+
+ +

Definition at line 1805 of file Variant.cs.

+ +

References Variant.Variant().

+ +
+
+ +

◆ operator Variant() [17/28]

+ +
+
+ + + + + +
+ + + + + + + + +
static implicit operator Variant (sbyte source)
+
+inlinestatic
+
+ +

Implicit operator.

+
Parameters
+ + +
sourceThe source
+
+
+ +

Definition at line 1693 of file Variant.cs.

+ +

References Variant.Variant().

+ +
+
+ +

◆ operator Variant() [18/28]

+ +
+
+ + + + + +
+ + + + + + + + +
static implicit operator Variant (sbyte[] source)
+
+inlinestatic
+
+ +

Implicit operator.

+ +

Definition at line 1701 of file Variant.cs.

+ +

References Variant.Variant().

+ +
+
+ +

◆ operator Variant() [19/28]

+ +
+
+ + + + + +
+ + + + + + + + +
static implicit operator Variant (short source)
+
+inlinestatic
+
+ +

Implicit operator.

+
Parameters
+ + +
sourceThe source
+
+
+ +

Definition at line 1727 of file Variant.cs.

+ +

References Variant.Variant().

+ +
+
+ +

◆ operator Variant() [20/28]

+ +
+
+ + + + + +
+ + + + + + + + +
static implicit operator Variant (short[] source)
+
+inlinestatic
+
+ +

Implicit operator.

+ +

Definition at line 1735 of file Variant.cs.

+ +

References Variant.Variant().

+ +
+
+ +

◆ operator Variant() [21/28]

+ +
+
+ + + + + +
+ + + + + + + + +
static implicit operator Variant (string source)
+
+inlinestatic
+
+ +

Implicit operator.

+
Parameters
+ + +
sourceThe source
+
+
+ +

Definition at line 1865 of file Variant.cs.

+ +

References Variant.Variant().

+ +
+
+ +

◆ operator Variant() [22/28]

+ +
+
+ + + + + +
+ + + + + + + + +
static implicit operator Variant (string[] source)
+
+inlinestatic
+
+ +

Implicit operator.

+
Parameters
+ + +
sourceThe source
+
+
+ +

Definition at line 1874 of file Variant.cs.

+ +

References Variant.Variant().

+ +
+
+ +

◆ operator Variant() [23/28]

+ +
+
+ + + + + +
+ + + + + + + + +
static implicit operator Variant (uint source)
+
+inlinestatic
+
+ +

Implicit operator.

+
Parameters
+ + +
sourceThe source
+
+
+ +

Definition at line 1778 of file Variant.cs.

+ +

References Variant.Variant().

+ +
+
+ +

◆ operator Variant() [24/28]

+ +
+
+ + + + + +
+ + + + + + + + +
static implicit operator Variant (uint[] source)
+
+inlinestatic
+
+ +

Implicit operator.

+
Parameters
+ + +
sourceThe source
+
+
+ +

Definition at line 1787 of file Variant.cs.

+ +

References Variant.Variant().

+ +
+
+ +

◆ operator Variant() [25/28]

+ +
+
+ + + + + +
+ + + + + + + + +
static implicit operator Variant (ulong source)
+
+inlinestatic
+
+ +

Implicit operator.

+
Parameters
+ + +
sourceThe source
+
+
+ +

Definition at line 1814 of file Variant.cs.

+ +

References Variant.Variant().

+ +
+
+ +

◆ operator Variant() [26/28]

+ +
+
+ + + + + +
+ + + + + + + + +
static implicit operator Variant (ulong[] source)
+
+inlinestatic
+
+ +

Implicit operator.

+ +

Definition at line 1822 of file Variant.cs.

+ +

References Variant.Variant().

+ +
+
+ +

◆ operator Variant() [27/28]

+ +
+
+ + + + + +
+ + + + + + + + +
static implicit operator Variant (ushort source)
+
+inlinestatic
+
+ +

Implicit operator.

+
Parameters
+ + +
sourceThe source
+
+
+ +

Definition at line 1743 of file Variant.cs.

+ +

References Variant.Variant().

+ +
+
+ +

◆ operator Variant() [28/28]

+ +
+
+ + + + + +
+ + + + + + + + +
static implicit operator Variant (ushort[] source)
+
+inlinestatic
+
+ +

Implicit operator.

+ +

Definition at line 1751 of file Variant.cs.

+ +

References Variant.Variant().

+ +
+
+ +

◆ operator!=()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
static bool operator!= (Variant l,
Variant r 
)
+
+inlinestatic
+
+ +

s Unequality Operator.

+
Parameters
+ + + +
lThe left argument.
rThe right argument.
+
+
+
Returns
True if not equal, else false.
+ +

Definition at line 705 of file Variant.cs.

+ +

References Variant.Equals().

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
static bool operator== (Variant l,
Variant r 
)
+
+inlinestatic
+
+ +

Equality Operator.

+
Parameters
+ + + +
lThe left argument.
rThe right argument.
+
+
+
Returns
True if equal, else false.
+ +

Definition at line 681 of file Variant.cs.

+ +

References Variant.Equals().

+ +
+
+ +

◆ ToBool()

+ +
+
+ + + + + +
+ + + + + + + +
bool ToBool ()
+
+inline
+
+ +

Gets the value as bool.

+
Returns
The value as bool.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implements IVariant.

+ +

Definition at line 903 of file Variant.cs.

+ +

References Variant.IsNull.

+ +
+
+ +

◆ ToBoolArray()

+ +
+
+ + + + + +
+ + + + + + + +
bool[] ToBoolArray ()
+
+inline
+
+ +

Gets the value as bool array.

+
Returns
The value as bool array.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implements IVariant.

+ +

Definition at line 1111 of file Variant.cs.

+ +

References Variant.IsNull.

+ +
+
+ +

◆ ToByte()

+ +
+
+ + + + + +
+ + + + + + + +
byte ToByte ()
+
+inline
+
+ +

Gets the value as byte.

+
Returns
The value as byte.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implements IVariant.

+ +

Definition at line 939 of file Variant.cs.

+ +

References Variant.IsNull.

+ +
+
+ +

◆ ToByteArray()

+ +
+
+ + + + + +
+ + + + + + + +
byte[] ToByteArray ()
+
+inline
+
+ +

Gets the value as byte array.

+
Returns
The value as byte array.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implements IVariant.

+ +

Definition at line 1181 of file Variant.cs.

+ +

References Variant.IsNull.

+ +
+
+ +

◆ ToDateTime()

+ +
+
+ + + + + +
+ + + + + + + +
DateTime ToDateTime ()
+
+inline
+
+ +

Converts the value to a timestamp.

+
Returns
Value of the variant as a timestamp.
+ +

Implements IVariant.

+ +

Definition at line 1064 of file Variant.cs.

+ +

References Variant.ToUInt64().

+ +
+
+ +

◆ ToDateTimeArray()

+ +
+
+ + + + + +
+ + + + + + + +
DateTime[] ToDateTimeArray ()
+
+inline
+
+ +

Gets the value as DateTime array.

+
Returns
The value as DateTime array.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implements IVariant.

+ +

Definition at line 1467 of file Variant.cs.

+ +

References Variant.ToUInt64Array().

+ +
+
+ +

◆ ToDouble()

+ +
+
+ + + + + +
+ + + + + + + +
double ToDouble ()
+
+inline
+
+ +

Gets the value as double.

+
Returns
The value as double.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implements IVariant.

+ +

Definition at line 1093 of file Variant.cs.

+ +

References Variant.IsNull.

+ +
+
+ +

◆ ToDoubleArray()

+ +
+
+ + + + + +
+ + + + + + + +
double[] ToDoubleArray ()
+
+inline
+
+ +

Gets the value as double array.

+
Returns
The value as double array.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implements IVariant.

+ +

Definition at line 1415 of file Variant.cs.

+ +

References Variant.IsNull.

+ +
+
+ +

◆ ToFlatbuffers()

+ +
+
+ + + + + +
+ + + + + + + +
ByteBuffer ToFlatbuffers ()
+
+inline
+
+ +

Gets the value as Flatbuffers.

+
Returns
The value as Flatbuffers.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implements IVariant.

+ +

Definition at line 1520 of file Variant.cs.

+ +

References Variant.IsFlatbuffers, and Variant.IsNull.

+ +

Referenced by Variant.Equals().

+ +
+
+ +

◆ ToFloat()

+ +
+
+ + + + + +
+ + + + + + + +
float ToFloat ()
+
+inline
+
+ +

Gets the value as float.

+
Returns
The value as float.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implements IVariant.

+ +

Definition at line 1075 of file Variant.cs.

+ +

References Variant.IsNull.

+ +
+
+ +

◆ ToFloatArray()

+ +
+
+ + + + + +
+ + + + + + + +
float[] ToFloatArray ()
+
+inline
+
+ +

Gets the value as float array.

+
Returns
The value as float array.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implements IVariant.

+ +

Definition at line 1389 of file Variant.cs.

+ +

References Variant.IsNull.

+ +
+
+ +

◆ ToInt16()

+ +
+
+ + + + + +
+ + + + + + + +
short ToInt16 ()
+
+inline
+
+ +

Gets the value as short.

+
Returns
The value as short.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implements IVariant.

+ +

Definition at line 957 of file Variant.cs.

+ +

References Variant.IsNull.

+ +
+
+ +

◆ ToInt16Array()

+ +
+
+ + + + + +
+ + + + + + + +
short[] ToInt16Array ()
+
+inline
+
+ +

Gets the value as short array.

+
Returns
The value as short array.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implements IVariant.

+ +

Definition at line 1207 of file Variant.cs.

+ +

References Variant.IsNull.

+ +
+
+ +

◆ ToInt32()

+ +
+
+ + + + + +
+ + + + + + + +
int ToInt32 ()
+
+inline
+
+ +

Gets the value as int.

+
Returns
The value as int.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implements IVariant.

+ +

Definition at line 993 of file Variant.cs.

+ +

References Variant.IsNull.

+ +
+
+ +

◆ ToInt32Array()

+ +
+
+ + + + + +
+ + + + + + + +
int[] ToInt32Array ()
+
+inline
+
+ +

Gets the value as int array.

+
Returns
The value as int array.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implements IVariant.

+ +

Definition at line 1267 of file Variant.cs.

+ +

References Variant.IsNull.

+ +
+
+ +

◆ ToInt64()

+ +
+
+ + + + + +
+ + + + + + + +
long ToInt64 ()
+
+inline
+
+ +

Gets the value as long.

+
Returns
The value as long.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implements IVariant.

+ +

Definition at line 1029 of file Variant.cs.

+ +

References Variant.IsNull.

+ +
+
+ +

◆ ToInt64Array()

+ +
+
+ + + + + +
+ + + + + + + +
long[] ToInt64Array ()
+
+inline
+
+ +

Gets the value as long array.

+
Returns
The value as long array.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implements IVariant.

+ +

Definition at line 1328 of file Variant.cs.

+ +

References Variant.IsNull.

+ +
+
+ +

◆ ToRawByteArray()

+ +
+
+ + + + + +
+ + + + + + + +
byte[] ToRawByteArray ()
+
+inline
+
+ +

Gets the value as raw byte array (UTF8).

+
Returns
The value as raw byte array (UTF8).
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implements IVariant.

+ +

Definition at line 1551 of file Variant.cs.

+ +

References Variant.IsNull.

+ +
+
+ +

◆ ToSByte()

+ +
+
+ + + + + +
+ + + + + + + +
sbyte ToSByte ()
+
+inline
+
+ +

Gets the value as sbyte.

+
Returns
The value as sbyte.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implements IVariant.

+ +

Definition at line 921 of file Variant.cs.

+ +

References Variant.IsNull.

+ +
+
+ +

◆ ToSByteArray()

+ +
+
+ + + + + +
+ + + + + + + +
sbyte[] ToSByteArray ()
+
+inline
+
+ +

Gets the value as sbyte array.

+
Returns
The value as sbyte array.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implements IVariant.

+ +

Definition at line 1146 of file Variant.cs.

+ +

References Variant.IsNull.

+ +
+
+ +

◆ ToString()

+ +
+
+ + + + + +
+ + + + + + + +
override string ToString ()
+
+inline
+
+ +

Gets the value as string.

+
Returns
The value as string.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implements IVariant.

+ +

Definition at line 654 of file Variant.cs.

+ +

References Variant.IsNull, and Variant.ToUInt32().

+ +
+
+ +

◆ ToStringArray()

+ +
+
+ + + + + +
+ + + + + + + +
string[] ToStringArray ()
+
+inline
+
+ +

Gets the value as string array.

+
Returns
The value as string array.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implements IVariant.

+ +

Definition at line 1441 of file Variant.cs.

+ +

References Variant.IsNull.

+ +
+
+ +

◆ ToUInt16()

+ +
+
+ + + + + +
+ + + + + + + +
ushort ToUInt16 ()
+
+inline
+
+ +

Gets the value as ushort.

+
Returns
The value as ushort.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implements IVariant.

+ +

Definition at line 975 of file Variant.cs.

+ +

References Variant.IsNull.

+ +
+
+ +

◆ ToUInt16Array()

+ +
+
+ + + + + +
+ + + + + + + +
ushort[] ToUInt16Array ()
+
+inline
+
+ +

Gets the value as ushort array.

+
Returns
The value as ushort array.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implements IVariant.

+ +

Definition at line 1233 of file Variant.cs.

+ +

References Variant.IsNull.

+ +
+
+ +

◆ ToUInt32()

+ +
+
+ + + + + +
+ + + + + + + +
uint ToUInt32 ()
+
+inline
+
+ +

Gets the value as uint.

+
Returns
The value as uint.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implements IVariant.

+ +

Definition at line 1011 of file Variant.cs.

+ +

References Variant.IsNull.

+ +

Referenced by Variant.ToString().

+ +
+
+ +

◆ ToUInt32Array()

+ +
+
+ + + + + +
+ + + + + + + +
uint[] ToUInt32Array ()
+
+inline
+
+ +

Gets the value as uint array.

+
Returns
The value as uint array.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implements IVariant.

+ +

Definition at line 1293 of file Variant.cs.

+ +

References Variant.IsNull.

+ +
+
+ +

◆ ToUInt64()

+ +
+
+ + + + + +
+ + + + + + + +
ulong ToUInt64 ()
+
+inline
+
+ +

Gets the value as ulong.

+
Returns
The value as ulong.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implements IVariant.

+ +

Definition at line 1047 of file Variant.cs.

+ +

References Variant.IsNull.

+ +

Referenced by Variant.ToDateTime().

+ +
+
+ +

◆ ToUInt64Array()

+ +
+
+ + + + + +
+ + + + + + + +
ulong[] ToUInt64Array ()
+
+inline
+
+ +

Gets the value as ulong array.

+
Returns
The value as ulong array.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implements IVariant.

+ +

Definition at line 1354 of file Variant.cs.

+ +

References Variant.IsNull.

+ +

Referenced by Variant.ToDateTimeArray().

+ +
+
+

Member Data Documentation

+ +

◆ DefaultFlatbuffersInitialSize

+ +
+
+ + + + + +
+ + + + +
readonly int DefaultFlatbuffersInitialSize = 1024
+
+static
+
+ +

Gets the default Flatbuffers initial size in bytes.

+ +

Definition at line 730 of file Variant.cs.

+ +

Referenced by MetadataBuilder.MetadataBuilder(), and SubscriptionPropertiesBuilder.SubscriptionPropertiesBuilder().

+ +
+
+ +

◆ Empty

+ +
+
+ + + + + +
+ + + + +
readonly Variant Empty = new Variant(string.Empty)
+
+static
+
+ +

Gets a Variant with empty string value.

+ +

Definition at line 750 of file Variant.cs.

+ +
+
+ +

◆ False

+ +
+
+ + + + + +
+ + + + +
readonly Variant False = new Variant(false)
+
+static
+
+ +

Gets a Variant with boolean value 'false'.

+ +

Definition at line 760 of file Variant.cs.

+ +
+
+ +

◆ Null

+ +
+
+ + + + + +
+ + + + +
readonly Variant Null = new Variant()
+
+static
+
+ +

Gets a Variant with no value of data type 'DLR_VARIANT_TYPE_UNKNOWN'.

+ +

Definition at line 735 of file Variant.cs.

+ +
+
+ +

◆ One

+ +
+
+ + + + + +
+ + + + +
readonly Variant One = new Variant(1)
+
+static
+
+ +

Gets a Variant with value '1' of data type 'int' (Int32).

+ +

Definition at line 745 of file Variant.cs.

+ +
+
+ +

◆ result

+ +
+
+ + + + +
DLR_RESULT result
+
+ +

Gets data of a complex Variant (flatbuffers) by query.

+
Parameters
+ + + +
typeFlatbuffersType (schema) of the object
queryQuery string
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + + +
ArgumentNullExceptionArgument cannot be null.
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Definition at line 1584 of file Variant.cs.

+ +
+
+ +

◆ True

+ +
+
+ + + + + +
+ + + + +
readonly Variant True = new Variant(true)
+
+static
+
+ +

Gets a Variant with boolean value 'true'.

+ +

Definition at line 755 of file Variant.cs.

+ +
+
+ +

◆ Zero

+ +
+
+ + + + + +
+ + + + +
readonly Variant Zero = new Variant(0)
+
+static
+
+ +

Gets a Variant with value '0' of data type 'int' (Int32).

+ +

Definition at line 740 of file Variant.cs.

+ +
+
+

Property Documentation

+ +

◆ DataType

+ +
+
+ + + + + +
+ + + + +
DLR_VARIANT_TYPE DataType
+
+get
+
+ +

Gets the data type.

+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implements IVariant.

+ +

Definition at line 1477 of file Variant.cs.

+ +

Referenced by Variant.Equals().

+ +
+
+ +

◆ IsArray

+ +
+
+ + + + + +
+ + + + +
bool IsArray
+
+get
+
+ +

Gets a value that indicates whether the Variant is an array.

+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implements IVariant.

+ +

Definition at line 867 of file Variant.cs.

+ +
+
+ +

◆ IsBool

+ +
+
+ + + + + +
+ + + + +
bool IsBool
+
+get
+
+ +

Gets a value that indicates whether the Variant contains a boolean value.

+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implements IVariant.

+ +

Definition at line 855 of file Variant.cs.

+ +
+
+ +

◆ IsDisposed

+ +
+
+ + + + + +
+ + + + +
bool IsDisposed
+
+get
+
+ +

Gets a value that indicates whether the instance is disposed.

+ +

Implements INativeDisposable.

+ +

Definition at line 64 of file Variant.cs.

+ +

Referenced by Variant.Clone(), and Variant.Dispose().

+ +
+
+ +

◆ IsFlatbuffers

+ +
+
+ + + + + +
+ + + + +
bool IsFlatbuffers
+
+get
+
+ +

Gets a value that indicates whether the Variant contains Flatbuffers.

+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implements IVariant.

+ +

Definition at line 861 of file Variant.cs.

+ +

Referenced by Variant.ToFlatbuffers().

+ +
+
+ +

◆ IsNull

+ + + +

◆ IsNumber

+ +
+
+ + + + + +
+ + + + +
bool IsNumber
+
+get
+
+ +

Gets a value that indicates whether the Variant contains a numeric value. Returns false for numeric arrays and booleans.

+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implements IVariant.

+ +

Definition at line 885 of file Variant.cs.

+ +
+
+ +

◆ IsString

+ +
+
+ + + + + +
+ + + + +
bool IsString
+
+get
+
+ +

Gets a value that indicates whether the Variant contains a string value.

+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implements IVariant.

+ +

Definition at line 849 of file Variant.cs.

+ +
+
+ +

◆ JsonDataType

+ +
+
+ + + + + +
+ + + + +
string JsonDataType
+
+get
+
+ +

Gets the Json data type.

+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implements IVariant.

+ +

Definition at line 1502 of file Variant.cs.

+ +
+
+ +

◆ Value

+ +
+
+ + + + + +
+ + + + +
object Value
+
+get
+
+ +

Gets the value.

+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implements IVariant.

+ +

Definition at line 770 of file Variant.cs.

+ +

Referenced by Variant.Equals(), and Variant.GetHashCode().

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/3.4.0/api/net/html/classDatalayer_1_1Variant.js b/3.4.0/api/net/html/classDatalayer_1_1Variant.js new file mode 100644 index 000000000..7fd4c0573 --- /dev/null +++ b/3.4.0/api/net/html/classDatalayer_1_1Variant.js @@ -0,0 +1,116 @@ +var classDatalayer_1_1Variant = +[ + [ "Variant", "classDatalayer_1_1Variant.html#a3c631cdbf129a354bb091ce47c418f13", null ], + [ "Variant", "classDatalayer_1_1Variant.html#a6f243981f98242d58740052123320906", null ], + [ "Variant", "classDatalayer_1_1Variant.html#a8730a4089b1f3ad6c70701cc2bd49e01", null ], + [ "Variant", "classDatalayer_1_1Variant.html#a1394786161c315b78168f0712aa25d88", null ], + [ "Variant", "classDatalayer_1_1Variant.html#a664bdf816b041a86995237bff694d35a", null ], + [ "Variant", "classDatalayer_1_1Variant.html#abc32e2f4111baaed039c0bca2b791e63", null ], + [ "Variant", "classDatalayer_1_1Variant.html#a2239c42c8248a3bae29504b47a4607e8", null ], + [ "Variant", "classDatalayer_1_1Variant.html#a79efcc0eb9a39afb54499aca00d7fbb8", null ], + [ "Variant", "classDatalayer_1_1Variant.html#a328dc484bf10aeac3b3a40c0b958f852", null ], + [ "Variant", "classDatalayer_1_1Variant.html#a8ce3d5a54e259c1e79023056be84f0de", null ], + [ "Variant", "classDatalayer_1_1Variant.html#a627d64db6fed88d685f7467381ce44cd", null ], + [ "Variant", "classDatalayer_1_1Variant.html#ae08ebff5d31bc83da4423fe1ad5c93bf", null ], + [ "Variant", "classDatalayer_1_1Variant.html#a5e7b4340c2eeb89a043c1c5787b74031", null ], + [ "Variant", "classDatalayer_1_1Variant.html#a8e3a2c0f1d809d50111f96f3b16b120c", null ], + [ "Variant", "classDatalayer_1_1Variant.html#a96d1a5135f5b013dffb5c67ea992e0c3", null ], + [ "Variant", "classDatalayer_1_1Variant.html#a41c449e1498b23503c327000e44b2a99", null ], + [ "Variant", "classDatalayer_1_1Variant.html#ab504fb6081a84897d7881b5c14248049", null ], + [ "Variant", "classDatalayer_1_1Variant.html#a10ee097108609aea7bd83f0b3a2f92eb", null ], + [ "Variant", "classDatalayer_1_1Variant.html#a69a1d1f92e4d959438435561bbf32cbd", null ], + [ "Variant", "classDatalayer_1_1Variant.html#afd1a52b640565e8d5ea65ffb2b547e8e", null ], + [ "Variant", "classDatalayer_1_1Variant.html#af7edce4a39cfdea9c9d27bda80bc84bb", null ], + [ "Variant", "classDatalayer_1_1Variant.html#a76da512ddf5000c79181e4b09ab9429f", null ], + [ "Variant", "classDatalayer_1_1Variant.html#abd4459c87f9e7bf649e9630094c214c9", null ], + [ "Variant", "classDatalayer_1_1Variant.html#a8e7d0f5bc4e0c2844faa8ade3a9ed252", null ], + [ "Variant", "classDatalayer_1_1Variant.html#ae78c7426beb81723639cfe3db75eb002", null ], + [ "Variant", "classDatalayer_1_1Variant.html#acaa40cf58c049ba718ff99244ea21429", null ], + [ "Variant", "classDatalayer_1_1Variant.html#a9bb244ed6c236f58a948216de4713608", null ], + [ "Variant", "classDatalayer_1_1Variant.html#a53e69ae330fb8cbc380aa5ed55034135", null ], + [ "Variant", "classDatalayer_1_1Variant.html#a29ee866cc3984e7936bde72d1b7e90f7", null ], + [ "Variant", "classDatalayer_1_1Variant.html#af84d77d392671886a0031faec59cfe32", null ], + [ "CheckConvert", "classDatalayer_1_1Variant.html#acce5cdfae2d56b3f31c6b2354ce65c53", null ], + [ "Clone", "classDatalayer_1_1Variant.html#a9b8bbaab54d4b040e57a88a8ded2247b", null ], + [ "Dispose", "classDatalayer_1_1Variant.html#a6e2d745cdb7a7b983f861ed6a9a541a7", null ], + [ "Dispose", "classDatalayer_1_1Variant.html#a8ad4348ef0f9969025bab397e7e27e26", null ], + [ "Equals", "classDatalayer_1_1Variant.html#aadf763f0213fc2f3875230b06bb0b6cf", null ], + [ "Equals", "classDatalayer_1_1Variant.html#a768bfe492f96453766631a639e0da5a1", null ], + [ "GetHashCode", "classDatalayer_1_1Variant.html#a77e1afa2b6dee1ed3640da81d7407b42", null ], + [ "operator Variant", "classDatalayer_1_1Variant.html#aea4a9b0432f77e8f9cf8c8a8612afce8", null ], + [ "operator Variant", "classDatalayer_1_1Variant.html#a8e7703357f7fc58e1bb975943bac8153", null ], + [ "operator Variant", "classDatalayer_1_1Variant.html#a696540ecf668a7e6fa16ae2fa3b5b03d", null ], + [ "operator Variant", "classDatalayer_1_1Variant.html#aff91713a8112cbcaa5b89f1ceab147b5", null ], + [ "operator Variant", "classDatalayer_1_1Variant.html#a5f2d81a1e49469e7740eab4e6fe982b6", null ], + [ "operator Variant", "classDatalayer_1_1Variant.html#adaefd05f8b4bf92b8ebc7b91c0ad8768", null ], + [ "operator Variant", "classDatalayer_1_1Variant.html#a9b2c841f8b0c7d7262725c5687651c1e", null ], + [ "operator Variant", "classDatalayer_1_1Variant.html#a5c8bc19ef8ab00d9a3d01eb78be172e6", null ], + [ "operator Variant", "classDatalayer_1_1Variant.html#a75fd018bde185a1bb157aaebcc745808", null ], + [ "operator Variant", "classDatalayer_1_1Variant.html#a4641dcfcde244451d7e6f1c83f11b0ef", null ], + [ "operator Variant", "classDatalayer_1_1Variant.html#a9c53ad243715dc0983afc2f3ad4cf72c", null ], + [ "operator Variant", "classDatalayer_1_1Variant.html#ac983e3f2243f9130f9829ea6411e06ff", null ], + [ "operator Variant", "classDatalayer_1_1Variant.html#a9ecbd6449a741137de99c7dac0a6205c", null ], + [ "operator Variant", "classDatalayer_1_1Variant.html#a46107b2fadc2ebb15a8456791260f4f7", null ], + [ "operator Variant", "classDatalayer_1_1Variant.html#ab015d27e128504a57c70a45076791ed6", null ], + [ "operator Variant", "classDatalayer_1_1Variant.html#a2c0c3403d3812ee7b1ec698511c180d8", null ], + [ "operator Variant", "classDatalayer_1_1Variant.html#ae3049c24466337e7bd3485ee96a4bdb9", null ], + [ "operator Variant", "classDatalayer_1_1Variant.html#abe74d517092f966c10c3c8383147d333", null ], + [ "operator Variant", "classDatalayer_1_1Variant.html#ac1ad1d6d5b177417e7d140cd0899e01b", null ], + [ "operator Variant", "classDatalayer_1_1Variant.html#af9d8718989f7ec47d4f409bf7e0391ac", null ], + [ "operator Variant", "classDatalayer_1_1Variant.html#ab03c7c5f05170a7f9da68cac6ddbf00c", null ], + [ "operator Variant", "classDatalayer_1_1Variant.html#a9b7272bb426b38cae0d6e11e8e44d958", null ], + [ "operator Variant", "classDatalayer_1_1Variant.html#ad067c25cbf27b5342b7e1fbf7f28dd16", null ], + [ "operator Variant", "classDatalayer_1_1Variant.html#ab54ad17c707825b0771594c18eb24dda", null ], + [ "operator Variant", "classDatalayer_1_1Variant.html#a465e11e306756f8eb540673d5f9cc3fc", null ], + [ "operator Variant", "classDatalayer_1_1Variant.html#a930c69ef28e88ff2ece9295bdebc9bea", null ], + [ "operator Variant", "classDatalayer_1_1Variant.html#ad26bcf0308fd1059f322d228fb1a35df", null ], + [ "operator Variant", "classDatalayer_1_1Variant.html#a2779bcc56125f71e6fb16adb42798a0a", null ], + [ "operator!=", "classDatalayer_1_1Variant.html#aa9fc6ccf613b2cc5356e7f81da1635ad", null ], + [ "operator==", "classDatalayer_1_1Variant.html#ad393d790d52712f35a5fd2121f2ca639", null ], + [ "ToBool", "classDatalayer_1_1Variant.html#a836015d7bac1c5bdbf87c6aff416def0", null ], + [ "ToBoolArray", "classDatalayer_1_1Variant.html#aff7faba54d898225f00e994582057136", null ], + [ "ToByte", "classDatalayer_1_1Variant.html#a59e3e205bb96ab4244682480106341de", null ], + [ "ToByteArray", "classDatalayer_1_1Variant.html#a5e05025d8b0434ab88b76301915aff2b", null ], + [ "ToDateTime", "classDatalayer_1_1Variant.html#a32de86b638d07299fd094c662465fa55", null ], + [ "ToDateTimeArray", "classDatalayer_1_1Variant.html#afe4cc7230217220283dad3eead321a7c", null ], + [ "ToDouble", "classDatalayer_1_1Variant.html#a0bf7245d983694969034631ee82a51cf", null ], + [ "ToDoubleArray", "classDatalayer_1_1Variant.html#a440b7ec49753006174500f9ab80f34ba", null ], + [ "ToFlatbuffers", "classDatalayer_1_1Variant.html#a4cebcb8a4d96db6f34ab8fdd2f2e9021", null ], + [ "ToFloat", "classDatalayer_1_1Variant.html#ae154275c2988473c049394ccccb4dcc7", null ], + [ "ToFloatArray", "classDatalayer_1_1Variant.html#a0b0372425a3c492dd13c91dd54d5caf0", null ], + [ "ToInt16", "classDatalayer_1_1Variant.html#a0510dcf6776eb733ad47527a9c840f3f", null ], + [ "ToInt16Array", "classDatalayer_1_1Variant.html#a3bde119743d4d0bb403e31860b1fa11b", null ], + [ "ToInt32", "classDatalayer_1_1Variant.html#aef413807d1c2334cbc84bd9452880f52", null ], + [ "ToInt32Array", "classDatalayer_1_1Variant.html#afab60cc9925b37156c33b0038afdb561", null ], + [ "ToInt64", "classDatalayer_1_1Variant.html#a98349bc5d9c022962787ff59abc6dc3b", null ], + [ "ToInt64Array", "classDatalayer_1_1Variant.html#a088194316ad0671c2fe854c354f618cb", null ], + [ "ToRawByteArray", "classDatalayer_1_1Variant.html#a7c1f6808410877b3a9cfc66b40e607ee", null ], + [ "ToSByte", "classDatalayer_1_1Variant.html#a08fa1ede9d2e6dabdee29a87c8049f0c", null ], + [ "ToSByteArray", "classDatalayer_1_1Variant.html#a1a3fa907947947a6a63f376b8d6fdd53", null ], + [ "ToString", "classDatalayer_1_1Variant.html#aa73e7c4dd1df5fd5fbf81c7764ee1533", null ], + [ "ToStringArray", "classDatalayer_1_1Variant.html#a04cb1158786ea29ad6578845b77846c2", null ], + [ "ToUInt16", "classDatalayer_1_1Variant.html#ad85199356631d42955d8ca04d27c1e65", null ], + [ "ToUInt16Array", "classDatalayer_1_1Variant.html#a1f19dd7c3474093e6b64d332b88d29cc", null ], + [ "ToUInt32", "classDatalayer_1_1Variant.html#a53b3651691d777fd0485024076309eec", null ], + [ "ToUInt32Array", "classDatalayer_1_1Variant.html#a8a2860eb4d668412571bd06b11214592", null ], + [ "ToUInt64", "classDatalayer_1_1Variant.html#aaab078e9d44ca35cbad95eb1c0b344cd", null ], + [ "ToUInt64Array", "classDatalayer_1_1Variant.html#a5a66a16d41087f033c9787db20d4e21c", null ], + [ "DefaultFlatbuffersInitialSize", "classDatalayer_1_1Variant.html#a8e25ed1230b25e5377832b5f7e9a4d09", null ], + [ "Empty", "classDatalayer_1_1Variant.html#af0d6f07c37ed0c3b3742972b20b17358", null ], + [ "False", "classDatalayer_1_1Variant.html#ae9114dbfe8f7ea7c180ef16b21e6fd0c", null ], + [ "Null", "classDatalayer_1_1Variant.html#a92b84f63a468a345d45dcb776b6c1344", null ], + [ "One", "classDatalayer_1_1Variant.html#a6150f8735c2c8eb4693be657ab49774d", null ], + [ "result", "classDatalayer_1_1Variant.html#a7e346f0f62357ba18c4ede5c5a84d787", null ], + [ "True", "classDatalayer_1_1Variant.html#ac1d8534f50845dfe1703e11df2708890", null ], + [ "Zero", "classDatalayer_1_1Variant.html#a2aee4ebc8b52223831a705e36c6b30bb", null ], + [ "DataType", "classDatalayer_1_1Variant.html#a7c3a4f151f7bcb2e535065e1c0400086", null ], + [ "IsArray", "classDatalayer_1_1Variant.html#afad44b5f3d66d321f75026142b350094", null ], + [ "IsBool", "classDatalayer_1_1Variant.html#ac0cb5c9ac8b61a8903182242c4621852", null ], + [ "IsDisposed", "classDatalayer_1_1Variant.html#ab96a71c70205ed1aa4af692ee7f35403", null ], + [ "IsFlatbuffers", "classDatalayer_1_1Variant.html#a795de924092940063018468542a0a3b1", null ], + [ "IsNull", "classDatalayer_1_1Variant.html#a69588587684f7c6234dad9c7dea6e8e9", null ], + [ "IsNumber", "classDatalayer_1_1Variant.html#af76375772db03055743ffe560de9cb83", null ], + [ "IsString", "classDatalayer_1_1Variant.html#a5a98459cc3688dfbd6ae933fedef2a9a", null ], + [ "JsonDataType", "classDatalayer_1_1Variant.html#ab4a6bde9780472924de64b1ef8059d3a", null ], + [ "Value", "classDatalayer_1_1Variant.html#a2d7e8cd2081ad3db5aa8e597557123e9", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/net/html/classDatalayer_1_1Variant.png b/3.4.0/api/net/html/classDatalayer_1_1Variant.png new file mode 100644 index 000000000..937d1d9d5 Binary files /dev/null and b/3.4.0/api/net/html/classDatalayer_1_1Variant.png differ diff --git a/3.4.0/api/net/html/classes.html b/3.4.0/api/net/html/classes.html new file mode 100644 index 000000000..2a50b662c --- /dev/null +++ b/3.4.0/api/net/html/classes.html @@ -0,0 +1,133 @@ + + + + + + + +ctrlX Data Layer .NET API: Class Index +Class Index + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Class Index
+
+
+
D | I | M | R | S | V
+ +
+
+ + + + diff --git a/3.4.0/api/net/html/closed.png b/3.4.0/api/net/html/closed.png new file mode 100644 index 000000000..98cc2c909 Binary files /dev/null and b/3.4.0/api/net/html/closed.png differ diff --git a/3.4.0/api/net/html/ctrlXlogo.svg b/3.4.0/api/net/html/ctrlXlogo.svg new file mode 100644 index 000000000..6b4a816fa --- /dev/null +++ b/3.4.0/api/net/html/ctrlXlogo.svg @@ -0,0 +1 @@ +RGB \ No newline at end of file diff --git a/3.4.0/api/net/html/ctrlXlogo_128.jpg b/3.4.0/api/net/html/ctrlXlogo_128.jpg new file mode 100644 index 000000000..b311dd626 Binary files /dev/null and b/3.4.0/api/net/html/ctrlXlogo_128.jpg differ diff --git a/3.4.0/api/net/html/dir_79402b593c975594732f0c06ef982339.html b/3.4.0/api/net/html/dir_79402b593c975594732f0c06ef982339.html new file mode 100644 index 000000000..d4aec141b --- /dev/null +++ b/3.4.0/api/net/html/dir_79402b593c975594732f0c06ef982339.html @@ -0,0 +1,171 @@ + + + + + + + +ctrlX Data Layer .NET API: D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer Directory Reference +D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
datalayer Directory Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

file  DatalayerSystem.cs [code]
 
file  Enums.cs [code]
 
file  IBulk.cs [code]
 
file  IBulkItem.cs [code]
 
file  IClient.cs [code]
 
file  IClientAsyncBulkResult.cs [code]
 
file  IClientAsyncResult.cs [code]
 
file  IConverter.cs [code]
 
file  IDataChangedEventArgs.cs [code]
 
file  IDatalayerSystem.cs [code]
 
file  IFactory.cs [code]
 
file  INativeDisposable.cs [code]
 
file  INotifyItem.cs [code]
 
file  IProvider.cs [code]
 
file  IProviderNode.cs [code]
 
file  IProviderNodeHandler.cs [code]
 
file  IProviderNodeResult.cs [code]
 
file  ISubscription.cs [code]
 
file  ISubscriptionAsyncResult.cs [code]
 
file  IVariant.cs [code]
 
file  MetadataBuilder.cs [code]
 
file  ProtocolScheme.cs [code]
 
file  ReferenceType.cs [code]
 
file  Remote.cs [code]
 
file  ResultExtensions.cs [code]
 
file  SubscriptionPropertiesBuilder.cs [code]
 
file  Variant.cs [code]
 
+
+
+ + + + diff --git a/3.4.0/api/net/html/dir_79402b593c975594732f0c06ef982339.js b/3.4.0/api/net/html/dir_79402b593c975594732f0c06ef982339.js new file mode 100644 index 000000000..4a263839f --- /dev/null +++ b/3.4.0/api/net/html/dir_79402b593c975594732f0c06ef982339.js @@ -0,0 +1,30 @@ +var dir_79402b593c975594732f0c06ef982339 = +[ + [ "DatalayerSystem.cs", "DatalayerSystem_8cs_source.html", null ], + [ "Enums.cs", "Enums_8cs_source.html", null ], + [ "IBulk.cs", "IBulk_8cs_source.html", null ], + [ "IBulkItem.cs", "IBulkItem_8cs_source.html", null ], + [ "IClient.cs", "IClient_8cs_source.html", null ], + [ "IClientAsyncBulkResult.cs", "IClientAsyncBulkResult_8cs_source.html", null ], + [ "IClientAsyncResult.cs", "IClientAsyncResult_8cs_source.html", null ], + [ "IConverter.cs", "IConverter_8cs_source.html", null ], + [ "IDataChangedEventArgs.cs", "IDataChangedEventArgs_8cs_source.html", null ], + [ "IDatalayerSystem.cs", "IDatalayerSystem_8cs_source.html", null ], + [ "IFactory.cs", "IFactory_8cs_source.html", null ], + [ "INativeDisposable.cs", "INativeDisposable_8cs_source.html", null ], + [ "INotifyItem.cs", "INotifyItem_8cs_source.html", null ], + [ "IProvider.cs", "IProvider_8cs_source.html", null ], + [ "IProviderNode.cs", "IProviderNode_8cs_source.html", null ], + [ "IProviderNodeHandler.cs", "IProviderNodeHandler_8cs_source.html", null ], + [ "IProviderNodeResult.cs", "IProviderNodeResult_8cs_source.html", null ], + [ "ISubscription.cs", "ISubscription_8cs_source.html", null ], + [ "ISubscriptionAsyncResult.cs", "ISubscriptionAsyncResult_8cs_source.html", null ], + [ "IVariant.cs", "IVariant_8cs_source.html", null ], + [ "MetadataBuilder.cs", "MetadataBuilder_8cs_source.html", null ], + [ "ProtocolScheme.cs", "ProtocolScheme_8cs_source.html", null ], + [ "ReferenceType.cs", "ReferenceType_8cs_source.html", null ], + [ "Remote.cs", "Remote_8cs_source.html", null ], + [ "ResultExtensions.cs", "ResultExtensions_8cs_source.html", null ], + [ "SubscriptionPropertiesBuilder.cs", "SubscriptionPropertiesBuilder_8cs_source.html", null ], + [ "Variant.cs", "Variant_8cs_source.html", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/net/html/dir_9b5f05eada8ff20312cfc367528cfd50.html b/3.4.0/api/net/html/dir_9b5f05eada8ff20312cfc367528cfd50.html new file mode 100644 index 000000000..dac1a43a2 --- /dev/null +++ b/3.4.0/api/net/html/dir_9b5f05eada8ff20312cfc367528cfd50.html @@ -0,0 +1,113 @@ + + + + + + + +ctrlX Data Layer .NET API: D:/Jenkins/workspace/sdk.datalayer.csharp/private/doc Directory Reference +D:/Jenkins/workspace/sdk.datalayer.csharp/private/doc Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
doc Directory Reference
+
+
+
+
+ + + + diff --git a/3.4.0/api/net/html/dir_f947c5070b746a1eceecc7bf9cb07146.html b/3.4.0/api/net/html/dir_f947c5070b746a1eceecc7bf9cb07146.html new file mode 100644 index 000000000..a190dbab6 --- /dev/null +++ b/3.4.0/api/net/html/dir_f947c5070b746a1eceecc7bf9cb07146.html @@ -0,0 +1,113 @@ + + + + + + + +ctrlX Data Layer .NET API: D:/Jenkins/workspace/sdk.datalayer.csharp/private/doc/doxygen Directory Reference +D:/Jenkins/workspace/sdk.datalayer.csharp/private/doc/doxygen Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
doxygen Directory Reference
+
+
+
+
+ + + + diff --git a/3.4.0/api/net/html/doc.png b/3.4.0/api/net/html/doc.png new file mode 100644 index 000000000..17edabff9 Binary files /dev/null and b/3.4.0/api/net/html/doc.png differ diff --git a/3.4.0/api/net/html/docd.png b/3.4.0/api/net/html/docd.png new file mode 100644 index 000000000..d7c94fda9 Binary files /dev/null and b/3.4.0/api/net/html/docd.png differ diff --git a/3.4.0/api/net/html/doxygen.css b/3.4.0/api/net/html/doxygen.css new file mode 100644 index 000000000..08cc53ab5 --- /dev/null +++ b/3.4.0/api/net/html/doxygen.css @@ -0,0 +1,2007 @@ +/* The standard CSS for doxygen 1.9.6*/ + +html { +/* page base colors */ +--page-background-color: white; +--page-foreground-color: black; +--page-link-color: #3D578C; +--page-visited-link-color: #4665A2; + +/* index */ +--index-odd-item-bg-color: #F8F9FC; +--index-even-item-bg-color: white; +--index-header-color: black; +--index-separator-color: #A0A0A0; + +/* header */ +--header-background-color: #F9FAFC; +--header-separator-color: #C4CFE5; +--header-gradient-image: url('nav_h.png'); +--group-header-separator-color: #879ECB; +--group-header-color: #354C7B; +--inherit-header-color: gray; + +--footer-foreground-color: #2A3D61; +--footer-logo-width: 104px; +--citation-label-color: #334975; +--glow-color: cyan; + +--title-background-color: white; +--title-separator-color: #5373B4; +--directory-separator-color: #9CAFD4; +--separator-color: #4A6AAA; + +--blockquote-background-color: #F7F8FB; +--blockquote-border-color: #9CAFD4; + +--scrollbar-thumb-color: #9CAFD4; +--scrollbar-background-color: #F9FAFC; + +--icon-background-color: #728DC1; +--icon-foreground-color: white; +--icon-doc-image: url('doc.png'); + +/* brief member declaration list */ +--memdecl-background-color: #F9FAFC; +--memdecl-separator-color: #DEE4F0; +--memdecl-foreground-color: #555; +--memdecl-template-color: #4665A2; + +/* detailed member list */ +--memdef-border-color: #A8B8D9; +--memdef-title-background-color: #E2E8F2; +--memdef-title-gradient-image: url('nav_f.png'); +--memdef-proto-background-color: #DFE5F1; +--memdef-proto-text-color: #253555; +--memdef-proto-text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); +--memdef-doc-background-color: white; +--memdef-param-name-color: #602020; +--memdef-template-color: #4665A2; + +/* tables */ +--table-cell-border-color: #2D4068; +--table-header-background-color: #374F7F; +--table-header-foreground-color: #FFFFFF; + +/* labels */ +--label-background-color: #728DC1; +--label-left-top-border-color: #5373B4; +--label-right-bottom-border-color: #C4CFE5; +--label-foreground-color: white; + +/** navigation bar/tree/menu */ +--nav-background-color: #F9FAFC; +--nav-foreground-color: #364D7C; +--nav-gradient-image: url('tab_b.png'); +--nav-gradient-hover-image: url('tab_h.png'); +--nav-gradient-active-image: url('tab_a.png'); +--nav-gradient-active-image-parent: url("../tab_a.png"); +--nav-separator-image: url('tab_s.png'); +--nav-breadcrumb-image: url('bc_s.png'); +--nav-breadcrumb-border-color: #C2CDE4; +--nav-splitbar-image: url('splitbar.png'); +--nav-font-size-level1: 13px; +--nav-font-size-level2: 10px; +--nav-font-size-level3: 9px; +--nav-text-normal-color: #283A5D; +--nav-text-hover-color: white; +--nav-text-active-color: white; +--nav-text-normal-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); +--nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-menu-button-color: #364D7C; +--nav-menu-background-color: white; +--nav-menu-foreground-color: #555555; +--nav-menu-toggle-color: rgba(255, 255, 255, 0.5); +--nav-arrow-color: #9CAFD4; +--nav-arrow-selected-color: #9CAFD4; + +/* table of contents */ +--toc-background-color: #F4F6FA; +--toc-border-color: #D8DFEE; +--toc-header-color: #4665A2; + +/** search field */ +--search-background-color: white; +--search-foreground-color: #909090; +--search-magnification-image: url('mag.svg'); +--search-magnification-select-image: url('mag_sel.svg'); +--search-active-color: black; +--search-filter-background-color: #F9FAFC; +--search-filter-foreground-color: black; +--search-filter-border-color: #90A5CE; +--search-filter-highlight-text-color: white; +--search-filter-highlight-bg-color: #3D578C; +--search-results-foreground-color: #425E97; +--search-results-background-color: #EEF1F7; +--search-results-border-color: black; +--search-box-shadow: inset 0.5px 0.5px 3px 0px #555; + +/** code fragments */ +--code-keyword-color: #008000; +--code-type-keyword-color: #604020; +--code-flow-keyword-color: #E08000; +--code-comment-color: #800000; +--code-preprocessor-color: #806020; +--code-string-literal-color: #002080; +--code-char-literal-color: #008080; +--code-vhdl-digit-color: #FF00FF; +--code-vhdl-char-color: #000000; +--code-vhdl-keyword-color: #700070; +--code-vhdl-logic-color: #FF0000; +--code-link-color: #4665A2; +--code-external-link-color: #4665A2; +--fragment-foreground-color: black; +--fragment-background-color: #FBFCFD; +--fragment-border-color: #C4CFE5; +--fragment-lineno-border-color: #00FF00; +--fragment-lineno-background-color: #E8E8E8; +--fragment-lineno-foreground-color: black; +--fragment-lineno-link-fg-color: #4665A2; +--fragment-lineno-link-bg-color: #D8D8D8; +--fragment-lineno-link-hover-fg-color: #4665A2; +--fragment-lineno-link-hover-bg-color: #C8C8C8; +--tooltip-foreground-color: black; +--tooltip-background-color: white; +--tooltip-border-color: gray; +--tooltip-doc-color: grey; +--tooltip-declaration-color: #006318; +--tooltip-link-color: #4665A2; +--tooltip-shadow: 1px 1px 7px gray; + +/** font-family */ +--font-family-normal: Roboto,sans-serif; +--font-family-monospace: monospace,fixed; +--font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +--font-family-title: Tahoma,Arial,sans-serif; +--font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; +--font-family-search: Arial,Verdana,sans-serif; +--font-family-icon: Arial,Helvetica; +--font-family-tooltip: Roboto,sans-serif; + +} + +@media (prefers-color-scheme: dark) { + html:not(.dark-mode) { + color-scheme: dark; + +/* page base colors */ +--page-background-color: black; +--page-foreground-color: #C9D1D9; +--page-link-color: #90A5CE; +--page-visited-link-color: #A3B4D7; + +/* index */ +--index-odd-item-bg-color: #0B101A; +--index-even-item-bg-color: black; +--index-header-color: #C4CFE5; +--index-separator-color: #334975; + +/* header */ +--header-background-color: #070B11; +--header-separator-color: #141C2E; +--header-gradient-image: url('nav_hd.png'); +--group-header-separator-color: #283A5D; +--group-header-color: #90A5CE; +--inherit-header-color: #A0A0A0; + +--footer-foreground-color: #5B7AB7; +--footer-logo-width: 60px; +--citation-label-color: #90A5CE; +--glow-color: cyan; + +--title-background-color: #090D16; +--title-separator-color: #354C79; +--directory-separator-color: #283A5D; +--separator-color: #283A5D; + +--blockquote-background-color: #101826; +--blockquote-border-color: #283A5D; + +--scrollbar-thumb-color: #283A5D; +--scrollbar-background-color: #070B11; + +--icon-background-color: #334975; +--icon-foreground-color: #C4CFE5; +--icon-doc-image: url('docd.png'); + +/* brief member declaration list */ +--memdecl-background-color: #0B101A; +--memdecl-separator-color: #2C3F65; +--memdecl-foreground-color: #BBB; +--memdecl-template-color: #7C95C6; + +/* detailed member list */ +--memdef-border-color: #233250; +--memdef-title-background-color: #1B2840; +--memdef-title-gradient-image: url('nav_fd.png'); +--memdef-proto-background-color: #19243A; +--memdef-proto-text-color: #9DB0D4; +--memdef-proto-text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.9); +--memdef-doc-background-color: black; +--memdef-param-name-color: #D28757; +--memdef-template-color: #7C95C6; + +/* tables */ +--table-cell-border-color: #283A5D; +--table-header-background-color: #283A5D; +--table-header-foreground-color: #C4CFE5; + +/* labels */ +--label-background-color: #354C7B; +--label-left-top-border-color: #4665A2; +--label-right-bottom-border-color: #283A5D; +--label-foreground-color: #CCCCCC; + +/** navigation bar/tree/menu */ +--nav-background-color: #101826; +--nav-foreground-color: #364D7C; +--nav-gradient-image: url('tab_bd.png'); +--nav-gradient-hover-image: url('tab_hd.png'); +--nav-gradient-active-image: url('tab_ad.png'); +--nav-gradient-active-image-parent: url("../tab_ad.png"); +--nav-separator-image: url('tab_sd.png'); +--nav-breadcrumb-image: url('bc_sd.png'); +--nav-breadcrumb-border-color: #2A3D61; +--nav-splitbar-image: url('splitbard.png'); +--nav-font-size-level1: 13px; +--nav-font-size-level2: 10px; +--nav-font-size-level3: 9px; +--nav-text-normal-color: #B6C4DF; +--nav-text-hover-color: #DCE2EF; +--nav-text-active-color: #DCE2EF; +--nav-text-normal-shadow: 0px 1px 1px black; +--nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-menu-button-color: #B6C4DF; +--nav-menu-background-color: #05070C; +--nav-menu-foreground-color: #BBBBBB; +--nav-menu-toggle-color: rgba(255, 255, 255, 0.2); +--nav-arrow-color: #334975; +--nav-arrow-selected-color: #90A5CE; + +/* table of contents */ +--toc-background-color: #151E30; +--toc-border-color: #202E4A; +--toc-header-color: #A3B4D7; + +/** search field */ +--search-background-color: black; +--search-foreground-color: #C5C5C5; +--search-magnification-image: url('mag_d.svg'); +--search-magnification-select-image: url('mag_seld.svg'); +--search-active-color: #C5C5C5; +--search-filter-background-color: #101826; +--search-filter-foreground-color: #90A5CE; +--search-filter-border-color: #7C95C6; +--search-filter-highlight-text-color: #BCC9E2; +--search-filter-highlight-bg-color: #283A5D; +--search-results-background-color: #101826; +--search-results-foreground-color: #90A5CE; +--search-results-border-color: #7C95C6; +--search-box-shadow: inset 0.5px 0.5px 3px 0px #2F436C; + +/** code fragments */ +--code-keyword-color: #CC99CD; +--code-type-keyword-color: #AB99CD; +--code-flow-keyword-color: #E08000; +--code-comment-color: #717790; +--code-preprocessor-color: #65CABE; +--code-string-literal-color: #7EC699; +--code-char-literal-color: #00E0F0; +--code-vhdl-digit-color: #FF00FF; +--code-vhdl-char-color: #000000; +--code-vhdl-keyword-color: #700070; +--code-vhdl-logic-color: #FF0000; +--code-link-color: #79C0FF; +--code-external-link-color: #79C0FF; +--fragment-foreground-color: #C9D1D9; +--fragment-background-color: black; +--fragment-border-color: #30363D; +--fragment-lineno-border-color: #30363D; +--fragment-lineno-background-color: black; +--fragment-lineno-foreground-color: #6E7681; +--fragment-lineno-link-fg-color: #6E7681; +--fragment-lineno-link-bg-color: #303030; +--fragment-lineno-link-hover-fg-color: #8E96A1; +--fragment-lineno-link-hover-bg-color: #505050; +--tooltip-foreground-color: #C9D1D9; +--tooltip-background-color: #202020; +--tooltip-border-color: #C9D1D9; +--tooltip-doc-color: #D9E1E9; +--tooltip-declaration-color: #20C348; +--tooltip-link-color: #79C0FF; +--tooltip-shadow: none; + +/** font-family */ +--font-family-normal: Roboto,sans-serif; +--font-family-monospace: monospace,fixed; +--font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +--font-family-title: Tahoma,Arial,sans-serif; +--font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; +--font-family-search: Arial,Verdana,sans-serif; +--font-family-icon: Arial,Helvetica; +--font-family-tooltip: Roboto,sans-serif; + +}} +body { + background-color: var(--page-background-color); + color: var(--page-foreground-color); +} + +body, table, div, p, dl { + font-weight: 400; + font-size: 14px; + font-family: var(--font-family-normal); + line-height: 22px; +} + +/* @group Heading Levels */ + +.title { + font-weight: 400; + font-size: 14px; + font-family: var(--font-family-normal); + line-height: 28px; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h1.groupheader { + font-size: 150%; +} + +h2.groupheader { + border-bottom: 1px solid var(--group-header-separator-color); + color: var(--group-header-color); + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px var(--glow-color); +} + +dt { + font-weight: bold; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +th p.starttd, th p.intertd, th p.endtd { + font-size: 100%; + font-weight: 700; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +p.interli { +} + +p.interdd { +} + +p.intertd { +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.navtab { + padding-right: 15px; + text-align: right; + line-height: 110%; +} + +div.navtab table { + border-spacing: 0; +} + +td.navtab { + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL { + background-image: var(--nav-gradient-active-image); + background-repeat:repeat-x; + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL a, td.navtabHL a:visited { + color: var(--nav-text-hover-color); + text-shadow: var(--nav-text-hover-shadow); +} + +a.navtab { + font-weight: bold; +} + +div.qindex{ + text-align: center; + width: 100%; + line-height: 140%; + font-size: 130%; + color: var(--index-separator-color); +} + +dt.alphachar{ + font-size: 180%; + font-weight: bold; +} + +.alphachar a{ + color: var(--index-header-color); +} + +.alphachar a:hover, .alphachar a:visited{ + text-decoration: none; +} + +.classindex dl { + padding: 25px; + column-count:1 +} + +.classindex dd { + display:inline-block; + margin-left: 50px; + width: 90%; + line-height: 1.15em; +} + +.classindex dl.even { + background-color: var(--index-even-item-bg-color); +} + +.classindex dl.odd { + background-color: var(--index-odd-item-bg-color); +} + +@media(min-width: 1120px) { + .classindex dl { + column-count:2 + } +} + +@media(min-width: 1320px) { + .classindex dl { + column-count:3 + } +} + + +/* @group Link Styling */ + +a { + color: var(--page-link-color); + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: var(--page-visited-link-color); +} + +a:hover { + text-decoration: underline; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: var(--code-link-color); +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: var(--code-external-link-color); +} + +a.code.hl_class { /* style for links to class names in code snippets */ } +a.code.hl_struct { /* style for links to struct names in code snippets */ } +a.code.hl_union { /* style for links to union names in code snippets */ } +a.code.hl_interface { /* style for links to interface names in code snippets */ } +a.code.hl_protocol { /* style for links to protocol names in code snippets */ } +a.code.hl_category { /* style for links to category names in code snippets */ } +a.code.hl_exception { /* style for links to exception names in code snippets */ } +a.code.hl_service { /* style for links to service names in code snippets */ } +a.code.hl_singleton { /* style for links to singleton names in code snippets */ } +a.code.hl_concept { /* style for links to concept names in code snippets */ } +a.code.hl_namespace { /* style for links to namespace names in code snippets */ } +a.code.hl_package { /* style for links to package names in code snippets */ } +a.code.hl_define { /* style for links to macro names in code snippets */ } +a.code.hl_function { /* style for links to function names in code snippets */ } +a.code.hl_variable { /* style for links to variable names in code snippets */ } +a.code.hl_typedef { /* style for links to typedef names in code snippets */ } +a.code.hl_enumvalue { /* style for links to enum value names in code snippets */ } +a.code.hl_enumeration { /* style for links to enumeration names in code snippets */ } +a.code.hl_signal { /* style for links to Qt signal names in code snippets */ } +a.code.hl_slot { /* style for links to Qt slot names in code snippets */ } +a.code.hl_friend { /* style for links to friend names in code snippets */ } +a.code.hl_dcop { /* style for links to KDE3 DCOP names in code snippets */ } +a.code.hl_property { /* style for links to property names in code snippets */ } +a.code.hl_event { /* style for links to event names in code snippets */ } +a.code.hl_sequence { /* style for links to sequence names in code snippets */ } +a.code.hl_dictionary { /* style for links to dictionary names in code snippets */ } + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +ul { + overflow: visible; +} + +ul.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; + column-count: 3; + list-style-type: none; +} + +#side-nav ul { + overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ +} + +#main-nav ul { + overflow: visible; /* reset ul rule for the navigation bar drop down lists */ +} + +.fragment { + text-align: left; + direction: ltr; + overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ + overflow-y: hidden; +} + +pre.fragment { + border: 1px solid var(--fragment-border-color); + background-color: var(--fragment-background-color); + color: var(--fragment-foreground-color); + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: var(--font-family-monospace); + font-size: 105%; +} + +div.fragment { + padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ + margin: 4px 8px 4px 2px; + color: var(--fragment-foreground-color); + background-color: var(--fragment-background-color); + border: 1px solid var(--fragment-border-color); +} + +div.line { + font-family: var(--font-family-monospace); + font-size: 13px; + min-height: 13px; + line-height: 1.0; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line:after { + content:"\000A"; + white-space: pre; +} + +div.line.glow { + background-color: var(--glow-color); + box-shadow: 0 0 10px var(--glow-color); +} + + +span.lineno { + padding-right: 4px; + margin-right: 9px; + text-align: right; + border-right: 2px solid var(--fragment-lineno-border-color); + color: var(--fragment-lineno-foreground-color); + background-color: var(--fragment-lineno-background-color); + white-space: pre; +} +span.lineno a, span.lineno a:visited { + color: var(--fragment-lineno-link-fg-color); + background-color: var(--fragment-lineno-link-bg-color); +} + +span.lineno a:hover { + color: var(--fragment-lineno-link-hover-fg-color); + background-color: var(--fragment-lineno-link-hover-bg-color); +} + +.lineno { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + color: var(--page-foreground-color); + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +p.formulaDsp { + text-align: center; +} + +img.dark-mode-visible { + display: none; +} +img.light-mode-visible { + display: none; +} + +img.formulaDsp { + +} + +img.formulaInl, img.inline { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; + width: var(--footer-logo-width); +} + +.compoundTemplParams { + color: var(--memdecl-template-color); + font-size: 80%; + line-height: 120%; +} + +/* @group Code Colorization */ + +span.keyword { + color: var(--code-keyword-color); +} + +span.keywordtype { + color: var(--code-type-keyword-color); +} + +span.keywordflow { + color: var(--code-flow-keyword-color); +} + +span.comment { + color: var(--code-comment-color); +} + +span.preprocessor { + color: var(--code-preprocessor-color); +} + +span.stringliteral { + color: var(--code-string-literal-color); +} + +span.charliteral { + color: var(--code-char-literal-color); +} + +span.vhdldigit { + color: var(--code-vhdl-digit-color); +} + +span.vhdlchar { + color: var(--code-vhdl-char-color); +} + +span.vhdlkeyword { + color: var(--code-vhdl-keyword-color); +} + +span.vhdllogic { + color: var(--code-vhdl-logic-color); +} + +blockquote { + background-color: var(--blockquote-background-color); + border-left: 2px solid var(--blockquote-border-color); + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +/* @end */ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid var(--table-cell-border-color); +} + +th.dirtab { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid var(--separator-color); +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: var(--glow-color); + box-shadow: 0 0 15px var(--glow-color); +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: var(--memdecl-background-color); + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: var(--memdecl-foreground-color); +} + +.memSeparator { + border-bottom: 1px solid var(--memdecl-separator-color); + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight, .memTemplItemRight { + width: 100%; +} + +.memTemplParams { + color: var(--memdecl-template-color); + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtitle { + padding: 8px; + border-top: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + border-top-right-radius: 4px; + border-top-left-radius: 4px; + margin-bottom: -1px; + background-image: var(--memdef-title-gradient-image); + background-repeat: repeat-x; + background-color: var(--memdef-title-background-color); + line-height: 1.25; + font-weight: 300; + float:left; +} + +.permalink +{ + font-size: 65%; + display: inline-block; + vertical-align: middle; +} + +.memtemplate { + font-size: 80%; + color: var(--memdef-template-color); + font-weight: normal; + margin-left: 9px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px var(--glow-color); +} + +.memname { + font-weight: 400; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + padding: 6px 0px 6px 0px; + color: var(--memdef-proto-text-color); + font-weight: bold; + text-shadow: var(--memdef-proto-text-shadow); + background-color: var(--memdef-proto-background-color); + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; +} + +.overload { + font-family: var(--font-family-monospace); + font-size: 65%; +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + padding: 6px 10px 2px 10px; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: var(--memdef-doc-background-color); + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: var(--memdef-param-name-color); + white-space: nowrap; +} +.paramname em { + font-style: normal; +} +.paramname code { + line-height: 14px; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype, .tparams .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir, .tparams .paramdir { + font-family: var(--font-family-monospace); + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: var(--label-background-color); + border-top:1px solid var(--label-left-top-border-color); + border-left:1px solid var(--label-left-top-border-color); + border-right:1px solid var(--label-right-bottom-border-color); + border-bottom:1px solid var(--label-right-bottom-border-color); + text-shadow: none; + color: var(--label-foreground-color); + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid var(--directory-separator-color); + border-bottom: 1px solid var(--directory-separator-color); + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.odd { + padding-left: 6px; + background-color: var(--index-odd-item-bg-color); +} + +.directory tr.even { + padding-left: 6px; + background-color: var(--index-even-item-bg-color); +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: var(--page-link-color); +} + +.arrow { + color: var(--nav-arrow-color); + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; +} + +.icon { + font-family: var(--font-family-icon); + line-height: normal; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: var(--icon-background-color); + color: var(--icon-foreground-color); + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderopen.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderclosed.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:var(--icon-doc-image); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: var(--footer-foreground-color); +} + +table.doxtable caption { + caption-side: top; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid var(--table-cell-border-color); + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + margin-bottom: 10px; + border: 1px solid var(--memdef-border-color); + border-spacing: 0px; + border-radius: 4px; + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid var(--memdef-border-color); + border-bottom: 1px solid var(--memdef-border-color); + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid var(--memdef-border-color); +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image: var(--memdef-title-gradient-image); + background-repeat:repeat-x; + background-color: var(--memdef-title-background-color); + font-size: 90%; + color: var(--memdef-proto-text-color); + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + font-weight: 400; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid var(--memdef-border-color); +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: var(--nav-gradient-image); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image: var(--nav-gradient-image); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:var(--nav-text-normal-color); + border:solid 1px var(--nav-breadcrumb-border-color); + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:var(--nav-breadcrumb-image); + background-repeat:no-repeat; + background-position:right; + color: var(--nav-foreground-color); +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: var(--nav-text-normal-color); + font-family: var(--font-family-nav); + text-shadow: var(--nav-text-normal-shadow); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color: var(--nav-text-hover-color); + text-shadow: var(--nav-text-hover-shadow); +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color: var(--footer-foreground-color); + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +table.classindex +{ + margin: 10px; + white-space: nowrap; + margin-left: 3%; + margin-right: 3%; + width: 94%; + border: 0; + border-spacing: 0; + padding: 0; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image: var(--header-gradient-image); + background-repeat:repeat-x; + background-color: var(--header-background-color); + margin: 0px; + border-bottom: 1px solid var(--header-separator-color); +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +.PageDocRTL-title div.headertitle { + text-align: right; + direction: rtl; +} + +dl { + padding: 0 0 0 0; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ +dl.section { + margin-left: 0px; + padding-left: 0px; +} + +dl.note { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00D000; +} + +dl.deprecated { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #505050; +} + +dl.todo { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00C0E0; +} + +dl.test { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #3030E0; +} + +dl.bug { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectrow +{ + height: 56px; +} + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; + padding-left: 0.5em; +} + +#projectname +{ + font-size: 200%; + font-family: var(--font-family-title); + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font-size: 90%; + font-family: var(--font-family-title); + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font-size: 50%; + font-family: 50% var(--font-family-title); + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid var(--title-separator-color); + background-color: var(--title-background-color); +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.plantumlgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:var(--citation-label-color); + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; + text-align:right; + width:52px; +} + +dl.citelist dd { + margin:2px 0 2px 72px; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: var(--toc-background-color); + border: 1px solid var(--toc-border-color); + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 8px 10px 10px; + width: 200px; +} + +div.toc li { + background: url("bdwn.png") no-repeat scroll 0 5px transparent; + font: 10px/1.2 var(--font-family-toc); + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +div.toc h3 { + font: bold 12px/1.2 var(--font-family-toc); + color: var(--toc-header-color); + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 30px; +} + +div.toc li.level4 { + margin-left: 45px; +} + +span.emoji { + /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html + * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort; + */ +} + +span.obfuscator { + display: none; +} + +.inherit_header { + font-weight: bold; + color: var(--inherit-header-color); + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + /*white-space: nowrap;*/ + color: var(--tooltip-foreground-color); + background-color: var(--tooltip-background-color); + border: 1px solid var(--tooltip-border-color); + border-radius: 4px 4px 4px 4px; + box-shadow: var(--tooltip-shadow); + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: var(--tooltip-doc-color); + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip a { + color: var(--tooltip-link-color); +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: var(--tooltip-declaration-color); +} + +#powerTip div { + margin: 0px; + padding: 0px; + font-size: 12px; + font-family: var(--font-family-tooltip); + line-height: 16px; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: var(--tooltip-background-color); + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before, #powerTip.ne:before, #powerTip.nw:before { + border-top-color: var(--tooltip-border-color); + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: var(--tooltip-background-color); + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: var(--tooltip-border-color); + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: var(--tooltip-border-color); + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: var(--tooltip-border-color); + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: var(--tooltip-border-color); + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: var(--tooltip-border-color); + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + +/* @group Markdown */ + +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid var(--table-cell-border-color); + padding: 3px 7px 2px; +} + +table.markdownTable tr { +} + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft, td.markdownTableBodyLeft { + text-align: left +} + +th.markdownTableHeadRight, td.markdownTableBodyRight { + text-align: right +} + +th.markdownTableHeadCenter, td.markdownTableBodyCenter { + text-align: center +} + +tt, code, kbd, samp +{ + display: inline-block; +} +/* @end */ + +u { + text-decoration: underline; +} + +details>summary { + list-style-type: none; +} + +details > summary::-webkit-details-marker { + display: none; +} + +details>summary::before { + content: "\25ba"; + padding-right:4px; + font-size: 80%; +} + +details[open]>summary::before { + content: "\25bc"; + padding-right:4px; + font-size: 80%; +} + +body { + scrollbar-color: var(--scrollbar-thumb-color) var(--scrollbar-background-color); +} + +::-webkit-scrollbar { + background-color: var(--scrollbar-background-color); + height: 12px; + width: 12px; +} +::-webkit-scrollbar-thumb { + border-radius: 6px; + box-shadow: inset 0 0 12px 12px var(--scrollbar-thumb-color); + border: solid 2px transparent; +} +::-webkit-scrollbar-corner { + background-color: var(--scrollbar-background-color); +} + diff --git a/3.4.0/api/net/html/doxygen.svg b/3.4.0/api/net/html/doxygen.svg new file mode 100644 index 000000000..d42dad52d --- /dev/null +++ b/3.4.0/api/net/html/doxygen.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/3.4.0/api/net/html/dynsections.js b/3.4.0/api/net/html/dynsections.js new file mode 100644 index 000000000..1f4cd14a6 --- /dev/null +++ b/3.4.0/api/net/html/dynsections.js @@ -0,0 +1,130 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); + $('table.directory tr'). + removeClass('odd').filter(':visible:odd').addClass('odd'); +} + +function toggleLevel(level) +{ + $('table.directory tr').each(function() { + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (l + + + + + + +ctrlX Data Layer .NET API: File List +File List + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
File List
+
+
+
Here is a list of all documented files with brief descriptions:
+
[detail level 12]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  datalayer
 DatalayerSystem.cs
 Enums.cs
 IBulk.cs
 IBulkItem.cs
 IClient.cs
 IClientAsyncBulkResult.cs
 IClientAsyncResult.cs
 IConverter.cs
 IDataChangedEventArgs.cs
 IDatalayerSystem.cs
 IFactory.cs
 INativeDisposable.cs
 INotifyItem.cs
 IProvider.cs
 IProviderNode.cs
 IProviderNodeHandler.cs
 IProviderNodeResult.cs
 ISubscription.cs
 ISubscriptionAsyncResult.cs
 IVariant.cs
 MetadataBuilder.cs
 ProtocolScheme.cs
 ReferenceType.cs
 Remote.cs
 ResultExtensions.cs
 SubscriptionPropertiesBuilder.cs
 Variant.cs
+
+
+
+ + + + diff --git a/3.4.0/api/net/html/files_dup.js b/3.4.0/api/net/html/files_dup.js new file mode 100644 index 000000000..eaaaf8a07 --- /dev/null +++ b/3.4.0/api/net/html/files_dup.js @@ -0,0 +1,4 @@ +var files_dup = +[ + [ "datalayer", "dir_79402b593c975594732f0c06ef982339.html", "dir_79402b593c975594732f0c06ef982339" ] +]; \ No newline at end of file diff --git a/3.4.0/api/net/html/folderclosed.png b/3.4.0/api/net/html/folderclosed.png new file mode 100644 index 000000000..bb8ab35ed Binary files /dev/null and b/3.4.0/api/net/html/folderclosed.png differ diff --git a/3.4.0/api/net/html/folderopen.png b/3.4.0/api/net/html/folderopen.png new file mode 100644 index 000000000..d6c7f676a Binary files /dev/null and b/3.4.0/api/net/html/folderopen.png differ diff --git a/3.4.0/api/net/html/functions.html b/3.4.0/api/net/html/functions.html new file mode 100644 index 000000000..3d68edd5e --- /dev/null +++ b/3.4.0/api/net/html/functions.html @@ -0,0 +1,119 @@ + + + + + + + +ctrlX Data Layer .NET API: Class Members +Class Members + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- a -

+
+
+ + + + diff --git a/3.4.0/api/net/html/functions_b.html b/3.4.0/api/net/html/functions_b.html new file mode 100644 index 000000000..eb797cd9b --- /dev/null +++ b/3.4.0/api/net/html/functions_b.html @@ -0,0 +1,122 @@ + + + + + + + +ctrlX Data Layer .NET API: Class Members +Class Members + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- b -

+
+
+ + + + diff --git a/3.4.0/api/net/html/functions_c.html b/3.4.0/api/net/html/functions_c.html new file mode 100644 index 000000000..7f22c1d2a --- /dev/null +++ b/3.4.0/api/net/html/functions_c.html @@ -0,0 +1,124 @@ + + + + + + + +ctrlX Data Layer .NET API: Class Members +Class Members + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- c -

+
+
+ + + + diff --git a/3.4.0/api/net/html/functions_d.html b/3.4.0/api/net/html/functions_d.html new file mode 100644 index 000000000..835e30750 --- /dev/null +++ b/3.4.0/api/net/html/functions_d.html @@ -0,0 +1,126 @@ + + + + + + + +ctrlX Data Layer .NET API: Class Members +Class Members + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- d -

+
+
+ + + + diff --git a/3.4.0/api/net/html/functions_dup.js b/3.4.0/api/net/html/functions_dup.js new file mode 100644 index 000000000..0ae24780b --- /dev/null +++ b/3.4.0/api/net/html/functions_dup.js @@ -0,0 +1,24 @@ +var functions_dup = +[ + [ "a", "functions.html", null ], + [ "b", "functions_b.html", null ], + [ "c", "functions_c.html", null ], + [ "d", "functions_d.html", null ], + [ "e", "functions_e.html", null ], + [ "f", "functions_f.html", null ], + [ "g", "functions_g.html", null ], + [ "h", "functions_h.html", null ], + [ "i", "functions_i.html", null ], + [ "j", "functions_j.html", null ], + [ "m", "functions_m.html", null ], + [ "n", "functions_n.html", null ], + [ "o", "functions_o.html", null ], + [ "p", "functions_p.html", null ], + [ "r", "functions_r.html", null ], + [ "s", "functions_s.html", null ], + [ "t", "functions_t.html", null ], + [ "u", "functions_u.html", null ], + [ "v", "functions_v.html", null ], + [ "w", "functions_w.html", null ], + [ "z", "functions_z.html", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/net/html/functions_e.html b/3.4.0/api/net/html/functions_e.html new file mode 100644 index 000000000..9922fb6b2 --- /dev/null +++ b/3.4.0/api/net/html/functions_e.html @@ -0,0 +1,115 @@ + + + + + + + +ctrlX Data Layer .NET API: Class Members +Class Members + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- e -

+
+
+ + + + diff --git a/3.4.0/api/net/html/functions_evnt.html b/3.4.0/api/net/html/functions_evnt.html new file mode 100644 index 000000000..26280e8d8 --- /dev/null +++ b/3.4.0/api/net/html/functions_evnt.html @@ -0,0 +1,112 @@ + + + + + + + +ctrlX Data Layer .NET API: Class Members - Events +Class Members - Events + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
+ + + + diff --git a/3.4.0/api/net/html/functions_f.html b/3.4.0/api/net/html/functions_f.html new file mode 100644 index 000000000..6eea53d22 --- /dev/null +++ b/3.4.0/api/net/html/functions_f.html @@ -0,0 +1,115 @@ + + + + + + + +ctrlX Data Layer .NET API: Class Members +Class Members + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- f -

+
+
+ + + + diff --git a/3.4.0/api/net/html/functions_func.html b/3.4.0/api/net/html/functions_func.html new file mode 100644 index 000000000..ec137f733 --- /dev/null +++ b/3.4.0/api/net/html/functions_func.html @@ -0,0 +1,117 @@ + + + + + + + +ctrlX Data Layer .NET API: Class Members - Functions +Class Members - Functions + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- a -

+
+
+ + + + diff --git a/3.4.0/api/net/html/functions_func.js b/3.4.0/api/net/html/functions_func.js new file mode 100644 index 000000000..a2973cf3b --- /dev/null +++ b/3.4.0/api/net/html/functions_func.js @@ -0,0 +1,19 @@ +var functions_func = +[ + [ "a", "functions_func.html", null ], + [ "b", "functions_func_b.html", null ], + [ "c", "functions_func_c.html", null ], + [ "d", "functions_func_d.html", null ], + [ "e", "functions_func_e.html", null ], + [ "g", "functions_func_g.html", null ], + [ "i", "functions_func_i.html", null ], + [ "m", "functions_func_m.html", null ], + [ "o", "functions_func_o.html", null ], + [ "p", "functions_func_p.html", null ], + [ "r", "functions_func_r.html", null ], + [ "s", "functions_func_s.html", null ], + [ "t", "functions_func_t.html", null ], + [ "u", "functions_func_u.html", null ], + [ "v", "functions_func_v.html", null ], + [ "w", "functions_func_w.html", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/net/html/functions_func_b.html b/3.4.0/api/net/html/functions_func_b.html new file mode 100644 index 000000000..88b1c26aa --- /dev/null +++ b/3.4.0/api/net/html/functions_func_b.html @@ -0,0 +1,121 @@ + + + + + + + +ctrlX Data Layer .NET API: Class Members - Functions +Class Members - Functions + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- b -

+
+
+ + + + diff --git a/3.4.0/api/net/html/functions_func_c.html b/3.4.0/api/net/html/functions_func_c.html new file mode 100644 index 000000000..ad97c8e84 --- /dev/null +++ b/3.4.0/api/net/html/functions_func_c.html @@ -0,0 +1,119 @@ + + + + + + + +ctrlX Data Layer .NET API: Class Members - Functions +Class Members - Functions + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- c -

+
+
+ + + + diff --git a/3.4.0/api/net/html/functions_func_d.html b/3.4.0/api/net/html/functions_func_d.html new file mode 100644 index 000000000..f76e1efee --- /dev/null +++ b/3.4.0/api/net/html/functions_func_d.html @@ -0,0 +1,116 @@ + + + + + + + +ctrlX Data Layer .NET API: Class Members - Functions +Class Members - Functions + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- d -

+
+
+ + + + diff --git a/3.4.0/api/net/html/functions_func_e.html b/3.4.0/api/net/html/functions_func_e.html new file mode 100644 index 000000000..3e0e29049 --- /dev/null +++ b/3.4.0/api/net/html/functions_func_e.html @@ -0,0 +1,114 @@ + + + + + + + +ctrlX Data Layer .NET API: Class Members - Functions +Class Members - Functions + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- e -

+
+
+ + + + diff --git a/3.4.0/api/net/html/functions_func_g.html b/3.4.0/api/net/html/functions_func_g.html new file mode 100644 index 000000000..d3e952d06 --- /dev/null +++ b/3.4.0/api/net/html/functions_func_g.html @@ -0,0 +1,114 @@ + + + + + + + +ctrlX Data Layer .NET API: Class Members - Functions +Class Members - Functions + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- g -

+
+
+ + + + diff --git a/3.4.0/api/net/html/functions_func_i.html b/3.4.0/api/net/html/functions_func_i.html new file mode 100644 index 000000000..49196bf58 --- /dev/null +++ b/3.4.0/api/net/html/functions_func_i.html @@ -0,0 +1,115 @@ + + + + + + + +ctrlX Data Layer .NET API: Class Members - Functions +Class Members - Functions + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- i -

+
+
+ + + + diff --git a/3.4.0/api/net/html/functions_func_m.html b/3.4.0/api/net/html/functions_func_m.html new file mode 100644 index 000000000..752e7e1b4 --- /dev/null +++ b/3.4.0/api/net/html/functions_func_m.html @@ -0,0 +1,114 @@ + + + + + + + +ctrlX Data Layer .NET API: Class Members - Functions +Class Members - Functions + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- m -

+
+
+ + + + diff --git a/3.4.0/api/net/html/functions_func_o.html b/3.4.0/api/net/html/functions_func_o.html new file mode 100644 index 000000000..87583162e --- /dev/null +++ b/3.4.0/api/net/html/functions_func_o.html @@ -0,0 +1,122 @@ + + + + + + + +ctrlX Data Layer .NET API: Class Members - Functions +Class Members - Functions + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- o -

+
+
+ + + + diff --git a/3.4.0/api/net/html/functions_func_p.html b/3.4.0/api/net/html/functions_func_p.html new file mode 100644 index 000000000..3643c5eca --- /dev/null +++ b/3.4.0/api/net/html/functions_func_p.html @@ -0,0 +1,116 @@ + + + + + + + +ctrlX Data Layer .NET API: Class Members - Functions +Class Members - Functions + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- p -

+
+
+ + + + diff --git a/3.4.0/api/net/html/functions_func_r.html b/3.4.0/api/net/html/functions_func_r.html new file mode 100644 index 000000000..d02ca0e0e --- /dev/null +++ b/3.4.0/api/net/html/functions_func_r.html @@ -0,0 +1,122 @@ + + + + + + + +ctrlX Data Layer .NET API: Class Members - Functions +Class Members - Functions + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- r -

+
+
+ + + + diff --git a/3.4.0/api/net/html/functions_func_s.html b/3.4.0/api/net/html/functions_func_s.html new file mode 100644 index 000000000..598bc465f --- /dev/null +++ b/3.4.0/api/net/html/functions_func_s.html @@ -0,0 +1,135 @@ + + + + + + + +ctrlX Data Layer .NET API: Class Members - Functions +Class Members - Functions + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- s -

+
+
+ + + + diff --git a/3.4.0/api/net/html/functions_func_t.html b/3.4.0/api/net/html/functions_func_t.html new file mode 100644 index 000000000..18efa225f --- /dev/null +++ b/3.4.0/api/net/html/functions_func_t.html @@ -0,0 +1,141 @@ + + + + + + + +ctrlX Data Layer .NET API: Class Members - Functions +Class Members - Functions + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- t -

+
+
+ + + + diff --git a/3.4.0/api/net/html/functions_func_u.html b/3.4.0/api/net/html/functions_func_u.html new file mode 100644 index 000000000..9d8490a66 --- /dev/null +++ b/3.4.0/api/net/html/functions_func_u.html @@ -0,0 +1,121 @@ + + + + + + + +ctrlX Data Layer .NET API: Class Members - Functions +Class Members - Functions + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- u -

+
+
+ + + + diff --git a/3.4.0/api/net/html/functions_func_v.html b/3.4.0/api/net/html/functions_func_v.html new file mode 100644 index 000000000..e992a7241 --- /dev/null +++ b/3.4.0/api/net/html/functions_func_v.html @@ -0,0 +1,114 @@ + + + + + + + +ctrlX Data Layer .NET API: Class Members - Functions +Class Members - Functions + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- v -

+
+
+ + + + diff --git a/3.4.0/api/net/html/functions_func_w.html b/3.4.0/api/net/html/functions_func_w.html new file mode 100644 index 000000000..854820c97 --- /dev/null +++ b/3.4.0/api/net/html/functions_func_w.html @@ -0,0 +1,118 @@ + + + + + + + +ctrlX Data Layer .NET API: Class Members - Functions +Class Members - Functions + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- w -

+
+
+ + + + diff --git a/3.4.0/api/net/html/functions_g.html b/3.4.0/api/net/html/functions_g.html new file mode 100644 index 000000000..28f3fb18b --- /dev/null +++ b/3.4.0/api/net/html/functions_g.html @@ -0,0 +1,114 @@ + + + + + + + +ctrlX Data Layer .NET API: Class Members +Class Members + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- g -

+
+
+ + + + diff --git a/3.4.0/api/net/html/functions_h.html b/3.4.0/api/net/html/functions_h.html new file mode 100644 index 000000000..c40a4f7fb --- /dev/null +++ b/3.4.0/api/net/html/functions_h.html @@ -0,0 +1,115 @@ + + + + + + + +ctrlX Data Layer .NET API: Class Members +Class Members + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- h -

+
+
+ + + + diff --git a/3.4.0/api/net/html/functions_i.html b/3.4.0/api/net/html/functions_i.html new file mode 100644 index 000000000..d6dfd68fb --- /dev/null +++ b/3.4.0/api/net/html/functions_i.html @@ -0,0 +1,130 @@ + + + + + + + +ctrlX Data Layer .NET API: Class Members +Class Members + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- i -

+
+
+ + + + diff --git a/3.4.0/api/net/html/functions_j.html b/3.4.0/api/net/html/functions_j.html new file mode 100644 index 000000000..940bf8860 --- /dev/null +++ b/3.4.0/api/net/html/functions_j.html @@ -0,0 +1,114 @@ + + + + + + + +ctrlX Data Layer .NET API: Class Members +Class Members + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- j -

+
+
+ + + + diff --git a/3.4.0/api/net/html/functions_m.html b/3.4.0/api/net/html/functions_m.html new file mode 100644 index 000000000..0b1e894a7 --- /dev/null +++ b/3.4.0/api/net/html/functions_m.html @@ -0,0 +1,114 @@ + + + + + + + +ctrlX Data Layer .NET API: Class Members +Class Members + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- m -

+
+
+ + + + diff --git a/3.4.0/api/net/html/functions_n.html b/3.4.0/api/net/html/functions_n.html new file mode 100644 index 000000000..5bd86ea38 --- /dev/null +++ b/3.4.0/api/net/html/functions_n.html @@ -0,0 +1,114 @@ + + + + + + + +ctrlX Data Layer .NET API: Class Members +Class Members + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- n -

+
+
+ + + + diff --git a/3.4.0/api/net/html/functions_o.html b/3.4.0/api/net/html/functions_o.html new file mode 100644 index 000000000..96731517b --- /dev/null +++ b/3.4.0/api/net/html/functions_o.html @@ -0,0 +1,123 @@ + + + + + + + +ctrlX Data Layer .NET API: Class Members +Class Members + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- o -

+
+
+ + + + diff --git a/3.4.0/api/net/html/functions_p.html b/3.4.0/api/net/html/functions_p.html new file mode 100644 index 000000000..a20eeb721 --- /dev/null +++ b/3.4.0/api/net/html/functions_p.html @@ -0,0 +1,123 @@ + + + + + + + +ctrlX Data Layer .NET API: Class Members +Class Members + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- p -

+
+
+ + + + diff --git a/3.4.0/api/net/html/functions_prop.html b/3.4.0/api/net/html/functions_prop.html new file mode 100644 index 000000000..6fe8d529e --- /dev/null +++ b/3.4.0/api/net/html/functions_prop.html @@ -0,0 +1,217 @@ + + + + + + + +ctrlX Data Layer .NET API: Class Members - Properties +Class Members - Properties + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- a -

+ + +

- b -

+ + +

- c -

+ + +

- d -

+ + +

- f -

+ + +

- h -

+ + +

- i -

+ + +

- j -

+ + +

- p -

+ + +

- r -

+ + +

- s -

+ + +

- t -

+ + +

- u -

+ + +

- v -

+ + +

- w -

+
+
+ + + + diff --git a/3.4.0/api/net/html/functions_r.html b/3.4.0/api/net/html/functions_r.html new file mode 100644 index 000000000..24c617ffb --- /dev/null +++ b/3.4.0/api/net/html/functions_r.html @@ -0,0 +1,131 @@ + + + + + + + +ctrlX Data Layer .NET API: Class Members +Class Members + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- r -

+
+
+ + + + diff --git a/3.4.0/api/net/html/functions_s.html b/3.4.0/api/net/html/functions_s.html new file mode 100644 index 000000000..f3e5f60c2 --- /dev/null +++ b/3.4.0/api/net/html/functions_s.html @@ -0,0 +1,138 @@ + + + + + + + +ctrlX Data Layer .NET API: Class Members +Class Members + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- s -

+
+
+ + + + diff --git a/3.4.0/api/net/html/functions_t.html b/3.4.0/api/net/html/functions_t.html new file mode 100644 index 000000000..45072e54e --- /dev/null +++ b/3.4.0/api/net/html/functions_t.html @@ -0,0 +1,143 @@ + + + + + + + +ctrlX Data Layer .NET API: Class Members +Class Members + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- t -

+
+
+ + + + diff --git a/3.4.0/api/net/html/functions_u.html b/3.4.0/api/net/html/functions_u.html new file mode 100644 index 000000000..f0f245e5f --- /dev/null +++ b/3.4.0/api/net/html/functions_u.html @@ -0,0 +1,124 @@ + + + + + + + +ctrlX Data Layer .NET API: Class Members +Class Members + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- u -

+
+
+ + + + diff --git a/3.4.0/api/net/html/functions_v.html b/3.4.0/api/net/html/functions_v.html new file mode 100644 index 000000000..f846155e7 --- /dev/null +++ b/3.4.0/api/net/html/functions_v.html @@ -0,0 +1,115 @@ + + + + + + + +ctrlX Data Layer .NET API: Class Members +Class Members + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- v -

+
+
+ + + + diff --git a/3.4.0/api/net/html/functions_vars.html b/3.4.0/api/net/html/functions_vars.html new file mode 100644 index 000000000..4e730a8d8 --- /dev/null +++ b/3.4.0/api/net/html/functions_vars.html @@ -0,0 +1,128 @@ + + + + + + + +ctrlX Data Layer .NET API: Class Members - Variables +Class Members - Variables + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
+ + + + diff --git a/3.4.0/api/net/html/functions_w.html b/3.4.0/api/net/html/functions_w.html new file mode 100644 index 000000000..c393818d2 --- /dev/null +++ b/3.4.0/api/net/html/functions_w.html @@ -0,0 +1,121 @@ + + + + + + + +ctrlX Data Layer .NET API: Class Members +Class Members + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- w -

+
+
+ + + + diff --git a/3.4.0/api/net/html/functions_z.html b/3.4.0/api/net/html/functions_z.html new file mode 100644 index 000000000..379906254 --- /dev/null +++ b/3.4.0/api/net/html/functions_z.html @@ -0,0 +1,114 @@ + + + + + + + +ctrlX Data Layer .NET API: Class Members +Class Members + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- z -

+
+
+ + + + diff --git a/3.4.0/api/net/html/hierarchy.html b/3.4.0/api/net/html/hierarchy.html new file mode 100644 index 000000000..2f06d7004 --- /dev/null +++ b/3.4.0/api/net/html/hierarchy.html @@ -0,0 +1,145 @@ + + + + + + + +ctrlX Data Layer .NET API: Class Hierarchy +Class Hierarchy + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Class Hierarchy
+
+
+
This inheritance list is sorted roughly, but not completely, alphabetically:
+
[detail level 1234]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 CIBulkItemThe IBulkItem interface
 CIClientAsyncBulkResultThe IClientAsyncBulkResult interface
 CIClientAsyncResultThe IClientAsyncResult interface
 CISubscriptionAsyncResultThe ISubscriptionAsyncResult interface
 CIConverterThe IConverter interface
 CIDataChangedEventArgsThe IDataChangedEventArgs interface
 CIDisposable
 CINativeDisposableThe INativeDisposable interface
 CIBulkThe IBulk interface
 CIClientThe IClient interface
 CIDatalayerSystemThe IDatalayerSystem interface
 CDatalayerSystemProvides the implementation for IDatalayerSystem
 CIProviderThe IProvider interface
 CIProviderNodeThe IProvider interface
 CISubscriptionThe ISubscription interface
 CIVariantThe IVariant interface
 CVariantProvides the implementation for IVariant
 CIFactoryThe IFactory interface
 CINative
 CDatalayerSystemProvides the implementation for IDatalayerSystem
 CVariantProvides the implementation for IVariant
 CINotifyItemThe INotifyItem interface
 CIProviderNodeHandlerThe IProviderNodeHandler interface
 CIProviderNodeResultThe IProviderNodeResult interface
 CMetadataBuilderProvides a convenient way to to build up a Metadata flatbuffers
 CReferenceTypeRepresents a type of reference
 CRemoteProvides a container for a TCP remote connection string
 CResultExtensionsProvides extension methods for DLR_RESULT
 CSubscriptionPropertiesBuilderProvides a convenient way to build a SubscriptionProperties flatbuffers
+
+
+
+ + + + diff --git a/3.4.0/api/net/html/hierarchy.js b/3.4.0/api/net/html/hierarchy.js new file mode 100644 index 000000000..c332ab33d --- /dev/null +++ b/3.4.0/api/net/html/hierarchy.js @@ -0,0 +1,38 @@ +var hierarchy = +[ + [ "IBulkItem", "interfaceDatalayer_1_1IBulkItem.html", null ], + [ "IClientAsyncBulkResult", "interfaceDatalayer_1_1IClientAsyncBulkResult.html", null ], + [ "IClientAsyncResult", "interfaceDatalayer_1_1IClientAsyncResult.html", [ + [ "ISubscriptionAsyncResult", "interfaceDatalayer_1_1ISubscriptionAsyncResult.html", null ] + ] ], + [ "IConverter", "interfaceDatalayer_1_1IConverter.html", null ], + [ "IDataChangedEventArgs", "interfaceDatalayer_1_1IDataChangedEventArgs.html", null ], + [ "IDisposable", null, [ + [ "INativeDisposable", "interfaceDatalayer_1_1INativeDisposable.html", [ + [ "IBulk", "interfaceDatalayer_1_1IBulk.html", null ], + [ "IClient", "interfaceDatalayer_1_1IClient.html", null ], + [ "IDatalayerSystem", "interfaceDatalayer_1_1IDatalayerSystem.html", [ + [ "DatalayerSystem", "classDatalayer_1_1DatalayerSystem.html", null ] + ] ], + [ "IProvider", "interfaceDatalayer_1_1IProvider.html", null ], + [ "IProviderNode", "interfaceDatalayer_1_1IProviderNode.html", null ], + [ "ISubscription", "interfaceDatalayer_1_1ISubscription.html", null ], + [ "IVariant", "interfaceDatalayer_1_1IVariant.html", [ + [ "Variant", "classDatalayer_1_1Variant.html", null ] + ] ] + ] ] + ] ], + [ "IFactory", "interfaceDatalayer_1_1IFactory.html", null ], + [ "INative", null, [ + [ "DatalayerSystem", "classDatalayer_1_1DatalayerSystem.html", null ], + [ "Variant", "classDatalayer_1_1Variant.html", null ] + ] ], + [ "INotifyItem", "interfaceDatalayer_1_1INotifyItem.html", null ], + [ "IProviderNodeHandler", "interfaceDatalayer_1_1IProviderNodeHandler.html", null ], + [ "IProviderNodeResult", "interfaceDatalayer_1_1IProviderNodeResult.html", null ], + [ "MetadataBuilder", "classDatalayer_1_1MetadataBuilder.html", null ], + [ "ReferenceType", "classDatalayer_1_1ReferenceType.html", null ], + [ "Remote", "classDatalayer_1_1Remote.html", null ], + [ "ResultExtensions", "classDatalayer_1_1ResultExtensions.html", null ], + [ "SubscriptionPropertiesBuilder", "classDatalayer_1_1SubscriptionPropertiesBuilder.html", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/net/html/index.html b/3.4.0/api/net/html/index.html new file mode 100644 index 000000000..cbb15da8d --- /dev/null +++ b/3.4.0/api/net/html/index.html @@ -0,0 +1,118 @@ + + + + + + + +ctrlX Data Layer .NET API: Main Page +Main Page + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Main Page
+
+
+

Welcome to the documentation for the ctrlX Data Layer API!

+

+
+ +
+
+
+
+ + + + diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1IBulk-members.html b/3.4.0/api/net/html/interfaceDatalayer_1_1IBulk-members.html new file mode 100644 index 000000000..774eefaef --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1IBulk-members.html @@ -0,0 +1,117 @@ + + + + + + + +ctrlX Data Layer .NET API: Member List +Member List + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
IBulk Member List
+
+
+ +

This is the complete list of members for IBulk, including all inherited members.

+ + + +
IsDisposedINativeDisposable
ItemsIBulk
+
+ + + + diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1IBulk.html b/3.4.0/api/net/html/interfaceDatalayer_1_1IBulk.html new file mode 100644 index 000000000..74fa98640 --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1IBulk.html @@ -0,0 +1,179 @@ + + + + + + + +ctrlX Data Layer .NET API: IBulk Interface Reference +IBulk Interface Reference + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
IBulk Interface Reference
+
+
+ +

The IBulk interface. + More...

+
+Inheritance diagram for IBulk:
+
+
+ + +INativeDisposable + +
+ + + + + + + + + +

+Properties

IBulkItem[] Items [get]
 Gets the items.
 
- Properties inherited from INativeDisposable
bool IsDisposed [get]
 Checks disposed.
 
+

Detailed Description

+

The IBulk interface.

+ +

Definition at line 8 of file IBulk.cs.

+

Property Documentation

+ +

◆ Items

+ +
+
+ + + + + +
+ + + + +
IBulkItem [] Items
+
+get
+
+ +

Gets the items.

+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Definition at line 14 of file IBulk.cs.

+ +
+
+
The documentation for this interface was generated from the following file:
    +
  • D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/IBulk.cs
  • +
+
+
+ + + + diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1IBulk.js b/3.4.0/api/net/html/interfaceDatalayer_1_1IBulk.js new file mode 100644 index 000000000..dc242e4c1 --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1IBulk.js @@ -0,0 +1,4 @@ +var interfaceDatalayer_1_1IBulk = +[ + [ "Items", "interfaceDatalayer_1_1IBulk.html#ad07a380085308ef296066fccb14a7788", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1IBulk.png b/3.4.0/api/net/html/interfaceDatalayer_1_1IBulk.png new file mode 100644 index 000000000..dcf8e1216 Binary files /dev/null and b/3.4.0/api/net/html/interfaceDatalayer_1_1IBulk.png differ diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1IBulkItem-members.html b/3.4.0/api/net/html/interfaceDatalayer_1_1IBulkItem-members.html new file mode 100644 index 000000000..6de96f1b9 --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1IBulkItem-members.html @@ -0,0 +1,119 @@ + + + + + + + +ctrlX Data Layer .NET API: Member List +Member List + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
IBulkItem Member List
+
+
+ +

This is the complete list of members for IBulkItem, including all inherited members.

+ + + + + +
AddressIBulkItem
ResultIBulkItem
TimestampIBulkItem
ValueIBulkItem
+
+ + + + diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1IBulkItem.html b/3.4.0/api/net/html/interfaceDatalayer_1_1IBulkItem.html new file mode 100644 index 000000000..c854364d0 --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1IBulkItem.html @@ -0,0 +1,247 @@ + + + + + + + +ctrlX Data Layer .NET API: IBulkItem Interface Reference +IBulkItem Interface Reference + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
IBulkItem Interface Reference
+
+
+ +

The IBulkItem interface. + More...

+ + + + + + + + + + + + + + +

+Properties

string Address [get]
 Gets the address.
 
DLR_RESULT Result [get]
 Gets the result.
 
DateTime Timestamp [get]
 Gets the timestamp.
 
IVariant Value [get]
 Gets the value.
 
+

Detailed Description

+

The IBulkItem interface.

+ +

Definition at line 8 of file IBulkItem.cs.

+

Property Documentation

+ +

◆ Address

+ +
+
+ + + + + +
+ + + + +
string Address
+
+get
+
+ +

Gets the address.

+ +

Definition at line 13 of file IBulkItem.cs.

+ +
+
+ +

◆ Result

+ +
+
+ + + + + +
+ + + + +
DLR_RESULT Result
+
+get
+
+ +

Gets the result.

+ +

Definition at line 23 of file IBulkItem.cs.

+ +
+
+ +

◆ Timestamp

+ +
+
+ + + + + +
+ + + + +
DateTime Timestamp
+
+get
+
+ +

Gets the timestamp.

+ +

Definition at line 28 of file IBulkItem.cs.

+ +
+
+ +

◆ Value

+ +
+
+ + + + + +
+ + + + +
IVariant Value
+
+get
+
+ +

Gets the value.

+ +

Definition at line 18 of file IBulkItem.cs.

+ +
+
+
The documentation for this interface was generated from the following file:
    +
  • D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/IBulkItem.cs
  • +
+
+
+ + + + diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1IBulkItem.js b/3.4.0/api/net/html/interfaceDatalayer_1_1IBulkItem.js new file mode 100644 index 000000000..3d33e8f60 --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1IBulkItem.js @@ -0,0 +1,7 @@ +var interfaceDatalayer_1_1IBulkItem = +[ + [ "Address", "interfaceDatalayer_1_1IBulkItem.html#aec57182df53b04aceca477433c48ecfc", null ], + [ "Result", "interfaceDatalayer_1_1IBulkItem.html#afb2785bf656462fedb73dc757ebeba40", null ], + [ "Timestamp", "interfaceDatalayer_1_1IBulkItem.html#ad61a3202df3c958377a1f7d95cfebb46", null ], + [ "Value", "interfaceDatalayer_1_1IBulkItem.html#a9503c94b75a670263019963baa18c20d", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1IClient-members.html b/3.4.0/api/net/html/interfaceDatalayer_1_1IClient-members.html new file mode 100644 index 000000000..3ff6f8010 --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1IClient-members.html @@ -0,0 +1,166 @@ + + + + + + + +ctrlX Data Layer .NET API: Member List +Member List + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
IClient Member List
+
+
+ +

This is the complete list of members for IClient, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AuthTokenIClient
Browse(string address) (defined in IClient)IClient
BrowseAsync(string address)IClient
BulkBrowse(string[] addresses) (defined in IClient)IClient
BulkBrowseAsync(string[] addresses)IClient
BulkCreate(string[] addresses, IVariant[] args) (defined in IClient)IClient
BulkCreateAsync(string[] addresses, IVariant[] args)IClient
BulkRead(string[] addresses) (defined in IClient)IClient
BulkRead(string[] addresses, IVariant[] args) (defined in IClient)IClient
BulkReadAsync(string[] addresses)IClient
BulkReadAsync(string[] addresses, IVariant[] args)IClient
BulkReadMetadata(string[] addresses) (defined in IClient)IClient
BulkReadMetadataAsync(string[] addresses)IClient
BulkRemove(string[] addresses) (defined in IClient)IClient
BulkRemoveAsync(string[] addresses)IClient
BulkWrite(string[] addresses, IVariant[] writeValues) (defined in IClient)IClient
BulkWriteAsync(string[] addresses, IVariant[] writeValues)IClient
ConnectionStatusIClient
Create(string address, IVariant args) (defined in IClient)IClient
CreateAsync(string address, IVariant args)IClient
CreateSubscription(IVariant subscriptionPropertiesFlatbuffers, object userData) (defined in IClient)IClient
CreateSubscriptionAsync(IVariant subscriptionPropertiesFlatbuffers, object userData)IClient
DLR_RESULTIClient
IsConnectedIClient
IsDisposedINativeDisposable
Ping()IClient
PingAsync()IClient
Read(string address) (defined in IClient)IClient
Read(string address, IVariant args) (defined in IClient)IClient
ReadAsync(string address)IClient
ReadAsync(string address, IVariant args)IClient
ReadJson(string address, int indentStep=0) (defined in IClient)IClient
ReadJson(string address, IVariant args, int indentStep=0) (defined in IClient)IClient
ReadJsonAsync(string address, int indentStep=0)IClient
ReadJsonAsync(string address, IVariant args, int indentStep=0)IClient
ReadMetadata(string address) (defined in IClient)IClient
ReadMetadataAsync(string address)IClient
ReadMulti(string[] addresses) (defined in IClient)IClient
ReadMultiAsync(string[] addresses)IClient
Remove(string address)IClient
RemoveAsync(string address)IClient
resultIClient
resultIClient
SetTimeout(DLR_TIMEOUT_SETTING timeout, uint value)IClient
SystemIClient
Write(string address, IVariant writeValue)IClient
WriteAsync(string address, IVariant writeValue)IClient
WriteJson(string address, string json) (defined in IClient)IClient
WriteJsonAsync(string address, string json)IClient
WriteMulti(string[] addresses, IVariant[] writeValues)IClient
WriteMultiAsync(string[] addresses, IVariant[] writeValues)IClient
+
+ + + + diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1IClient.html b/3.4.0/api/net/html/interfaceDatalayer_1_1IClient.html new file mode 100644 index 000000000..2b68d334a --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1IClient.html @@ -0,0 +1,1722 @@ + + + + + + + +ctrlX Data Layer .NET API: IClient Interface Reference +IClient Interface Reference + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
IClient Interface Reference
+
+
+ +

The IClient interface. + More...

+
+Inheritance diagram for IClient:
+
+
+ + +INativeDisposable + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+DLR_RESULT IVariant value Browse (string address)
 
Task< IClientAsyncResultBrowseAsync (string address)
 Browses a node asynchronously.
 
+DLR_RESULT IBulkItem[] items BulkBrowse (string[] addresses)
 
Task< IClientAsyncBulkResultBulkBrowseAsync (string[] addresses)
 Browses a list of nodes asynchronously.
 
+DLR_RESULT IBulkItem[] items BulkCreate (string[] addresses, IVariant[] args)
 
Task< IClientAsyncBulkResultBulkCreateAsync (string[] addresses, IVariant[] args)
 Creates a list of nodes with arguments asynchronously.
 
+DLR_RESULT IBulkItem[] items BulkRead (string[] addresses)
 
+DLR_RESULT IBulkItem[] items BulkRead (string[] addresses, IVariant[] args)
 
Task< IClientAsyncBulkResultBulkReadAsync (string[] addresses)
 Reads values from a list of nodes asynchronously.
 
Task< IClientAsyncBulkResultBulkReadAsync (string[] addresses, IVariant[] args)
 Reads values from a list of nodes with arguments asynchronously.
 
+DLR_RESULT IBulkItem[] items BulkReadMetadata (string[] addresses)
 
Task< IClientAsyncBulkResultBulkReadMetadataAsync (string[] addresses)
 Reads the metadata from a list of nodes asynchronously.
 
+DLR_RESULT IBulkItem[] items BulkRemove (string[] addresses)
 
Task< IClientAsyncBulkResultBulkRemoveAsync (string[] addresses)
 Removes a list of nodes asynchronously.
 
+DLR_RESULT IBulkItem[] items BulkWrite (string[] addresses, IVariant[] writeValues)
 
Task< IClientAsyncBulkResultBulkWriteAsync (string[] addresses, IVariant[] writeValues)
 Writes a list of values to a list of nodes asynchronously.
 
+DLR_RESULT IVariant value Create (string address, IVariant args)
 
Task< IClientAsyncResultCreateAsync (string address, IVariant args)
 Creates a node with arguments asynchronously.
 
+DLR_RESULT ISubscription subscription CreateSubscription (IVariant subscriptionPropertiesFlatbuffers, object userData)
 
Task< ISubscriptionAsyncResultCreateSubscriptionAsync (IVariant subscriptionPropertiesFlatbuffers, object userData)
 Creates an subscription asynchronously.
 
DLR_RESULT Ping ()
 Pings the remote.
 
Task< IClientAsyncResultPingAsync ()
 Pings the remote asynchronously.
 
+DLR_RESULT IVariant value Read (string address)
 
+DLR_RESULT IVariant value Read (string address, IVariant args)
 
Task< IClientAsyncResultReadAsync (string address)
 Reads a node value asynchronously.
 
Task< IClientAsyncResultReadAsync (string address, IVariant args)
 Reads a node value with arguments asynchronously.
 
+DLR_RESULT IVariant value ReadJson (string address, int indentStep=0)
 
+DLR_RESULT IVariant value ReadJson (string address, IVariant args, int indentStep=0)
 
Task< IClientAsyncResultReadJsonAsync (string address, int indentStep=0)
 Reads a node value as JSON asynchronously.
 
Task< IClientAsyncResultReadJsonAsync (string address, IVariant args, int indentStep=0)
 Reads a node value as JSON with arguments asynchronously.
 
+DLR_RESULT IVariant value ReadMetadata (string address)
 
Task< IClientAsyncResultReadMetadataAsync (string address)
 Reads the metadata of a node asynchronously.
 
+DLR_RESULT[] IVariant[] value ReadMulti (string[] addresses)
 
Task< IClientAsyncResult[]> ReadMultiAsync (string[] addresses)
 Reads values from a list of nodes asynchronously.
 
DLR_RESULT Remove (string address)
 Removes a node.
 
Task< IClientAsyncResultRemoveAsync (string address)
 Removes a node asynchronously.
 
DLR_RESULT SetTimeout (DLR_TIMEOUT_SETTING timeout, uint value)
 Sets the timeout of each request.
 
DLR_RESULT Write (string address, IVariant writeValue)
 Writes the value to a node.
 
Task< IClientAsyncResultWriteAsync (string address, IVariant writeValue)
 Writes a value to a node asynchronously.
 
+IVariant error WriteJson (string address, string json)
 
Task< IClientAsyncResultWriteJsonAsync (string address, string json)
 Writes a JSON value to a node asynchronously.
 
DLR_RESULT[] WriteMulti (string[] addresses, IVariant[] writeValues)
 Writes a list of values to a list of nodes.
 
Task< IClientAsyncResult[]> WriteMultiAsync (string[] addresses, IVariant[] writeValues)
 Writes a list of values to a list of nodes asynchronously.
 
+ + + + + + + + + + +

+Public Attributes

 DLR_RESULT
 Writes a JSON value to a node.
 
DLR_RESULT result
 Reads a node value.
 
DLR_RESULT[] result
 Reads values from a list of nodes.
 
+ + + + + + + + + + + + + + + + + +

+Properties

IVariant AuthToken [get]
 Gets the authentication token (JWT) as string.
 
DLR_RESULT ConnectionStatus [get]
 Gets the connection status.
 
bool IsConnected [get]
 Checks the connection.
 
IDatalayerSystem System [get]
 Gets the system.
 
- Properties inherited from INativeDisposable
bool IsDisposed [get]
 Checks disposed.
 
+

Detailed Description

+

The IClient interface.

+ +

Definition at line 9 of file IClient.cs.

+

Member Function Documentation

+ +

◆ BrowseAsync()

+ +
+
+ + + + + + + + +
Task< IClientAsyncResult > BrowseAsync (string address)
+
+ +

Browses a node asynchronously.

+
Parameters
+ + +
addressAddress of the node.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
+
+
+ +
+
+ +

◆ BulkBrowseAsync()

+ +
+
+ + + + + + + + +
Task< IClientAsyncBulkResult > BulkBrowseAsync (string[] addresses)
+
+ +

Browses a list of nodes asynchronously.

+
Parameters
+ + +
addressesAddress of the nodes.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
+
+
+ +
+
+ +

◆ BulkCreateAsync()

+ +
+
+ + + + + + + + + + + + + + + + + + +
Task< IClientAsyncBulkResult > BulkCreateAsync (string[] addresses,
IVariant[] args 
)
+
+ +

Creates a list of nodes with arguments asynchronously.

+
Parameters
+ + + +
addressesAddresses of the nodes.
argsRequest arguments.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
+
+
+ +
+
+ +

◆ BulkReadAsync() [1/2]

+ +
+
+ + + + + + + + +
Task< IClientAsyncBulkResult > BulkReadAsync (string[] addresses)
+
+ +

Reads values from a list of nodes asynchronously.

+
Parameters
+ + +
addressesAddresses of the nodes.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
+
+
+ +
+
+ +

◆ BulkReadAsync() [2/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
Task< IClientAsyncBulkResult > BulkReadAsync (string[] addresses,
IVariant[] args 
)
+
+ +

Reads values from a list of nodes with arguments asynchronously.

+
Parameters
+ + + +
addressesAddresses of the nodes.
argsRequest arguments.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
ArgumentExceptionInvalid arguments.
+
+
+ +
+
+ +

◆ BulkReadMetadataAsync()

+ +
+
+ + + + + + + + +
Task< IClientAsyncBulkResult > BulkReadMetadataAsync (string[] addresses)
+
+ +

Reads the metadata from a list of nodes asynchronously.

+
Parameters
+ + +
addressesAddresses of the nodes.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
+
+
+ +
+
+ +

◆ BulkRemoveAsync()

+ +
+
+ + + + + + + + +
Task< IClientAsyncBulkResult > BulkRemoveAsync (string[] addresses)
+
+ +

Removes a list of nodes asynchronously.

+
Parameters
+ + +
addressesAddresses of the nodes.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
+
+
+ +
+
+ +

◆ BulkWriteAsync()

+ +
+
+ + + + + + + + + + + + + + + + + + +
Task< IClientAsyncBulkResult > BulkWriteAsync (string[] addresses,
IVariant[] writeValues 
)
+
+ +

Writes a list of values to a list of nodes asynchronously.

+
Parameters
+ + + +
addressesAddresses of the nodes.
writeValuesValues to write.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
ArgumentExceptionInvalid arguments.
+
+
+ +
+
+ +

◆ CreateAsync()

+ +
+
+ + + + + + + + + + + + + + + + + + +
Task< IClientAsyncResult > CreateAsync (string address,
IVariant args 
)
+
+ +

Creates a node with arguments asynchronously.

+
Parameters
+ + + +
addressAddress of the node.
argsRequest arguments.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
+
+
+

Example

var userData = new Variant(42);
+
var task = client.CreateAsync(string, userData);
+
Provides the implementation for IVariant.
Definition: Variant.cs:18
+
+
+
+ +

◆ CreateSubscriptionAsync()

+ +
+
+ + + + + + + + + + + + + + + + + + +
Task< ISubscriptionAsyncResult > CreateSubscriptionAsync (IVariant subscriptionPropertiesFlatbuffers,
object userData 
)
+
+ +

Creates an subscription asynchronously.

+
Parameters
+ + + +
subscriptionPropertiesFlatbuffersProperties of the subscription as flatbuffers.
userDataOptional user data can be provided, which is available in the subscription data changed event context.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
+
+
+

Example

var userData = new Variant(42);
+
var builder = new FlatBufferBuilder(Variant.DefaultFlatbuffersInitialSize);
+
var properties = SubscriptionProperties.CreateSubscriptionProperties(
+
builder: builder,
+
idOffset: builder.CreateString("mySubscription"),
+
keepaliveInterval: KeepLiveIntervalMillis,
+
publishInterval: PublishIntervalMillis,
+
rulesOffset: default,
+
errorInterval: ErrorIntervalMillis);
+
builder.Finish(properties.Value);
+
var propertiesFlatbuffers = new Variant(builder);
+
var task = client.CreateSubscriptionAsync(propertiesFlatbuffers, userData);
+
static readonly int DefaultFlatbuffersInitialSize
Gets the default Flatbuffers initial size in bytes.
Definition: Variant.cs:730
+
+
+
+ +

◆ Ping()

+ +
+
+ + + + + + + +
DLR_RESULT Ping ()
+
+ +

Pings the remote.

+
Returns
Result of the method call.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +
+
+ +

◆ PingAsync()

+ +
+
+ + + + + + + +
Task< IClientAsyncResult > PingAsync ()
+
+ +

Pings the remote asynchronously.

+
Returns
Result of the method call.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +
+
+ +

◆ ReadAsync() [1/2]

+ +
+
+ + + + + + + + +
Task< IClientAsyncResult > ReadAsync (string address)
+
+ +

Reads a node value asynchronously.

+
Parameters
+ + +
addressAddress of the node.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
+
+
+ +
+
+ +

◆ ReadAsync() [2/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
Task< IClientAsyncResult > ReadAsync (string address,
IVariant args 
)
+
+ +

Reads a node value with arguments asynchronously.

+
Parameters
+ + + +
addressAddress of the node.
argsRequest arguments.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
+
+
+ +
+
+ +

◆ ReadJsonAsync() [1/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
Task< IClientAsyncResult > ReadJsonAsync (string address,
int indentStep = 0 
)
+
+ +

Reads a node value as JSON asynchronously.

+
Parameters
+ + + +
addressAddress of the node.
indentStepIndentation length for json string.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
+
+
+ +
+
+ +

◆ ReadJsonAsync() [2/2]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
Task< IClientAsyncResult > ReadJsonAsync (string address,
IVariant args,
int indentStep = 0 
)
+
+ +

Reads a node value as JSON with arguments asynchronously.

+
Parameters
+ + + + +
addressAddress of the node.
argsRequest arguments (JSON).
indentStepIndentation length for json string.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
+
+
+ +
+
+ +

◆ ReadMetadataAsync()

+ +
+
+ + + + + + + + +
Task< IClientAsyncResult > ReadMetadataAsync (string address)
+
+ +

Reads the metadata of a node asynchronously.

+
Parameters
+ + +
addressAddress of the node.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
+
+
+ +
+
+ +

◆ ReadMultiAsync()

+ +
+
+ + + + + + + + +
Task< IClientAsyncResult[]> ReadMultiAsync (string[] addresses)
+
+ +

Reads values from a list of nodes asynchronously.

+
Parameters
+ + +
addressesAddresses of the nodes.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
+
+
+ +
+
+ +

◆ Remove()

+ +
+
+ + + + + + + + +
DLR_RESULT Remove (string address)
+
+ +

Removes a node.

+
Parameters
+ + +
addressAddress of the node.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
+
+
+ +
+
+ +

◆ RemoveAsync()

+ +
+
+ + + + + + + + +
Task< IClientAsyncResult > RemoveAsync (string address)
+
+ +

Removes a node asynchronously.

+
Parameters
+ + +
addressAddress of the node.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
+
+
+ +
+
+ +

◆ SetTimeout()

+ +
+
+ + + + + + + + + + + + + + + + + + +
DLR_RESULT SetTimeout (DLR_TIMEOUT_SETTING timeout,
uint value 
)
+
+ +

Sets the timeout of each request.

+
Parameters
+ + + +
timeoutTimeout to set.
valueValue to set.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +
+
+ +

◆ Write()

+ +
+
+ + + + + + + + + + + + + + + + + + +
DLR_RESULT Write (string address,
IVariant writeValue 
)
+
+ +

Writes the value to a node.

+
Parameters
+ + + +
addressAddress of the node.
writeValueValue to write.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
+
+
+ +
+
+ +

◆ WriteAsync()

+ +
+
+ + + + + + + + + + + + + + + + + + +
Task< IClientAsyncResult > WriteAsync (string address,
IVariant writeValue 
)
+
+ +

Writes a value to a node asynchronously.

+
Parameters
+ + + +
addressAddress of the node.
writeValueValue to set.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
+
+
+ +
+
+ +

◆ WriteJsonAsync()

+ +
+
+ + + + + + + + + + + + + + + + + + +
Task< IClientAsyncResult > WriteJsonAsync (string address,
string json 
)
+
+ +

Writes a JSON value to a node asynchronously.

+
Parameters
+ + + +
addressAddress of the node.
jsonJSON value to write.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
+
+
+ +
+
+ +

◆ WriteMulti()

+ +
+
+ + + + + + + + + + + + + + + + + + +
DLR_RESULT[] WriteMulti (string[] addresses,
IVariant[] writeValues 
)
+
+ +

Writes a list of values to a list of nodes.

+
Parameters
+ + + +
addressesAddresses of the nodes.
writeValuesValues to write.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
ArgumentExceptionInvalid arguments.
+
+
+ +
+
+ +

◆ WriteMultiAsync()

+ +
+
+ + + + + + + + + + + + + + + + + + +
Task< IClientAsyncResult[]> WriteMultiAsync (string[] addresses,
IVariant[] writeValues 
)
+
+ +

Writes a list of values to a list of nodes asynchronously.

+
Parameters
+ + + +
addressesAddresses of the nodes.
writeValuesValues to write.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
ArgumentExceptionInvalid arguments.
+
+
+ +
+
+

Member Data Documentation

+ +

◆ DLR_RESULT

+ +
+
+ + + + +
DLR_RESULT
+
+ +

Writes a JSON value to a node.

+
Parameters
+ + + +
addressAddress of the node.
jsonJSON value to write.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
+
+
+ +

Definition at line 309 of file IClient.cs.

+ +
+
+ +

◆ result [1/2]

+ +
+
+ + + + +
DLR_RESULT result
+
+ +

Reads a node value.

+

Creates a subscription.

+

Removes a list of nodes.

+

Creates a list of nodes with arguments.

+

Creates a node with arguments.

+

Browses a list of nodes.

+

Browses a node.

+

Writes a list of values to a list of nodes.

+

Reads the metadata from a list of nodes.

+

Reads the metadata of a node.

+

Reads a node value as JSON with arguments.

+

Reads a node value as JSON.

+

Reads values from a list of nodes with arguments.

+

Reads values from a list of nodes.

+

Reads a node value with arguments.

+
Parameters
+ + +
addressAddress of the node.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
+
+
+
Parameters
+ + + +
addressAddress of the node.
argsRequest arguments.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
+
+
+
Parameters
+ + +
addressesAddresses of the nodes.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
+
+
+
Parameters
+ + + +
addressesAddresses of the nodes.
argsRequest arguments.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
ArgumentExceptionInvalid arguments.
+
+
+
Parameters
+ + + +
addressAddress of the node.
indentStepIndentation length for json string.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
+
+
+
Parameters
+ + + + +
addressAddress of the node.
argsRequest arguments (JSON).
indentStepIndentation length for json string.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
+
+
+
Parameters
+ + + +
addressesAddresses of the nodes.
writeValuesValues to write.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
ArgumentExceptionInvalid arguments.
+
+
+
Parameters
+ + +
addressesAddress of the nodes.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
+
+
+
Parameters
+ + + +
addressesAddresses of the nodes.
argsRequest arguments.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
+
+
+
Parameters
+ + + +
subscriptionPropertiesFlatbuffersProperties of the subscription as flatbuffers.
userDataOptional user data can be provided, which is available in the subscription data changed event context.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
+
+
+ +

Definition at line 65 of file IClient.cs.

+ +
+
+ +

◆ result [2/2]

+ +
+
+ + + + +
DLR_RESULT [] result
+
+ +

Reads values from a list of nodes.

+
Parameters
+ + +
addressesAddresses of the nodes.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
+
+
+ +

Definition at line 105 of file IClient.cs.

+ +
+
+

Property Documentation

+ +

◆ AuthToken

+ +
+
+ + + + + +
+ + + + +
IVariant AuthToken
+
+get
+
+ +

Gets the authentication token (JWT) as string.

+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
InvalidOperationExceptionOperation not allowed.
+
+
+ +

Definition at line 33 of file IClient.cs.

+ +
+
+ +

◆ ConnectionStatus

+ +
+
+ + + + + +
+ + + + +
DLR_RESULT ConnectionStatus
+
+get
+
+ +

Gets the connection status.

+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Definition at line 26 of file IClient.cs.

+ +
+
+ +

◆ IsConnected

+ +
+
+ + + + + +
+ + + + +
bool IsConnected
+
+get
+
+ +

Checks the connection.

+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Definition at line 20 of file IClient.cs.

+ +
+
+ +

◆ System

+ +
+
+ + + + + +
+ + + + +
IDatalayerSystem System
+
+get
+
+ +

Gets the system.

+ +

Definition at line 14 of file IClient.cs.

+ +
+
+
The documentation for this interface was generated from the following file:
    +
  • D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/IClient.cs
  • +
+
+
+ + + + diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1IClient.js b/3.4.0/api/net/html/interfaceDatalayer_1_1IClient.js new file mode 100644 index 000000000..dfdfd8e60 --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1IClient.js @@ -0,0 +1,36 @@ +var interfaceDatalayer_1_1IClient = +[ + [ "BrowseAsync", "interfaceDatalayer_1_1IClient.html#ad80f73849f3cf06ebe3d744061786460", null ], + [ "BulkBrowseAsync", "interfaceDatalayer_1_1IClient.html#a12e7a526f7bbc829667bfc230c233bf1", null ], + [ "BulkCreateAsync", "interfaceDatalayer_1_1IClient.html#a471f8564ba23780931f4a9884399b0f5", null ], + [ "BulkReadAsync", "interfaceDatalayer_1_1IClient.html#a0703c7f516b87c26f6e68f005e8a325d", null ], + [ "BulkReadAsync", "interfaceDatalayer_1_1IClient.html#a6dc46e507783fe6d15036d6fa301cb9d", null ], + [ "BulkReadMetadataAsync", "interfaceDatalayer_1_1IClient.html#a1e5cc013dc8b3407cd34339c306430ac", null ], + [ "BulkRemoveAsync", "interfaceDatalayer_1_1IClient.html#a165a53bf0734efb2bac392a389ba64de", null ], + [ "BulkWriteAsync", "interfaceDatalayer_1_1IClient.html#a39d4baf4c8cfd7d268f23a9146d77de7", null ], + [ "CreateAsync", "interfaceDatalayer_1_1IClient.html#a05de64147a8ba02516d888a7c2aa38e6", null ], + [ "CreateSubscriptionAsync", "interfaceDatalayer_1_1IClient.html#a5486fb6764aaa88fb8d6ed2deb919afb", null ], + [ "Ping", "interfaceDatalayer_1_1IClient.html#a3565328c511f7a9e4375ce5181ceb963", null ], + [ "PingAsync", "interfaceDatalayer_1_1IClient.html#a2bb4b58b112157d60f75c50855ff0665", null ], + [ "ReadAsync", "interfaceDatalayer_1_1IClient.html#af55a294497d5e92c38bb1f0762f4a2d3", null ], + [ "ReadAsync", "interfaceDatalayer_1_1IClient.html#ae7bd7d468559ff01a4a13f8e61ab0fb5", null ], + [ "ReadJsonAsync", "interfaceDatalayer_1_1IClient.html#a10534a2fa13538f83a90334f33bf5049", null ], + [ "ReadJsonAsync", "interfaceDatalayer_1_1IClient.html#a029b51142457434da721389966b60890", null ], + [ "ReadMetadataAsync", "interfaceDatalayer_1_1IClient.html#af5dde224ead410a62983392efcba4519", null ], + [ "ReadMultiAsync", "interfaceDatalayer_1_1IClient.html#a51aa98c666c856a83b44287ef19addb4", null ], + [ "Remove", "interfaceDatalayer_1_1IClient.html#a108feb5466129ef3e52da999fcce973b", null ], + [ "RemoveAsync", "interfaceDatalayer_1_1IClient.html#acbf69f9262439e9dac2c071aa91dde7a", null ], + [ "SetTimeout", "interfaceDatalayer_1_1IClient.html#ae73e0f8bb934143fb0d5c2cc686025a8", null ], + [ "Write", "interfaceDatalayer_1_1IClient.html#a7eec67cdf8d58b6cbb256388e3fc9fd1", null ], + [ "WriteAsync", "interfaceDatalayer_1_1IClient.html#a6fbe817ec1d4e05eaee1c5e48165eaef", null ], + [ "WriteJsonAsync", "interfaceDatalayer_1_1IClient.html#ab739649d70861ba3b9c83cf7f8695ca2", null ], + [ "WriteMulti", "interfaceDatalayer_1_1IClient.html#a05efe83614a91f69829046a328915f31", null ], + [ "WriteMultiAsync", "interfaceDatalayer_1_1IClient.html#a8f13cd9bf4f1ab9efe0f659c252bed05", null ], + [ "DLR_RESULT", "interfaceDatalayer_1_1IClient.html#a0d46a3e31a1859c7602d7d671bf75fc8", null ], + [ "result", "interfaceDatalayer_1_1IClient.html#a7e346f0f62357ba18c4ede5c5a84d787", null ], + [ "result", "interfaceDatalayer_1_1IClient.html#a045f4dd7ccc04a6dd461a9af8594a7d9", null ], + [ "AuthToken", "interfaceDatalayer_1_1IClient.html#ab020460331b76e524941ab46ac6ebdfa", null ], + [ "ConnectionStatus", "interfaceDatalayer_1_1IClient.html#af3825f7c388e9c468b2908d84f94826a", null ], + [ "IsConnected", "interfaceDatalayer_1_1IClient.html#abac0113ff571c017320394966a1ae6d5", null ], + [ "System", "interfaceDatalayer_1_1IClient.html#ad21e12c22b827906a29fcdf13646e750", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1IClient.png b/3.4.0/api/net/html/interfaceDatalayer_1_1IClient.png new file mode 100644 index 000000000..f6b76e19a Binary files /dev/null and b/3.4.0/api/net/html/interfaceDatalayer_1_1IClient.png differ diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1IClientAsyncBulkResult-members.html b/3.4.0/api/net/html/interfaceDatalayer_1_1IClientAsyncBulkResult-members.html new file mode 100644 index 000000000..95fb98c35 --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1IClientAsyncBulkResult-members.html @@ -0,0 +1,117 @@ + + + + + + + +ctrlX Data Layer .NET API: Member List +Member List + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
IClientAsyncBulkResult Member List
+
+
+ +

This is the complete list of members for IClientAsyncBulkResult, including all inherited members.

+ + + +
ItemsIClientAsyncBulkResult
ResultIClientAsyncBulkResult
+
+ + + + diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1IClientAsyncBulkResult.html b/3.4.0/api/net/html/interfaceDatalayer_1_1IClientAsyncBulkResult.html new file mode 100644 index 000000000..545737de7 --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1IClientAsyncBulkResult.html @@ -0,0 +1,189 @@ + + + + + + + +ctrlX Data Layer .NET API: IClientAsyncBulkResult Interface Reference +IClientAsyncBulkResult Interface Reference + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
IClientAsyncBulkResult Interface Reference
+
+
+ +

The IClientAsyncBulkResult interface. + More...

+ + + + + + + + +

+Properties

IBulkItem[] Items [get]
 Gets the items.
 
DLR_RESULT Result [get]
 Gets the result.
 
+

Detailed Description

+

The IClientAsyncBulkResult interface.

+ +

Definition at line 6 of file IClientAsyncBulkResult.cs.

+

Property Documentation

+ +

◆ Items

+ +
+
+ + + + + +
+ + + + +
IBulkItem [] Items
+
+get
+
+ +

Gets the items.

+ +

Definition at line 11 of file IClientAsyncBulkResult.cs.

+ +
+
+ +

◆ Result

+ +
+
+ + + + + +
+ + + + +
DLR_RESULT Result
+
+get
+
+ +

Gets the result.

+ +

Definition at line 16 of file IClientAsyncBulkResult.cs.

+ +
+
+
The documentation for this interface was generated from the following file: +
+
+ + + + diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1IClientAsyncBulkResult.js b/3.4.0/api/net/html/interfaceDatalayer_1_1IClientAsyncBulkResult.js new file mode 100644 index 000000000..e110f5257 --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1IClientAsyncBulkResult.js @@ -0,0 +1,5 @@ +var interfaceDatalayer_1_1IClientAsyncBulkResult = +[ + [ "Items", "interfaceDatalayer_1_1IClientAsyncBulkResult.html#ad07a380085308ef296066fccb14a7788", null ], + [ "Result", "interfaceDatalayer_1_1IClientAsyncBulkResult.html#afb2785bf656462fedb73dc757ebeba40", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1IClientAsyncResult-members.html b/3.4.0/api/net/html/interfaceDatalayer_1_1IClientAsyncResult-members.html new file mode 100644 index 000000000..e98b97977 --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1IClientAsyncResult-members.html @@ -0,0 +1,117 @@ + + + + + + + +ctrlX Data Layer .NET API: Member List +Member List + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
IClientAsyncResult Member List
+
+
+ +

This is the complete list of members for IClientAsyncResult, including all inherited members.

+ + + +
ResultIClientAsyncResult
ValueIClientAsyncResult
+
+ + + + diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1IClientAsyncResult.html b/3.4.0/api/net/html/interfaceDatalayer_1_1IClientAsyncResult.html new file mode 100644 index 000000000..1ebe4545e --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1IClientAsyncResult.html @@ -0,0 +1,198 @@ + + + + + + + +ctrlX Data Layer .NET API: IClientAsyncResult Interface Reference +IClientAsyncResult Interface Reference + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
IClientAsyncResult Interface Reference
+
+
+ +

The IClientAsyncResult interface. + More...

+
+Inheritance diagram for IClientAsyncResult:
+
+
+ + +ISubscriptionAsyncResult + +
+ + + + + + + + +

+Properties

DLR_RESULT Result [get]
 Gets the result.
 
IVariant Value [get]
 Gets the value.
 
+

Detailed Description

+

The IClientAsyncResult interface.

+ +

Definition at line 6 of file IClientAsyncResult.cs.

+

Property Documentation

+ +

◆ Result

+ +
+
+ + + + + +
+ + + + +
DLR_RESULT Result
+
+get
+
+ +

Gets the result.

+ +

Definition at line 16 of file IClientAsyncResult.cs.

+ +
+
+ +

◆ Value

+ +
+
+ + + + + +
+ + + + +
IVariant Value
+
+get
+
+ +

Gets the value.

+ +

Definition at line 11 of file IClientAsyncResult.cs.

+ +
+
+
The documentation for this interface was generated from the following file: +
+
+ + + + diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1IClientAsyncResult.js b/3.4.0/api/net/html/interfaceDatalayer_1_1IClientAsyncResult.js new file mode 100644 index 000000000..f078495ba --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1IClientAsyncResult.js @@ -0,0 +1,5 @@ +var interfaceDatalayer_1_1IClientAsyncResult = +[ + [ "Result", "interfaceDatalayer_1_1IClientAsyncResult.html#afb2785bf656462fedb73dc757ebeba40", null ], + [ "Value", "interfaceDatalayer_1_1IClientAsyncResult.html#a9503c94b75a670263019963baa18c20d", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1IClientAsyncResult.png b/3.4.0/api/net/html/interfaceDatalayer_1_1IClientAsyncResult.png new file mode 100644 index 000000000..8996af445 Binary files /dev/null and b/3.4.0/api/net/html/interfaceDatalayer_1_1IClientAsyncResult.png differ diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1IConverter-members.html b/3.4.0/api/net/html/interfaceDatalayer_1_1IConverter-members.html new file mode 100644 index 000000000..3a230373f --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1IConverter-members.html @@ -0,0 +1,122 @@ + + + + + + + +ctrlX Data Layer .NET API: Member List +Member List + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
IConverter Member List
+
+
+ +

This is the complete list of members for IConverter, including all inherited members.

+ + + + + + + + +
GenerateJsonComplex(IVariant valueFlatbuffers, IVariant typeFlatbuffers, int indentStep=0) (defined in IConverter)IConverter
GenerateJsonSimple(IVariant value, int indentStep=0) (defined in IConverter)IConverter
GetSchema(DLR_SCHEMA schema) (defined in IConverter)IConverter
ParseJsonComplex(string json, IVariant typeFlatbuffers) (defined in IConverter)IConverter
ParseJsonSimple(string json) (defined in IConverter)IConverter
resultIConverter
value (defined in IConverter)IConverter
+
+ + + + diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1IConverter.html b/3.4.0/api/net/html/interfaceDatalayer_1_1IConverter.html new file mode 100644 index 000000000..bc545fc5d --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1IConverter.html @@ -0,0 +1,256 @@ + + + + + + + +ctrlX Data Layer .NET API: IConverter Interface Reference +IConverter Interface Reference + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
IConverter Interface Reference
+
+
+ +

The IConverter interface. + More...

+ + + + + + + + + + + + +

+Public Member Functions

+DLR_RESULT IVariant value GenerateJsonComplex (IVariant valueFlatbuffers, IVariant typeFlatbuffers, int indentStep=0)
 
+DLR_RESULT IVariant value GenerateJsonSimple (IVariant value, int indentStep=0)
 
+DLR_RESULT IVariant value GetSchema (DLR_SCHEMA schema)
 
+DLR_RESULT IVariant IVariant error ParseJsonComplex (string json, IVariant typeFlatbuffers)
 
+DLR_RESULT IVariant IVariant error ParseJsonSimple (string json)
 
+ + + + + + +

+Public Attributes

DLR_RESULT result
 Generates a JSON string out of a simple Variant.
 
DLR_RESULT IVariant value
 
+

Detailed Description

+

The IConverter interface.

+ +

Definition at line 8 of file IConverter.cs.

+

Member Data Documentation

+ +

◆ result

+ +
+
+ + + + +
DLR_RESULT result
+
+ +

Generates a JSON string out of a simple Variant.

+

Gets the schema.

+

Parses a JSON string out of a complex Variant (flatbuffers).

+

Parses a JSON string out of a simple Variant.

+

Generates a JSON string out of a complex Variant (flatbuffers).

+
Parameters
+ + + +
valueValue to set.
indentStepIndentation length for JSON string.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + +
ArgumentNullExceptionArgument cannot be null.
+
+
+
Parameters
+ + + + +
valueFlatbuffersValue of the complex Variant (flatbuffers).
typeFlatbuffersVariant which contains the type (schema) of the flatbuffers.
indentStepIndentation length for JSON string.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + +
ArgumentNullExceptionArgument cannot be null.
+
+
+
Parameters
+ + +
jsonData of the Variant as a JSON string.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + +
ArgumentNullExceptionArgument cannot be null.
+
+
+
Parameters
+ + + +
jsonData of the Variant as a JSON string.
typeFlatbuffersVariant which contains the type (schema) of the flatbuffers.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + +
ArgumentNullExceptionArgument cannot be null.
+
+
+
Parameters
+ + +
schemaRequested schema.
+
+
+
Returns
Result of the method call.
+ +

Definition at line 17 of file IConverter.cs.

+ +
+
+ +

◆ value

+ +
+
+ + + + +
DLR_RESULT IVariant value
+
+ +

Definition at line 35 of file IConverter.cs.

+ +
+
+
The documentation for this interface was generated from the following file:
    +
  • D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/IConverter.cs
  • +
+
+
+ + + + diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1IConverter.js b/3.4.0/api/net/html/interfaceDatalayer_1_1IConverter.js new file mode 100644 index 000000000..a9d683c36 --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1IConverter.js @@ -0,0 +1,4 @@ +var interfaceDatalayer_1_1IConverter = +[ + [ "result", "interfaceDatalayer_1_1IConverter.html#a7e346f0f62357ba18c4ede5c5a84d787", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1IDataChangedEventArgs-members.html b/3.4.0/api/net/html/interfaceDatalayer_1_1IDataChangedEventArgs-members.html new file mode 100644 index 000000000..eb0c4d624 --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1IDataChangedEventArgs-members.html @@ -0,0 +1,119 @@ + + + + + + + +ctrlX Data Layer .NET API: Member List +Member List + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
IDataChangedEventArgs Member List
+
+
+ +

This is the complete list of members for IDataChangedEventArgs, including all inherited members.

+ + + + + +
CountIDataChangedEventArgs
ItemIDataChangedEventArgs
ResultIDataChangedEventArgs
UserDataIDataChangedEventArgs
+
+ + + + diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1IDataChangedEventArgs.html b/3.4.0/api/net/html/interfaceDatalayer_1_1IDataChangedEventArgs.html new file mode 100644 index 000000000..f7cb6090b --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1IDataChangedEventArgs.html @@ -0,0 +1,247 @@ + + + + + + + +ctrlX Data Layer .NET API: IDataChangedEventArgs Interface Reference +IDataChangedEventArgs Interface Reference + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
IDataChangedEventArgs Interface Reference
+
+
+ +

The IDataChangedEventArgs interface. + More...

+ + + + + + + + + + + + + + +

+Properties

uint Count [get]
 Gets the count.
 
INotifyItem Item [get]
 Gets the item.
 
DLR_RESULT Result [get]
 Gets the result.
 
object UserData [get]
 Gets the user data.
 
+

Detailed Description

+

The IDataChangedEventArgs interface.

+ +

Definition at line 6 of file IDataChangedEventArgs.cs.

+

Property Documentation

+ +

◆ Count

+ +
+
+ + + + + +
+ + + + +
uint Count
+
+get
+
+ +

Gets the count.

+ +

Definition at line 21 of file IDataChangedEventArgs.cs.

+ +
+
+ +

◆ Item

+ +
+
+ + + + + +
+ + + + +
INotifyItem Item
+
+get
+
+ +

Gets the item.

+ +

Definition at line 16 of file IDataChangedEventArgs.cs.

+ +
+
+ +

◆ Result

+ +
+
+ + + + + +
+ + + + +
DLR_RESULT Result
+
+get
+
+ +

Gets the result.

+ +

Definition at line 11 of file IDataChangedEventArgs.cs.

+ +
+
+ +

◆ UserData

+ +
+
+ + + + + +
+ + + + +
object UserData
+
+get
+
+ +

Gets the user data.

+ +

Definition at line 26 of file IDataChangedEventArgs.cs.

+ +
+
+
The documentation for this interface was generated from the following file: +
+
+ + + + diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1IDataChangedEventArgs.js b/3.4.0/api/net/html/interfaceDatalayer_1_1IDataChangedEventArgs.js new file mode 100644 index 000000000..d5a43b56e --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1IDataChangedEventArgs.js @@ -0,0 +1,7 @@ +var interfaceDatalayer_1_1IDataChangedEventArgs = +[ + [ "Count", "interfaceDatalayer_1_1IDataChangedEventArgs.html#a4683de68c1f0fc6be6aa3547478fdfdc", null ], + [ "Item", "interfaceDatalayer_1_1IDataChangedEventArgs.html#aab457c0783b24f8609d589fc10dde237", null ], + [ "Result", "interfaceDatalayer_1_1IDataChangedEventArgs.html#afb2785bf656462fedb73dc757ebeba40", null ], + [ "UserData", "interfaceDatalayer_1_1IDataChangedEventArgs.html#aeeccb94edafa8ab78eb999c2b2f97572", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1IDatalayerSystem-members.html b/3.4.0/api/net/html/interfaceDatalayer_1_1IDatalayerSystem-members.html new file mode 100644 index 000000000..ffc1a68c8 --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1IDatalayerSystem-members.html @@ -0,0 +1,123 @@ + + + + + + + +ctrlX Data Layer .NET API: Member List +Member List + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
IDatalayerSystem Member List
+
+ +
+ + + + diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1IDatalayerSystem.html b/3.4.0/api/net/html/interfaceDatalayer_1_1IDatalayerSystem.html new file mode 100644 index 000000000..d5f044732 --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1IDatalayerSystem.html @@ -0,0 +1,414 @@ + + + + + + + +ctrlX Data Layer .NET API: IDatalayerSystem Interface Reference +IDatalayerSystem Interface Reference + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
IDatalayerSystem Interface Reference
+
+
+ +

The IDatalayerSystem interface. + More...

+
+Inheritance diagram for IDatalayerSystem:
+
+
+ + +INativeDisposable +DatalayerSystem + +
+ + + + + + + + +

+Public Member Functions

void Start (bool startBroker)
 Starts the DatalayerSystem.
 
void Stop ()
 Stops the DatalayerSystem.
 
+ + + + + + + + + + + + + + + + + + + + +

+Properties

string BfbsPath [set]
 Sets the binary Flatbuffer path, which contains *.bfbs files.
 
IConverter Converter [get]
 Gets the Converter for Variant to JSON conversions.
 
IFactory Factory [get]
 Gets the Factory to create Clients and Providers.

Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
InvalidOperationExceptionOperation not allowed.
+
+
+
 
string IpcPath [get]
 Gets the interprocess communication path.
 
bool IsStarted [get]
 Checks if the DatalayerSystem is started.
 
- Properties inherited from INativeDisposable
bool IsDisposed [get]
 Checks disposed.
 
+

Detailed Description

+

The IDatalayerSystem interface.

+ +

Definition at line 8 of file IDatalayerSystem.cs.

+

Member Function Documentation

+ +

◆ Start()

+ +
+
+ + + + + + + + +
void Start (bool startBroker)
+
+ +

Starts the DatalayerSystem.

+
Parameters
+ + +
startBrokerUse true to start a broker. If you are a user of the ctrlX Data Layer, set to false.
+
+
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+

Example

using var system = new DatalayerSystem();
+
system.Start(startBroker: false);
+
Provides the implementation for IDatalayerSystem.
+
+

Implemented in DatalayerSystem.

+ +
+
+ +

◆ Stop()

+ +
+
+ + + + + + + +
void Stop ()
+
+ +

Stops the DatalayerSystem.

+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implemented in DatalayerSystem.

+ +
+
+

Property Documentation

+ +

◆ BfbsPath

+ +
+
+ + + + + +
+ + + + +
string BfbsPath
+
+set
+
+ +

Sets the binary Flatbuffer path, which contains *.bfbs files.

+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
+
+
+ +

Implemented in DatalayerSystem.

+ +

Definition at line 60 of file IDatalayerSystem.cs.

+ +
+
+ +

◆ Converter

+ +
+
+ + + + + +
+ + + + +
IConverter Converter
+
+get
+
+ +

Gets the Converter for Variant to JSON conversions.

+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implemented in DatalayerSystem.

+ +

Definition at line 53 of file IDatalayerSystem.cs.

+ +
+
+ +

◆ Factory

+ +
+
+ + + + + +
+ + + + +
IFactory Factory
+
+get
+
+ +

Gets the Factory to create Clients and Providers.

Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
InvalidOperationExceptionOperation not allowed.
+
+
+

+ +

Implemented in DatalayerSystem.

+ +

Definition at line 47 of file IDatalayerSystem.cs.

+ +
+
+ +

◆ IpcPath

+ +
+
+ + + + + +
+ + + + +
string IpcPath
+
+get
+
+ +

Gets the interprocess communication path.

+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implemented in DatalayerSystem.

+ +

Definition at line 14 of file IDatalayerSystem.cs.

+ +
+
+ +

◆ IsStarted

+ +
+
+ + + + + +
+ + + + +
bool IsStarted
+
+get
+
+ +

Checks if the DatalayerSystem is started.

+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implemented in DatalayerSystem.

+ +

Definition at line 20 of file IDatalayerSystem.cs.

+ +
+
+
The documentation for this interface was generated from the following file: +
+
+ + + + diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1IDatalayerSystem.js b/3.4.0/api/net/html/interfaceDatalayer_1_1IDatalayerSystem.js new file mode 100644 index 000000000..f474f2906 --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1IDatalayerSystem.js @@ -0,0 +1,10 @@ +var interfaceDatalayer_1_1IDatalayerSystem = +[ + [ "Start", "interfaceDatalayer_1_1IDatalayerSystem.html#ab0f613d2e1cd090448e5543881f1d70d", null ], + [ "Stop", "interfaceDatalayer_1_1IDatalayerSystem.html#a17a237457e57625296e6b24feb19c60a", null ], + [ "BfbsPath", "interfaceDatalayer_1_1IDatalayerSystem.html#a7aab1ae266e615d729f60decf8a6de5f", null ], + [ "Converter", "interfaceDatalayer_1_1IDatalayerSystem.html#aa2305cf58e178ab1f86fb44b27827da1", null ], + [ "Factory", "interfaceDatalayer_1_1IDatalayerSystem.html#abefeb4acffc919ce04ebd948daa06b85", null ], + [ "IpcPath", "interfaceDatalayer_1_1IDatalayerSystem.html#a07d6bca7b87c1e03c76407fdf8fe7006", null ], + [ "IsStarted", "interfaceDatalayer_1_1IDatalayerSystem.html#a9414c6daba9ce4aab80fa4c7ed02d507", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1IDatalayerSystem.png b/3.4.0/api/net/html/interfaceDatalayer_1_1IDatalayerSystem.png new file mode 100644 index 000000000..fcf72c039 Binary files /dev/null and b/3.4.0/api/net/html/interfaceDatalayer_1_1IDatalayerSystem.png differ diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1IFactory-members.html b/3.4.0/api/net/html/interfaceDatalayer_1_1IFactory-members.html new file mode 100644 index 000000000..8953ff42e --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1IFactory-members.html @@ -0,0 +1,117 @@ + + + + + + + +ctrlX Data Layer .NET API: Member List +Member List + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
IFactory Member List
+
+
+ +

This is the complete list of members for IFactory, including all inherited members.

+ + + +
CreateClient(string remote)IFactory
CreateProvider(string remote)IFactory
+
+ + + + diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1IFactory.html b/3.4.0/api/net/html/interfaceDatalayer_1_1IFactory.html new file mode 100644 index 000000000..53ace9789 --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1IFactory.html @@ -0,0 +1,203 @@ + + + + + + + +ctrlX Data Layer .NET API: IFactory Interface Reference +IFactory Interface Reference + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
IFactory Interface Reference
+
+
+ +

The IFactory interface. + More...

+ + + + + + + + +

+Public Member Functions

IClient CreateClient (string remote)
 Creates a ctrlX Data Layer client and connects. Automatically reconnects if the connection is interrupted.
 
IProvider CreateProvider (string remote)
 Creates a ctrlX Data Layer provider and connects. Automatically reconnects if the connection is interrupted.
 
+

Detailed Description

+

The IFactory interface.

+ +

Definition at line 8 of file IFactory.cs.

+

Member Function Documentation

+ +

◆ CreateClient()

+ +
+
+ + + + + + + + +
IClient CreateClient (string remote)
+
+ +

Creates a ctrlX Data Layer client and connects. Automatically reconnects if the connection is interrupted.

+
Parameters
+ + +
remoteRemote address of the ctrlX Data Layer
+
+
+
Exceptions
+ + +
ArgumentNullExceptionArgument cannot be null.
+
+
+
Returns
The created client
+ +
+
+ +

◆ CreateProvider()

+ +
+
+ + + + + + + + +
IProvider CreateProvider (string remote)
+
+ +

Creates a ctrlX Data Layer provider and connects. Automatically reconnects if the connection is interrupted.

+
Parameters
+ + +
remoteRemote address of the ctrlX Data Layer
+
+
+
Exceptions
+ + +
ArgumentNullExceptionArgument cannot be null.
+
+
+
Returns
The created provider
+ +
+
+
The documentation for this interface was generated from the following file:
    +
  • D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/IFactory.cs
  • +
+
+
+ + + + diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1IFactory.js b/3.4.0/api/net/html/interfaceDatalayer_1_1IFactory.js new file mode 100644 index 000000000..076a092e1 --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1IFactory.js @@ -0,0 +1,5 @@ +var interfaceDatalayer_1_1IFactory = +[ + [ "CreateClient", "interfaceDatalayer_1_1IFactory.html#abe392c5fbd1a189e5e27c55182d7669d", null ], + [ "CreateProvider", "interfaceDatalayer_1_1IFactory.html#ac67764fa327276d3d06ac257dfd044e5", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1INativeDisposable-members.html b/3.4.0/api/net/html/interfaceDatalayer_1_1INativeDisposable-members.html new file mode 100644 index 000000000..3b4db64b8 --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1INativeDisposable-members.html @@ -0,0 +1,116 @@ + + + + + + + +ctrlX Data Layer .NET API: Member List +Member List + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
INativeDisposable Member List
+
+
+ +

This is the complete list of members for INativeDisposable, including all inherited members.

+ + +
IsDisposedINativeDisposable
+
+ + + + diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1INativeDisposable.html b/3.4.0/api/net/html/interfaceDatalayer_1_1INativeDisposable.html new file mode 100644 index 000000000..c3e66ef54 --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1INativeDisposable.html @@ -0,0 +1,179 @@ + + + + + + + +ctrlX Data Layer .NET API: INativeDisposable Interface Reference +INativeDisposable Interface Reference + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
INativeDisposable Interface Reference
+
+
+ +

The INativeDisposable interface. + More...

+
+Inheritance diagram for INativeDisposable:
+
+
+ + +IBulk +IClient +IDatalayerSystem +IProvider +IProviderNode +ISubscription +IVariant +DatalayerSystem +Variant + +
+ + + + + +

+Properties

bool IsDisposed [get]
 Checks disposed.
 
+

Detailed Description

+

The INativeDisposable interface.

+ +

Definition at line 8 of file INativeDisposable.cs.

+

Property Documentation

+ +

◆ IsDisposed

+ +
+
+ + + + + +
+ + + + +
bool IsDisposed
+
+get
+
+ +

Checks disposed.

+ +

Implemented in DatalayerSystem, and Variant.

+ +

Definition at line 13 of file INativeDisposable.cs.

+ +
+
+
The documentation for this interface was generated from the following file: +
+
+ + + + diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1INativeDisposable.js b/3.4.0/api/net/html/interfaceDatalayer_1_1INativeDisposable.js new file mode 100644 index 000000000..5a4de0002 --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1INativeDisposable.js @@ -0,0 +1,4 @@ +var interfaceDatalayer_1_1INativeDisposable = +[ + [ "IsDisposed", "interfaceDatalayer_1_1INativeDisposable.html#ab96a71c70205ed1aa4af692ee7f35403", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1INativeDisposable.png b/3.4.0/api/net/html/interfaceDatalayer_1_1INativeDisposable.png new file mode 100644 index 000000000..e1ff654f9 Binary files /dev/null and b/3.4.0/api/net/html/interfaceDatalayer_1_1INativeDisposable.png differ diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1INotifyItem-members.html b/3.4.0/api/net/html/interfaceDatalayer_1_1INotifyItem-members.html new file mode 100644 index 000000000..5ddb4d634 --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1INotifyItem-members.html @@ -0,0 +1,117 @@ + + + + + + + +ctrlX Data Layer .NET API: Member List +Member List + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
INotifyItem Member List
+
+
+ +

This is the complete list of members for INotifyItem, including all inherited members.

+ + + +
InfoINotifyItem
ValueINotifyItem
+
+ + + + diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1INotifyItem.html b/3.4.0/api/net/html/interfaceDatalayer_1_1INotifyItem.html new file mode 100644 index 000000000..73ae587c9 --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1INotifyItem.html @@ -0,0 +1,189 @@ + + + + + + + +ctrlX Data Layer .NET API: INotifyItem Interface Reference +INotifyItem Interface Reference + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
INotifyItem Interface Reference
+
+
+ +

The INotifyItem interface. + More...

+ + + + + + + + +

+Properties

IVariant Info [get]
 Gets the info.
 
IVariant Value [get]
 Gets the value.
 
+

Detailed Description

+

The INotifyItem interface.

+ +

Definition at line 6 of file INotifyItem.cs.

+

Property Documentation

+ +

◆ Info

+ +
+
+ + + + + +
+ + + + +
IVariant Info
+
+get
+
+ +

Gets the info.

+ +

Definition at line 16 of file INotifyItem.cs.

+ +
+
+ +

◆ Value

+ +
+
+ + + + + +
+ + + + +
IVariant Value
+
+get
+
+ +

Gets the value.

+ +

Definition at line 11 of file INotifyItem.cs.

+ +
+
+
The documentation for this interface was generated from the following file:
    +
  • D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/INotifyItem.cs
  • +
+
+
+ + + + diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1INotifyItem.js b/3.4.0/api/net/html/interfaceDatalayer_1_1INotifyItem.js new file mode 100644 index 000000000..858268246 --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1INotifyItem.js @@ -0,0 +1,5 @@ +var interfaceDatalayer_1_1INotifyItem = +[ + [ "Info", "interfaceDatalayer_1_1INotifyItem.html#aaca500fdbf156620e95d3fbf608a1e9b", null ], + [ "Value", "interfaceDatalayer_1_1INotifyItem.html#a9503c94b75a670263019963baa18c20d", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1IProvider-members.html b/3.4.0/api/net/html/interfaceDatalayer_1_1IProvider-members.html new file mode 100644 index 000000000..2a7a00590 --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1IProvider-members.html @@ -0,0 +1,131 @@ + + + + + + + +ctrlX Data Layer .NET API: Member List +Member List + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
IProvider Member List
+
+
+ +

This is the complete list of members for IProvider, including all inherited members.

+ + + + + + + + + + + + + + + + + +
AuthTokenIProvider
DLR_RESULTIProvider
IsConnectedIProvider
IsDisposedINativeDisposable
PublishEvent(IVariant data, IVariant eventInfo)IProvider
RegisteredNodePaths() (defined in IProvider)IProvider
RegisteredType(string address) (defined in IProvider)IProvider
RegisterNode(string address, IProviderNodeHandler handler) (defined in IProvider)IProvider
RegisterType(string address, string bfbsPath)IProvider
RegisterTypeVariant(string address, IVariant flatbuffers)IProvider
RejectedNodePaths() (defined in IProvider)IProvider
Start()IProvider
Stop()IProvider
SystemIProvider
UnregisterNode(string address)IProvider
UnregisterType(string address)IProvider
+
+ + + + diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1IProvider.html b/3.4.0/api/net/html/interfaceDatalayer_1_1IProvider.html new file mode 100644 index 000000000..aefc2e6e7 --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1IProvider.html @@ -0,0 +1,595 @@ + + + + + + + +ctrlX Data Layer .NET API: IProvider Interface Reference +IProvider Interface Reference + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
IProvider Interface Reference
+
+
+ +

The IProvider interface. + More...

+
+Inheritance diagram for IProvider:
+
+
+ + +INativeDisposable + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

DLR_RESULT PublishEvent (IVariant data, IVariant eventInfo)
 Publishes an event.
 
+IVariant RegisteredNodePaths ()
 
+IVariant RegisteredType (string address)
 
+IProviderNode RegisterNode (string address, IProviderNodeHandler handler)
 
DLR_RESULT RegisterType (string address, string bfbsPath)
 Registers the type to the ctrlX Data Layer.
 
DLR_RESULT RegisterTypeVariant (string address, IVariant flatbuffers)
 Registers the type to the ctrlX Data Layer.
 
+IVariant RejectedNodePaths ()
 
DLR_RESULT Start ()
 Starts the provider.
 
DLR_RESULT Stop ()
 Stops the provider.
 
DLR_RESULT UnregisterNode (string address)
 Unregisters the node from the ctrlX Data Layer.
 
DLR_RESULT UnregisterType (string address)
 Unregisters the type from the ctrlX Data Layer.
 
+ + + + +

+Public Attributes

 DLR_RESULT
 Registers the node to the ctrlX Data Layer.
 
+ + + + + + + + + + + + + + +

+Properties

IVariant AuthToken [get]
 Gets the authentication token (JWT) as flatbuffers 'Token' while processing requests.
 
bool IsConnected [get]
 Checks the connection.
 
IDatalayerSystem System [get]
 Gets the system.
 
- Properties inherited from INativeDisposable
bool IsDisposed [get]
 Checks disposed.
 
+

Detailed Description

+

The IProvider interface.

+ +

Definition at line 8 of file IProvider.cs.

+

Member Function Documentation

+ +

◆ PublishEvent()

+ +
+
+ + + + + + + + + + + + + + + + + + +
DLR_RESULT PublishEvent (IVariant data,
IVariant eventInfo 
)
+
+ +

Publishes an event.

+
Parameters
+ + + +
dataThe event data.
eventInfoThe Event info (flatbuffers). Set timestamp/sequenceNumber property to Zero for automatic creation/increment.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
+
+
+ +
+
+ +

◆ RegisterType()

+ +
+
+ + + + + + + + + + + + + + + + + + +
DLR_RESULT RegisterType (string address,
string bfbsPath 
)
+
+ +

Registers the type to the ctrlX Data Layer.

+
Parameters
+ + + +
addressAddress of the node.
bfbsPathPath to flatbuffers type binary bfbs file.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
+
+
+ +
+
+ +

◆ RegisterTypeVariant()

+ +
+
+ + + + + + + + + + + + + + + + + + +
DLR_RESULT RegisterTypeVariant (string address,
IVariant flatbuffers 
)
+
+ +

Registers the type to the ctrlX Data Layer.

+
Parameters
+ + + +
addressAddress of the node.
flatbuffersVariant with flatbuffers type.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
+
+
+ +
+
+ +

◆ Start()

+ +
+
+ + + + + + + +
DLR_RESULT Start ()
+
+ +

Starts the provider.

+
Returns
Result of the method call.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +
+
+ +

◆ Stop()

+ +
+
+ + + + + + + +
DLR_RESULT Stop ()
+
+ +

Stops the provider.

+
Returns
Result of method call</returns
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+
+ +
+
+ +

◆ UnregisterNode()

+ +
+
+ + + + + + + + +
DLR_RESULT UnregisterNode (string address)
+
+ +

Unregisters the node from the ctrlX Data Layer.

+
Parameters
+ + +
addressAddress of the node.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
+
+
+ +
+
+ +

◆ UnregisterType()

+ +
+
+ + + + + + + + +
DLR_RESULT UnregisterType (string address)
+
+ +

Unregisters the type from the ctrlX Data Layer.

+
Parameters
+ + +
addressAddress of the node.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
+
+
+ +
+
+

Member Data Documentation

+ +

◆ DLR_RESULT

+ +
+
+ + + + +
DLR_RESULT
+
+ +

Registers the node to the ctrlX Data Layer.

+

Gets the current rejected node paths.

+

Get the variant of a registered type (flatbuffers).

+

Gets the current registered node paths.

+
Parameters
+ + + +
addressAddress of the node.
handlerReference to the node handler.
+
+
+
Returns
The corresponding provider node.
+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
+
+
+ +

Definition at line 75 of file IProvider.cs.

+ +
+
+

Property Documentation

+ +

◆ AuthToken

+ +
+
+ + + + + +
+ + + + +
IVariant AuthToken
+
+get
+
+ +

Gets the authentication token (JWT) as flatbuffers 'Token' while processing requests.

+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
InvalidOperationExceptionOperation not allowed.
+
+
+ +

Definition at line 20 of file IProvider.cs.

+ +
+
+ +

◆ IsConnected

+ +
+
+ + + + + +
+ + + + +
bool IsConnected
+
+get
+
+ +

Checks the connection.

+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Definition at line 26 of file IProvider.cs.

+ +
+
+ +

◆ System

+ +
+
+ + + + + +
+ + + + +
IDatalayerSystem System
+
+get
+
+ +

Gets the system.

+ +

Definition at line 13 of file IProvider.cs.

+ +
+
+
The documentation for this interface was generated from the following file:
    +
  • D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/IProvider.cs
  • +
+
+
+ + + + diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1IProvider.js b/3.4.0/api/net/html/interfaceDatalayer_1_1IProvider.js new file mode 100644 index 000000000..6daff980d --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1IProvider.js @@ -0,0 +1,14 @@ +var interfaceDatalayer_1_1IProvider = +[ + [ "PublishEvent", "interfaceDatalayer_1_1IProvider.html#a5af983a79238a9aee2746854e6cb567f", null ], + [ "RegisterType", "interfaceDatalayer_1_1IProvider.html#a7ee20a79cd1b758cc012e45411dd84b5", null ], + [ "RegisterTypeVariant", "interfaceDatalayer_1_1IProvider.html#a6129cf171c635461be79c0f2a63a0385", null ], + [ "Start", "interfaceDatalayer_1_1IProvider.html#abcc6b18c9d4fb2ed70e990f00016c0fe", null ], + [ "Stop", "interfaceDatalayer_1_1IProvider.html#a8e21506e57d91e044ccd2d276039df81", null ], + [ "UnregisterNode", "interfaceDatalayer_1_1IProvider.html#a0fafea31930342e5f804cf702a4f4d2e", null ], + [ "UnregisterType", "interfaceDatalayer_1_1IProvider.html#a65eb0f25d6f7d0a06598e7d53a524bf5", null ], + [ "DLR_RESULT", "interfaceDatalayer_1_1IProvider.html#a0d46a3e31a1859c7602d7d671bf75fc8", null ], + [ "AuthToken", "interfaceDatalayer_1_1IProvider.html#ab020460331b76e524941ab46ac6ebdfa", null ], + [ "IsConnected", "interfaceDatalayer_1_1IProvider.html#abac0113ff571c017320394966a1ae6d5", null ], + [ "System", "interfaceDatalayer_1_1IProvider.html#ad21e12c22b827906a29fcdf13646e750", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1IProvider.png b/3.4.0/api/net/html/interfaceDatalayer_1_1IProvider.png new file mode 100644 index 000000000..00ed625b5 Binary files /dev/null and b/3.4.0/api/net/html/interfaceDatalayer_1_1IProvider.png differ diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1IProviderNode-members.html b/3.4.0/api/net/html/interfaceDatalayer_1_1IProviderNode-members.html new file mode 100644 index 000000000..ca086c576 --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1IProviderNode-members.html @@ -0,0 +1,119 @@ + + + + + + + +ctrlX Data Layer .NET API: Member List +Member List + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
IProviderNode Member List
+
+
+ +

This is the complete list of members for IProviderNode, including all inherited members.

+ + + + + +
HandlerIProviderNode
IsDisposedINativeDisposable
ProviderIProviderNode
SetTimeout(uint timeoutMillis)IProviderNode
+
+ + + + diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1IProviderNode.html b/3.4.0/api/net/html/interfaceDatalayer_1_1IProviderNode.html new file mode 100644 index 000000000..dbd604376 --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1IProviderNode.html @@ -0,0 +1,244 @@ + + + + + + + +ctrlX Data Layer .NET API: IProviderNode Interface Reference +IProviderNode Interface Reference + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
IProviderNode Interface Reference
+
+
+ +

The IProvider interface. + More...

+
+Inheritance diagram for IProviderNode:
+
+
+ + +INativeDisposable + +
+ + + + + +

+Public Member Functions

DLR_RESULT SetTimeout (uint timeoutMillis)
 Set timeout for a node for asynchron requests (default value is 10000 ms). If the handler method of the provider does not return a response within timeoutMillis, the client will automatically receive bad result DL_TIMEOUT. The result after timeout will be discarded.
 
+ + + + + + + + + + + +

+Properties

IProviderNodeHandler Handler [get]
 Gets the handler.
 
IProvider Provider [get]
 Gets the provider.
 
- Properties inherited from INativeDisposable
bool IsDisposed [get]
 Checks disposed.
 
+

Detailed Description

+

The IProvider interface.

+ +

Definition at line 8 of file IProviderNode.cs.

+

Member Function Documentation

+ +

◆ SetTimeout()

+ +
+
+ + + + + + + + +
DLR_RESULT SetTimeout (uint timeoutMillis)
+
+ +

Set timeout for a node for asynchron requests (default value is 10000 ms). If the handler method of the provider does not return a response within timeoutMillis, the client will automatically receive bad result DL_TIMEOUT. The result after timeout will be discarded.

+
Parameters
+ + +
timeoutMillisTimeout in milliseconds for this node.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
+
+
+ +
+
+

Property Documentation

+ +

◆ Handler

+ +
+
+ + + + + +
+ + + + +
IProviderNodeHandler Handler
+
+get
+
+ +

Gets the handler.

+ +

Definition at line 13 of file IProviderNode.cs.

+ +
+
+ +

◆ Provider

+ +
+
+ + + + + +
+ + + + +
IProvider Provider
+
+get
+
+ +

Gets the provider.

+ +

Definition at line 18 of file IProviderNode.cs.

+ +
+
+
The documentation for this interface was generated from the following file: +
+
+ + + + diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1IProviderNode.js b/3.4.0/api/net/html/interfaceDatalayer_1_1IProviderNode.js new file mode 100644 index 000000000..92d68b6cb --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1IProviderNode.js @@ -0,0 +1,6 @@ +var interfaceDatalayer_1_1IProviderNode = +[ + [ "SetTimeout", "interfaceDatalayer_1_1IProviderNode.html#a617e11e2e4aad762e04b6ce5b78f28cb", null ], + [ "Handler", "interfaceDatalayer_1_1IProviderNode.html#a629fc6ec0903bccf3e477aaf7fad79f1", null ], + [ "Provider", "interfaceDatalayer_1_1IProviderNode.html#a167fc502187e24d074ae0781d8547993", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1IProviderNode.png b/3.4.0/api/net/html/interfaceDatalayer_1_1IProviderNode.png new file mode 100644 index 000000000..bc9170d44 Binary files /dev/null and b/3.4.0/api/net/html/interfaceDatalayer_1_1IProviderNode.png differ diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1IProviderNodeHandler-members.html b/3.4.0/api/net/html/interfaceDatalayer_1_1IProviderNodeHandler-members.html new file mode 100644 index 000000000..56572e499 --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1IProviderNodeHandler-members.html @@ -0,0 +1,121 @@ + + + + + + + +ctrlX Data Layer .NET API: Member List +Member List + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
IProviderNodeHandler Member List
+
+
+ +

This is the complete list of members for IProviderNodeHandler, including all inherited members.

+ + + + + + + +
OnBrowse(string address, IProviderNodeResult result)IProviderNodeHandler
OnCreate(string address, IVariant args, IProviderNodeResult result)IProviderNodeHandler
OnMetadata(string address, IProviderNodeResult result)IProviderNodeHandler
OnRead(string address, IVariant args, IProviderNodeResult result)IProviderNodeHandler
OnRemove(string address, IProviderNodeResult result)IProviderNodeHandler
OnWrite(string address, IVariant writeValue, IProviderNodeResult result)IProviderNodeHandler
+
+ + + + diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1IProviderNodeHandler.html b/3.4.0/api/net/html/interfaceDatalayer_1_1IProviderNodeHandler.html new file mode 100644 index 000000000..d363b3df5 --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1IProviderNodeHandler.html @@ -0,0 +1,392 @@ + + + + + + + +ctrlX Data Layer .NET API: IProviderNodeHandler Interface Reference +IProviderNodeHandler Interface Reference + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
IProviderNodeHandler Interface Reference
+
+
+ +

The IProviderNodeHandler interface. + More...

+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

void OnBrowse (string address, IProviderNodeResult result)
 Method to be called for a browse request.
 
void OnCreate (string address, IVariant args, IProviderNodeResult result)
 Method to be called for a create request.
 
void OnMetadata (string address, IProviderNodeResult result)
 Method to be called for a metadata request.
 
void OnRead (string address, IVariant args, IProviderNodeResult result)
 Method to be called for a read request.
 
void OnRemove (string address, IProviderNodeResult result)
 Method to be called for a remove request.
 
void OnWrite (string address, IVariant writeValue, IProviderNodeResult result)
 Method to be called for a write request.
 
+

Detailed Description

+

The IProviderNodeHandler interface.

+ +

Definition at line 6 of file IProviderNodeHandler.cs.

+

Member Function Documentation

+ +

◆ OnBrowse()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void OnBrowse (string address,
IProviderNodeResult result 
)
+
+ +

Method to be called for a browse request.

+
Parameters
+ + + +
addressAddress of the node.
resultResult of the request.
+
+
+ +
+
+ +

◆ OnCreate()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void OnCreate (string address,
IVariant args,
IProviderNodeResult result 
)
+
+ +

Method to be called for a create request.

+
Parameters
+ + + + +
addressAddress of the node.
argsOptional request arguments.
resultResult of the request.
+
+
+ +
+
+ +

◆ OnMetadata()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void OnMetadata (string address,
IProviderNodeResult result 
)
+
+ +

Method to be called for a metadata request.

+
Parameters
+ + + +
addressAddress of the node.
resultResult of the request.
+
+
+ +
+
+ +

◆ OnRead()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void OnRead (string address,
IVariant args,
IProviderNodeResult result 
)
+
+ +

Method to be called for a read request.

+
Parameters
+ + + + +
addressAddress of the node.
argsOptional request arguments.
resultResult of the request.
+
+
+ +
+
+ +

◆ OnRemove()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void OnRemove (string address,
IProviderNodeResult result 
)
+
+ +

Method to be called for a remove request.

+
Parameters
+ + + +
addressAddress of the node.
resultResult of the request.
+
+
+ +
+
+ +

◆ OnWrite()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void OnWrite (string address,
IVariant writeValue,
IProviderNodeResult result 
)
+
+ +

Method to be called for a write request.

+
Parameters
+ + + + +
addressAddress of the node.
writeValueValue to write.
resultResult of the request.
+
+
+ +
+
+
The documentation for this interface was generated from the following file: +
+
+ + + + diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1IProviderNodeHandler.js b/3.4.0/api/net/html/interfaceDatalayer_1_1IProviderNodeHandler.js new file mode 100644 index 000000000..67cb55404 --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1IProviderNodeHandler.js @@ -0,0 +1,9 @@ +var interfaceDatalayer_1_1IProviderNodeHandler = +[ + [ "OnBrowse", "interfaceDatalayer_1_1IProviderNodeHandler.html#ab1c27882663a8ebaf8fa8ea683b27a6a", null ], + [ "OnCreate", "interfaceDatalayer_1_1IProviderNodeHandler.html#a3f92a70bfce5b021432e14e231151046", null ], + [ "OnMetadata", "interfaceDatalayer_1_1IProviderNodeHandler.html#a4fd497367e04ee5d4e5f88a374cba3b9", null ], + [ "OnRead", "interfaceDatalayer_1_1IProviderNodeHandler.html#aa3f35022d6e3618922341bdbfc7331db", null ], + [ "OnRemove", "interfaceDatalayer_1_1IProviderNodeHandler.html#a0b616235dbec85c9f5e9144fc4b7c2a9", null ], + [ "OnWrite", "interfaceDatalayer_1_1IProviderNodeHandler.html#ae74ad7f3deb71cfaf20b92b0fb55844f", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1IProviderNodeResult-members.html b/3.4.0/api/net/html/interfaceDatalayer_1_1IProviderNodeResult-members.html new file mode 100644 index 000000000..ffa5786d6 --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1IProviderNodeResult-members.html @@ -0,0 +1,117 @@ + + + + + + + +ctrlX Data Layer .NET API: Member List +Member List + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
IProviderNodeResult Member List
+
+
+ +

This is the complete list of members for IProviderNodeResult, including all inherited members.

+ + + +
SetResult(DLR_RESULT result)IProviderNodeResult
SetResult(DLR_RESULT result, IVariant value)IProviderNodeResult
+
+ + + + diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1IProviderNodeResult.html b/3.4.0/api/net/html/interfaceDatalayer_1_1IProviderNodeResult.html new file mode 100644 index 000000000..af938bebb --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1IProviderNodeResult.html @@ -0,0 +1,200 @@ + + + + + + + +ctrlX Data Layer .NET API: IProviderNodeResult Interface Reference +IProviderNodeResult Interface Reference + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
IProviderNodeResult Interface Reference
+
+
+ +

The IProviderNodeResult interface. + More...

+ + + + + + + + +

+Public Member Functions

void SetResult (DLR_RESULT result)
 Sets the result.
 
void SetResult (DLR_RESULT result, IVariant value)
 Sets the result
 
+

Detailed Description

+

The IProviderNodeResult interface.

+ +

Definition at line 7 of file IProviderNodeResult.cs.

+

Member Function Documentation

+ +

◆ SetResult() [1/2]

+ +
+
+ + + + + + + + +
void SetResult (DLR_RESULT result)
+
+ +

Sets the result.

+
Parameters
+ + +
resultResult of the request.
+
+
+ +
+
+ +

◆ SetResult() [2/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
void SetResult (DLR_RESULT result,
IVariant value 
)
+
+ +

Sets the result

+
Parameters
+ + + +
resultResult of the request.
valueValue to set.
+
+
+ +
+
+
The documentation for this interface was generated from the following file: +
+
+ + + + diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1IProviderNodeResult.js b/3.4.0/api/net/html/interfaceDatalayer_1_1IProviderNodeResult.js new file mode 100644 index 000000000..f9daa206d --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1IProviderNodeResult.js @@ -0,0 +1,5 @@ +var interfaceDatalayer_1_1IProviderNodeResult = +[ + [ "SetResult", "interfaceDatalayer_1_1IProviderNodeResult.html#af0f8b79edf6dcdee540fbabeacf2bacc", null ], + [ "SetResult", "interfaceDatalayer_1_1IProviderNodeResult.html#a9f54339c2713119dd2e6121e73617abc", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1ISubscription-members.html b/3.4.0/api/net/html/interfaceDatalayer_1_1ISubscription-members.html new file mode 100644 index 000000000..70a3b1864 --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1ISubscription-members.html @@ -0,0 +1,135 @@ + + + + + + + +ctrlX Data Layer .NET API: Member List +Member List + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
ISubscription Member List
+
+ +
+ + + + diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1ISubscription.html b/3.4.0/api/net/html/interfaceDatalayer_1_1ISubscription.html new file mode 100644 index 000000000..1158ba3fa --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1ISubscription.html @@ -0,0 +1,794 @@ + + + + + + + +ctrlX Data Layer .NET API: ISubscription Interface Reference +ISubscription Interface Reference + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
ISubscription Interface Reference
+
+
+ +

The ISubscription interface. + More...

+
+Inheritance diagram for ISubscription:
+
+
+ + +INativeDisposable + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

delegate void DataChangedEventHandler (ISubscription subscription, IDataChangedEventArgs args)
 The DataChanged event delegate.
 
DLR_RESULT Subscribe (string address)
 Subscribes to a node.
 
Task< ISubscriptionAsyncResultSubscribeAsync (string address)
 Subscribes to a node asynchronously.
 
DLR_RESULT SubscribeMulti (string[] addresses)
 Subscribes to a list of nodes.
 
Task< ISubscriptionAsyncResultSubscribeMultiAsync (string[] addresses)
 Subscribes to a list of nodes asynchronously.
 
DLR_RESULT Unsubscribe (string address)
 Unsubscribes the node.
 
DLR_RESULT UnsubscribeAll ()
 Unsubscribes all subscribed nodes.
 
Task< ISubscriptionAsyncResultUnsubscribeAllAsync ()
 Unsubscribes all subscribed nodes asynchronously.
 
Task< ISubscriptionAsyncResultUnsubscribeAsync (string address)
 Unsubscribes to a node asynchronously.
 
DLR_RESULT UnsubscribeMulti (string[] addresses)
 Unsubscribes to a list of nodes.
 
Task< ISubscriptionAsyncResultUnsubscribeMultiAsync (string[] addresses)
 Unsubscribes a list of nodes asynchronously.
 
+ + + + + + + + + + + + + +

+Static Public Attributes

static readonly uint DefaultErrorIntervalMillis = 10000
 The default error interval in milli seconds.
 
static readonly uint DefaultKeepaliveIntervalMillis = 60000
 The default keep alive interval in milli seconds.
 
static readonly uint DefaultPublishIntervalMillis = 1000
 The default publish interval in milli seconds.
 
static readonly ulong DefaultSamplingIntervalMicros = 1000000
 The default sampling interval in micro seconds.
 
+ + + + + + + + + + + + + + +

+Properties

IClient Client [get]
 Gets the client.
 
string Id [get]
 Gets the subscription id.
 
object UserData [get]
 Gets the user data.
 
- Properties inherited from INativeDisposable
bool IsDisposed [get]
 Checks disposed.
 
+ + + + +

+Events

DataChangedEventHandler DataChanged
 Gets the DataChanged event.
 
+

Detailed Description

+

The ISubscription interface.

+ +

Definition at line 48 of file ISubscription.cs.

+

Member Function Documentation

+ +

◆ DataChangedEventHandler()

+ +
+
+ + + + + + + + + + + + + + + + + + +
delegate void DataChangedEventHandler (ISubscription subscription,
IDataChangedEventArgs args 
)
+
+ +

The DataChanged event delegate.

+
Parameters
+ + + +
subscriptionThe source subscription, which raises the event.
argsThe data changed event arguments.
+
+
+ +
+
+ +

◆ Subscribe()

+ +
+
+ + + + + + + + +
DLR_RESULT Subscribe (string address)
+
+ +

Subscribes to a node.

+
Parameters
+ + +
addressAddress of the subscription.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
+
+
+

Example

var builder = new FlatBuffers.FlatBufferBuilder(Variant.DefaultFlatbuffersInitialSize);
+
var properties = comm.datalayer.SubscriptionProperties.CreateSubscriptionProperties(
+
builder: builder,
+
idOffset: builder.CreateString("mySubscription"),
+
keepaliveInterval: 10000,
+
publishInterval: 1000,
+
errorInterval: 10000);
+
builder.Finish(properties.Value);
+
var propertiesFlatbuffers = new Variant(builder);
+
+
// Create the Subscription
+
var(createResult, subscription) = client.CreateSubscription(propertiesFlatbuffers, userData: null);
+
+
const string cpuLoad = "framework/metrics/system/cpu-utilisation-percent";
+
var subscribeResult = subscription.Subscribe(address: cpuLoad);
+
Provides the implementation for IVariant.
Definition: Variant.cs:18
+
static readonly int DefaultFlatbuffersInitialSize
Gets the default Flatbuffers initial size in bytes.
Definition: Variant.cs:730
+
+
+
+ +

◆ SubscribeAsync()

+ +
+
+ + + + + + + + +
Task< ISubscriptionAsyncResult > SubscribeAsync (string address)
+
+ +

Subscribes to a node asynchronously.

+
Parameters
+ + +
addressAddress of the subscription.
+
+
+
Returns
Task.
+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
+
+
+ +
+
+ +

◆ SubscribeMulti()

+ +
+
+ + + + + + + + +
DLR_RESULT SubscribeMulti (string[] addresses)
+
+ +

Subscribes to a list of nodes.

+
Parameters
+ + +
addressesAn array of the addresses.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
+
+
+ +
+
+ +

◆ SubscribeMultiAsync()

+ +
+
+ + + + + + + + +
Task< ISubscriptionAsyncResult > SubscribeMultiAsync (string[] addresses)
+
+ +

Subscribes to a list of nodes asynchronously.

+
Parameters
+ + +
addressesAn array of the addresses.
+
+
+
Returns
Task.
+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
+
+
+ +
+
+ +

◆ Unsubscribe()

+ +
+
+ + + + + + + + +
DLR_RESULT Unsubscribe (string address)
+
+ +

Unsubscribes the node.

+
Parameters
+ + +
addressAddress of the subscription.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
+
+
+ +
+
+ +

◆ UnsubscribeAll()

+ +
+
+ + + + + + + +
DLR_RESULT UnsubscribeAll ()
+
+ +

Unsubscribes all subscribed nodes.

+
Returns
Result of the method call.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +
+
+ +

◆ UnsubscribeAllAsync()

+ +
+
+ + + + + + + +
Task< ISubscriptionAsyncResult > UnsubscribeAllAsync ()
+
+ +

Unsubscribes all subscribed nodes asynchronously.

+
Returns
Task.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +
+
+ +

◆ UnsubscribeAsync()

+ +
+
+ + + + + + + + +
Task< ISubscriptionAsyncResult > UnsubscribeAsync (string address)
+
+ +

Unsubscribes to a node asynchronously.

+
Parameters
+ + +
addressAddress of the subscription.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
+
+
+ +
+
+ +

◆ UnsubscribeMulti()

+ +
+
+ + + + + + + + +
DLR_RESULT UnsubscribeMulti (string[] addresses)
+
+ +

Unsubscribes to a list of nodes.

+
Parameters
+ + +
addressesAn array of the addresses.
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
+
+
+ +
+
+ +

◆ UnsubscribeMultiAsync()

+ +
+
+ + + + + + + + +
Task< ISubscriptionAsyncResult > UnsubscribeMultiAsync (string[] addresses)
+
+ +

Unsubscribes a list of nodes asynchronously.

+
Parameters
+ + +
addressesAn array of the addresses.
+
+
+
Returns
Task.
+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
+
+
+ +
+
+

Member Data Documentation

+ +

◆ DefaultErrorIntervalMillis

+ +
+
+ + + + + +
+ + + + +
readonly uint DefaultErrorIntervalMillis = 10000
+
+static
+
+ +

The default error interval in milli seconds.

+ +

Definition at line 67 of file ISubscription.cs.

+ +
+
+ +

◆ DefaultKeepaliveIntervalMillis

+ +
+
+ + + + + +
+ + + + +
readonly uint DefaultKeepaliveIntervalMillis = 60000
+
+static
+
+ +

The default keep alive interval in milli seconds.

+ +

Definition at line 57 of file ISubscription.cs.

+ +
+
+ +

◆ DefaultPublishIntervalMillis

+ +
+
+ + + + + +
+ + + + +
readonly uint DefaultPublishIntervalMillis = 1000
+
+static
+
+ +

The default publish interval in milli seconds.

+ +

Definition at line 62 of file ISubscription.cs.

+ +
+
+ +

◆ DefaultSamplingIntervalMicros

+ +
+
+ + + + + +
+ + + + +
readonly ulong DefaultSamplingIntervalMicros = 1000000
+
+static
+
+ +

The default sampling interval in micro seconds.

+ +

Definition at line 72 of file ISubscription.cs.

+ +
+
+

Property Documentation

+ +

◆ Client

+ +
+
+ + + + + +
+ + + + +
IClient Client
+
+get
+
+ +

Gets the client.

+ +

Definition at line 92 of file ISubscription.cs.

+ +
+
+ +

◆ Id

+ +
+
+ + + + + +
+ + + + +
string Id
+
+get
+
+ +

Gets the subscription id.

+ +

Definition at line 97 of file ISubscription.cs.

+ +
+
+ +

◆ UserData

+ +
+
+ + + + + +
+ + + + +
object UserData
+
+get
+
+ +

Gets the user data.

+ +

Definition at line 102 of file ISubscription.cs.

+ +
+
+

Event Documentation

+ +

◆ DataChanged

+ +
+
+ + + + +
DataChangedEventHandler DataChanged
+
+ +

Gets the DataChanged event.

+ +

Definition at line 87 of file ISubscription.cs.

+ +
+
+
The documentation for this interface was generated from the following file: +
+
+ + + + diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1ISubscription.js b/3.4.0/api/net/html/interfaceDatalayer_1_1ISubscription.js new file mode 100644 index 000000000..5cd0f3a7f --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1ISubscription.js @@ -0,0 +1,22 @@ +var interfaceDatalayer_1_1ISubscription = +[ + [ "DataChangedEventHandler", "interfaceDatalayer_1_1ISubscription.html#a3f303edaf0ba64fbe02563bed284381d", null ], + [ "Subscribe", "interfaceDatalayer_1_1ISubscription.html#a7887ed3200fcf3ae4b47b6d4b4062137", null ], + [ "SubscribeAsync", "interfaceDatalayer_1_1ISubscription.html#ac03404d1cfab473bbe8e9f5d21b5b234", null ], + [ "SubscribeMulti", "interfaceDatalayer_1_1ISubscription.html#a9390b851cf2198ba4cae6154f754bfb4", null ], + [ "SubscribeMultiAsync", "interfaceDatalayer_1_1ISubscription.html#a543a14bd035a1957f8e7f9d512e627c8", null ], + [ "Unsubscribe", "interfaceDatalayer_1_1ISubscription.html#ab56f05b7edf672190d2ef0633f4b99a5", null ], + [ "UnsubscribeAll", "interfaceDatalayer_1_1ISubscription.html#ac90398cc2d16ee8330be71fb26ea5c80", null ], + [ "UnsubscribeAllAsync", "interfaceDatalayer_1_1ISubscription.html#ae373081bb6b1f0e58e9e40bfa96b9d04", null ], + [ "UnsubscribeAsync", "interfaceDatalayer_1_1ISubscription.html#a3d527bdb80a693b875ebb834aef59247", null ], + [ "UnsubscribeMulti", "interfaceDatalayer_1_1ISubscription.html#aa676752e1d60cb57cc18e5a64afd9902", null ], + [ "UnsubscribeMultiAsync", "interfaceDatalayer_1_1ISubscription.html#ab59e72c3428a1cc6ac4e2387bbf78e47", null ], + [ "DefaultErrorIntervalMillis", "interfaceDatalayer_1_1ISubscription.html#a830f47d283fe012ff4dd8b3ae85b3ab7", null ], + [ "DefaultKeepaliveIntervalMillis", "interfaceDatalayer_1_1ISubscription.html#a382ff46c62dc641e4da9d6b60f2c1dd9", null ], + [ "DefaultPublishIntervalMillis", "interfaceDatalayer_1_1ISubscription.html#ad01533e84c0749b5af74ebf109cfe53e", null ], + [ "DefaultSamplingIntervalMicros", "interfaceDatalayer_1_1ISubscription.html#a6f02394aaf4a831e98515931f4c2573d", null ], + [ "Client", "interfaceDatalayer_1_1ISubscription.html#a365fee781ab42949e1331c585fcd0205", null ], + [ "Id", "interfaceDatalayer_1_1ISubscription.html#a186291c875988107b7ace745ea84d4ec", null ], + [ "UserData", "interfaceDatalayer_1_1ISubscription.html#aeeccb94edafa8ab78eb999c2b2f97572", null ], + [ "DataChanged", "interfaceDatalayer_1_1ISubscription.html#a86b7b4e2ce74e5c008917c8a72754aa4", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1ISubscription.png b/3.4.0/api/net/html/interfaceDatalayer_1_1ISubscription.png new file mode 100644 index 000000000..a29abdff7 Binary files /dev/null and b/3.4.0/api/net/html/interfaceDatalayer_1_1ISubscription.png differ diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1ISubscriptionAsyncResult-members.html b/3.4.0/api/net/html/interfaceDatalayer_1_1ISubscriptionAsyncResult-members.html new file mode 100644 index 000000000..4ce069c8c --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1ISubscriptionAsyncResult-members.html @@ -0,0 +1,118 @@ + + + + + + + +ctrlX Data Layer .NET API: Member List +Member List + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
ISubscriptionAsyncResult Member List
+
+
+ +

This is the complete list of members for ISubscriptionAsyncResult, including all inherited members.

+ + + + +
ResultIClientAsyncResult
SubscriptionISubscriptionAsyncResult
ValueIClientAsyncResult
+
+ + + + diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1ISubscriptionAsyncResult.html b/3.4.0/api/net/html/interfaceDatalayer_1_1ISubscriptionAsyncResult.html new file mode 100644 index 000000000..bb879cbda --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1ISubscriptionAsyncResult.html @@ -0,0 +1,176 @@ + + + + + + + +ctrlX Data Layer .NET API: ISubscriptionAsyncResult Interface Reference +ISubscriptionAsyncResult Interface Reference + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
ISubscriptionAsyncResult Interface Reference
+
+
+ +

The ISubscriptionAsyncResult interface. + More...

+
+Inheritance diagram for ISubscriptionAsyncResult:
+
+
+ + +IClientAsyncResult + +
+ + + + + + + + + + + + +

+Properties

ISubscription Subscription [get]
 Gets the subscription.
 
- Properties inherited from IClientAsyncResult
DLR_RESULT Result [get]
 Gets the result.
 
IVariant Value [get]
 Gets the value.
 
+

Detailed Description

+

The ISubscriptionAsyncResult interface.

+ +

Definition at line 6 of file ISubscriptionAsyncResult.cs.

+

Property Documentation

+ +

◆ Subscription

+ +
+
+ + + + + +
+ + + + +
ISubscription Subscription
+
+get
+
+ +

Gets the subscription.

+ +

Definition at line 11 of file ISubscriptionAsyncResult.cs.

+ +
+
+
The documentation for this interface was generated from the following file: +
+
+ + + + diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1ISubscriptionAsyncResult.js b/3.4.0/api/net/html/interfaceDatalayer_1_1ISubscriptionAsyncResult.js new file mode 100644 index 000000000..179673c67 --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1ISubscriptionAsyncResult.js @@ -0,0 +1,4 @@ +var interfaceDatalayer_1_1ISubscriptionAsyncResult = +[ + [ "Subscription", "interfaceDatalayer_1_1ISubscriptionAsyncResult.html#a67e453ac81a6513a6a7a4512801bee48", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1ISubscriptionAsyncResult.png b/3.4.0/api/net/html/interfaceDatalayer_1_1ISubscriptionAsyncResult.png new file mode 100644 index 000000000..ae929d551 Binary files /dev/null and b/3.4.0/api/net/html/interfaceDatalayer_1_1ISubscriptionAsyncResult.png differ diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1IVariant-members.html b/3.4.0/api/net/html/interfaceDatalayer_1_1IVariant-members.html new file mode 100644 index 000000000..8b02b57ef --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1IVariant-members.html @@ -0,0 +1,159 @@ + + + + + + + +ctrlX Data Layer .NET API: Member List +Member List + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
IVariant Member List
+
+ +
+ + + + diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1IVariant.html b/3.4.0/api/net/html/interfaceDatalayer_1_1IVariant.html new file mode 100644 index 000000000..cbb6392cc --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1IVariant.html @@ -0,0 +1,1503 @@ + + + + + + + +ctrlX Data Layer .NET API: IVariant Interface Reference +IVariant Interface Reference + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
ctrlX Data Layer .NET API +  4.2.0 +
+
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
IVariant Interface Reference
+
+
+ +

The IVariant interface. + More...

+
+Inheritance diagram for IVariant:
+
+
+ + +INativeDisposable +Variant + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

DLR_RESULT CheckConvert (DLR_VARIANT_TYPE dataType)
 Gets a value that indicates whether the variant can be converted to another type.
 
Variant Clone ()
 Clones the value.
 
bool Equals (Variant other)
 Gets a value that indicates whether the values are equal.
 
+DLR_RESULT IVariant value GetDataFromFlatbuffers (IVariant typeFlatbuffers, string query)
 
int GetHashCode ()
 Gets the hash code of the variant.
 
bool ToBool ()
 Converts the value to bool.
 
bool[] ToBoolArray ()
 Converts the value to an array of bool value.
 
byte ToByte ()
 Converts the value to an 8-bit unsigned integer.
 
byte[] ToByteArray ()
 Converts the value to an array of 8-bit unsigned integers.
 
DateTime ToDateTime ()
 Converts the value to DateTime.
 
DateTime[] ToDateTimeArray ()
 Converts the value to an array of DateTime.
 
double ToDouble ()
 Converts the value to a double-precision floating-point number.
 
double[] ToDoubleArray ()
 Converts the value to an array of double-precision floating-point numbers.
 
ByteBuffer ToFlatbuffers ()
 Converts the value to flatbuffers.
 
float ToFloat ()
 Converts the value to float.
 
float[] ToFloatArray ()
 Converts the value to an array of float.
 
short ToInt16 ()
 Converts the value to a 16-bit signed integer.
 
short[] ToInt16Array ()
 Converts the value to an array of 16-bit signed integers.
 
int ToInt32 ()
 Converts the value to a 32-bit signed integer.
 
int[] ToInt32Array ()
 Converts the value to an array of 32-bit signed integers.
 
long ToInt64 ()
 Converts the value to a 64-bit signed integer.
 
long[] ToInt64Array ()
 Converts the value to an array of 64-bit signed integers.
 
byte[] ToRawByteArray ()
 Converts the value to an array of 8-bit raw integers.
 
sbyte ToSByte ()
 Converts the value to an 8-bit signed integer.
 
sbyte[] ToSByteArray ()
 Converts the value to an array of an 8-bit signed integers.
 
string ToString ()
 Converts the value to string. If the value can't be converted for any reason, an empty string is returned. For arrays and numbers an empty string is returned (not implemented yet).
 
string[] ToStringArray ()
 Converts the value to an array of strings.
 
ushort ToUInt16 ()
 Converts the value to a 16-bit unsigned integer.
 
ushort[] ToUInt16Array ()
 Converts the value to an array of 16-bit unsigned integers.
 
uint ToUInt32 ()
 Converts the value to a 32-bit unsigned integer.
 
uint[] ToUInt32Array ()
 Converts the value to an array of 32-bit unsigned integers.
 
ulong ToUInt64 ()
 Converts the value to a 64-bit unsigned integer.
 
ulong[] ToUInt64Array ()
 Converts the value to an array of 64-bit unsigned integers.
 
+ + + + +

+Public Attributes

DLR_RESULT result
 Gets data of a complex Variant (flatbuffers) by query.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Properties

DLR_VARIANT_TYPE DataType [get]
 Gets the data type of the variant.
 
bool IsArray [get]
 Checks if the value is an array.
 
bool IsBool [get]
 Gets a value that indicates whether the Variant contains a boolean value.
 
bool IsFlatbuffers [get]
 Checks if the value is flatbuffers.
 
bool IsNull [get]
 Checks if the value is null.
 
bool IsNumber [get]
 Gets a value that indicates whether the Variant contains a numeric value Returns false for numeric arrays and booleans.
 
bool IsString [get]
 Gets a value that indicates whether the Variant contains a string value.
 
string JsonDataType [get]
 Gets the data type as JSON string.
 
object Value [get]
 Gets the value of the variant.
 
- Properties inherited from INativeDisposable
bool IsDisposed [get]
 Checks disposed.
 
+

Detailed Description

+

The IVariant interface.

+ +

Definition at line 9 of file IVariant.cs.

+

Member Function Documentation

+ +

◆ CheckConvert()

+ +
+
+ + + + + + + + +
DLR_RESULT CheckConvert (DLR_VARIANT_TYPE dataType)
+
+ +

Gets a value that indicates whether the variant can be converted to another type.

+
Parameters
+ + +
dataTypeDestination type.
+
+
+
Returns
Result whether the conversion is possible.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implemented in Variant.

+ +
+
+ +

◆ Clone()

+ +
+
+ + + + + + + +
Variant Clone ()
+
+ +

Clones the value.

+
Returns
Result of clone.
+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
InvalidOperationExceptionObject ist not cloneable.
+
+
+ +

Implemented in Variant.

+ +
+
+ +

◆ Equals()

+ +
+
+ + + + + + + + +
bool Equals (Variant other)
+
+ +

Gets a value that indicates whether the values are equal.

+
Parameters
+ + +
otherReference to variant.
+
+
+
Returns
Returns whether the values are equal.
+ +

Implemented in Variant.

+ +
+
+ +

◆ GetHashCode()

+ +
+
+ + + + + + + +
int GetHashCode ()
+
+ +

Gets the hash code of the variant.

+ +

Implemented in Variant.

+ +
+
+ +

◆ ToBool()

+ +
+
+ + + + + + + +
bool ToBool ()
+
+ +

Converts the value to bool.

+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implemented in Variant.

+ +
+
+ +

◆ ToBoolArray()

+ +
+
+ + + + + + + +
bool[] ToBoolArray ()
+
+ +

Converts the value to an array of bool value.

+
Returns
An array of bool values.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implemented in Variant.

+ +
+
+ +

◆ ToByte()

+ +
+
+ + + + + + + +
byte ToByte ()
+
+ +

Converts the value to an 8-bit unsigned integer.

+
Returns
Value of the variant as a byte.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implemented in Variant.

+ +
+
+ +

◆ ToByteArray()

+ +
+
+ + + + + + + +
byte[] ToByteArray ()
+
+ +

Converts the value to an array of 8-bit unsigned integers.

+
Returns
An array of bytes.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implemented in Variant.

+ +
+
+ +

◆ ToDateTime()

+ +
+
+ + + + + + + +
DateTime ToDateTime ()
+
+ +

Converts the value to DateTime.

+
Returns
Value of the variant as DateTime.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implemented in Variant.

+ +
+
+ +

◆ ToDateTimeArray()

+ +
+
+ + + + + + + +
DateTime[] ToDateTimeArray ()
+
+ +

Converts the value to an array of DateTime.

+
Returns
An array of DateTime.
+ +

Implemented in Variant.

+ +
+
+ +

◆ ToDouble()

+ +
+
+ + + + + + + +
double ToDouble ()
+
+ +

Converts the value to a double-precision floating-point number.

+
Returns
Value of the variant as a double.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implemented in Variant.

+ +
+
+ +

◆ ToDoubleArray()

+ +
+
+ + + + + + + +
double[] ToDoubleArray ()
+
+ +

Converts the value to an array of double-precision floating-point numbers.

+
Returns
An array of double.
+ +

Implemented in Variant.

+ +
+
+ +

◆ ToFlatbuffers()

+ +
+
+ + + + + + + +
ByteBuffer ToFlatbuffers ()
+
+ +

Converts the value to flatbuffers.

+
Returns
ByteBuffer.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implemented in Variant.

+ +
+
+ +

◆ ToFloat()

+ +
+
+ + + + + + + +
float ToFloat ()
+
+ +

Converts the value to float.

+
Returns
Value of the variant as a float.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implemented in Variant.

+ +
+
+ +

◆ ToFloatArray()

+ +
+
+ + + + + + + +
float[] ToFloatArray ()
+
+ +

Converts the value to an array of float.

+
Returns
An array of float.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implemented in Variant.

+ +
+
+ +

◆ ToInt16()

+ +
+
+ + + + + + + +
short ToInt16 ()
+
+ +

Converts the value to a 16-bit signed integer.

+
Returns
Value of the variant as a short.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implemented in Variant.

+ +
+
+ +

◆ ToInt16Array()

+ +
+
+ + + + + + + +
short[] ToInt16Array ()
+
+ +

Converts the value to an array of 16-bit signed integers.

+
Returns
An array of short.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implemented in Variant.

+ +
+
+ +

◆ ToInt32()

+ +
+
+ + + + + + + +
int ToInt32 ()
+
+ +

Converts the value to a 32-bit signed integer.

+
Returns
Value of the variant as an int.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implemented in Variant.

+ +
+
+ +

◆ ToInt32Array()

+ +
+
+ + + + + + + +
int[] ToInt32Array ()
+
+ +

Converts the value to an array of 32-bit signed integers.

+
Returns
An array of int.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implemented in Variant.

+ +
+
+ +

◆ ToInt64()

+ +
+
+ + + + + + + +
long ToInt64 ()
+
+ +

Converts the value to a 64-bit signed integer.

+
Returns
Value of the variant as a long.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implemented in Variant.

+ +
+
+ +

◆ ToInt64Array()

+ +
+
+ + + + + + + +
long[] ToInt64Array ()
+
+ +

Converts the value to an array of 64-bit signed integers.

+
Returns
An array of long.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implemented in Variant.

+ +
+
+ +

◆ ToRawByteArray()

+ +
+
+ + + + + + + +
byte[] ToRawByteArray ()
+
+ +

Converts the value to an array of 8-bit raw integers.

+
Returns
An array of byte.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implemented in Variant.

+ +
+
+ +

◆ ToSByte()

+ +
+
+ + + + + + + +
sbyte ToSByte ()
+
+ +

Converts the value to an 8-bit signed integer.

+
Returns
Value of the variant as a sbyte.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implemented in Variant.

+ +
+
+ +

◆ ToSByteArray()

+ +
+
+ + + + + + + +
sbyte[] ToSByteArray ()
+
+ +

Converts the value to an array of an 8-bit signed integers.

+
Returns
An array of sbytes.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implemented in Variant.

+ +
+
+ +

◆ ToString()

+ +
+
+ + + + + + + +
string ToString ()
+
+ +

Converts the value to string. If the value can't be converted for any reason, an empty string is returned. For arrays and numbers an empty string is returned (not implemented yet).

+
Returns
Value of the variant as a string.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implemented in Variant.

+ +
+
+ +

◆ ToStringArray()

+ +
+
+ + + + + + + +
string[] ToStringArray ()
+
+ +

Converts the value to an array of strings.

+
Returns
An array of string.
+ +

Implemented in Variant.

+ +
+
+ +

◆ ToUInt16()

+ +
+
+ + + + + + + +
ushort ToUInt16 ()
+
+ +

Converts the value to a 16-bit unsigned integer.

+
Returns
Value of the variant as a ushort.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implemented in Variant.

+ +
+
+ +

◆ ToUInt16Array()

+ +
+
+ + + + + + + +
ushort[] ToUInt16Array ()
+
+ +

Converts the value to an array of 16-bit unsigned integers.

+
Returns
An array of ushort.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implemented in Variant.

+ +
+
+ +

◆ ToUInt32()

+ +
+
+ + + + + + + +
uint ToUInt32 ()
+
+ +

Converts the value to a 32-bit unsigned integer.

+
Returns
Value of the variant as an uint.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implemented in Variant.

+ +
+
+ +

◆ ToUInt32Array()

+ +
+
+ + + + + + + +
uint[] ToUInt32Array ()
+
+ +

Converts the value to an array of 32-bit unsigned integers.

+
Returns
An array of uint.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implemented in Variant.

+ +
+
+ +

◆ ToUInt64()

+ +
+
+ + + + + + + +
ulong ToUInt64 ()
+
+ +

Converts the value to a 64-bit unsigned integer.

+
Returns
Value of the variant as a ulong.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implemented in Variant.

+ +
+
+ +

◆ ToUInt64Array()

+ +
+
+ + + + + + + +
ulong[] ToUInt64Array ()
+
+ +

Converts the value to an array of 64-bit unsigned integers.

+
Returns
An array of ulong.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implemented in Variant.

+ +
+
+

Member Data Documentation

+ +

◆ result

+ +
+
+ + + + +
DLR_RESULT result
+
+ +

Gets data of a complex Variant (flatbuffers) by query.

+
Parameters
+ + + +
typeFlatbuffersType (schema) of the flatbuffers.
queryQuery string
+
+
+
Returns
Result of the method call.
+
Exceptions
+ + + +
ObjectDisposedExceptionCannot access a disposed object.
ArgumentNullExceptionArgument cannot be null.
+
+
+ +

Definition at line 281 of file IVariant.cs.

+ +
+
+

Property Documentation

+ +

◆ DataType

+ +
+
+ + + + + +
+ + + + +
DLR_VARIANT_TYPE DataType
+
+get
+
+ +

Gets the data type of the variant.

+
Returns
Type of the variant.
+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implemented in Variant.

+ +

Definition at line 34 of file IVariant.cs.

+ +
+
+ +

◆ IsArray

+ +
+
+ + + + + +
+ + + + +
bool IsArray
+
+get
+
+ +

Checks if the value is an array.

+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implemented in Variant.

+ +

Definition at line 46 of file IVariant.cs.

+ +
+
+ +

◆ IsBool

+ +
+
+ + + + + +
+ + + + +
bool IsBool
+
+get
+
+ +

Gets a value that indicates whether the Variant contains a boolean value.

+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implemented in Variant.

+ +

Definition at line 58 of file IVariant.cs.

+ +
+
+ +

◆ IsFlatbuffers

+ +
+
+ + + + + +
+ + + + +
bool IsFlatbuffers
+
+get
+
+ +

Checks if the value is flatbuffers.

+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implemented in Variant.

+ +

Definition at line 71 of file IVariant.cs.

+ +
+
+ +

◆ IsNull

+ +
+
+ + + + + +
+ + + + +
bool IsNull
+
+get
+
+ +

Checks if the value is null.

+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implemented in Variant.

+ +

Definition at line 77 of file IVariant.cs.

+ +
+
+ +

◆ IsNumber

+ +
+
+ + + + + +
+ + + + +
bool IsNumber
+
+get
+
+ +

Gets a value that indicates whether the Variant contains a numeric value Returns false for numeric arrays and booleans.

+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implemented in Variant.

+ +

Definition at line 65 of file IVariant.cs.

+ +
+
+ +

◆ IsString

+ +
+
+ + + + + +
+ + + + +
bool IsString
+
+get
+
+ +

Gets a value that indicates whether the Variant contains a string value.

+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implemented in Variant.

+ +

Definition at line 52 of file IVariant.cs.

+ +
+
+ +

◆ JsonDataType

+ +
+
+ + + + + +
+ + + + +
string JsonDataType
+
+get
+
+ +

Gets the data type as JSON string.

+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implemented in Variant.

+ +

Definition at line 40 of file IVariant.cs.

+ +
+
+ +

◆ Value

+ +
+
+ + + + + +
+ + + + +
object Value
+
+get
+
+ +

Gets the value of the variant.

+
Exceptions
+ + +
ObjectDisposedExceptionCannot access a disposed object.
+
+
+ +

Implemented in Variant.

+ +

Definition at line 15 of file IVariant.cs.

+ +
+
+
The documentation for this interface was generated from the following file:
    +
  • D:/Jenkins/workspace/sdk.datalayer.csharp/datalayer/IVariant.cs
  • +
+
+
+ + + + diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1IVariant.js b/3.4.0/api/net/html/interfaceDatalayer_1_1IVariant.js new file mode 100644 index 000000000..fd70fd4ea --- /dev/null +++ b/3.4.0/api/net/html/interfaceDatalayer_1_1IVariant.js @@ -0,0 +1,45 @@ +var interfaceDatalayer_1_1IVariant = +[ + [ "CheckConvert", "interfaceDatalayer_1_1IVariant.html#a5e3cbf22bec3b06b473407bf16d7a08c", null ], + [ "Clone", "interfaceDatalayer_1_1IVariant.html#a9b8bbaab54d4b040e57a88a8ded2247b", null ], + [ "Equals", "interfaceDatalayer_1_1IVariant.html#a768bfe492f96453766631a639e0da5a1", null ], + [ "GetHashCode", "interfaceDatalayer_1_1IVariant.html#a7e2732d719716610684b6bcbcca7d038", null ], + [ "ToBool", "interfaceDatalayer_1_1IVariant.html#a836015d7bac1c5bdbf87c6aff416def0", null ], + [ "ToBoolArray", "interfaceDatalayer_1_1IVariant.html#aff7faba54d898225f00e994582057136", null ], + [ "ToByte", "interfaceDatalayer_1_1IVariant.html#a59e3e205bb96ab4244682480106341de", null ], + [ "ToByteArray", "interfaceDatalayer_1_1IVariant.html#a5e05025d8b0434ab88b76301915aff2b", null ], + [ "ToDateTime", "interfaceDatalayer_1_1IVariant.html#a32de86b638d07299fd094c662465fa55", null ], + [ "ToDateTimeArray", "interfaceDatalayer_1_1IVariant.html#afe4cc7230217220283dad3eead321a7c", null ], + [ "ToDouble", "interfaceDatalayer_1_1IVariant.html#a0bf7245d983694969034631ee82a51cf", null ], + [ "ToDoubleArray", "interfaceDatalayer_1_1IVariant.html#a440b7ec49753006174500f9ab80f34ba", null ], + [ "ToFlatbuffers", "interfaceDatalayer_1_1IVariant.html#a4cebcb8a4d96db6f34ab8fdd2f2e9021", null ], + [ "ToFloat", "interfaceDatalayer_1_1IVariant.html#ae154275c2988473c049394ccccb4dcc7", null ], + [ "ToFloatArray", "interfaceDatalayer_1_1IVariant.html#a0b0372425a3c492dd13c91dd54d5caf0", null ], + [ "ToInt16", "interfaceDatalayer_1_1IVariant.html#a0510dcf6776eb733ad47527a9c840f3f", null ], + [ "ToInt16Array", "interfaceDatalayer_1_1IVariant.html#a3bde119743d4d0bb403e31860b1fa11b", null ], + [ "ToInt32", "interfaceDatalayer_1_1IVariant.html#aef413807d1c2334cbc84bd9452880f52", null ], + [ "ToInt32Array", "interfaceDatalayer_1_1IVariant.html#afab60cc9925b37156c33b0038afdb561", null ], + [ "ToInt64", "interfaceDatalayer_1_1IVariant.html#a98349bc5d9c022962787ff59abc6dc3b", null ], + [ "ToInt64Array", "interfaceDatalayer_1_1IVariant.html#a088194316ad0671c2fe854c354f618cb", null ], + [ "ToRawByteArray", "interfaceDatalayer_1_1IVariant.html#a7c1f6808410877b3a9cfc66b40e607ee", null ], + [ "ToSByte", "interfaceDatalayer_1_1IVariant.html#a08fa1ede9d2e6dabdee29a87c8049f0c", null ], + [ "ToSByteArray", "interfaceDatalayer_1_1IVariant.html#a1a3fa907947947a6a63f376b8d6fdd53", null ], + [ "ToString", "interfaceDatalayer_1_1IVariant.html#a18220b86ab5378509a68e4afa4a2fb5b", null ], + [ "ToStringArray", "interfaceDatalayer_1_1IVariant.html#a04cb1158786ea29ad6578845b77846c2", null ], + [ "ToUInt16", "interfaceDatalayer_1_1IVariant.html#ad85199356631d42955d8ca04d27c1e65", null ], + [ "ToUInt16Array", "interfaceDatalayer_1_1IVariant.html#a1f19dd7c3474093e6b64d332b88d29cc", null ], + [ "ToUInt32", "interfaceDatalayer_1_1IVariant.html#a53b3651691d777fd0485024076309eec", null ], + [ "ToUInt32Array", "interfaceDatalayer_1_1IVariant.html#a8a2860eb4d668412571bd06b11214592", null ], + [ "ToUInt64", "interfaceDatalayer_1_1IVariant.html#aaab078e9d44ca35cbad95eb1c0b344cd", null ], + [ "ToUInt64Array", "interfaceDatalayer_1_1IVariant.html#a5a66a16d41087f033c9787db20d4e21c", null ], + [ "result", "interfaceDatalayer_1_1IVariant.html#a7e346f0f62357ba18c4ede5c5a84d787", null ], + [ "DataType", "interfaceDatalayer_1_1IVariant.html#a7c3a4f151f7bcb2e535065e1c0400086", null ], + [ "IsArray", "interfaceDatalayer_1_1IVariant.html#afad44b5f3d66d321f75026142b350094", null ], + [ "IsBool", "interfaceDatalayer_1_1IVariant.html#ac0cb5c9ac8b61a8903182242c4621852", null ], + [ "IsFlatbuffers", "interfaceDatalayer_1_1IVariant.html#a795de924092940063018468542a0a3b1", null ], + [ "IsNull", "interfaceDatalayer_1_1IVariant.html#a69588587684f7c6234dad9c7dea6e8e9", null ], + [ "IsNumber", "interfaceDatalayer_1_1IVariant.html#af76375772db03055743ffe560de9cb83", null ], + [ "IsString", "interfaceDatalayer_1_1IVariant.html#a5a98459cc3688dfbd6ae933fedef2a9a", null ], + [ "JsonDataType", "interfaceDatalayer_1_1IVariant.html#ab4a6bde9780472924de64b1ef8059d3a", null ], + [ "Value", "interfaceDatalayer_1_1IVariant.html#a2d7e8cd2081ad3db5aa8e597557123e9", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/net/html/interfaceDatalayer_1_1IVariant.png b/3.4.0/api/net/html/interfaceDatalayer_1_1IVariant.png new file mode 100644 index 000000000..20a7ff2f8 Binary files /dev/null and b/3.4.0/api/net/html/interfaceDatalayer_1_1IVariant.png differ diff --git a/3.4.0/api/net/html/jquery.js b/3.4.0/api/net/html/jquery.js new file mode 100644 index 000000000..1dffb65b5 --- /dev/null +++ b/3.4.0/api/net/html/jquery.js @@ -0,0 +1,34 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=y(e||this.defaultElement||this)[0],this.element=y(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=y(),this.hoverable=y(),this.focusable=y(),this.classesElementLookup={},e!==this&&(y.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=y(e.style?e.ownerDocument:e.document||e),this.window=y(this.document[0].defaultView||this.document[0].parentWindow)),this.options=y.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:y.noop,_create:y.noop,_init:y.noop,destroy:function(){var i=this;this._destroy(),y.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:y.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return y.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=y.widget.extend({},this.options[t]),n=0;n
"),i=e.children()[0];return y("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthx(D(s),D(n))?o.important="horizontal":o.important="vertical",p.using.call(this,t,o)}),h.offset(y.extend(l,{using:t}))})},y.ui.position={fit:{left:function(t,e){var i=e.within,s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,h=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),y.ui.plugin={add:function(t,e,i){var s,n=y.ui[t].prototype;for(s in i)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([e,i[s]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;n").css({overflow:"hidden",position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,t={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(t),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(t),this._proportionallyResize()),this._setupHandles(),e.autoHide&&y(this.element).on("mouseenter",function(){e.disabled||(i._removeClass("ui-resizable-autohide"),i._handles.show())}).on("mouseleave",function(){e.disabled||i.resizing||(i._addClass("ui-resizable-autohide"),i._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy(),this._addedHandles.remove();function t(t){y(t).removeData("resizable").removeData("ui-resizable").off(".resizable")}var e;return this.elementIsWrapper&&(t(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;case"aspectRatio":this._aspectRatio=!!e}},_setupHandles:function(){var t,e,i,s,n,o=this.options,h=this;if(this.handles=o.handles||(y(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=y(),this._addedHandles=y(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),i=this.handles.split(","),this.handles={},e=0;e"),this._addClass(n,"ui-resizable-handle "+s),n.css({zIndex:o.zIndex}),this.handles[t]=".ui-resizable-"+t,this.element.children(this.handles[t]).length||(this.element.append(n),this._addedHandles=this._addedHandles.add(n));this._renderAxis=function(t){var e,i,s;for(e in t=t||this.element,this.handles)this.handles[e].constructor===String?this.handles[e]=this.element.children(this.handles[e]).first().show():(this.handles[e].jquery||this.handles[e].nodeType)&&(this.handles[e]=y(this.handles[e]),this._on(this.handles[e],{mousedown:h._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(i=y(this.handles[e],this.element),s=/sw|ne|nw|se|n|s/.test(e)?i.outerHeight():i.outerWidth(),i=["padding",/ne|nw|n/.test(e)?"Top":/se|sw|s/.test(e)?"Bottom":/^e$/.test(e)?"Right":"Left"].join(""),t.css(i,s),this._proportionallyResize()),this._handles=this._handles.add(this.handles[e])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){h.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),h.axis=n&&n[1]?n[1]:"se")}),o.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._addedHandles.remove()},_mouseCapture:function(t){var e,i,s=!1;for(e in this.handles)(i=y(this.handles[e])[0])!==t.target&&!y.contains(i,t.target)||(s=!0);return!this.options.disabled&&s},_mouseStart:function(t){var e,i,s=this.options,n=this.element;return this.resizing=!0,this._renderProxy(),e=this._num(this.helper.css("left")),i=this._num(this.helper.css("top")),s.containment&&(e+=y(s.containment).scrollLeft()||0,i+=y(s.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:e,top:i},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:n.width(),height:n.height()},this.originalSize=this._helper?{width:n.outerWidth(),height:n.outerHeight()}:{width:n.width(),height:n.height()},this.sizeDiff={width:n.outerWidth()-n.width(),height:n.outerHeight()-n.height()},this.originalPosition={left:e,top:i},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof s.aspectRatio?s.aspectRatio:this.originalSize.width/this.originalSize.height||1,s=y(".ui-resizable-"+this.axis).css("cursor"),y("body").css("cursor","auto"===s?this.axis+"-resize":s),this._addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var e=this.originalMousePosition,i=this.axis,s=t.pageX-e.left||0,e=t.pageY-e.top||0,i=this._change[i];return this._updatePrevProperties(),i&&(e=i.apply(this,[t,s,e]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(e=this._updateRatio(e,t)),e=this._respectSize(e,t),this._updateCache(e),this._propagate("resize",t),e=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),y.isEmptyObject(e)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges())),!1},_mouseStop:function(t){this.resizing=!1;var e,i,s,n=this.options,o=this;return this._helper&&(s=(e=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&this._hasScroll(i[0],"left")?0:o.sizeDiff.height,i=e?0:o.sizeDiff.width,e={width:o.helper.width()-i,height:o.helper.height()-s},i=parseFloat(o.element.css("left"))+(o.position.left-o.originalPosition.left)||null,s=parseFloat(o.element.css("top"))+(o.position.top-o.originalPosition.top)||null,n.animate||this.element.css(y.extend(e,{top:s,left:i})),o.helper.height(o.size.height),o.helper.width(o.size.width),this._helper&&!n.animate&&this._proportionallyResize()),y("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s=this.options,n={minWidth:this._isNumber(s.minWidth)?s.minWidth:0,maxWidth:this._isNumber(s.maxWidth)?s.maxWidth:1/0,minHeight:this._isNumber(s.minHeight)?s.minHeight:0,maxHeight:this._isNumber(s.maxHeight)?s.maxHeight:1/0};(this._aspectRatio||t)&&(e=n.minHeight*this.aspectRatio,i=n.minWidth/this.aspectRatio,s=n.maxHeight*this.aspectRatio,t=n.maxWidth/this.aspectRatio,e>n.minWidth&&(n.minWidth=e),i>n.minHeight&&(n.minHeight=i),st.width,h=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,a=this.originalPosition.left+this.originalSize.width,r=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),i=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),h&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=a-e.minWidth),s&&l&&(t.left=a-e.maxWidth),h&&i&&(t.top=r-e.minHeight),n&&i&&(t.top=r-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];e<4;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;e").css({overflow:"hidden"}),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++e.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize;return{left:this.originalPosition.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize;return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},sw:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,e,i]))},ne:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},nw:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,e,i]))}},_propagate:function(t,e){y.ui.plugin.call(this,t,[e,this.ui()]),"resize"!==t&&this._trigger(t,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),y.ui.plugin.add("resizable","animate",{stop:function(e){var i=y(this).resizable("instance"),t=i.options,s=i._proportionallyResizeElements,n=s.length&&/textarea/i.test(s[0].nodeName),o=n&&i._hasScroll(s[0],"left")?0:i.sizeDiff.height,h=n?0:i.sizeDiff.width,n={width:i.size.width-h,height:i.size.height-o},h=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,o=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(y.extend(n,o&&h?{top:o,left:h}:{}),{duration:t.animateDuration,easing:t.animateEasing,step:function(){var t={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};s&&s.length&&y(s[0]).css({width:t.width,height:t.height}),i._updateCache(t),i._propagate("resize",e)}})}}),y.ui.plugin.add("resizable","containment",{start:function(){var i,s,n=y(this).resizable("instance"),t=n.options,e=n.element,o=t.containment,h=o instanceof y?o.get(0):/parent/.test(o)?e.parent().get(0):o;h&&(n.containerElement=y(h),/document/.test(o)||o===document?(n.containerOffset={left:0,top:0},n.containerPosition={left:0,top:0},n.parentData={element:y(document),left:0,top:0,width:y(document).width(),height:y(document).height()||document.body.parentNode.scrollHeight}):(i=y(h),s=[],y(["Top","Right","Left","Bottom"]).each(function(t,e){s[t]=n._num(i.css("padding"+e))}),n.containerOffset=i.offset(),n.containerPosition=i.position(),n.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},t=n.containerOffset,e=n.containerSize.height,o=n.containerSize.width,o=n._hasScroll(h,"left")?h.scrollWidth:o,e=n._hasScroll(h)?h.scrollHeight:e,n.parentData={element:h,left:t.left,top:t.top,width:o,height:e}))},resize:function(t){var e=y(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.position,o=e._aspectRatio||t.shiftKey,h={top:0,left:0},a=e.containerElement,t=!0;a[0]!==document&&/static/.test(a.css("position"))&&(h=s),n.left<(e._helper?s.left:0)&&(e.size.width=e.size.width+(e._helper?e.position.left-s.left:e.position.left-h.left),o&&(e.size.height=e.size.width/e.aspectRatio,t=!1),e.position.left=i.helper?s.left:0),n.top<(e._helper?s.top:0)&&(e.size.height=e.size.height+(e._helper?e.position.top-s.top:e.position.top),o&&(e.size.width=e.size.height*e.aspectRatio,t=!1),e.position.top=e._helper?s.top:0),i=e.containerElement.get(0)===e.element.parent().get(0),n=/relative|absolute/.test(e.containerElement.css("position")),i&&n?(e.offset.left=e.parentData.left+e.position.left,e.offset.top=e.parentData.top+e.position.top):(e.offset.left=e.element.offset().left,e.offset.top=e.element.offset().top),n=Math.abs(e.sizeDiff.width+(e._helper?e.offset.left-h.left:e.offset.left-s.left)),s=Math.abs(e.sizeDiff.height+(e._helper?e.offset.top-h.top:e.offset.top-s.top)),n+e.size.width>=e.parentData.width&&(e.size.width=e.parentData.width-n,o&&(e.size.height=e.size.width/e.aspectRatio,t=!1)),s+e.size.height>=e.parentData.height&&(e.size.height=e.parentData.height-s,o&&(e.size.width=e.size.height*e.aspectRatio,t=!1)),t||(e.position.left=e.prevPosition.left,e.position.top=e.prevPosition.top,e.size.width=e.prevSize.width,e.size.height=e.prevSize.height)},stop:function(){var t=y(this).resizable("instance"),e=t.options,i=t.containerOffset,s=t.containerPosition,n=t.containerElement,o=y(t.helper),h=o.offset(),a=o.outerWidth()-t.sizeDiff.width,o=o.outerHeight()-t.sizeDiff.height;t._helper&&!e.animate&&/relative/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o}),t._helper&&!e.animate&&/static/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o})}}),y.ui.plugin.add("resizable","alsoResize",{start:function(){var t=y(this).resizable("instance").options;y(t.alsoResize).each(function(){var t=y(this);t.data("ui-resizable-alsoresize",{width:parseFloat(t.width()),height:parseFloat(t.height()),left:parseFloat(t.css("left")),top:parseFloat(t.css("top"))})})},resize:function(t,i){var e=y(this).resizable("instance"),s=e.options,n=e.originalSize,o=e.originalPosition,h={height:e.size.height-n.height||0,width:e.size.width-n.width||0,top:e.position.top-o.top||0,left:e.position.left-o.left||0};y(s.alsoResize).each(function(){var t=y(this),s=y(this).data("ui-resizable-alsoresize"),n={},e=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];y.each(e,function(t,e){var i=(s[e]||0)+(h[e]||0);i&&0<=i&&(n[e]=i||null)}),t.css(n)})},stop:function(){y(this).removeData("ui-resizable-alsoresize")}}),y.ui.plugin.add("resizable","ghost",{start:function(){var t=y(this).resizable("instance"),e=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}),t._addClass(t.ghost,"ui-resizable-ghost"),!1!==y.uiBackCompat&&"string"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=y(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=y(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),y.ui.plugin.add("resizable","grid",{resize:function(){var t,e=y(this).resizable("instance"),i=e.options,s=e.size,n=e.originalSize,o=e.originalPosition,h=e.axis,a="number"==typeof i.grid?[i.grid,i.grid]:i.grid,r=a[0]||1,l=a[1]||1,u=Math.round((s.width-n.width)/r)*r,p=Math.round((s.height-n.height)/l)*l,d=n.width+u,c=n.height+p,f=i.maxWidth&&i.maxWidthd,s=i.minHeight&&i.minHeight>c;i.grid=a,m&&(d+=r),s&&(c+=l),f&&(d-=r),g&&(c-=l),/^(se|s|e)$/.test(h)?(e.size.width=d,e.size.height=c):/^(ne)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.top=o.top-p):/^(sw)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.left=o.left-u):((c-l<=0||d-r<=0)&&(t=e._getPaddingPlusBorderDimensions(this)),0=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 + * http://www.smartmenus.org/ + * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file diff --git a/3.4.0/api/net/html/menu.js b/3.4.0/api/net/html/menu.js new file mode 100644 index 000000000..b0b26936a --- /dev/null +++ b/3.4.0/api/net/html/menu.js @@ -0,0 +1,136 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { + function makeTree(data,relPath) { + var result=''; + if ('children' in data) { + result+='
    '; + for (var i in data.children) { + var url; + var link; + link = data.children[i].url; + if (link.substring(0,1)=='^') { + url = link.substring(1); + } else { + url = relPath+link; + } + result+='
  • '+ + data.children[i].text+''+ + makeTree(data.children[i],relPath)+'
  • '; + } + result+='
'; + } + return result; + } + var searchBoxHtml; + if (searchEnabled) { + if (serverSide) { + searchBoxHtml='
'+ + '
'+ + '
 '+ + ''+ + '
'+ + '
'+ + '
'+ + '
'; + } else { + searchBoxHtml='
'+ + ''+ + ' '+ + ''+ + ''+ + ''+ + ''+ + ''+ + '
'; + } + } + + $('#main-nav').before('
'+ + ''+ + ''+ + '
'); + $('#main-nav').append(makeTree(menudata,relPath)); + $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); + if (searchBoxHtml) { + $('#main-menu').append('
  • '); + } + var $mainMenuState = $('#main-menu-state'); + var prevWidth = 0; + if ($mainMenuState.length) { + function initResizableIfExists() { + if (typeof initResizable==='function') initResizable(); + } + // animate mobile menu + $mainMenuState.change(function(e) { + var $menu = $('#main-menu'); + var options = { duration: 250, step: initResizableIfExists }; + if (this.checked) { + options['complete'] = function() { $menu.css('display', 'block') }; + $menu.hide().slideDown(options); + } else { + options['complete'] = function() { $menu.css('display', 'none') }; + $menu.show().slideUp(options); + } + }); + // set default menu visibility + function resetState() { + var $menu = $('#main-menu'); + var $mainMenuState = $('#main-menu-state'); + var newWidth = $(window).outerWidth(); + if (newWidth!=prevWidth) { + if ($(window).outerWidth()<768) { + $mainMenuState.prop('checked',false); $menu.hide(); + $('#searchBoxPos1').html(searchBoxHtml); + $('#searchBoxPos2').hide(); + } else { + $menu.show(); + $('#searchBoxPos1').empty(); + $('#searchBoxPos2').html(searchBoxHtml); + $('#searchBoxPos2').show(); + } + if (typeof searchBox!=='undefined') { + searchBox.CloseResultsWindow(); + } + prevWidth = newWidth; + } + } + $(window).ready(function() { resetState(); initResizableIfExists(); }); + $(window).resize(resetState); + } + $('#main-menu').smartmenus(); +} +/* @license-end */ diff --git a/3.4.0/api/net/html/menudata.js b/3.4.0/api/net/html/menudata.js new file mode 100644 index 000000000..d35b4488c --- /dev/null +++ b/3.4.0/api/net/html/menudata.js @@ -0,0 +1,90 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file +*/ +var menudata={children:[ +{text:"Main Page",url:"index.html"}, +{text:"Classes",url:"annotated.html",children:[ +{text:"Class List",url:"annotated.html"}, +{text:"Class Index",url:"classes.html"}, +{text:"Class Hierarchy",url:"hierarchy.html"}, +{text:"Class Members",url:"functions.html",children:[ +{text:"All",url:"functions.html",children:[ +{text:"a",url:"functions.html#index_a"}, +{text:"b",url:"functions_b.html#index_b"}, +{text:"c",url:"functions_c.html#index_c"}, +{text:"d",url:"functions_d.html#index_d"}, +{text:"e",url:"functions_e.html#index_e"}, +{text:"f",url:"functions_f.html#index_f"}, +{text:"g",url:"functions_g.html#index_g"}, +{text:"h",url:"functions_h.html#index_h"}, +{text:"i",url:"functions_i.html#index_i"}, +{text:"j",url:"functions_j.html#index_j"}, +{text:"m",url:"functions_m.html#index_m"}, +{text:"n",url:"functions_n.html#index_n"}, +{text:"o",url:"functions_o.html#index_o"}, +{text:"p",url:"functions_p.html#index_p"}, +{text:"r",url:"functions_r.html#index_r"}, +{text:"s",url:"functions_s.html#index_s"}, +{text:"t",url:"functions_t.html#index_t"}, +{text:"u",url:"functions_u.html#index_u"}, +{text:"v",url:"functions_v.html#index_v"}, +{text:"w",url:"functions_w.html#index_w"}, +{text:"z",url:"functions_z.html#index_z"}]}, +{text:"Functions",url:"functions_func.html",children:[ +{text:"a",url:"functions_func.html#index_a"}, +{text:"b",url:"functions_func_b.html#index_b"}, +{text:"c",url:"functions_func_c.html#index_c"}, +{text:"d",url:"functions_func_d.html#index_d"}, +{text:"e",url:"functions_func_e.html#index_e"}, +{text:"g",url:"functions_func_g.html#index_g"}, +{text:"i",url:"functions_func_i.html#index_i"}, +{text:"m",url:"functions_func_m.html#index_m"}, +{text:"o",url:"functions_func_o.html#index_o"}, +{text:"p",url:"functions_func_p.html#index_p"}, +{text:"r",url:"functions_func_r.html#index_r"}, +{text:"s",url:"functions_func_s.html#index_s"}, +{text:"t",url:"functions_func_t.html#index_t"}, +{text:"u",url:"functions_func_u.html#index_u"}, +{text:"v",url:"functions_func_v.html#index_v"}, +{text:"w",url:"functions_func_w.html#index_w"}]}, +{text:"Variables",url:"functions_vars.html"}, +{text:"Properties",url:"functions_prop.html",children:[ +{text:"a",url:"functions_prop.html#index_a"}, +{text:"b",url:"functions_prop.html#index_b"}, +{text:"c",url:"functions_prop.html#index_c"}, +{text:"d",url:"functions_prop.html#index_d"}, +{text:"f",url:"functions_prop.html#index_f"}, +{text:"h",url:"functions_prop.html#index_h"}, +{text:"i",url:"functions_prop.html#index_i"}, +{text:"j",url:"functions_prop.html#index_j"}, +{text:"p",url:"functions_prop.html#index_p"}, +{text:"r",url:"functions_prop.html#index_r"}, +{text:"s",url:"functions_prop.html#index_s"}, +{text:"t",url:"functions_prop.html#index_t"}, +{text:"u",url:"functions_prop.html#index_u"}, +{text:"v",url:"functions_prop.html#index_v"}, +{text:"w",url:"functions_prop.html#index_w"}]}, +{text:"Events",url:"functions_evnt.html"}]}]}, +{text:"Files",url:"files.html",children:[ +{text:"File List",url:"files.html"}]}]} diff --git a/3.4.0/api/net/html/namespaceDatalayer.html b/3.4.0/api/net/html/namespaceDatalayer.html new file mode 100644 index 000000000..c1092876f --- /dev/null +++ b/3.4.0/api/net/html/namespaceDatalayer.html @@ -0,0 +1,700 @@ + + + + + + + +ctrlX Data Layer .NET API: Datalayer Namespace Reference +Datalayer Namespace Reference + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
    +
    ctrlX Data Layer .NET API +  4.2.0 +
    +
    +
    +
    + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    Datalayer Namespace Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Classes

    class  DatalayerSystem
     Provides the implementation for IDatalayerSystem. More...
     
    interface  IBulk
     The IBulk interface. More...
     
    interface  IBulkItem
     The IBulkItem interface. More...
     
    interface  IClient
     The IClient interface. More...
     
    interface  IClientAsyncBulkResult
     The IClientAsyncBulkResult interface. More...
     
    interface  IClientAsyncResult
     The IClientAsyncResult interface. More...
     
    interface  IConverter
     The IConverter interface. More...
     
    interface  IDataChangedEventArgs
     The IDataChangedEventArgs interface. More...
     
    interface  IDatalayerSystem
     The IDatalayerSystem interface. More...
     
    interface  IFactory
     The IFactory interface. More...
     
    interface  INativeDisposable
     The INativeDisposable interface. More...
     
    interface  INotifyItem
     The INotifyItem interface. More...
     
    interface  IProvider
     The IProvider interface. More...
     
    interface  IProviderNode
     The IProvider interface. More...
     
    interface  IProviderNodeHandler
     The IProviderNodeHandler interface. More...
     
    interface  IProviderNodeResult
     The IProviderNodeResult interface. More...
     
    interface  ISubscription
     The ISubscription interface. More...
     
    interface  ISubscriptionAsyncResult
     The ISubscriptionAsyncResult interface. More...
     
    interface  IVariant
     The IVariant interface. More...
     
    class  MetadataBuilder
     Provides a convenient way to to build up a Metadata flatbuffers. More...
     
    class  ReferenceType
     Represents a type of reference. More...
     
    class  Remote
     Provides a container for a TCP remote connection string. More...
     
    class  ResultExtensions
     Provides extension methods for DLR_RESULT. More...
     
    class  SubscriptionPropertiesBuilder
     Provides a convenient way to build a SubscriptionProperties flatbuffers. More...
     
    class  Variant
     Provides the implementation for IVariant. More...
     
    + + + + + + + + + + + + + + + + + + + + + +

    +Enumerations

    enum  AllowedOperationFlags {
    +  None = 0 +, Read = 1 << 0 +, Write = 1 << 1 +, Create = 1 << 2 +,
    +  Delete = 1 << 3 +, Browse = 1 << 4 +, All = ~(~0 << 5) +
    + }
     The AllowedOperationFlags enumeration flags. More...
     
    enum  DLR_MEMORYTYPE {
    +  MemoryType_Unknown = 0 +, MemoryType_Input = 1 +, MemoryType_Output = 2 +, MemoryType_SharedRetain = 3 +,
    +  MemoryType_Shared = 4 +
    + }
     The memory type. More...
     
    enum  DLR_RESULT {
    +  DL_OK = 0 +, DL_OK_NO_CONTENT = 1 +, DL_FAILED = unchecked((int)0x80000001) +, DL_INVALID_ADDRESS = unchecked((int)0x80010001) +,
    +  DL_UNSUPPORTED = unchecked((int)0x80010002) +, DL_OUT_OF_MEMORY = unchecked((int)0x80010003) +, DL_LIMIT_MIN = unchecked((int)0x80010004) +, DL_LIMIT_MAX = unchecked((int)0x80010005) +,
    +  DL_TYPE_MISMATCH = unchecked((int)0x80010006) +, DL_SIZE_MISMATCH = unchecked((int)0x80010007) +, DL_INVALID_FLOATINGPOINT = unchecked((int)0x80010009) +, DL_INVALID_HANDLE = unchecked((int)0x8001000A) +,
    +  DL_INVALID_OPERATION_MODE = unchecked((int)0x8001000B) +, DL_INVALID_CONFIGURATION = unchecked((int)0x8001000C) +, DL_INVALID_VALUE = unchecked((int)0x8001000D) +, DL_SUBMODULE_FAILURE = unchecked((int)0x8001000E) +,
    +  DL_TIMEOUT = unchecked((int)0x8001000F) +, DL_ALREADY_EXISTS = unchecked((int)0x80010010) +, DL_CREATION_FAILED = unchecked((int)0x80010011) +, DL_VERSION_MISMATCH = unchecked((int)0x80010012) +,
    +  DL_DEPRECATED = unchecked((int)0x80010013) +, DL_PERMISSION_DENIED = unchecked((int)0x80010014) +, DL_NOT_INITIALIZED = unchecked((int)0x80010015) +, DL_MISSING_ARGUMENT = unchecked((int)0x80010016) +,
    +  DL_TOO_MANY_ARGUMENTS = unchecked((int)0x80010017) +, DL_RESOURCE_UNAVAILABLE = unchecked((int)0x80010018) +, DL_COMMUNICATION_ERROR = unchecked((int)0x80010019) +, DL_TOO_MANY_OPERATIONS = unchecked((int)0x8001001A) +,
    +  DL_WOULD_BLOCK = unchecked((int)0x8001001B) +, DL_COMM_PROTOCOL_ERROR = unchecked((int)0x80020001) +, DL_COMM_INVALID_HEADER = unchecked((int)0x80020002) +, DL_CLIENT_NOT_CONNECTED = unchecked((int)0x80030001) +,
    +  DL_PROVIDER_RESET_TIMEOUT = unchecked((int)0x80040001) +, DL_PROVIDER_UPDATE_TIMEOUT = unchecked((int)0x80040002) +, DL_PROVIDER_SUB_HANDLING = unchecked((int)0x80040003) +, DL_RT_NOTOPEN = unchecked((int)0x80060001) +,
    +  DL_RT_INVALIDOBJECT = unchecked((int)0x80060002) +, DL_RT_WRONGREVISON = unchecked((int)0x80060003) +, DL_RT_NOVALIDDATA = unchecked((int)0x80060004) +, DL_RT_MEMORYLOCKED = unchecked((int)0x80060005) +,
    +  DL_RT_INVALIDMEMORYMAP = unchecked((int)0x80060006) +, DL_RT_INVALID_RETAIN = unchecked((int)0x80060007) +, DL_RT_INTERNAL_ERROR = unchecked((int)0x80060008) +, DL_RT_MALLOC_FAILED = unchecked((int)0x80060009) +,
    +  DL_RT_WOULD_BLOCK = unchecked((int)0x8006000A) +, DL_SEC_NOTOKEN = unchecked((int)0x80070001) +, DL_SEC_INVALIDSESSION = unchecked((int)0x80070002) +, DL_SEC_INVALIDTOKENCONTENT = unchecked((int)0x80070003) +,
    +  DL_SEC_UNAUTHORIZED = unchecked((int)0x80070004) +, DL_SEC_PAYMENT_REQUIRED = unchecked((int)0x80070005) +
    + }
     The result. More...
     
    enum  DLR_SCHEMA {
    +  DLR_SCHEMA_METADATA = 0 +, DLR_SCHEMA_REFLECTION = 1 +, DLR_SCHEMA_MEMORY = 2 +, DLR_SCHEMA_MEMORY_MAP = 3 +,
    +  DLR_SCHEMA_TOKEN = 4 +, DLR_SCHEMA_PROBLEM = 5 +, DLR_SCHEMA_DIAGNOSIS = 6 +
    + }
     The schema. More...
     
    enum  DLR_TIMEOUT_SETTING { Idle +, Ping +, Reconnect + }
     The timeout setting. More...
     
    enum  DLR_VARIANT_TYPE {
    +  DLR_VARIANT_TYPE_UNKNOWN +, DLR_VARIANT_TYPE_BOOL8 +, DLR_VARIANT_TYPE_INT8 +, DLR_VARIANT_TYPE_UINT8 +,
    +  DLR_VARIANT_TYPE_INT16 +, DLR_VARIANT_TYPE_UINT16 +, DLR_VARIANT_TYPE_INT32 +, DLR_VARIANT_TYPE_UINT32 +,
    +  DLR_VARIANT_TYPE_INT64 +, DLR_VARIANT_TYPE_UINT64 +, DLR_VARIANT_TYPE_FLOAT32 +, DLR_VARIANT_TYPE_FLOAT64 +,
    +  DLR_VARIANT_TYPE_STRING +, DLR_VARIANT_TYPE_ARRAY_OF_BOOL8 +, DLR_VARIANT_TYPE_ARRAY_OF_INT8 +, DLR_VARIANT_TYPE_ARRAY_OF_UINT8 +,
    +  DLR_VARIANT_TYPE_ARRAY_OF_INT16 +, DLR_VARIANT_TYPE_ARRAY_OF_UINT16 +, DLR_VARIANT_TYPE_ARRAY_OF_INT32 +, DLR_VARIANT_TYPE_ARRAY_OF_UINT32 +,
    +  DLR_VARIANT_TYPE_ARRAY_OF_INT64 +, DLR_VARIANT_TYPE_ARRAY_OF_UINT64 +, DLR_VARIANT_TYPE_ARRAY_OF_FLOAT32 +, DLR_VARIANT_TYPE_ARRAY_OF_FLOAT64 +,
    +  DLR_VARIANT_TYPE_ARRAY_OF_STRING +, DLR_VARIANT_TYPE_RAW +, DLR_VARIANT_TYPE_FLATBUFFERS +, DLR_VARIANT_TYPE_TIMESTAMP +,
    +  DLR_VARIANT_TYPE_ARRAY_OF_TIMESTAMP +
    + }
     DLR_VARIANT_TYPE. More...
     
    enum  ProtocolScheme { AUTO +, IPC +, TCP + }
     
    +

    Enumeration Type Documentation

    + +

    ◆ AllowedOperationFlags

    + +
    +
    + + + + +
    enum AllowedOperationFlags
    +
    + +

    The AllowedOperationFlags enumeration flags.

    + + + + + + + + +
    Enumerator
    None 

    None.

    +
    Read 

    Read.

    +
    Write 

    Write.

    +
    Create 

    Create.

    +
    Delete 

    Delete.

    +
    Browse 

    Browse.

    +
    All 

    All.

    +
    + +

    Definition at line 9 of file Enums.cs.

    + +
    +
    + +

    ◆ DLR_MEMORYTYPE

    + +
    +
    + + + + +
    enum DLR_MEMORYTYPE
    +
    + +

    The memory type.

    + + + + + + +
    Enumerator
    MemoryType_Unknown 

    Unknown memory type.

    +
    MemoryType_Input 

    Input memory type.

    +
    MemoryType_Output 

    Output memory type.

    +
    MemoryType_SharedRetain 

    Shared retain memory type.

    +
    MemoryType_Shared 

    Shared memory type.

    +
    + +

    Definition at line 44 of file Enums.cs.

    + +
    +
    + +

    ◆ DLR_RESULT

    + +
    +
    + + + + +
    enum DLR_RESULT
    +
    + +

    The result.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Enumerator
    DL_OK 

    Function call succeeded.

    +
    DL_OK_NO_CONTENT 

    Function call succeeded with no content.

    +
    DL_FAILED 

    Function call failed.

    +
    DL_INVALID_ADDRESS 

    Address not found, address invalid (browse of this node not possible, write -> address not valid).

    +
    DL_UNSUPPORTED 

    Function not implemented.

    +
    DL_OUT_OF_MEMORY 

    Out of memory or resources (RAM, sockets, handles, disk space ...).

    +
    DL_LIMIT_MIN 

    The minimum of a limitation is exceeded.

    +
    DL_LIMIT_MAX 

    The maximum of a limitation is exceeded.

    +
    DL_TYPE_MISMATCH 

    Wrong flatbuffer type, wrong data type.

    +
    DL_SIZE_MISMATCH 

    Size mismatch, present size doesn't match requested size.

    +
    DL_INVALID_FLOATINGPOINT 

    Invalid floating point number.

    +
    DL_INVALID_HANDLE 

    Invalid handle argument or NULL pointer argument.

    +
    DL_INVALID_OPERATION_MODE 

    Not accessible due to invalid operation mode (write not possible).

    +
    DL_INVALID_CONFIGURATION 

    Mismatch of this value with other configured values.

    +
    DL_INVALID_VALUE 

    Invalid value.

    +
    DL_SUBMODULE_FAILURE 

    Error in submodule.

    +
    DL_TIMEOUT 

    Request timeout.

    +
    DL_ALREADY_EXISTS 

    Create: resource already exists.

    +
    DL_CREATION_FAILED 

    Error during creation.

    +
    DL_VERSION_MISMATCH 

    Version conflict.

    +
    DL_DEPRECATED 

    Deprecated - function not longer supported.

    +
    DL_PERMISSION_DENIED 

    Request declined due to missing permission rights.

    +
    DL_NOT_INITIALIZED 

    Object not initialized yet.

    +
    DL_MISSING_ARGUMENT 

    Missing argument (eg. missing argument in fbs).

    +
    DL_TOO_MANY_ARGUMENTS 

    To many arguments.

    +
    DL_RESOURCE_UNAVAILABLE 

    Resource unavailable.

    +
    DL_COMMUNICATION_ERROR 

    Low level communication error occurred.

    +
    DL_TOO_MANY_OPERATIONS 

    Request can't be handled due to too many operations.

    +
    DL_WOULD_BLOCK 

    Request would block, you have called a synchronous function in a callback from a asynchronous function.

    +
    DL_COMM_PROTOCOL_ERROR 

    Internal protocol error.

    +
    DL_COMM_INVALID_HEADER 

    Internal header mismatch.

    +
    DL_CLIENT_NOT_CONNECTED 

    Client not connected.

    +
    DL_PROVIDER_RESET_TIMEOUT 

    Provider reset timeout.

    +
    DL_PROVIDER_UPDATE_TIMEOUT 

    Provider update timeout.

    +
    DL_PROVIDER_SUB_HANDLING 

    Provider default subscription handling.

    +
    DL_RT_NOTOPEN 

    RT not open.

    +
    DL_RT_INVALIDOBJECT 

    RT invalid object.

    +
    DL_RT_WRONGREVISON 

    RT wrong memory revision.

    +
    DL_RT_NOVALIDDATA 

    RT no valid data.

    +
    DL_RT_MEMORYLOCKED 

    RT memory already locked.

    +
    DL_RT_INVALIDMEMORYMAP 

    RT invalid memory map.

    +
    DL_RT_INVALID_RETAIN 

    RT invalid retain.

    +
    DL_RT_INTERNAL_ERROR 

    RT internal error.

    +
    DL_RT_MALLOC_FAILED 

    Allocation of shared memory failed - datalayer-shm connected?

    +
    DL_RT_WOULD_BLOCK 

    BeginAccess would block because there are no data.

    +
    DL_SEC_NOTOKEN 

    No token found.

    +
    DL_SEC_INVALIDSESSION 

    Token not valid (session not found).

    +
    DL_SEC_INVALIDTOKENCONTENT 

    Token has wrong content.

    +
    DL_SEC_UNAUTHORIZED 

    Unauthorized.

    +
    DL_SEC_PAYMENT_REQUIRED 

    Payment required.

    +
    + +

    Definition at line 140 of file Enums.cs.

    + +
    +
    + +

    ◆ DLR_SCHEMA

    + +
    +
    + + + + +
    enum DLR_SCHEMA
    +
    + +

    The schema.

    + + + + + + + + +
    Enumerator
    DLR_SCHEMA_METADATA 

    Metadata schema.

    +
    DLR_SCHEMA_REFLECTION 

    Reflection schema.

    +
    DLR_SCHEMA_MEMORY 

    Memory schema.

    +
    DLR_SCHEMA_MEMORY_MAP 

    Map schema.

    +
    DLR_SCHEMA_TOKEN 

    Token schema.

    +
    DLR_SCHEMA_PROBLEM 

    Problem schema.

    +
    DLR_SCHEMA_DIAGNOSIS 

    Diagnosis schema.

    +
    + +

    Definition at line 75 of file Enums.cs.

    + +
    +
    + +

    ◆ DLR_TIMEOUT_SETTING

    + +
    +
    + + + + +
    enum DLR_TIMEOUT_SETTING
    +
    + +

    The timeout setting.

    + + + + +
    Enumerator
    Idle 

    Timeout to check whether the broker is still active when client is idle. Default: 30000 ms.

    +
    Ping 

    Timeout to wait for a response of a request. If timeout is exceeded, the request will be aborted with DL_TIMEOUT. Default: 3000 ms.

    +
    Reconnect 

    Timeout a reconnect attempt will be done if client looses connection to broker. Default: 1000 ms.

    +
    + +

    Definition at line 116 of file Enums.cs.

    + +
    +
    + +

    ◆ DLR_VARIANT_TYPE

    + +
    +
    + + + + +
    enum DLR_VARIANT_TYPE
    +
    + +

    DLR_VARIANT_TYPE.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Enumerator
    DLR_VARIANT_TYPE_UNKNOWN 

    Unknown datatype.

    +
    DLR_VARIANT_TYPE_BOOL8 

    Bool 8 bit.

    +
    DLR_VARIANT_TYPE_INT8 

    Signed int 8 bit.

    +
    DLR_VARIANT_TYPE_UINT8 

    Unsigned int 8 bit.

    +
    DLR_VARIANT_TYPE_INT16 

    Signed int 16 bit.

    +
    DLR_VARIANT_TYPE_UINT16 

    Unsigned int 16 bit.

    +
    DLR_VARIANT_TYPE_INT32 

    Signed int 32 bit.

    +
    DLR_VARIANT_TYPE_UINT32 

    Unsigned int 32 bit.

    +
    DLR_VARIANT_TYPE_INT64 

    Signed int 64 bit.

    +
    DLR_VARIANT_TYPE_UINT64 

    Unsigned int 64 bit.

    +
    DLR_VARIANT_TYPE_FLOAT32 

    Float 32 bit.

    +
    DLR_VARIANT_TYPE_FLOAT64 

    Float 64 bit.

    +
    DLR_VARIANT_TYPE_STRING 

    String (UTF-8)

    +
    DLR_VARIANT_TYPE_ARRAY_OF_BOOL8 

    Array of bool 8 bit.

    +
    DLR_VARIANT_TYPE_ARRAY_OF_INT8 

    Array of Signed int 8 bit.

    +
    DLR_VARIANT_TYPE_ARRAY_OF_UINT8 

    Array of Unsigned int 8 bit.

    +
    DLR_VARIANT_TYPE_ARRAY_OF_INT16 

    Array of Signed int 16 bit.

    +
    DLR_VARIANT_TYPE_ARRAY_OF_UINT16 

    Array of Unsigned int 16 bit.

    +
    DLR_VARIANT_TYPE_ARRAY_OF_INT32 

    Array of Signed int 32 bit.

    +
    DLR_VARIANT_TYPE_ARRAY_OF_UINT32 

    Array of Unsigned int 32 bit.

    +
    DLR_VARIANT_TYPE_ARRAY_OF_INT64 

    Array of Signed int 64 bit.

    +
    DLR_VARIANT_TYPE_ARRAY_OF_UINT64 

    Array of Unsigned int 64 bit.

    +
    DLR_VARIANT_TYPE_ARRAY_OF_FLOAT32 

    Array of float 32 bit.

    +
    DLR_VARIANT_TYPE_ARRAY_OF_FLOAT64 

    Array of float 64 bit.

    +
    DLR_VARIANT_TYPE_ARRAY_OF_STRING 

    Array of string (UTF-8)

    +
    DLR_VARIANT_TYPE_RAW 

    Raw bytes.

    +
    DLR_VARIANT_TYPE_FLATBUFFERS 

    Bytes as a complex data type encoded as a flatbuffer.

    +
    DLR_VARIANT_TYPE_TIMESTAMP 

    Timestamp (FILETIME) 64 bit 100ns since 1.1.1601 (UTC)

    +
    DLR_VARIANT_TYPE_ARRAY_OF_TIMESTAMP 

    Array of Timestamp (FILETIME) 64 bit 100ns since 1.1.1601 (UTC)

    +
    + +

    Definition at line 396 of file Enums.cs.

    + +
    +
    + +

    ◆ ProtocolScheme

    + +
    +
    + + + + +
    enum ProtocolScheme
    +
    + + + + +
    Enumerator
    AUTO 

    Autodect the protocol IPC (Inter Process Communication) if running inside SNAP otherwise TCP (Transmission Control Protocol).

    +
    IPC 

    IPC (Inter Process Communication)

    +
    TCP 
    + +

    Definition at line 3 of file ProtocolScheme.cs.

    + +
    +
    +
    +
    + + + + diff --git a/3.4.0/api/net/html/namespacemembers.html b/3.4.0/api/net/html/namespacemembers.html new file mode 100644 index 000000000..4e3e3712c --- /dev/null +++ b/3.4.0/api/net/html/namespacemembers.html @@ -0,0 +1,118 @@ + + + + + + + +ctrlX Data Layer .NET API: Namespace Members +Namespace Members + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
    +
    ctrlX Data Layer .NET API +  4.2.0 +
    +
    +
    +
    + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace members with links to the namespaces they belong to:
    +
    +
    + + + + diff --git a/3.4.0/api/net/html/namespacemembers_enum.html b/3.4.0/api/net/html/namespacemembers_enum.html new file mode 100644 index 000000000..253c1e274 --- /dev/null +++ b/3.4.0/api/net/html/namespacemembers_enum.html @@ -0,0 +1,118 @@ + + + + + + + +ctrlX Data Layer .NET API: Namespace Members +Namespace Members + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
    +
    ctrlX Data Layer .NET API +  4.2.0 +
    +
    +
    +
    + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    +
    + + + + diff --git a/3.4.0/api/net/html/nav_f.png b/3.4.0/api/net/html/nav_f.png new file mode 100644 index 000000000..72a58a529 Binary files /dev/null and b/3.4.0/api/net/html/nav_f.png differ diff --git a/3.4.0/api/net/html/nav_fd.png b/3.4.0/api/net/html/nav_fd.png new file mode 100644 index 000000000..032fbdd4c Binary files /dev/null and b/3.4.0/api/net/html/nav_fd.png differ diff --git a/3.4.0/api/net/html/nav_g.png b/3.4.0/api/net/html/nav_g.png new file mode 100644 index 000000000..2093a237a Binary files /dev/null and b/3.4.0/api/net/html/nav_g.png differ diff --git a/3.4.0/api/net/html/nav_h.png b/3.4.0/api/net/html/nav_h.png new file mode 100644 index 000000000..33389b101 Binary files /dev/null and b/3.4.0/api/net/html/nav_h.png differ diff --git a/3.4.0/api/net/html/nav_hd.png b/3.4.0/api/net/html/nav_hd.png new file mode 100644 index 000000000..de80f18ad Binary files /dev/null and b/3.4.0/api/net/html/nav_hd.png differ diff --git a/3.4.0/api/net/html/navtree.css b/3.4.0/api/net/html/navtree.css new file mode 100644 index 000000000..c8a7766a7 --- /dev/null +++ b/3.4.0/api/net/html/navtree.css @@ -0,0 +1,150 @@ +#nav-tree .children_ul { + margin:0; + padding:4px; +} + +#nav-tree ul { + list-style:none outside none; + margin:0px; + padding:0px; +} + +#nav-tree li { + white-space:nowrap; + margin:0px; + padding:0px; +} + +#nav-tree .plus { + margin:0px; +} + +#nav-tree .selected { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + color: var(--nav-text-active-color); + text-shadow: var(--nav-text-active-shadow); +} + +#nav-tree .selected .arrow { + color: var(--nav-arrow-selected-color); + text-shadow: none; +} + +#nav-tree img { + margin:0px; + padding:0px; + border:0px; + vertical-align: middle; +} + +#nav-tree a { + text-decoration:none; + padding:0px; + margin:0px; + outline:none; +} + +#nav-tree .label { + margin:0px; + padding:0px; + font: 12px var(--font-family-nav); +} + +#nav-tree .label a { + padding:2px; +} + +#nav-tree .selected a { + text-decoration:none; + color:var(--nav-text-active-color); +} + +#nav-tree .children_ul { + margin:0px; + padding:0px; +} + +#nav-tree .item { + margin:0px; + padding:0px; +} + +#nav-tree { + padding: 0px 0px; + font-size:14px; + overflow:auto; +} + +#doc-content { + overflow:auto; + display:block; + padding:0px; + margin:0px; + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +#side-nav { + padding:0 6px 0 0; + margin: 0px; + display:block; + position: absolute; + left: 0px; + width: $width; + overflow : hidden; +} + +.ui-resizable .ui-resizable-handle { + display:block; +} + +.ui-resizable-e { + background-image:var(--nav-splitbar-image); + background-size:100%; + background-repeat:repeat-y; + background-attachment: scroll; + cursor:ew-resize; + height:100%; + right:0; + top:0; + width:6px; +} + +.ui-resizable-handle { + display:none; + font-size:0.1px; + position:absolute; + z-index:1; +} + +#nav-tree-contents { + margin: 6px 0px 0px 0px; +} + +#nav-tree { + background-repeat:repeat-x; + background-color: var(--nav-background-color); + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +#nav-sync { + position:absolute; + top:5px; + right:24px; + z-index:0; +} + +#nav-sync img { + opacity:0.3; +} + +#nav-sync img:hover { + opacity:0.9; +} + +@media print +{ + #nav-tree { display: none; } + div.ui-resizable-handle { display: none; position: relative; } +} + diff --git a/3.4.0/api/net/html/navtree.js b/3.4.0/api/net/html/navtree.js new file mode 100644 index 000000000..27983687a --- /dev/null +++ b/3.4.0/api/net/html/navtree.js @@ -0,0 +1,549 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +var navTreeSubIndices = new Array(); +var arrowDown = '▼'; +var arrowRight = '►'; + +function getData(varName) +{ + var i = varName.lastIndexOf('/'); + var n = i>=0 ? varName.substring(i+1) : varName; + return eval(n.replace(/\-/g,'_')); +} + +function stripPath(uri) +{ + return uri.substring(uri.lastIndexOf('/')+1); +} + +function stripPath2(uri) +{ + var i = uri.lastIndexOf('/'); + var s = uri.substring(i+1); + var m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/); + return m ? uri.substring(i-6) : s; +} + +function hashValue() +{ + return $(location).attr('hash').substring(1).replace(/[^\w\-]/g,''); +} + +function hashUrl() +{ + return '#'+hashValue(); +} + +function pathName() +{ + return $(location).attr('pathname').replace(/[^-A-Za-z0-9+&@#/%?=~_|!:,.;\(\)]/g, ''); +} + +function localStorageSupported() +{ + try { + return 'localStorage' in window && window['localStorage'] !== null && window.localStorage.getItem; + } + catch(e) { + return false; + } +} + +function storeLink(link) +{ + if (!$("#nav-sync").hasClass('sync') && localStorageSupported()) { + window.localStorage.setItem('navpath',link); + } +} + +function deleteLink() +{ + if (localStorageSupported()) { + window.localStorage.setItem('navpath',''); + } +} + +function cachedLink() +{ + if (localStorageSupported()) { + return window.localStorage.getItem('navpath'); + } else { + return ''; + } +} + +function getScript(scriptName,func,show) +{ + var head = document.getElementsByTagName("head")[0]; + var script = document.createElement('script'); + script.id = scriptName; + script.type = 'text/javascript'; + script.onload = func; + script.src = scriptName+'.js'; + head.appendChild(script); +} + +function createIndent(o,domNode,node,level) +{ + var level=-1; + var n = node; + while (n.parentNode) { level++; n=n.parentNode; } + if (node.childrenData) { + var imgNode = document.createElement("span"); + imgNode.className = 'arrow'; + imgNode.style.paddingLeft=(16*level).toString()+'px'; + imgNode.innerHTML=arrowRight; + node.plus_img = imgNode; + node.expandToggle = document.createElement("a"); + node.expandToggle.href = "javascript:void(0)"; + node.expandToggle.onclick = function() { + if (node.expanded) { + $(node.getChildrenUL()).slideUp("fast"); + node.plus_img.innerHTML=arrowRight; + node.expanded = false; + } else { + expandNode(o, node, false, false); + } + } + node.expandToggle.appendChild(imgNode); + domNode.appendChild(node.expandToggle); + } else { + var span = document.createElement("span"); + span.className = 'arrow'; + span.style.width = 16*(level+1)+'px'; + span.innerHTML = ' '; + domNode.appendChild(span); + } +} + +var animationInProgress = false; + +function gotoAnchor(anchor,aname,updateLocation) +{ + var pos, docContent = $('#doc-content'); + var ancParent = $(anchor.parent()); + if (ancParent.hasClass('memItemLeft') || + ancParent.hasClass('memtitle') || + ancParent.hasClass('fieldname') || + ancParent.hasClass('fieldtype') || + ancParent.is(':header')) + { + pos = ancParent.position().top; + } else if (anchor.position()) { + pos = anchor.position().top; + } + if (pos) { + var dist = Math.abs(Math.min( + pos-docContent.offset().top, + docContent[0].scrollHeight- + docContent.height()-docContent.scrollTop())); + animationInProgress=true; + docContent.animate({ + scrollTop: pos + docContent.scrollTop() - docContent.offset().top + },Math.max(50,Math.min(500,dist)),function(){ + if (updateLocation) window.location.href=aname; + animationInProgress=false; + }); + } +} + +function newNode(o, po, text, link, childrenData, lastNode) +{ + var node = new Object(); + node.children = Array(); + node.childrenData = childrenData; + node.depth = po.depth + 1; + node.relpath = po.relpath; + node.isLast = lastNode; + + node.li = document.createElement("li"); + po.getChildrenUL().appendChild(node.li); + node.parentNode = po; + + node.itemDiv = document.createElement("div"); + node.itemDiv.className = "item"; + + node.labelSpan = document.createElement("span"); + node.labelSpan.className = "label"; + + createIndent(o,node.itemDiv,node,0); + node.itemDiv.appendChild(node.labelSpan); + node.li.appendChild(node.itemDiv); + + var a = document.createElement("a"); + node.labelSpan.appendChild(a); + node.label = document.createTextNode(text); + node.expanded = false; + a.appendChild(node.label); + if (link) { + var url; + if (link.substring(0,1)=='^') { + url = link.substring(1); + link = url; + } else { + url = node.relpath+link; + } + a.className = stripPath(link.replace('#',':')); + if (link.indexOf('#')!=-1) { + var aname = '#'+link.split('#')[1]; + var srcPage = stripPath(pathName()); + var targetPage = stripPath(link.split('#')[0]); + a.href = srcPage!=targetPage ? url : "javascript:void(0)"; + a.onclick = function(){ + storeLink(link); + if (!$(a).parent().parent().hasClass('selected')) + { + $('.item').removeClass('selected'); + $('.item').removeAttr('id'); + $(a).parent().parent().addClass('selected'); + $(a).parent().parent().attr('id','selected'); + } + var anchor = $(aname); + gotoAnchor(anchor,aname,true); + }; + } else { + a.href = url; + a.onclick = function() { storeLink(link); } + } + } else { + if (childrenData != null) + { + a.className = "nolink"; + a.href = "javascript:void(0)"; + a.onclick = node.expandToggle.onclick; + } + } + + node.childrenUL = null; + node.getChildrenUL = function() { + if (!node.childrenUL) { + node.childrenUL = document.createElement("ul"); + node.childrenUL.className = "children_ul"; + node.childrenUL.style.display = "none"; + node.li.appendChild(node.childrenUL); + } + return node.childrenUL; + }; + + return node; +} + +function showRoot() +{ + var headerHeight = $("#top").height(); + var footerHeight = $("#nav-path").height(); + var windowHeight = $(window).height() - headerHeight - footerHeight; + (function (){ // retry until we can scroll to the selected item + try { + var navtree=$('#nav-tree'); + navtree.scrollTo('#selected',100,{offset:-windowHeight/2}); + } catch (err) { + setTimeout(arguments.callee, 0); + } + })(); +} + +function expandNode(o, node, imm, showRoot) +{ + if (node.childrenData && !node.expanded) { + if (typeof(node.childrenData)==='string') { + var varName = node.childrenData; + getScript(node.relpath+varName,function(){ + node.childrenData = getData(varName); + expandNode(o, node, imm, showRoot); + }, showRoot); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } + $(node.getChildrenUL()).slideDown("fast"); + node.plus_img.innerHTML = arrowDown; + node.expanded = true; + } + } +} + +function glowEffect(n,duration) +{ + n.addClass('glow').delay(duration).queue(function(next){ + $(this).removeClass('glow');next(); + }); +} + +function highlightAnchor() +{ + var aname = hashUrl(); + var anchor = $(aname); + if (anchor.parent().attr('class')=='memItemLeft'){ + var rows = $('.memberdecls tr[class$="'+hashValue()+'"]'); + glowEffect(rows.children(),300); // member without details + } else if (anchor.parent().attr('class')=='fieldname'){ + glowEffect(anchor.parent().parent(),1000); // enum value + } else if (anchor.parent().attr('class')=='fieldtype'){ + glowEffect(anchor.parent().parent(),1000); // struct field + } else if (anchor.parent().is(":header")) { + glowEffect(anchor.parent(),1000); // section header + } else { + glowEffect(anchor.next(),1000); // normal member + } +} + +function selectAndHighlight(hash,n) +{ + var a; + if (hash) { + var link=stripPath(pathName())+':'+hash.substring(1); + a=$('.item a[class$="'+link+'"]'); + } + if (a && a.length) { + a.parent().parent().addClass('selected'); + a.parent().parent().attr('id','selected'); + highlightAnchor(); + } else if (n) { + $(n.itemDiv).addClass('selected'); + $(n.itemDiv).attr('id','selected'); + } + var topOffset=5; + if (typeof page_layout!=='undefined' && page_layout==1) { + topOffset+=$('#top').outerHeight(); + } + if ($('#nav-tree-contents .item:first').hasClass('selected')) { + topOffset+=25; + } + $('#nav-sync').css('top',topOffset+'px'); + showRoot(); +} + +function showNode(o, node, index, hash) +{ + if (node && node.childrenData) { + if (typeof(node.childrenData)==='string') { + var varName = node.childrenData; + getScript(node.relpath+varName,function(){ + node.childrenData = getData(varName); + showNode(o,node,index,hash); + },true); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } + $(node.getChildrenUL()).css({'display':'block'}); + node.plus_img.innerHTML = arrowDown; + node.expanded = true; + var n = node.children[o.breadcrumbs[index]]; + if (index+11) hash = '#'+parts[1].replace(/[^\w\-]/g,''); + else hash=''; + } + if (hash.match(/^#l\d+$/)) { + var anchor=$('a[name='+hash.substring(1)+']'); + glowEffect(anchor.parent(),1000); // line number + hash=''; // strip line number anchors + } + var url=root+hash; + var i=-1; + while (NAVTREEINDEX[i+1]<=url) i++; + if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath) + } else { + getScript(relpath+'navtreeindex'+i,function(){ + navTreeSubIndices[i] = eval('NAVTREEINDEX'+i); + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath); + } + },true); + } +} + +function showSyncOff(n,relpath) +{ + n.html(''); +} + +function showSyncOn(n,relpath) +{ + n.html(''); +} + +function toggleSyncButton(relpath) +{ + var navSync = $('#nav-sync'); + if (navSync.hasClass('sync')) { + navSync.removeClass('sync'); + showSyncOff(navSync,relpath); + storeLink(stripPath2(pathName())+hashUrl()); + } else { + navSync.addClass('sync'); + showSyncOn(navSync,relpath); + deleteLink(); + } +} + +var loadTriggered = false; +var readyTriggered = false; +var loadObject,loadToRoot,loadUrl,loadRelPath; + +$(window).on('load',function(){ + if (readyTriggered) { // ready first + navTo(loadObject,loadToRoot,loadUrl,loadRelPath); + showRoot(); + } + loadTriggered=true; +}); + +function initNavTree(toroot,relpath) +{ + var o = new Object(); + o.toroot = toroot; + o.node = new Object(); + o.node.li = document.getElementById("nav-tree-contents"); + o.node.childrenData = NAVTREE; + o.node.children = new Array(); + o.node.childrenUL = document.createElement("ul"); + o.node.getChildrenUL = function() { return o.node.childrenUL; }; + o.node.li.appendChild(o.node.childrenUL); + o.node.depth = 0; + o.node.relpath = relpath; + o.node.expanded = false; + o.node.isLast = true; + o.node.plus_img = document.createElement("span"); + o.node.plus_img.className = 'arrow'; + o.node.plus_img.innerHTML = arrowRight; + + if (localStorageSupported()) { + var navSync = $('#nav-sync'); + if (cachedLink()) { + showSyncOff(navSync,relpath); + navSync.removeClass('sync'); + } else { + showSyncOn(navSync,relpath); + } + navSync.click(function(){ toggleSyncButton(relpath); }); + } + + if (loadTriggered) { // load before ready + navTo(o,toroot,hashUrl(),relpath); + showRoot(); + } else { // ready before load + loadObject = o; + loadToRoot = toroot; + loadUrl = hashUrl(); + loadRelPath = relpath; + readyTriggered=true; + } + + $(window).bind('hashchange', function(){ + if (window.location.hash && window.location.hash.length>1){ + var a; + if ($(location).attr('hash')){ + var clslink=stripPath(pathName())+':'+hashValue(); + a=$('.item a[class$="'+clslink.replace(/0) { + newWidth=0; + } + else { + var width = readSetting('width'); + newWidth = (width>250 && width<$(window).width()) ? width : 250; + } + restoreWidth(newWidth); + var sidenavWidth = $(sidenav).outerWidth(); + writeSetting('width',sidenavWidth-barWidth); + } + + header = $("#top"); + sidenav = $("#side-nav"); + content = $("#doc-content"); + navtree = $("#nav-tree"); + footer = $("#nav-path"); + $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } }); + $(sidenav).resizable({ minWidth: 0 }); + $(window).resize(function() { resizeHeight(); }); + var device = navigator.userAgent.toLowerCase(); + var touch_device = device.match(/(iphone|ipod|ipad|android)/); + if (touch_device) { /* wider split bar for touch only devices */ + $(sidenav).css({ paddingRight:'20px' }); + $('.ui-resizable-e').css({ width:'20px' }); + $('#nav-sync').css({ right:'34px' }); + barWidth=20; + } + var width = readSetting('width'); + if (width) { restoreWidth(width); } else { resizeWidth(); } + resizeHeight(); + var url = location.href; + var i=url.indexOf("#"); + if (i>=0) window.location.hash=url.substr(i); + var _preventDefault = function(evt) { evt.preventDefault(); }; + $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault); + if (once) { + $(".ui-resizable-handle").dblclick(collapseExpand); + once=0 + } + $(window).on('load',resizeHeight); +} +/* @license-end */ diff --git a/3.4.0/api/net/html/rexrothlogo_80.jpg b/3.4.0/api/net/html/rexrothlogo_80.jpg new file mode 100644 index 000000000..a2953c10d Binary files /dev/null and b/3.4.0/api/net/html/rexrothlogo_80.jpg differ diff --git a/3.4.0/api/net/html/search/all_0.js b/3.4.0/api/net/html/search/all_0.js new file mode 100644 index 000000000..9f0acda0d --- /dev/null +++ b/3.4.0/api/net/html/search/all_0.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['adddescription_0',['AddDescription',['../classDatalayer_1_1MetadataBuilder.html#a43e3829710540cf1f83c7dc7801457c9',1,'Datalayer::MetadataBuilder']]], + ['adddisplayname_1',['AddDisplayName',['../classDatalayer_1_1MetadataBuilder.html#a8bb5b21928a152cfce296f7d882c69b8',1,'Datalayer::MetadataBuilder']]], + ['addextension_2',['AddExtension',['../classDatalayer_1_1MetadataBuilder.html#a954622ccf3822a0103cde8eb8d6798f6',1,'Datalayer::MetadataBuilder']]], + ['addreference_3',['AddReference',['../classDatalayer_1_1MetadataBuilder.html#a274ede3bbe3acef267269ac6c6ccf912',1,'Datalayer::MetadataBuilder']]], + ['address_4',['Address',['../interfaceDatalayer_1_1IBulkItem.html#aec57182df53b04aceca477433c48ecfc',1,'Datalayer::IBulkItem']]], + ['all_5',['All',['../namespaceDatalayer.html#ac548b797bc499a716ce33d3e936468edab1c94ca2fbc3e78fc30069c8d0f01680',1,'Datalayer']]], + ['allowedoperationflags_6',['AllowedOperationFlags',['../namespaceDatalayer.html#ac548b797bc499a716ce33d3e936468ed',1,'Datalayer']]], + ['authtoken_7',['AuthToken',['../interfaceDatalayer_1_1IClient.html#ab020460331b76e524941ab46ac6ebdfa',1,'Datalayer.IClient.AuthToken()'],['../interfaceDatalayer_1_1IProvider.html#ab020460331b76e524941ab46ac6ebdfa',1,'Datalayer.IProvider.AuthToken()']]], + ['auto_8',['AUTO',['../namespaceDatalayer.html#ad60e871193d3e9855e82f9ba97df3888ae1f2d5134ed2543d38a0de9751cf75d9',1,'Datalayer']]] +]; diff --git a/3.4.0/api/net/html/search/all_1.js b/3.4.0/api/net/html/search/all_1.js new file mode 100644 index 000000000..08b74d99c --- /dev/null +++ b/3.4.0/api/net/html/search/all_1.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['bfbspath_0',['BfbsPath',['../classDatalayer_1_1DatalayerSystem.html#a7aab1ae266e615d729f60decf8a6de5f',1,'Datalayer.DatalayerSystem.BfbsPath()'],['../interfaceDatalayer_1_1IDatalayerSystem.html#a7aab1ae266e615d729f60decf8a6de5f',1,'Datalayer.IDatalayerSystem.BfbsPath()']]], + ['browse_1',['Browse',['../namespaceDatalayer.html#ac548b797bc499a716ce33d3e936468eda1b9abf135ccb7ed2f2cd9c155137c351',1,'Datalayer']]], + ['browseasync_2',['BrowseAsync',['../interfaceDatalayer_1_1IClient.html#ad80f73849f3cf06ebe3d744061786460',1,'Datalayer::IClient']]], + ['build_3',['Build',['../classDatalayer_1_1MetadataBuilder.html#a93ff61a70da95f2c796a056dd85a9b2c',1,'Datalayer.MetadataBuilder.Build()'],['../classDatalayer_1_1SubscriptionPropertiesBuilder.html#a93ff61a70da95f2c796a056dd85a9b2c',1,'Datalayer.SubscriptionPropertiesBuilder.Build()']]], + ['bulkbrowseasync_4',['BulkBrowseAsync',['../interfaceDatalayer_1_1IClient.html#a12e7a526f7bbc829667bfc230c233bf1',1,'Datalayer::IClient']]], + ['bulkcreateasync_5',['BulkCreateAsync',['../interfaceDatalayer_1_1IClient.html#a471f8564ba23780931f4a9884399b0f5',1,'Datalayer::IClient']]], + ['bulkreadasync_6',['BulkReadAsync',['../interfaceDatalayer_1_1IClient.html#a0703c7f516b87c26f6e68f005e8a325d',1,'Datalayer.IClient.BulkReadAsync(string[] addresses)'],['../interfaceDatalayer_1_1IClient.html#a6dc46e507783fe6d15036d6fa301cb9d',1,'Datalayer.IClient.BulkReadAsync(string[] addresses, IVariant[] args)']]], + ['bulkreadmetadataasync_7',['BulkReadMetadataAsync',['../interfaceDatalayer_1_1IClient.html#a1e5cc013dc8b3407cd34339c306430ac',1,'Datalayer::IClient']]], + ['bulkremoveasync_8',['BulkRemoveAsync',['../interfaceDatalayer_1_1IClient.html#a165a53bf0734efb2bac392a389ba64de',1,'Datalayer::IClient']]], + ['bulkwriteasync_9',['BulkWriteAsync',['../interfaceDatalayer_1_1IClient.html#a39d4baf4c8cfd7d268f23a9146d77de7',1,'Datalayer::IClient']]] +]; diff --git a/3.4.0/api/net/html/search/all_10.js b/3.4.0/api/net/html/search/all_10.js new file mode 100644 index 000000000..bf4860ab3 --- /dev/null +++ b/3.4.0/api/net/html/search/all_10.js @@ -0,0 +1,34 @@ +var searchData= +[ + ['tcp_0',['TCP',['../namespaceDatalayer.html#ad60e871193d3e9855e82f9ba97df3888ab136ef5f6a01d816991fe3cf7a6ac763',1,'Datalayer']]], + ['timestamp_1',['Timestamp',['../interfaceDatalayer_1_1IBulkItem.html#ad61a3202df3c958377a1f7d95cfebb46',1,'Datalayer::IBulkItem']]], + ['tobool_2',['ToBool',['../interfaceDatalayer_1_1IVariant.html#a836015d7bac1c5bdbf87c6aff416def0',1,'Datalayer.IVariant.ToBool()'],['../classDatalayer_1_1Variant.html#a836015d7bac1c5bdbf87c6aff416def0',1,'Datalayer.Variant.ToBool()']]], + ['toboolarray_3',['ToBoolArray',['../interfaceDatalayer_1_1IVariant.html#aff7faba54d898225f00e994582057136',1,'Datalayer.IVariant.ToBoolArray()'],['../classDatalayer_1_1Variant.html#aff7faba54d898225f00e994582057136',1,'Datalayer.Variant.ToBoolArray()']]], + ['tobyte_4',['ToByte',['../interfaceDatalayer_1_1IVariant.html#a59e3e205bb96ab4244682480106341de',1,'Datalayer.IVariant.ToByte()'],['../classDatalayer_1_1Variant.html#a59e3e205bb96ab4244682480106341de',1,'Datalayer.Variant.ToByte()']]], + ['tobytearray_5',['ToByteArray',['../interfaceDatalayer_1_1IVariant.html#a5e05025d8b0434ab88b76301915aff2b',1,'Datalayer.IVariant.ToByteArray()'],['../classDatalayer_1_1Variant.html#a5e05025d8b0434ab88b76301915aff2b',1,'Datalayer.Variant.ToByteArray()']]], + ['todatetime_6',['ToDateTime',['../interfaceDatalayer_1_1IVariant.html#a32de86b638d07299fd094c662465fa55',1,'Datalayer.IVariant.ToDateTime()'],['../classDatalayer_1_1Variant.html#a32de86b638d07299fd094c662465fa55',1,'Datalayer.Variant.ToDateTime()']]], + ['todatetimearray_7',['ToDateTimeArray',['../interfaceDatalayer_1_1IVariant.html#afe4cc7230217220283dad3eead321a7c',1,'Datalayer.IVariant.ToDateTimeArray()'],['../classDatalayer_1_1Variant.html#afe4cc7230217220283dad3eead321a7c',1,'Datalayer.Variant.ToDateTimeArray()']]], + ['todouble_8',['ToDouble',['../interfaceDatalayer_1_1IVariant.html#a0bf7245d983694969034631ee82a51cf',1,'Datalayer.IVariant.ToDouble()'],['../classDatalayer_1_1Variant.html#a0bf7245d983694969034631ee82a51cf',1,'Datalayer.Variant.ToDouble()']]], + ['todoublearray_9',['ToDoubleArray',['../interfaceDatalayer_1_1IVariant.html#a440b7ec49753006174500f9ab80f34ba',1,'Datalayer.IVariant.ToDoubleArray()'],['../classDatalayer_1_1Variant.html#a440b7ec49753006174500f9ab80f34ba',1,'Datalayer.Variant.ToDoubleArray()']]], + ['toflatbuffers_10',['ToFlatbuffers',['../interfaceDatalayer_1_1IVariant.html#a4cebcb8a4d96db6f34ab8fdd2f2e9021',1,'Datalayer.IVariant.ToFlatbuffers()'],['../classDatalayer_1_1Variant.html#a4cebcb8a4d96db6f34ab8fdd2f2e9021',1,'Datalayer.Variant.ToFlatbuffers()']]], + ['tofloat_11',['ToFloat',['../interfaceDatalayer_1_1IVariant.html#ae154275c2988473c049394ccccb4dcc7',1,'Datalayer.IVariant.ToFloat()'],['../classDatalayer_1_1Variant.html#ae154275c2988473c049394ccccb4dcc7',1,'Datalayer.Variant.ToFloat()']]], + ['tofloatarray_12',['ToFloatArray',['../interfaceDatalayer_1_1IVariant.html#a0b0372425a3c492dd13c91dd54d5caf0',1,'Datalayer.IVariant.ToFloatArray()'],['../classDatalayer_1_1Variant.html#a0b0372425a3c492dd13c91dd54d5caf0',1,'Datalayer.Variant.ToFloatArray()']]], + ['toint16_13',['ToInt16',['../interfaceDatalayer_1_1IVariant.html#a0510dcf6776eb733ad47527a9c840f3f',1,'Datalayer.IVariant.ToInt16()'],['../classDatalayer_1_1Variant.html#a0510dcf6776eb733ad47527a9c840f3f',1,'Datalayer.Variant.ToInt16()']]], + ['toint16array_14',['ToInt16Array',['../interfaceDatalayer_1_1IVariant.html#a3bde119743d4d0bb403e31860b1fa11b',1,'Datalayer.IVariant.ToInt16Array()'],['../classDatalayer_1_1Variant.html#a3bde119743d4d0bb403e31860b1fa11b',1,'Datalayer.Variant.ToInt16Array()']]], + ['toint32_15',['ToInt32',['../interfaceDatalayer_1_1IVariant.html#aef413807d1c2334cbc84bd9452880f52',1,'Datalayer.IVariant.ToInt32()'],['../classDatalayer_1_1Variant.html#aef413807d1c2334cbc84bd9452880f52',1,'Datalayer.Variant.ToInt32()']]], + ['toint32array_16',['ToInt32Array',['../classDatalayer_1_1Variant.html#afab60cc9925b37156c33b0038afdb561',1,'Datalayer.Variant.ToInt32Array()'],['../interfaceDatalayer_1_1IVariant.html#afab60cc9925b37156c33b0038afdb561',1,'Datalayer.IVariant.ToInt32Array()']]], + ['toint64_17',['ToInt64',['../classDatalayer_1_1Variant.html#a98349bc5d9c022962787ff59abc6dc3b',1,'Datalayer.Variant.ToInt64()'],['../interfaceDatalayer_1_1IVariant.html#a98349bc5d9c022962787ff59abc6dc3b',1,'Datalayer.IVariant.ToInt64()']]], + ['toint64array_18',['ToInt64Array',['../interfaceDatalayer_1_1IVariant.html#a088194316ad0671c2fe854c354f618cb',1,'Datalayer.IVariant.ToInt64Array()'],['../classDatalayer_1_1Variant.html#a088194316ad0671c2fe854c354f618cb',1,'Datalayer.Variant.ToInt64Array()']]], + ['torawbytearray_19',['ToRawByteArray',['../interfaceDatalayer_1_1IVariant.html#a7c1f6808410877b3a9cfc66b40e607ee',1,'Datalayer.IVariant.ToRawByteArray()'],['../classDatalayer_1_1Variant.html#a7c1f6808410877b3a9cfc66b40e607ee',1,'Datalayer.Variant.ToRawByteArray()']]], + ['tosbyte_20',['ToSByte',['../interfaceDatalayer_1_1IVariant.html#a08fa1ede9d2e6dabdee29a87c8049f0c',1,'Datalayer.IVariant.ToSByte()'],['../classDatalayer_1_1Variant.html#a08fa1ede9d2e6dabdee29a87c8049f0c',1,'Datalayer.Variant.ToSByte()']]], + ['tosbytearray_21',['ToSByteArray',['../interfaceDatalayer_1_1IVariant.html#a1a3fa907947947a6a63f376b8d6fdd53',1,'Datalayer.IVariant.ToSByteArray()'],['../classDatalayer_1_1Variant.html#a1a3fa907947947a6a63f376b8d6fdd53',1,'Datalayer.Variant.ToSByteArray()']]], + ['tostring_22',['ToString',['../interfaceDatalayer_1_1IVariant.html#a18220b86ab5378509a68e4afa4a2fb5b',1,'Datalayer.IVariant.ToString()'],['../classDatalayer_1_1ReferenceType.html#aa73e7c4dd1df5fd5fbf81c7764ee1533',1,'Datalayer.ReferenceType.ToString()'],['../classDatalayer_1_1Remote.html#aa73e7c4dd1df5fd5fbf81c7764ee1533',1,'Datalayer.Remote.ToString()'],['../classDatalayer_1_1Variant.html#aa73e7c4dd1df5fd5fbf81c7764ee1533',1,'Datalayer.Variant.ToString()']]], + ['tostringarray_23',['ToStringArray',['../interfaceDatalayer_1_1IVariant.html#a04cb1158786ea29ad6578845b77846c2',1,'Datalayer.IVariant.ToStringArray()'],['../classDatalayer_1_1Variant.html#a04cb1158786ea29ad6578845b77846c2',1,'Datalayer.Variant.ToStringArray()']]], + ['touint16_24',['ToUInt16',['../interfaceDatalayer_1_1IVariant.html#ad85199356631d42955d8ca04d27c1e65',1,'Datalayer.IVariant.ToUInt16()'],['../classDatalayer_1_1Variant.html#ad85199356631d42955d8ca04d27c1e65',1,'Datalayer.Variant.ToUInt16()']]], + ['touint16array_25',['ToUInt16Array',['../interfaceDatalayer_1_1IVariant.html#a1f19dd7c3474093e6b64d332b88d29cc',1,'Datalayer.IVariant.ToUInt16Array()'],['../classDatalayer_1_1Variant.html#a1f19dd7c3474093e6b64d332b88d29cc',1,'Datalayer.Variant.ToUInt16Array()']]], + ['touint32_26',['ToUInt32',['../interfaceDatalayer_1_1IVariant.html#a53b3651691d777fd0485024076309eec',1,'Datalayer.IVariant.ToUInt32()'],['../classDatalayer_1_1Variant.html#a53b3651691d777fd0485024076309eec',1,'Datalayer.Variant.ToUInt32()']]], + ['touint32array_27',['ToUInt32Array',['../classDatalayer_1_1Variant.html#a8a2860eb4d668412571bd06b11214592',1,'Datalayer.Variant.ToUInt32Array()'],['../interfaceDatalayer_1_1IVariant.html#a8a2860eb4d668412571bd06b11214592',1,'Datalayer.IVariant.ToUInt32Array()']]], + ['touint64_28',['ToUInt64',['../interfaceDatalayer_1_1IVariant.html#aaab078e9d44ca35cbad95eb1c0b344cd',1,'Datalayer.IVariant.ToUInt64()'],['../classDatalayer_1_1Variant.html#aaab078e9d44ca35cbad95eb1c0b344cd',1,'Datalayer.Variant.ToUInt64()']]], + ['touint64array_29',['ToUInt64Array',['../interfaceDatalayer_1_1IVariant.html#a5a66a16d41087f033c9787db20d4e21c',1,'Datalayer.IVariant.ToUInt64Array()'],['../classDatalayer_1_1Variant.html#a5a66a16d41087f033c9787db20d4e21c',1,'Datalayer.Variant.ToUInt64Array()']]], + ['true_30',['True',['../classDatalayer_1_1Variant.html#ac1d8534f50845dfe1703e11df2708890',1,'Datalayer::Variant']]] +]; diff --git a/3.4.0/api/net/html/search/all_11.js b/3.4.0/api/net/html/search/all_11.js new file mode 100644 index 000000000..2bf1ff79f --- /dev/null +++ b/3.4.0/api/net/html/search/all_11.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['unregisternode_0',['UnregisterNode',['../interfaceDatalayer_1_1IProvider.html#a0fafea31930342e5f804cf702a4f4d2e',1,'Datalayer::IProvider']]], + ['unregistertype_1',['UnregisterType',['../interfaceDatalayer_1_1IProvider.html#a65eb0f25d6f7d0a06598e7d53a524bf5',1,'Datalayer::IProvider']]], + ['unsubscribe_2',['Unsubscribe',['../interfaceDatalayer_1_1ISubscription.html#ab56f05b7edf672190d2ef0633f4b99a5',1,'Datalayer::ISubscription']]], + ['unsubscribeall_3',['UnsubscribeAll',['../interfaceDatalayer_1_1ISubscription.html#ac90398cc2d16ee8330be71fb26ea5c80',1,'Datalayer::ISubscription']]], + ['unsubscribeallasync_4',['UnsubscribeAllAsync',['../interfaceDatalayer_1_1ISubscription.html#ae373081bb6b1f0e58e9e40bfa96b9d04',1,'Datalayer::ISubscription']]], + ['unsubscribeasync_5',['UnsubscribeAsync',['../interfaceDatalayer_1_1ISubscription.html#a3d527bdb80a693b875ebb834aef59247',1,'Datalayer::ISubscription']]], + ['unsubscribemulti_6',['UnsubscribeMulti',['../interfaceDatalayer_1_1ISubscription.html#aa676752e1d60cb57cc18e5a64afd9902',1,'Datalayer::ISubscription']]], + ['unsubscribemultiasync_7',['UnsubscribeMultiAsync',['../interfaceDatalayer_1_1ISubscription.html#ab59e72c3428a1cc6ac4e2387bbf78e47',1,'Datalayer::ISubscription']]], + ['user_8',['User',['../classDatalayer_1_1Remote.html#a9f8df451a16165b0cf243e37bf9c6b62',1,'Datalayer::Remote']]], + ['userdata_9',['UserData',['../interfaceDatalayer_1_1IDataChangedEventArgs.html#aeeccb94edafa8ab78eb999c2b2f97572',1,'Datalayer.IDataChangedEventArgs.UserData()'],['../interfaceDatalayer_1_1ISubscription.html#aeeccb94edafa8ab78eb999c2b2f97572',1,'Datalayer.ISubscription.UserData()']]], + ['uses_10',['Uses',['../classDatalayer_1_1ReferenceType.html#a590d5833dd7739782502752d0004befd',1,'Datalayer::ReferenceType']]] +]; diff --git a/3.4.0/api/net/html/search/all_12.js b/3.4.0/api/net/html/search/all_12.js new file mode 100644 index 000000000..71b873e85 --- /dev/null +++ b/3.4.0/api/net/html/search/all_12.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['value_0',['Value',['../interfaceDatalayer_1_1IBulkItem.html#a9503c94b75a670263019963baa18c20d',1,'Datalayer.IBulkItem.Value()'],['../interfaceDatalayer_1_1IClientAsyncResult.html#a9503c94b75a670263019963baa18c20d',1,'Datalayer.IClientAsyncResult.Value()'],['../interfaceDatalayer_1_1INotifyItem.html#a9503c94b75a670263019963baa18c20d',1,'Datalayer.INotifyItem.Value()'],['../interfaceDatalayer_1_1IVariant.html#a2d7e8cd2081ad3db5aa8e597557123e9',1,'Datalayer.IVariant.Value()'],['../classDatalayer_1_1ReferenceType.html#af7b88db799d8f791f785e437bc6099d2',1,'Datalayer.ReferenceType.Value()'],['../classDatalayer_1_1Variant.html#a2d7e8cd2081ad3db5aa8e597557123e9',1,'Datalayer.Variant.Value()']]], + ['variant_1',['Variant',['../classDatalayer_1_1Variant.html',1,'Variant'],['../classDatalayer_1_1Variant.html#a3c631cdbf129a354bb091ce47c418f13',1,'Datalayer.Variant.Variant()'],['../classDatalayer_1_1Variant.html#a6f243981f98242d58740052123320906',1,'Datalayer.Variant.Variant(IVariant other)'],['../classDatalayer_1_1Variant.html#a8730a4089b1f3ad6c70701cc2bd49e01',1,'Datalayer.Variant.Variant(bool value)'],['../classDatalayer_1_1Variant.html#a1394786161c315b78168f0712aa25d88',1,'Datalayer.Variant.Variant(string value)'],['../classDatalayer_1_1Variant.html#a664bdf816b041a86995237bff694d35a',1,'Datalayer.Variant.Variant(sbyte value)'],['../classDatalayer_1_1Variant.html#abc32e2f4111baaed039c0bca2b791e63',1,'Datalayer.Variant.Variant(short value)'],['../classDatalayer_1_1Variant.html#a2239c42c8248a3bae29504b47a4607e8',1,'Datalayer.Variant.Variant(int value)'],['../classDatalayer_1_1Variant.html#a79efcc0eb9a39afb54499aca00d7fbb8',1,'Datalayer.Variant.Variant(long value)'],['../classDatalayer_1_1Variant.html#a328dc484bf10aeac3b3a40c0b958f852',1,'Datalayer.Variant.Variant(DateTime value)'],['../classDatalayer_1_1Variant.html#a8ce3d5a54e259c1e79023056be84f0de',1,'Datalayer.Variant.Variant(byte value)'],['../classDatalayer_1_1Variant.html#a627d64db6fed88d685f7467381ce44cd',1,'Datalayer.Variant.Variant(ushort value)'],['../classDatalayer_1_1Variant.html#ae08ebff5d31bc83da4423fe1ad5c93bf',1,'Datalayer.Variant.Variant(uint value)'],['../classDatalayer_1_1Variant.html#a5e7b4340c2eeb89a043c1c5787b74031',1,'Datalayer.Variant.Variant(ulong value)'],['../classDatalayer_1_1Variant.html#a8e3a2c0f1d809d50111f96f3b16b120c',1,'Datalayer.Variant.Variant(float value)'],['../classDatalayer_1_1Variant.html#a96d1a5135f5b013dffb5c67ea992e0c3',1,'Datalayer.Variant.Variant(double value)'],['../classDatalayer_1_1Variant.html#a41c449e1498b23503c327000e44b2a99',1,'Datalayer.Variant.Variant(bool[] value)'],['../classDatalayer_1_1Variant.html#ab504fb6081a84897d7881b5c14248049',1,'Datalayer.Variant.Variant(string[] value)'],['../classDatalayer_1_1Variant.html#a10ee097108609aea7bd83f0b3a2f92eb',1,'Datalayer.Variant.Variant(sbyte[] value)'],['../classDatalayer_1_1Variant.html#a69a1d1f92e4d959438435561bbf32cbd',1,'Datalayer.Variant.Variant(short[] value)'],['../classDatalayer_1_1Variant.html#afd1a52b640565e8d5ea65ffb2b547e8e',1,'Datalayer.Variant.Variant(int[] value)'],['../classDatalayer_1_1Variant.html#af7edce4a39cfdea9c9d27bda80bc84bb',1,'Datalayer.Variant.Variant(long[] value)'],['../classDatalayer_1_1Variant.html#a76da512ddf5000c79181e4b09ab9429f',1,'Datalayer.Variant.Variant(byte[] value, bool raw=false)'],['../classDatalayer_1_1Variant.html#abd4459c87f9e7bf649e9630094c214c9',1,'Datalayer.Variant.Variant(ushort[] value)'],['../classDatalayer_1_1Variant.html#a8e7d0f5bc4e0c2844faa8ade3a9ed252',1,'Datalayer.Variant.Variant(uint[] value)'],['../classDatalayer_1_1Variant.html#ae78c7426beb81723639cfe3db75eb002',1,'Datalayer.Variant.Variant(ulong[] value)'],['../classDatalayer_1_1Variant.html#acaa40cf58c049ba718ff99244ea21429',1,'Datalayer.Variant.Variant(float[] value)'],['../classDatalayer_1_1Variant.html#a9bb244ed6c236f58a948216de4713608',1,'Datalayer.Variant.Variant(double[] value)'],['../classDatalayer_1_1Variant.html#a53e69ae330fb8cbc380aa5ed55034135',1,'Datalayer.Variant.Variant(DateTime[] value)'],['../classDatalayer_1_1Variant.html#a29ee866cc3984e7936bde72d1b7e90f7',1,'Datalayer.Variant.Variant(ByteBuffer flatBuffers)'],['../classDatalayer_1_1Variant.html#af84d77d392671886a0031faec59cfe32',1,'Datalayer.Variant.Variant(FlatBufferBuilder builder)']]] +]; diff --git a/3.4.0/api/net/html/search/all_13.js b/3.4.0/api/net/html/search/all_13.js new file mode 100644 index 000000000..fb4e51b08 --- /dev/null +++ b/3.4.0/api/net/html/search/all_13.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['write_0',['Write',['../interfaceDatalayer_1_1IClient.html#a7eec67cdf8d58b6cbb256388e3fc9fd1',1,'Datalayer.IClient.Write()'],['../namespaceDatalayer.html#ac548b797bc499a716ce33d3e936468eda1129c0e4d43f2d121652a7302712cff6',1,'Datalayer.Write()']]], + ['writeasync_1',['WriteAsync',['../interfaceDatalayer_1_1IClient.html#a6fbe817ec1d4e05eaee1c5e48165eaef',1,'Datalayer::IClient']]], + ['writeintype_2',['WriteInType',['../classDatalayer_1_1ReferenceType.html#a5d0ea2c95572ed7fa06d23320a74926c',1,'Datalayer::ReferenceType']]], + ['writejsonasync_3',['WriteJsonAsync',['../interfaceDatalayer_1_1IClient.html#ab739649d70861ba3b9c83cf7f8695ca2',1,'Datalayer::IClient']]], + ['writemulti_4',['WriteMulti',['../interfaceDatalayer_1_1IClient.html#a05efe83614a91f69829046a328915f31',1,'Datalayer::IClient']]], + ['writemultiasync_5',['WriteMultiAsync',['../interfaceDatalayer_1_1IClient.html#a8f13cd9bf4f1ab9efe0f659c252bed05',1,'Datalayer::IClient']]], + ['writeouttype_6',['WriteOutType',['../classDatalayer_1_1ReferenceType.html#a66042c1bc246be7a064aa33c7edc8c6b',1,'Datalayer::ReferenceType']]], + ['writetype_7',['WriteType',['../classDatalayer_1_1ReferenceType.html#a9fb27ed32816ad9c8dfde0eaaf2c4787',1,'Datalayer::ReferenceType']]] +]; diff --git a/3.4.0/api/net/html/search/all_14.js b/3.4.0/api/net/html/search/all_14.js new file mode 100644 index 000000000..9582f350a --- /dev/null +++ b/3.4.0/api/net/html/search/all_14.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['zero_0',['Zero',['../classDatalayer_1_1Variant.html#a2aee4ebc8b52223831a705e36c6b30bb',1,'Datalayer::Variant']]] +]; diff --git a/3.4.0/api/net/html/search/all_2.js b/3.4.0/api/net/html/search/all_2.js new file mode 100644 index 000000000..24f6834e1 --- /dev/null +++ b/3.4.0/api/net/html/search/all_2.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['checkconvert_0',['CheckConvert',['../interfaceDatalayer_1_1IVariant.html#a5e3cbf22bec3b06b473407bf16d7a08c',1,'Datalayer.IVariant.CheckConvert()'],['../classDatalayer_1_1Variant.html#acce5cdfae2d56b3f31c6b2354ce65c53',1,'Datalayer.Variant.CheckConvert()']]], + ['client_1',['Client',['../interfaceDatalayer_1_1ISubscription.html#a365fee781ab42949e1331c585fcd0205',1,'Datalayer::ISubscription']]], + ['clone_2',['Clone',['../interfaceDatalayer_1_1IVariant.html#a9b8bbaab54d4b040e57a88a8ded2247b',1,'Datalayer.IVariant.Clone()'],['../classDatalayer_1_1Variant.html#a9b8bbaab54d4b040e57a88a8ded2247b',1,'Datalayer.Variant.Clone()']]], + ['connectionstatus_3',['ConnectionStatus',['../interfaceDatalayer_1_1IClient.html#af3825f7c388e9c468b2908d84f94826a',1,'Datalayer::IClient']]], + ['converter_4',['Converter',['../classDatalayer_1_1DatalayerSystem.html#aa2305cf58e178ab1f86fb44b27827da1',1,'Datalayer.DatalayerSystem.Converter()'],['../interfaceDatalayer_1_1IDatalayerSystem.html#aa2305cf58e178ab1f86fb44b27827da1',1,'Datalayer.IDatalayerSystem.Converter()']]], + ['count_5',['Count',['../interfaceDatalayer_1_1IDataChangedEventArgs.html#a4683de68c1f0fc6be6aa3547478fdfdc',1,'Datalayer::IDataChangedEventArgs']]], + ['create_6',['Create',['../namespaceDatalayer.html#ac548b797bc499a716ce33d3e936468eda686e697538050e4664636337cc3b834f',1,'Datalayer']]], + ['createasync_7',['CreateAsync',['../interfaceDatalayer_1_1IClient.html#a05de64147a8ba02516d888a7c2aa38e6',1,'Datalayer::IClient']]], + ['createclient_8',['CreateClient',['../interfaceDatalayer_1_1IFactory.html#abe392c5fbd1a189e5e27c55182d7669d',1,'Datalayer::IFactory']]], + ['createprovider_9',['CreateProvider',['../interfaceDatalayer_1_1IFactory.html#ac67764fa327276d3d06ac257dfd044e5',1,'Datalayer::IFactory']]], + ['createsubscriptionasync_10',['CreateSubscriptionAsync',['../interfaceDatalayer_1_1IClient.html#a5486fb6764aaa88fb8d6ed2deb919afb',1,'Datalayer::IClient']]], + ['createtype_11',['CreateType',['../classDatalayer_1_1ReferenceType.html#a302bf5682531e20faec9a9b6e9b0a2cd',1,'Datalayer::ReferenceType']]] +]; diff --git a/3.4.0/api/net/html/search/all_3.js b/3.4.0/api/net/html/search/all_3.js new file mode 100644 index 000000000..ec3826b3f --- /dev/null +++ b/3.4.0/api/net/html/search/all_3.js @@ -0,0 +1,108 @@ +var searchData= +[ + ['datachanged_0',['DataChanged',['../interfaceDatalayer_1_1ISubscription.html#a86b7b4e2ce74e5c008917c8a72754aa4',1,'Datalayer::ISubscription']]], + ['datachangedeventhandler_1',['DataChangedEventHandler',['../interfaceDatalayer_1_1ISubscription.html#a3f303edaf0ba64fbe02563bed284381d',1,'Datalayer::ISubscription']]], + ['datalayer_2',['Datalayer',['../namespaceDatalayer.html',1,'']]], + ['datalayersystem_3',['DatalayerSystem',['../classDatalayer_1_1DatalayerSystem.html',1,'DatalayerSystem'],['../classDatalayer_1_1DatalayerSystem.html#a0f208074ce7167a7f29265797aa5491e',1,'Datalayer.DatalayerSystem.DatalayerSystem()']]], + ['datatype_4',['DataType',['../interfaceDatalayer_1_1IVariant.html#a7c3a4f151f7bcb2e535065e1c0400086',1,'Datalayer.IVariant.DataType()'],['../classDatalayer_1_1Variant.html#a7c3a4f151f7bcb2e535065e1c0400086',1,'Datalayer.Variant.DataType()']]], + ['defaultclientport_5',['DefaultClientPort',['../classDatalayer_1_1DatalayerSystem.html#a7b066806d7327c9a1f11c9598fb7efa6',1,'Datalayer::DatalayerSystem']]], + ['defaulterrorintervalmillis_6',['DefaultErrorIntervalMillis',['../interfaceDatalayer_1_1ISubscription.html#a830f47d283fe012ff4dd8b3ae85b3ab7',1,'Datalayer::ISubscription']]], + ['defaultflatbuffersinitialsize_7',['DefaultFlatbuffersInitialSize',['../classDatalayer_1_1Variant.html#a8e25ed1230b25e5377832b5f7e9a4d09',1,'Datalayer::Variant']]], + ['defaultkeepaliveintervalmillis_8',['DefaultKeepaliveIntervalMillis',['../interfaceDatalayer_1_1ISubscription.html#a382ff46c62dc641e4da9d6b60f2c1dd9',1,'Datalayer::ISubscription']]], + ['defaultproviderport_9',['DefaultProviderPort',['../classDatalayer_1_1DatalayerSystem.html#a5ed5ed67b5b2d4921715868cc4fd80fc',1,'Datalayer::DatalayerSystem']]], + ['defaultpublishintervalmillis_10',['DefaultPublishIntervalMillis',['../interfaceDatalayer_1_1ISubscription.html#ad01533e84c0749b5af74ebf109cfe53e',1,'Datalayer::ISubscription']]], + ['defaultsamplingintervalmicros_11',['DefaultSamplingIntervalMicros',['../interfaceDatalayer_1_1ISubscription.html#a6f02394aaf4a831e98515931f4c2573d',1,'Datalayer::ISubscription']]], + ['delete_12',['Delete',['../namespaceDatalayer.html#ac548b797bc499a716ce33d3e936468edaf2a6c498fb90ee345d997f888fce3b18',1,'Datalayer']]], + ['dispose_13',['Dispose',['../classDatalayer_1_1DatalayerSystem.html#a8ad4348ef0f9969025bab397e7e27e26',1,'Datalayer.DatalayerSystem.Dispose(bool disposing)'],['../classDatalayer_1_1DatalayerSystem.html#a6e2d745cdb7a7b983f861ed6a9a541a7',1,'Datalayer.DatalayerSystem.Dispose()'],['../classDatalayer_1_1Variant.html#a8ad4348ef0f9969025bab397e7e27e26',1,'Datalayer.Variant.Dispose(bool disposing)'],['../classDatalayer_1_1Variant.html#a6e2d745cdb7a7b983f861ed6a9a541a7',1,'Datalayer.Variant.Dispose()']]], + ['dl_5falready_5fexists_14',['DL_ALREADY_EXISTS',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8ad1a55e8a1453ad50d0511e73acee7687',1,'Datalayer']]], + ['dl_5fclient_5fnot_5fconnected_15',['DL_CLIENT_NOT_CONNECTED',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a55523980613162b04028375de5616071',1,'Datalayer']]], + ['dl_5fcomm_5finvalid_5fheader_16',['DL_COMM_INVALID_HEADER',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a8cc3039c8ecf7c2e39b44e3eecd978c7',1,'Datalayer']]], + ['dl_5fcomm_5fprotocol_5ferror_17',['DL_COMM_PROTOCOL_ERROR',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a808d225e26988f7fec9b4e032bf00dfd',1,'Datalayer']]], + ['dl_5fcommunication_5ferror_18',['DL_COMMUNICATION_ERROR',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a0dbbf20a4d7f3efe6aa4bf820f9a4812',1,'Datalayer']]], + ['dl_5fcreation_5ffailed_19',['DL_CREATION_FAILED',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8ad7d1659b9c4a6f0fdbdbae09cc6e53e0',1,'Datalayer']]], + ['dl_5fdeprecated_20',['DL_DEPRECATED',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a878c377375ceef81e517aad9eb7a6763',1,'Datalayer']]], + ['dl_5ffailed_21',['DL_FAILED',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8abcf279a4cb487562df5bfcde8b4a15b2',1,'Datalayer']]], + ['dl_5finvalid_5faddress_22',['DL_INVALID_ADDRESS',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a1336129b25e665af78b3db995e2c2ec7',1,'Datalayer']]], + ['dl_5finvalid_5fconfiguration_23',['DL_INVALID_CONFIGURATION',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8af2252c5f6cb80f26a8c9d309a67a32a4',1,'Datalayer']]], + ['dl_5finvalid_5ffloatingpoint_24',['DL_INVALID_FLOATINGPOINT',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8ac3c7ffcc02d658707889d2bcf446c1cc',1,'Datalayer']]], + ['dl_5finvalid_5fhandle_25',['DL_INVALID_HANDLE',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a4aaf5a000100d44b88aa0e7c44ad3231',1,'Datalayer']]], + ['dl_5finvalid_5foperation_5fmode_26',['DL_INVALID_OPERATION_MODE',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8ad465219dc1c5c58bf646d1457910389a',1,'Datalayer']]], + ['dl_5finvalid_5fvalue_27',['DL_INVALID_VALUE',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a073ad8dd5dfa5231a53482775ebb0911',1,'Datalayer']]], + ['dl_5flimit_5fmax_28',['DL_LIMIT_MAX',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8abdfaef2982edca446b8efc6e611cbaf2',1,'Datalayer']]], + ['dl_5flimit_5fmin_29',['DL_LIMIT_MIN',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8ac29324a5167e71a2b24a1bcc8fb203eb',1,'Datalayer']]], + ['dl_5fmissing_5fargument_30',['DL_MISSING_ARGUMENT',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a7b6373769b5293e47396ff921bf35813',1,'Datalayer']]], + ['dl_5fnot_5finitialized_31',['DL_NOT_INITIALIZED',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a3a4e76cce21fc35d1f73404a7971d913',1,'Datalayer']]], + ['dl_5fok_32',['DL_OK',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8adc27fedf4a787a777ab371bd57d6c333',1,'Datalayer']]], + ['dl_5fok_5fno_5fcontent_33',['DL_OK_NO_CONTENT',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a555f8a25a1de9fc7d0c8e8f1359a3690',1,'Datalayer']]], + ['dl_5fout_5fof_5fmemory_34',['DL_OUT_OF_MEMORY',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a462ab421a16c65416eba7fd1d8724523',1,'Datalayer']]], + ['dl_5fpermission_5fdenied_35',['DL_PERMISSION_DENIED',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a4b3fbb4c4f298edb2aba939b13f0c178',1,'Datalayer']]], + ['dl_5fprovider_5freset_5ftimeout_36',['DL_PROVIDER_RESET_TIMEOUT',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8aad18e518a8b089855eea207af6f2396f',1,'Datalayer']]], + ['dl_5fprovider_5fsub_5fhandling_37',['DL_PROVIDER_SUB_HANDLING',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8af8f59aff7717b3d62f8d7c5318f1d466',1,'Datalayer']]], + ['dl_5fprovider_5fupdate_5ftimeout_38',['DL_PROVIDER_UPDATE_TIMEOUT',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a8ce3241085b25f05ba34fe00683c8715',1,'Datalayer']]], + ['dl_5fresource_5funavailable_39',['DL_RESOURCE_UNAVAILABLE',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a4ca3e249a876a99c69af1c780d144ca5',1,'Datalayer']]], + ['dl_5frt_5finternal_5ferror_40',['DL_RT_INTERNAL_ERROR',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a3428a7dd8b177e5a18519282346d11d0',1,'Datalayer']]], + ['dl_5frt_5finvalid_5fretain_41',['DL_RT_INVALID_RETAIN',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8ad9bd8cf2113540a0b5d6255d3303912b',1,'Datalayer']]], + ['dl_5frt_5finvalidmemorymap_42',['DL_RT_INVALIDMEMORYMAP',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a1b885f575e449665ed8b667ab43e6e47',1,'Datalayer']]], + ['dl_5frt_5finvalidobject_43',['DL_RT_INVALIDOBJECT',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a7f689dfb5a5b45066c354f9b0c941b79',1,'Datalayer']]], + ['dl_5frt_5fmalloc_5ffailed_44',['DL_RT_MALLOC_FAILED',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8afc983719d20f9e9b4ac6942db33b25ce',1,'Datalayer']]], + ['dl_5frt_5fmemorylocked_45',['DL_RT_MEMORYLOCKED',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a852cff3698f3e624316de3a12b1f87b5',1,'Datalayer']]], + ['dl_5frt_5fnotopen_46',['DL_RT_NOTOPEN',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a5bb93e49149f20bb424721776889ea05',1,'Datalayer']]], + ['dl_5frt_5fnovaliddata_47',['DL_RT_NOVALIDDATA',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a304f18d78b2b8668f4c3d34ef0e8a27d',1,'Datalayer']]], + ['dl_5frt_5fwould_5fblock_48',['DL_RT_WOULD_BLOCK',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8aa8138650b0572726f454e222a7906ec6',1,'Datalayer']]], + ['dl_5frt_5fwrongrevison_49',['DL_RT_WRONGREVISON',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a58e8f7d0d740ca212499295794a66405',1,'Datalayer']]], + ['dl_5fsec_5finvalidsession_50',['DL_SEC_INVALIDSESSION',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8ad94bc99162d23a9ddef0553a497a0031',1,'Datalayer']]], + ['dl_5fsec_5finvalidtokencontent_51',['DL_SEC_INVALIDTOKENCONTENT',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8aaac9c87cf32874c931a65a3922d4d345',1,'Datalayer']]], + ['dl_5fsec_5fnotoken_52',['DL_SEC_NOTOKEN',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a6f4679f095a6bf5c327faaea904a7c8d',1,'Datalayer']]], + ['dl_5fsec_5fpayment_5frequired_53',['DL_SEC_PAYMENT_REQUIRED',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8ac5481194f8421a005b8d9d6d06a3777a',1,'Datalayer']]], + ['dl_5fsec_5funauthorized_54',['DL_SEC_UNAUTHORIZED',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8ad7d57fe21fe44304a9808a8f2328804f',1,'Datalayer']]], + ['dl_5fsize_5fmismatch_55',['DL_SIZE_MISMATCH',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8abce0216f174d3c9bd141189b0d66b5c5',1,'Datalayer']]], + ['dl_5fsubmodule_5ffailure_56',['DL_SUBMODULE_FAILURE',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8af498ab887c707eeb98f302d95ed9e9b2',1,'Datalayer']]], + ['dl_5ftimeout_57',['DL_TIMEOUT',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a2f594efff46815f7a267aae3fac94303',1,'Datalayer']]], + ['dl_5ftoo_5fmany_5farguments_58',['DL_TOO_MANY_ARGUMENTS',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a9a139fc4f6388fc5b5f6e2c53922741f',1,'Datalayer']]], + ['dl_5ftoo_5fmany_5foperations_59',['DL_TOO_MANY_OPERATIONS',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8ae7fe13b9ef76c7b9d368d0efaedeb0d2',1,'Datalayer']]], + ['dl_5ftype_5fmismatch_60',['DL_TYPE_MISMATCH',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a8ef0fc299d1390140a849fabe76d57b9',1,'Datalayer']]], + ['dl_5funsupported_61',['DL_UNSUPPORTED',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8ad03d4fd650db56f13877fae17722b28a',1,'Datalayer']]], + ['dl_5fversion_5fmismatch_62',['DL_VERSION_MISMATCH',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a779f905c67faf77f56a75395dc402fb1',1,'Datalayer']]], + ['dl_5fwould_5fblock_63',['DL_WOULD_BLOCK',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a96375d9d1338dd4224e3726aa4aef651',1,'Datalayer']]], + ['dlr_5fmemorytype_64',['DLR_MEMORYTYPE',['../namespaceDatalayer.html#a40238e23d8a470f0832bf1c50b1bce13',1,'Datalayer']]], + ['dlr_5fresult_65',['DLR_RESULT',['../interfaceDatalayer_1_1IProvider.html#a0d46a3e31a1859c7602d7d671bf75fc8',1,'Datalayer.IProvider.DLR_RESULT()'],['../interfaceDatalayer_1_1IClient.html#a0d46a3e31a1859c7602d7d671bf75fc8',1,'Datalayer.IClient.DLR_RESULT()'],['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8',1,'Datalayer.DLR_RESULT()']]], + ['dlr_5fschema_66',['DLR_SCHEMA',['../namespaceDatalayer.html#af8b08dacadd30029d0855605d1a439f5',1,'Datalayer']]], + ['dlr_5fschema_5fdiagnosis_67',['DLR_SCHEMA_DIAGNOSIS',['../namespaceDatalayer.html#af8b08dacadd30029d0855605d1a439f5ac961c12195fe2a124ff032d4bbf5abef',1,'Datalayer']]], + ['dlr_5fschema_5fmemory_68',['DLR_SCHEMA_MEMORY',['../namespaceDatalayer.html#af8b08dacadd30029d0855605d1a439f5ad515af92032500f25e56a1f932fc7a7c',1,'Datalayer']]], + ['dlr_5fschema_5fmemory_5fmap_69',['DLR_SCHEMA_MEMORY_MAP',['../namespaceDatalayer.html#af8b08dacadd30029d0855605d1a439f5a0f088d5949f43dd65e5b3aa3e9913ee6',1,'Datalayer']]], + ['dlr_5fschema_5fmetadata_70',['DLR_SCHEMA_METADATA',['../namespaceDatalayer.html#af8b08dacadd30029d0855605d1a439f5a655a03905c9e995d1d8100b242cb7702',1,'Datalayer']]], + ['dlr_5fschema_5fproblem_71',['DLR_SCHEMA_PROBLEM',['../namespaceDatalayer.html#af8b08dacadd30029d0855605d1a439f5a38dc4df48f200c0a352f3d53ffebcd8f',1,'Datalayer']]], + ['dlr_5fschema_5freflection_72',['DLR_SCHEMA_REFLECTION',['../namespaceDatalayer.html#af8b08dacadd30029d0855605d1a439f5a93ab7878cf77259f8536b0792dc8896c',1,'Datalayer']]], + ['dlr_5fschema_5ftoken_73',['DLR_SCHEMA_TOKEN',['../namespaceDatalayer.html#af8b08dacadd30029d0855605d1a439f5ad2475f61087d8a3a6b5f41844ac82f37',1,'Datalayer']]], + ['dlr_5ftimeout_5fsetting_74',['DLR_TIMEOUT_SETTING',['../namespaceDatalayer.html#ab8dd9973943421f0505eb79d1b7007de',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_75',['DLR_VARIANT_TYPE',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5farray_5fof_5fbool8_76',['DLR_VARIANT_TYPE_ARRAY_OF_BOOL8',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9a9e2d403bab4f85f050c9f92ca1acf6b8',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5farray_5fof_5ffloat32_77',['DLR_VARIANT_TYPE_ARRAY_OF_FLOAT32',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9af9009f19366a32b3ba60306fc5452c2b',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5farray_5fof_5ffloat64_78',['DLR_VARIANT_TYPE_ARRAY_OF_FLOAT64',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9a82a897eb77a46e95a5a9aadd06849523',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5farray_5fof_5fint16_79',['DLR_VARIANT_TYPE_ARRAY_OF_INT16',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9a2e7e1fbc547c3ca79b49fde5ca9edcd6',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5farray_5fof_5fint32_80',['DLR_VARIANT_TYPE_ARRAY_OF_INT32',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9a7d2c30946d7fbabac7b0cff950d05726',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5farray_5fof_5fint64_81',['DLR_VARIANT_TYPE_ARRAY_OF_INT64',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9a0dd73c535e9b8af3c1ab44cabef742b6',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5farray_5fof_5fint8_82',['DLR_VARIANT_TYPE_ARRAY_OF_INT8',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9ad1fbbdea0d4074b363d21d3f648765dd',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5farray_5fof_5fstring_83',['DLR_VARIANT_TYPE_ARRAY_OF_STRING',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9a989a758238bc511cb7ab79ac6fbe83e6',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5farray_5fof_5ftimestamp_84',['DLR_VARIANT_TYPE_ARRAY_OF_TIMESTAMP',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9ab94bd166095aa4d4de34abd41e561690',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5farray_5fof_5fuint16_85',['DLR_VARIANT_TYPE_ARRAY_OF_UINT16',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9a8a3eeb721d3466eae497cdff5a4f7fcb',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5farray_5fof_5fuint32_86',['DLR_VARIANT_TYPE_ARRAY_OF_UINT32',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9a4e028c424226d0bd80c9f5c4fbdfa5be',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5farray_5fof_5fuint64_87',['DLR_VARIANT_TYPE_ARRAY_OF_UINT64',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9a7ec1e0ce78a2c7ec352940eebe56b0ca',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5farray_5fof_5fuint8_88',['DLR_VARIANT_TYPE_ARRAY_OF_UINT8',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9ae65eb55e3037f395352135400cc3e3c0',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5fbool8_89',['DLR_VARIANT_TYPE_BOOL8',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9ab4dc337c2afb68d5295ca7742b4471de',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5fflatbuffers_90',['DLR_VARIANT_TYPE_FLATBUFFERS',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9a76285ebb845f63084971f15885cfb949',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5ffloat32_91',['DLR_VARIANT_TYPE_FLOAT32',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9adb7fcbd27ecd75e7742e7497e9ed5cce',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5ffloat64_92',['DLR_VARIANT_TYPE_FLOAT64',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9aec6da9e150e9e879b03af8f6eead12c2',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5fint16_93',['DLR_VARIANT_TYPE_INT16',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9adbb26f3d97b1f04f4e9104925c490e32',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5fint32_94',['DLR_VARIANT_TYPE_INT32',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9a8bddb4815f3b7d936e36db1ba4915351',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5fint64_95',['DLR_VARIANT_TYPE_INT64',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9a44f66794af1076dddd962cbcd3242f24',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5fint8_96',['DLR_VARIANT_TYPE_INT8',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9a23b0c5b219e413781bebb170cb905f4d',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5fraw_97',['DLR_VARIANT_TYPE_RAW',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9a3f0d1599c56137088fff84b112941066',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5fstring_98',['DLR_VARIANT_TYPE_STRING',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9a1937cbc555ee7e85c8d8503db18c8a4a',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5ftimestamp_99',['DLR_VARIANT_TYPE_TIMESTAMP',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9ab73ac4fe6fc0363452a546e0c4c639d6',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5fuint16_100',['DLR_VARIANT_TYPE_UINT16',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9abefa2f81e3139439e4121427b127cc9d',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5fuint32_101',['DLR_VARIANT_TYPE_UINT32',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9a28fce873ff47ac9bde22d043bc10534e',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5fuint64_102',['DLR_VARIANT_TYPE_UINT64',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9a2b7369c066b1d9865a72d6dd625e7e1b',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5fuint8_103',['DLR_VARIANT_TYPE_UINT8',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9a1ce40f2f009de2c9e5598312c97c8104',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5funknown_104',['DLR_VARIANT_TYPE_UNKNOWN',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9af1ce21f1cb0fe40c3299c8ef34980d7b',1,'Datalayer']]] +]; diff --git a/3.4.0/api/net/html/search/all_4.js b/3.4.0/api/net/html/search/all_4.js new file mode 100644 index 000000000..7df1932c0 --- /dev/null +++ b/3.4.0/api/net/html/search/all_4.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['empty_0',['Empty',['../classDatalayer_1_1Variant.html#af0d6f07c37ed0c3b3742972b20b17358',1,'Datalayer::Variant']]], + ['equals_1',['Equals',['../interfaceDatalayer_1_1IVariant.html#a768bfe492f96453766631a639e0da5a1',1,'Datalayer.IVariant.Equals()'],['../classDatalayer_1_1Variant.html#aadf763f0213fc2f3875230b06bb0b6cf',1,'Datalayer.Variant.Equals(object obj)'],['../classDatalayer_1_1Variant.html#a768bfe492f96453766631a639e0da5a1',1,'Datalayer.Variant.Equals(Variant other)']]] +]; diff --git a/3.4.0/api/net/html/search/all_5.js b/3.4.0/api/net/html/search/all_5.js new file mode 100644 index 000000000..046e487f1 --- /dev/null +++ b/3.4.0/api/net/html/search/all_5.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['factory_0',['Factory',['../classDatalayer_1_1DatalayerSystem.html#abefeb4acffc919ce04ebd948daa06b85',1,'Datalayer.DatalayerSystem.Factory()'],['../interfaceDatalayer_1_1IDatalayerSystem.html#abefeb4acffc919ce04ebd948daa06b85',1,'Datalayer.IDatalayerSystem.Factory()']]], + ['false_1',['False',['../classDatalayer_1_1Variant.html#ae9114dbfe8f7ea7c180ef16b21e6fd0c',1,'Datalayer::Variant']]] +]; diff --git a/3.4.0/api/net/html/search/all_6.js b/3.4.0/api/net/html/search/all_6.js new file mode 100644 index 000000000..71df35b3f --- /dev/null +++ b/3.4.0/api/net/html/search/all_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['gethashcode_0',['GetHashCode',['../interfaceDatalayer_1_1IVariant.html#a7e2732d719716610684b6bcbcca7d038',1,'Datalayer.IVariant.GetHashCode()'],['../classDatalayer_1_1Variant.html#a77e1afa2b6dee1ed3640da81d7407b42',1,'Datalayer.Variant.GetHashCode()']]] +]; diff --git a/3.4.0/api/net/html/search/all_7.js b/3.4.0/api/net/html/search/all_7.js new file mode 100644 index 000000000..b19a6e3d3 --- /dev/null +++ b/3.4.0/api/net/html/search/all_7.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['handler_0',['Handler',['../interfaceDatalayer_1_1IProviderNode.html#a629fc6ec0903bccf3e477aaf7fad79f1',1,'Datalayer::IProviderNode']]], + ['hassave_1',['HasSave',['../classDatalayer_1_1ReferenceType.html#a246b810bc6905db59c2a75f296b71d0e',1,'Datalayer::ReferenceType']]] +]; diff --git a/3.4.0/api/net/html/search/all_8.js b/3.4.0/api/net/html/search/all_8.js new file mode 100644 index 000000000..6b3b12e29 --- /dev/null +++ b/3.4.0/api/net/html/search/all_8.js @@ -0,0 +1,40 @@ +var searchData= +[ + ['ibulk_0',['IBulk',['../interfaceDatalayer_1_1IBulk.html',1,'Datalayer']]], + ['ibulkitem_1',['IBulkItem',['../interfaceDatalayer_1_1IBulkItem.html',1,'Datalayer']]], + ['iclient_2',['IClient',['../interfaceDatalayer_1_1IClient.html',1,'Datalayer']]], + ['iclientasyncbulkresult_3',['IClientAsyncBulkResult',['../interfaceDatalayer_1_1IClientAsyncBulkResult.html',1,'Datalayer']]], + ['iclientasyncresult_4',['IClientAsyncResult',['../interfaceDatalayer_1_1IClientAsyncResult.html',1,'Datalayer']]], + ['iconverter_5',['IConverter',['../interfaceDatalayer_1_1IConverter.html',1,'Datalayer']]], + ['id_6',['Id',['../interfaceDatalayer_1_1ISubscription.html#a186291c875988107b7ace745ea84d4ec',1,'Datalayer::ISubscription']]], + ['idatachangedeventargs_7',['IDataChangedEventArgs',['../interfaceDatalayer_1_1IDataChangedEventArgs.html',1,'Datalayer']]], + ['idatalayersystem_8',['IDatalayerSystem',['../interfaceDatalayer_1_1IDatalayerSystem.html',1,'Datalayer']]], + ['idle_9',['Idle',['../namespaceDatalayer.html#ab8dd9973943421f0505eb79d1b7007deae599161956d626eda4cb0a5ffb85271c',1,'Datalayer']]], + ['ifactory_10',['IFactory',['../interfaceDatalayer_1_1IFactory.html',1,'Datalayer']]], + ['inativedisposable_11',['INativeDisposable',['../interfaceDatalayer_1_1INativeDisposable.html',1,'Datalayer']]], + ['info_12',['Info',['../interfaceDatalayer_1_1INotifyItem.html#aaca500fdbf156620e95d3fbf608a1e9b',1,'Datalayer::INotifyItem']]], + ['inotifyitem_13',['INotifyItem',['../interfaceDatalayer_1_1INotifyItem.html',1,'Datalayer']]], + ['ip_14',['Ip',['../classDatalayer_1_1Remote.html#acfd2507889dd4ca10984553f890de256',1,'Datalayer::Remote']]], + ['ipc_15',['IPC',['../namespaceDatalayer.html#ad60e871193d3e9855e82f9ba97df3888ac8660c6d72e7323867ec800d6bb953df',1,'Datalayer']]], + ['ipcpath_16',['IpcPath',['../interfaceDatalayer_1_1IDatalayerSystem.html#a07d6bca7b87c1e03c76407fdf8fe7006',1,'Datalayer.IDatalayerSystem.IpcPath()'],['../classDatalayer_1_1DatalayerSystem.html#a07d6bca7b87c1e03c76407fdf8fe7006',1,'Datalayer.DatalayerSystem.IpcPath()']]], + ['iprovider_17',['IProvider',['../interfaceDatalayer_1_1IProvider.html',1,'Datalayer']]], + ['iprovidernode_18',['IProviderNode',['../interfaceDatalayer_1_1IProviderNode.html',1,'Datalayer']]], + ['iprovidernodehandler_19',['IProviderNodeHandler',['../interfaceDatalayer_1_1IProviderNodeHandler.html',1,'Datalayer']]], + ['iprovidernoderesult_20',['IProviderNodeResult',['../interfaceDatalayer_1_1IProviderNodeResult.html',1,'Datalayer']]], + ['isarray_21',['IsArray',['../classDatalayer_1_1Variant.html#afad44b5f3d66d321f75026142b350094',1,'Datalayer.Variant.IsArray()'],['../interfaceDatalayer_1_1IVariant.html#afad44b5f3d66d321f75026142b350094',1,'Datalayer.IVariant.IsArray()']]], + ['isbad_22',['IsBad',['../classDatalayer_1_1ResultExtensions.html#a6f1dc9fcfe09617ac9976d377229edfb',1,'Datalayer::ResultExtensions']]], + ['isbool_23',['IsBool',['../interfaceDatalayer_1_1IVariant.html#ac0cb5c9ac8b61a8903182242c4621852',1,'Datalayer.IVariant.IsBool()'],['../classDatalayer_1_1Variant.html#ac0cb5c9ac8b61a8903182242c4621852',1,'Datalayer.Variant.IsBool()']]], + ['isconnected_24',['IsConnected',['../interfaceDatalayer_1_1IClient.html#abac0113ff571c017320394966a1ae6d5',1,'Datalayer.IClient.IsConnected()'],['../interfaceDatalayer_1_1IProvider.html#abac0113ff571c017320394966a1ae6d5',1,'Datalayer.IProvider.IsConnected()']]], + ['isdisposed_25',['IsDisposed',['../classDatalayer_1_1DatalayerSystem.html#ab96a71c70205ed1aa4af692ee7f35403',1,'Datalayer.DatalayerSystem.IsDisposed()'],['../interfaceDatalayer_1_1INativeDisposable.html#ab96a71c70205ed1aa4af692ee7f35403',1,'Datalayer.INativeDisposable.IsDisposed()'],['../classDatalayer_1_1Variant.html#ab96a71c70205ed1aa4af692ee7f35403',1,'Datalayer.Variant.IsDisposed()']]], + ['isflatbuffers_26',['IsFlatbuffers',['../interfaceDatalayer_1_1IVariant.html#a795de924092940063018468542a0a3b1',1,'Datalayer.IVariant.IsFlatbuffers()'],['../classDatalayer_1_1Variant.html#a795de924092940063018468542a0a3b1',1,'Datalayer.Variant.IsFlatbuffers()']]], + ['isgood_27',['IsGood',['../classDatalayer_1_1ResultExtensions.html#a80ecfbc560e18460982658281c7068cd',1,'Datalayer::ResultExtensions']]], + ['isnull_28',['IsNull',['../classDatalayer_1_1Variant.html#a69588587684f7c6234dad9c7dea6e8e9',1,'Datalayer.Variant.IsNull()'],['../interfaceDatalayer_1_1IVariant.html#a69588587684f7c6234dad9c7dea6e8e9',1,'Datalayer.IVariant.IsNull()']]], + ['isnumber_29',['IsNumber',['../interfaceDatalayer_1_1IVariant.html#af76375772db03055743ffe560de9cb83',1,'Datalayer.IVariant.IsNumber()'],['../classDatalayer_1_1Variant.html#af76375772db03055743ffe560de9cb83',1,'Datalayer.Variant.IsNumber()']]], + ['isstarted_30',['IsStarted',['../classDatalayer_1_1DatalayerSystem.html#a9414c6daba9ce4aab80fa4c7ed02d507',1,'Datalayer.DatalayerSystem.IsStarted()'],['../interfaceDatalayer_1_1IDatalayerSystem.html#a9414c6daba9ce4aab80fa4c7ed02d507',1,'Datalayer.IDatalayerSystem.IsStarted()']]], + ['isstring_31',['IsString',['../classDatalayer_1_1Variant.html#a5a98459cc3688dfbd6ae933fedef2a9a',1,'Datalayer.Variant.IsString()'],['../interfaceDatalayer_1_1IVariant.html#a5a98459cc3688dfbd6ae933fedef2a9a',1,'Datalayer.IVariant.IsString()']]], + ['isubscription_32',['ISubscription',['../interfaceDatalayer_1_1ISubscription.html',1,'Datalayer']]], + ['isubscriptionasyncresult_33',['ISubscriptionAsyncResult',['../interfaceDatalayer_1_1ISubscriptionAsyncResult.html',1,'Datalayer']]], + ['item_34',['Item',['../interfaceDatalayer_1_1IDataChangedEventArgs.html#aab457c0783b24f8609d589fc10dde237',1,'Datalayer::IDataChangedEventArgs']]], + ['items_35',['Items',['../interfaceDatalayer_1_1IBulk.html#ad07a380085308ef296066fccb14a7788',1,'Datalayer.IBulk.Items()'],['../interfaceDatalayer_1_1IClientAsyncBulkResult.html#ad07a380085308ef296066fccb14a7788',1,'Datalayer.IClientAsyncBulkResult.Items()']]], + ['ivariant_36',['IVariant',['../interfaceDatalayer_1_1IVariant.html',1,'Datalayer']]] +]; diff --git a/3.4.0/api/net/html/search/all_9.js b/3.4.0/api/net/html/search/all_9.js new file mode 100644 index 000000000..37bb33997 --- /dev/null +++ b/3.4.0/api/net/html/search/all_9.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['jsondatatype_0',['JsonDataType',['../interfaceDatalayer_1_1IVariant.html#ab4a6bde9780472924de64b1ef8059d3a',1,'Datalayer.IVariant.JsonDataType()'],['../classDatalayer_1_1Variant.html#ab4a6bde9780472924de64b1ef8059d3a',1,'Datalayer.Variant.JsonDataType()']]] +]; diff --git a/3.4.0/api/net/html/search/all_a.js b/3.4.0/api/net/html/search/all_a.js new file mode 100644 index 000000000..2fa174081 --- /dev/null +++ b/3.4.0/api/net/html/search/all_a.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['main_20page_0',['Main Page',['../index.html',1,'']]], + ['memorytype_5finput_1',['MemoryType_Input',['../namespaceDatalayer.html#a40238e23d8a470f0832bf1c50b1bce13aec685518f38471eecccba9f884ebca6d',1,'Datalayer']]], + ['memorytype_5foutput_2',['MemoryType_Output',['../namespaceDatalayer.html#a40238e23d8a470f0832bf1c50b1bce13a685d3ad013aba495f2a5eece3d216602',1,'Datalayer']]], + ['memorytype_5fshared_3',['MemoryType_Shared',['../namespaceDatalayer.html#a40238e23d8a470f0832bf1c50b1bce13a6e80e1c5b7e2fe0483010b69718c77ef',1,'Datalayer']]], + ['memorytype_5fsharedretain_4',['MemoryType_SharedRetain',['../namespaceDatalayer.html#a40238e23d8a470f0832bf1c50b1bce13a1fcdba751a7aaf571a78cdccd8c753c4',1,'Datalayer']]], + ['memorytype_5funknown_5',['MemoryType_Unknown',['../namespaceDatalayer.html#a40238e23d8a470f0832bf1c50b1bce13a8fdd2348a0765396ba228252f894d02b',1,'Datalayer']]], + ['metadatabuilder_6',['MetadataBuilder',['../classDatalayer_1_1MetadataBuilder.html',1,'MetadataBuilder'],['../classDatalayer_1_1MetadataBuilder.html#a9c1b73fb1f408391e7526342097c7f9c',1,'Datalayer.MetadataBuilder.MetadataBuilder()']]] +]; diff --git a/3.4.0/api/net/html/search/all_b.js b/3.4.0/api/net/html/search/all_b.js new file mode 100644 index 000000000..9fe690b87 --- /dev/null +++ b/3.4.0/api/net/html/search/all_b.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['none_0',['None',['../namespaceDatalayer.html#ac548b797bc499a716ce33d3e936468eda6adf97f83acf6453d4a6a4b1070f3754',1,'Datalayer']]], + ['null_1',['Null',['../classDatalayer_1_1Variant.html#a92b84f63a468a345d45dcb776b6c1344',1,'Datalayer::Variant']]] +]; diff --git a/3.4.0/api/net/html/search/all_c.js b/3.4.0/api/net/html/search/all_c.js new file mode 100644 index 000000000..05954de61 --- /dev/null +++ b/3.4.0/api/net/html/search/all_c.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['onbrowse_0',['OnBrowse',['../interfaceDatalayer_1_1IProviderNodeHandler.html#ab1c27882663a8ebaf8fa8ea683b27a6a',1,'Datalayer::IProviderNodeHandler']]], + ['oncreate_1',['OnCreate',['../interfaceDatalayer_1_1IProviderNodeHandler.html#a3f92a70bfce5b021432e14e231151046',1,'Datalayer::IProviderNodeHandler']]], + ['one_2',['One',['../classDatalayer_1_1Variant.html#a6150f8735c2c8eb4693be657ab49774d',1,'Datalayer::Variant']]], + ['onmetadata_3',['OnMetadata',['../interfaceDatalayer_1_1IProviderNodeHandler.html#a4fd497367e04ee5d4e5f88a374cba3b9',1,'Datalayer::IProviderNodeHandler']]], + ['onread_4',['OnRead',['../interfaceDatalayer_1_1IProviderNodeHandler.html#aa3f35022d6e3618922341bdbfc7331db',1,'Datalayer::IProviderNodeHandler']]], + ['onremove_5',['OnRemove',['../interfaceDatalayer_1_1IProviderNodeHandler.html#a0b616235dbec85c9f5e9144fc4b7c2a9',1,'Datalayer::IProviderNodeHandler']]], + ['onwrite_6',['OnWrite',['../interfaceDatalayer_1_1IProviderNodeHandler.html#ae74ad7f3deb71cfaf20b92b0fb55844f',1,'Datalayer::IProviderNodeHandler']]], + ['operator_20variant_7',['operator Variant',['../classDatalayer_1_1Variant.html#aea4a9b0432f77e8f9cf8c8a8612afce8',1,'Datalayer.Variant.operator Variant(bool source)'],['../classDatalayer_1_1Variant.html#a8e7703357f7fc58e1bb975943bac8153',1,'Datalayer.Variant.operator Variant(bool[] source)'],['../classDatalayer_1_1Variant.html#ae3049c24466337e7bd3485ee96a4bdb9',1,'Datalayer.Variant.operator Variant(sbyte source)'],['../classDatalayer_1_1Variant.html#abe74d517092f966c10c3c8383147d333',1,'Datalayer.Variant.operator Variant(sbyte[] source)'],['../classDatalayer_1_1Variant.html#a696540ecf668a7e6fa16ae2fa3b5b03d',1,'Datalayer.Variant.operator Variant(byte source)'],['../classDatalayer_1_1Variant.html#aff91713a8112cbcaa5b89f1ceab147b5',1,'Datalayer.Variant.operator Variant(byte[] source)'],['../classDatalayer_1_1Variant.html#ac1ad1d6d5b177417e7d140cd0899e01b',1,'Datalayer.Variant.operator Variant(short source)'],['../classDatalayer_1_1Variant.html#af9d8718989f7ec47d4f409bf7e0391ac',1,'Datalayer.Variant.operator Variant(short[] source)'],['../classDatalayer_1_1Variant.html#ad26bcf0308fd1059f322d228fb1a35df',1,'Datalayer.Variant.operator Variant(ushort source)'],['../classDatalayer_1_1Variant.html#a2779bcc56125f71e6fb16adb42798a0a',1,'Datalayer.Variant.operator Variant(ushort[] source)'],['../classDatalayer_1_1Variant.html#a9ecbd6449a741137de99c7dac0a6205c',1,'Datalayer.Variant.operator Variant(int source)'],['../classDatalayer_1_1Variant.html#a46107b2fadc2ebb15a8456791260f4f7',1,'Datalayer.Variant.operator Variant(int[] source)'],['../classDatalayer_1_1Variant.html#ad067c25cbf27b5342b7e1fbf7f28dd16',1,'Datalayer.Variant.operator Variant(uint source)'],['../classDatalayer_1_1Variant.html#ab54ad17c707825b0771594c18eb24dda',1,'Datalayer.Variant.operator Variant(uint[] source)'],['../classDatalayer_1_1Variant.html#ab015d27e128504a57c70a45076791ed6',1,'Datalayer.Variant.operator Variant(long source)'],['../classDatalayer_1_1Variant.html#a2c0c3403d3812ee7b1ec698511c180d8',1,'Datalayer.Variant.operator Variant(long[] source)'],['../classDatalayer_1_1Variant.html#a465e11e306756f8eb540673d5f9cc3fc',1,'Datalayer.Variant.operator Variant(ulong source)'],['../classDatalayer_1_1Variant.html#a930c69ef28e88ff2ece9295bdebc9bea',1,'Datalayer.Variant.operator Variant(ulong[] source)'],['../classDatalayer_1_1Variant.html#a9c53ad243715dc0983afc2f3ad4cf72c',1,'Datalayer.Variant.operator Variant(float source)'],['../classDatalayer_1_1Variant.html#ac983e3f2243f9130f9829ea6411e06ff',1,'Datalayer.Variant.operator Variant(float[] source)'],['../classDatalayer_1_1Variant.html#a5c8bc19ef8ab00d9a3d01eb78be172e6',1,'Datalayer.Variant.operator Variant(double source)'],['../classDatalayer_1_1Variant.html#a75fd018bde185a1bb157aaebcc745808',1,'Datalayer.Variant.operator Variant(double[] source)'],['../classDatalayer_1_1Variant.html#ab03c7c5f05170a7f9da68cac6ddbf00c',1,'Datalayer.Variant.operator Variant(string source)'],['../classDatalayer_1_1Variant.html#a9b7272bb426b38cae0d6e11e8e44d958',1,'Datalayer.Variant.operator Variant(string[] source)'],['../classDatalayer_1_1Variant.html#adaefd05f8b4bf92b8ebc7b91c0ad8768',1,'Datalayer.Variant.operator Variant(DateTime source)'],['../classDatalayer_1_1Variant.html#a9b2c841f8b0c7d7262725c5687651c1e',1,'Datalayer.Variant.operator Variant(DateTime[] source)'],['../classDatalayer_1_1Variant.html#a4641dcfcde244451d7e6f1c83f11b0ef',1,'Datalayer.Variant.operator Variant(FlatBufferBuilder source)'],['../classDatalayer_1_1Variant.html#a5f2d81a1e49469e7740eab4e6fe982b6',1,'Datalayer.Variant.operator Variant(ByteBuffer source)']]], + ['operator_21_3d_8',['operator!=',['../classDatalayer_1_1Variant.html#aa9fc6ccf613b2cc5356e7f81da1635ad',1,'Datalayer::Variant']]], + ['operator_3d_3d_9',['operator==',['../classDatalayer_1_1Variant.html#ad393d790d52712f35a5fd2121f2ca639',1,'Datalayer::Variant']]] +]; diff --git a/3.4.0/api/net/html/search/all_d.js b/3.4.0/api/net/html/search/all_d.js new file mode 100644 index 000000000..ff61328d1 --- /dev/null +++ b/3.4.0/api/net/html/search/all_d.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['password_0',['Password',['../classDatalayer_1_1Remote.html#a9c7aae3a8518d5efd22e991b5944e0d4',1,'Datalayer::Remote']]], + ['ping_1',['Ping',['../interfaceDatalayer_1_1IClient.html#a3565328c511f7a9e4375ce5181ceb963',1,'Datalayer.IClient.Ping()'],['../namespaceDatalayer.html#ab8dd9973943421f0505eb79d1b7007deab85815d04cec053ce6deb8021f2df1b8',1,'Datalayer.Ping()']]], + ['pingasync_2',['PingAsync',['../interfaceDatalayer_1_1IClient.html#a2bb4b58b112157d60f75c50855ff0665',1,'Datalayer::IClient']]], + ['port_3',['Port',['../classDatalayer_1_1Remote.html#a6ad5b3ea4ce74ad5f98cd49ff8511689',1,'Datalayer::Remote']]], + ['protocol_4',['Protocol',['../classDatalayer_1_1Remote.html#a0dda9c70e5a498baaa1cd780236ce1a1',1,'Datalayer::Remote']]], + ['protocolscheme_5',['ProtocolScheme',['../classDatalayer_1_1Remote.html#a3d08ba8bc2db79a0efb799146d13880f',1,'Datalayer.Remote.ProtocolScheme()'],['../namespaceDatalayer.html#ad60e871193d3e9855e82f9ba97df3888',1,'Datalayer.ProtocolScheme()']]], + ['protocolschemeipc_6',['ProtocolSchemeIpc',['../classDatalayer_1_1DatalayerSystem.html#a9898cbe4eb1903205a9ce4414bc53df8',1,'Datalayer::DatalayerSystem']]], + ['protocolschemetcp_7',['ProtocolSchemeTcp',['../classDatalayer_1_1DatalayerSystem.html#a32418123bb8575e5f4e584c16b0ad695',1,'Datalayer::DatalayerSystem']]], + ['provider_8',['Provider',['../interfaceDatalayer_1_1IProviderNode.html#a167fc502187e24d074ae0781d8547993',1,'Datalayer::IProviderNode']]], + ['publishevent_9',['PublishEvent',['../interfaceDatalayer_1_1IProvider.html#a5af983a79238a9aee2746854e6cb567f',1,'Datalayer::IProvider']]] +]; diff --git a/3.4.0/api/net/html/search/all_e.js b/3.4.0/api/net/html/search/all_e.js new file mode 100644 index 000000000..0196a5ada --- /dev/null +++ b/3.4.0/api/net/html/search/all_e.js @@ -0,0 +1,21 @@ +var searchData= +[ + ['read_0',['Read',['../namespaceDatalayer.html#ac548b797bc499a716ce33d3e936468eda7a1a5f3e79fdc91edf2f5ead9d66abb4',1,'Datalayer']]], + ['readasync_1',['ReadAsync',['../interfaceDatalayer_1_1IClient.html#af55a294497d5e92c38bb1f0762f4a2d3',1,'Datalayer.IClient.ReadAsync(string address)'],['../interfaceDatalayer_1_1IClient.html#ae7bd7d468559ff01a4a13f8e61ab0fb5',1,'Datalayer.IClient.ReadAsync(string address, IVariant args)']]], + ['readintype_2',['ReadInType',['../classDatalayer_1_1ReferenceType.html#aa009a0a22f04001f55e194e8d8306faf',1,'Datalayer::ReferenceType']]], + ['readjsonasync_3',['ReadJsonAsync',['../interfaceDatalayer_1_1IClient.html#a10534a2fa13538f83a90334f33bf5049',1,'Datalayer.IClient.ReadJsonAsync(string address, int indentStep=0)'],['../interfaceDatalayer_1_1IClient.html#a029b51142457434da721389966b60890',1,'Datalayer.IClient.ReadJsonAsync(string address, IVariant args, int indentStep=0)']]], + ['readmetadataasync_4',['ReadMetadataAsync',['../interfaceDatalayer_1_1IClient.html#af5dde224ead410a62983392efcba4519',1,'Datalayer::IClient']]], + ['readmultiasync_5',['ReadMultiAsync',['../interfaceDatalayer_1_1IClient.html#a51aa98c666c856a83b44287ef19addb4',1,'Datalayer::IClient']]], + ['readouttype_6',['ReadOutType',['../classDatalayer_1_1ReferenceType.html#a23a0c09636b7f8f1bef593ed179724a3',1,'Datalayer::ReferenceType']]], + ['readtype_7',['ReadType',['../classDatalayer_1_1ReferenceType.html#a21a03413de9f8f3810255fc62e36c83f',1,'Datalayer::ReferenceType']]], + ['reconnect_8',['Reconnect',['../namespaceDatalayer.html#ab8dd9973943421f0505eb79d1b7007dea880b8461cba2e295e1828be8d6eedb0a',1,'Datalayer']]], + ['referencetype_9',['ReferenceType',['../classDatalayer_1_1ReferenceType.html',1,'Datalayer']]], + ['registertype_10',['RegisterType',['../interfaceDatalayer_1_1IProvider.html#a7ee20a79cd1b758cc012e45411dd84b5',1,'Datalayer::IProvider']]], + ['registertypevariant_11',['RegisterTypeVariant',['../interfaceDatalayer_1_1IProvider.html#a6129cf171c635461be79c0f2a63a0385',1,'Datalayer::IProvider']]], + ['remote_12',['Remote',['../classDatalayer_1_1Remote.html',1,'Remote'],['../classDatalayer_1_1Remote.html#acd14cb587286e0bd0e758dee7c96edd2',1,'Datalayer.Remote.Remote()']]], + ['remove_13',['Remove',['../interfaceDatalayer_1_1IClient.html#a108feb5466129ef3e52da999fcce973b',1,'Datalayer::IClient']]], + ['removeasync_14',['RemoveAsync',['../interfaceDatalayer_1_1IClient.html#acbf69f9262439e9dac2c071aa91dde7a',1,'Datalayer::IClient']]], + ['result_15',['Result',['../interfaceDatalayer_1_1IBulkItem.html#afb2785bf656462fedb73dc757ebeba40',1,'Datalayer.IBulkItem.Result()'],['../interfaceDatalayer_1_1IClientAsyncBulkResult.html#afb2785bf656462fedb73dc757ebeba40',1,'Datalayer.IClientAsyncBulkResult.Result()'],['../interfaceDatalayer_1_1IClientAsyncResult.html#afb2785bf656462fedb73dc757ebeba40',1,'Datalayer.IClientAsyncResult.Result()'],['../interfaceDatalayer_1_1IDataChangedEventArgs.html#afb2785bf656462fedb73dc757ebeba40',1,'Datalayer.IDataChangedEventArgs.Result()']]], + ['result_16',['result',['../interfaceDatalayer_1_1IClient.html#a7e346f0f62357ba18c4ede5c5a84d787',1,'Datalayer.IClient.result()'],['../interfaceDatalayer_1_1IClient.html#a045f4dd7ccc04a6dd461a9af8594a7d9',1,'Datalayer.IClient.result()'],['../interfaceDatalayer_1_1IConverter.html#a7e346f0f62357ba18c4ede5c5a84d787',1,'Datalayer.IConverter.result()'],['../interfaceDatalayer_1_1IVariant.html#a7e346f0f62357ba18c4ede5c5a84d787',1,'Datalayer.IVariant.result()'],['../classDatalayer_1_1Variant.html#a7e346f0f62357ba18c4ede5c5a84d787',1,'Datalayer.Variant.result()']]], + ['resultextensions_17',['ResultExtensions',['../classDatalayer_1_1ResultExtensions.html',1,'Datalayer']]] +]; diff --git a/3.4.0/api/net/html/search/all_f.js b/3.4.0/api/net/html/search/all_f.js new file mode 100644 index 000000000..bf704802b --- /dev/null +++ b/3.4.0/api/net/html/search/all_f.js @@ -0,0 +1,28 @@ +var searchData= +[ + ['setchangeevents_0',['SetChangeEvents',['../classDatalayer_1_1SubscriptionPropertiesBuilder.html#a89d3c0e840c74d2087f93efccbe04377',1,'Datalayer::SubscriptionPropertiesBuilder']]], + ['setcounting_1',['SetCounting',['../classDatalayer_1_1SubscriptionPropertiesBuilder.html#a90528eca4c144dfddb28e33c6ec0228b',1,'Datalayer::SubscriptionPropertiesBuilder']]], + ['setdatachangefilter_2',['SetDataChangeFilter',['../classDatalayer_1_1SubscriptionPropertiesBuilder.html#aa0650d1e40db0e3f96b4d720e477ba49',1,'Datalayer::SubscriptionPropertiesBuilder']]], + ['setdisplayformat_3',['SetDisplayFormat',['../classDatalayer_1_1MetadataBuilder.html#a3dfefc3cc9924bb05fa8a03cbad35697',1,'Datalayer::MetadataBuilder']]], + ['setdisplayname_4',['SetDisplayName',['../classDatalayer_1_1MetadataBuilder.html#a28a911c6965e8bc86f1d52ca42d89227',1,'Datalayer::MetadataBuilder']]], + ['seterrorintervalmillis_5',['SetErrorIntervalMillis',['../classDatalayer_1_1SubscriptionPropertiesBuilder.html#a75fa75449ff562e2aeff419e8d7c2029',1,'Datalayer::SubscriptionPropertiesBuilder']]], + ['setkeepaliveintervalmillis_6',['SetKeepAliveIntervalMillis',['../classDatalayer_1_1SubscriptionPropertiesBuilder.html#ae6575bceae5ae51a1f37b2b78b2d4ddf',1,'Datalayer::SubscriptionPropertiesBuilder']]], + ['setnodeclass_7',['SetNodeClass',['../classDatalayer_1_1MetadataBuilder.html#a2953c4356b024469b0516fe6769a363d',1,'Datalayer::MetadataBuilder']]], + ['setpublishintervalmillis_8',['SetPublishIntervalMillis',['../classDatalayer_1_1SubscriptionPropertiesBuilder.html#a6c43b0e1274859ec6b100bb4e625fea5',1,'Datalayer::SubscriptionPropertiesBuilder']]], + ['setqueueing_9',['SetQueueing',['../classDatalayer_1_1SubscriptionPropertiesBuilder.html#a258b8d4f7378c3fdfe9b29b46867b5e4',1,'Datalayer::SubscriptionPropertiesBuilder']]], + ['setresult_10',['SetResult',['../interfaceDatalayer_1_1IProviderNodeResult.html#af0f8b79edf6dcdee540fbabeacf2bacc',1,'Datalayer.IProviderNodeResult.SetResult(DLR_RESULT result)'],['../interfaceDatalayer_1_1IProviderNodeResult.html#a9f54339c2713119dd2e6121e73617abc',1,'Datalayer.IProviderNodeResult.SetResult(DLR_RESULT result, IVariant value)']]], + ['setsamplingintervalmicros_11',['SetSamplingIntervalMicros',['../classDatalayer_1_1SubscriptionPropertiesBuilder.html#a2340a59e378666287264c1214482f177',1,'Datalayer::SubscriptionPropertiesBuilder']]], + ['setsamplingintervalmillis_12',['SetSamplingIntervalMillis',['../classDatalayer_1_1SubscriptionPropertiesBuilder.html#a4e7e7c4968b1f86652ca01eebdb21d38',1,'Datalayer::SubscriptionPropertiesBuilder']]], + ['settimeout_13',['SetTimeout',['../interfaceDatalayer_1_1IProviderNode.html#a617e11e2e4aad762e04b6ce5b78f28cb',1,'Datalayer.IProviderNode.SetTimeout()'],['../interfaceDatalayer_1_1IClient.html#ae73e0f8bb934143fb0d5c2cc686025a8',1,'Datalayer.IClient.SetTimeout()']]], + ['setunit_14',['SetUnit',['../classDatalayer_1_1MetadataBuilder.html#a19302e54a182fd8dde5ef303acd182c1',1,'Datalayer::MetadataBuilder']]], + ['sslport_15',['SslPort',['../classDatalayer_1_1Remote.html#a67afb250f2fb0a12185f5b161deac88b',1,'Datalayer::Remote']]], + ['start_16',['Start',['../classDatalayer_1_1DatalayerSystem.html#aedc8062676da3b418c85610e41174812',1,'Datalayer.DatalayerSystem.Start()'],['../interfaceDatalayer_1_1IDatalayerSystem.html#ab0f613d2e1cd090448e5543881f1d70d',1,'Datalayer.IDatalayerSystem.Start()'],['../interfaceDatalayer_1_1IProvider.html#abcc6b18c9d4fb2ed70e990f00016c0fe',1,'Datalayer.IProvider.Start()']]], + ['stop_17',['Stop',['../classDatalayer_1_1DatalayerSystem.html#a17a237457e57625296e6b24feb19c60a',1,'Datalayer.DatalayerSystem.Stop()'],['../interfaceDatalayer_1_1IDatalayerSystem.html#a17a237457e57625296e6b24feb19c60a',1,'Datalayer.IDatalayerSystem.Stop()'],['../interfaceDatalayer_1_1IProvider.html#a8e21506e57d91e044ccd2d276039df81',1,'Datalayer.IProvider.Stop()']]], + ['subscribe_18',['Subscribe',['../interfaceDatalayer_1_1ISubscription.html#a7887ed3200fcf3ae4b47b6d4b4062137',1,'Datalayer::ISubscription']]], + ['subscribeasync_19',['SubscribeAsync',['../interfaceDatalayer_1_1ISubscription.html#ac03404d1cfab473bbe8e9f5d21b5b234',1,'Datalayer::ISubscription']]], + ['subscribemulti_20',['SubscribeMulti',['../interfaceDatalayer_1_1ISubscription.html#a9390b851cf2198ba4cae6154f754bfb4',1,'Datalayer::ISubscription']]], + ['subscribemultiasync_21',['SubscribeMultiAsync',['../interfaceDatalayer_1_1ISubscription.html#a543a14bd035a1957f8e7f9d512e627c8',1,'Datalayer::ISubscription']]], + ['subscription_22',['Subscription',['../interfaceDatalayer_1_1ISubscriptionAsyncResult.html#a67e453ac81a6513a6a7a4512801bee48',1,'Datalayer::ISubscriptionAsyncResult']]], + ['subscriptionpropertiesbuilder_23',['SubscriptionPropertiesBuilder',['../classDatalayer_1_1SubscriptionPropertiesBuilder.html',1,'SubscriptionPropertiesBuilder'],['../classDatalayer_1_1SubscriptionPropertiesBuilder.html#a906c787c69eda2cc0aaf995638d99512',1,'Datalayer.SubscriptionPropertiesBuilder.SubscriptionPropertiesBuilder()']]], + ['system_24',['System',['../interfaceDatalayer_1_1IClient.html#ad21e12c22b827906a29fcdf13646e750',1,'Datalayer.IClient.System()'],['../interfaceDatalayer_1_1IProvider.html#ad21e12c22b827906a29fcdf13646e750',1,'Datalayer.IProvider.System()']]] +]; diff --git a/3.4.0/api/net/html/search/classes_0.js b/3.4.0/api/net/html/search/classes_0.js new file mode 100644 index 000000000..40332946d --- /dev/null +++ b/3.4.0/api/net/html/search/classes_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['datalayersystem_0',['DatalayerSystem',['../classDatalayer_1_1DatalayerSystem.html',1,'Datalayer']]] +]; diff --git a/3.4.0/api/net/html/search/classes_1.js b/3.4.0/api/net/html/search/classes_1.js new file mode 100644 index 000000000..990d5de97 --- /dev/null +++ b/3.4.0/api/net/html/search/classes_1.js @@ -0,0 +1,21 @@ +var searchData= +[ + ['ibulk_0',['IBulk',['../interfaceDatalayer_1_1IBulk.html',1,'Datalayer']]], + ['ibulkitem_1',['IBulkItem',['../interfaceDatalayer_1_1IBulkItem.html',1,'Datalayer']]], + ['iclient_2',['IClient',['../interfaceDatalayer_1_1IClient.html',1,'Datalayer']]], + ['iclientasyncbulkresult_3',['IClientAsyncBulkResult',['../interfaceDatalayer_1_1IClientAsyncBulkResult.html',1,'Datalayer']]], + ['iclientasyncresult_4',['IClientAsyncResult',['../interfaceDatalayer_1_1IClientAsyncResult.html',1,'Datalayer']]], + ['iconverter_5',['IConverter',['../interfaceDatalayer_1_1IConverter.html',1,'Datalayer']]], + ['idatachangedeventargs_6',['IDataChangedEventArgs',['../interfaceDatalayer_1_1IDataChangedEventArgs.html',1,'Datalayer']]], + ['idatalayersystem_7',['IDatalayerSystem',['../interfaceDatalayer_1_1IDatalayerSystem.html',1,'Datalayer']]], + ['ifactory_8',['IFactory',['../interfaceDatalayer_1_1IFactory.html',1,'Datalayer']]], + ['inativedisposable_9',['INativeDisposable',['../interfaceDatalayer_1_1INativeDisposable.html',1,'Datalayer']]], + ['inotifyitem_10',['INotifyItem',['../interfaceDatalayer_1_1INotifyItem.html',1,'Datalayer']]], + ['iprovider_11',['IProvider',['../interfaceDatalayer_1_1IProvider.html',1,'Datalayer']]], + ['iprovidernode_12',['IProviderNode',['../interfaceDatalayer_1_1IProviderNode.html',1,'Datalayer']]], + ['iprovidernodehandler_13',['IProviderNodeHandler',['../interfaceDatalayer_1_1IProviderNodeHandler.html',1,'Datalayer']]], + ['iprovidernoderesult_14',['IProviderNodeResult',['../interfaceDatalayer_1_1IProviderNodeResult.html',1,'Datalayer']]], + ['isubscription_15',['ISubscription',['../interfaceDatalayer_1_1ISubscription.html',1,'Datalayer']]], + ['isubscriptionasyncresult_16',['ISubscriptionAsyncResult',['../interfaceDatalayer_1_1ISubscriptionAsyncResult.html',1,'Datalayer']]], + ['ivariant_17',['IVariant',['../interfaceDatalayer_1_1IVariant.html',1,'Datalayer']]] +]; diff --git a/3.4.0/api/net/html/search/classes_2.js b/3.4.0/api/net/html/search/classes_2.js new file mode 100644 index 000000000..06eb955fc --- /dev/null +++ b/3.4.0/api/net/html/search/classes_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['metadatabuilder_0',['MetadataBuilder',['../classDatalayer_1_1MetadataBuilder.html',1,'Datalayer']]] +]; diff --git a/3.4.0/api/net/html/search/classes_3.js b/3.4.0/api/net/html/search/classes_3.js new file mode 100644 index 000000000..6297aaf99 --- /dev/null +++ b/3.4.0/api/net/html/search/classes_3.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['referencetype_0',['ReferenceType',['../classDatalayer_1_1ReferenceType.html',1,'Datalayer']]], + ['remote_1',['Remote',['../classDatalayer_1_1Remote.html',1,'Datalayer']]], + ['resultextensions_2',['ResultExtensions',['../classDatalayer_1_1ResultExtensions.html',1,'Datalayer']]] +]; diff --git a/3.4.0/api/net/html/search/classes_4.js b/3.4.0/api/net/html/search/classes_4.js new file mode 100644 index 000000000..a5edd4ef9 --- /dev/null +++ b/3.4.0/api/net/html/search/classes_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['subscriptionpropertiesbuilder_0',['SubscriptionPropertiesBuilder',['../classDatalayer_1_1SubscriptionPropertiesBuilder.html',1,'Datalayer']]] +]; diff --git a/3.4.0/api/net/html/search/classes_5.js b/3.4.0/api/net/html/search/classes_5.js new file mode 100644 index 000000000..6bca07a92 --- /dev/null +++ b/3.4.0/api/net/html/search/classes_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['variant_0',['Variant',['../classDatalayer_1_1Variant.html',1,'Datalayer']]] +]; diff --git a/3.4.0/api/net/html/search/close.svg b/3.4.0/api/net/html/search/close.svg new file mode 100644 index 000000000..a933eea1a --- /dev/null +++ b/3.4.0/api/net/html/search/close.svg @@ -0,0 +1,31 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/3.4.0/api/net/html/search/enums_0.js b/3.4.0/api/net/html/search/enums_0.js new file mode 100644 index 000000000..f8a031ad1 --- /dev/null +++ b/3.4.0/api/net/html/search/enums_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['allowedoperationflags_0',['AllowedOperationFlags',['../namespaceDatalayer.html#ac548b797bc499a716ce33d3e936468ed',1,'Datalayer']]] +]; diff --git a/3.4.0/api/net/html/search/enums_1.js b/3.4.0/api/net/html/search/enums_1.js new file mode 100644 index 000000000..53b57b151 --- /dev/null +++ b/3.4.0/api/net/html/search/enums_1.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['dlr_5fmemorytype_0',['DLR_MEMORYTYPE',['../namespaceDatalayer.html#a40238e23d8a470f0832bf1c50b1bce13',1,'Datalayer']]], + ['dlr_5fresult_1',['DLR_RESULT',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8',1,'Datalayer']]], + ['dlr_5fschema_2',['DLR_SCHEMA',['../namespaceDatalayer.html#af8b08dacadd30029d0855605d1a439f5',1,'Datalayer']]], + ['dlr_5ftimeout_5fsetting_3',['DLR_TIMEOUT_SETTING',['../namespaceDatalayer.html#ab8dd9973943421f0505eb79d1b7007de',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_4',['DLR_VARIANT_TYPE',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9',1,'Datalayer']]] +]; diff --git a/3.4.0/api/net/html/search/enums_2.js b/3.4.0/api/net/html/search/enums_2.js new file mode 100644 index 000000000..a6d8b750b --- /dev/null +++ b/3.4.0/api/net/html/search/enums_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['protocolscheme_0',['ProtocolScheme',['../namespaceDatalayer.html#ad60e871193d3e9855e82f9ba97df3888',1,'Datalayer']]] +]; diff --git a/3.4.0/api/net/html/search/enumvalues_0.js b/3.4.0/api/net/html/search/enumvalues_0.js new file mode 100644 index 000000000..00f2a526c --- /dev/null +++ b/3.4.0/api/net/html/search/enumvalues_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['all_0',['All',['../namespaceDatalayer.html#ac548b797bc499a716ce33d3e936468edab1c94ca2fbc3e78fc30069c8d0f01680',1,'Datalayer']]], + ['auto_1',['AUTO',['../namespaceDatalayer.html#ad60e871193d3e9855e82f9ba97df3888ae1f2d5134ed2543d38a0de9751cf75d9',1,'Datalayer']]] +]; diff --git a/3.4.0/api/net/html/search/enumvalues_1.js b/3.4.0/api/net/html/search/enumvalues_1.js new file mode 100644 index 000000000..ed87b4a4d --- /dev/null +++ b/3.4.0/api/net/html/search/enumvalues_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['browse_0',['Browse',['../namespaceDatalayer.html#ac548b797bc499a716ce33d3e936468eda1b9abf135ccb7ed2f2cd9c155137c351',1,'Datalayer']]] +]; diff --git a/3.4.0/api/net/html/search/enumvalues_2.js b/3.4.0/api/net/html/search/enumvalues_2.js new file mode 100644 index 000000000..d632d3131 --- /dev/null +++ b/3.4.0/api/net/html/search/enumvalues_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['create_0',['Create',['../namespaceDatalayer.html#ac548b797bc499a716ce33d3e936468eda686e697538050e4664636337cc3b834f',1,'Datalayer']]] +]; diff --git a/3.4.0/api/net/html/search/enumvalues_3.js b/3.4.0/api/net/html/search/enumvalues_3.js new file mode 100644 index 000000000..d1ad18bf8 --- /dev/null +++ b/3.4.0/api/net/html/search/enumvalues_3.js @@ -0,0 +1,90 @@ +var searchData= +[ + ['delete_0',['Delete',['../namespaceDatalayer.html#ac548b797bc499a716ce33d3e936468edaf2a6c498fb90ee345d997f888fce3b18',1,'Datalayer']]], + ['dl_5falready_5fexists_1',['DL_ALREADY_EXISTS',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8ad1a55e8a1453ad50d0511e73acee7687',1,'Datalayer']]], + ['dl_5fclient_5fnot_5fconnected_2',['DL_CLIENT_NOT_CONNECTED',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a55523980613162b04028375de5616071',1,'Datalayer']]], + ['dl_5fcomm_5finvalid_5fheader_3',['DL_COMM_INVALID_HEADER',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a8cc3039c8ecf7c2e39b44e3eecd978c7',1,'Datalayer']]], + ['dl_5fcomm_5fprotocol_5ferror_4',['DL_COMM_PROTOCOL_ERROR',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a808d225e26988f7fec9b4e032bf00dfd',1,'Datalayer']]], + ['dl_5fcommunication_5ferror_5',['DL_COMMUNICATION_ERROR',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a0dbbf20a4d7f3efe6aa4bf820f9a4812',1,'Datalayer']]], + ['dl_5fcreation_5ffailed_6',['DL_CREATION_FAILED',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8ad7d1659b9c4a6f0fdbdbae09cc6e53e0',1,'Datalayer']]], + ['dl_5fdeprecated_7',['DL_DEPRECATED',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a878c377375ceef81e517aad9eb7a6763',1,'Datalayer']]], + ['dl_5ffailed_8',['DL_FAILED',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8abcf279a4cb487562df5bfcde8b4a15b2',1,'Datalayer']]], + ['dl_5finvalid_5faddress_9',['DL_INVALID_ADDRESS',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a1336129b25e665af78b3db995e2c2ec7',1,'Datalayer']]], + ['dl_5finvalid_5fconfiguration_10',['DL_INVALID_CONFIGURATION',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8af2252c5f6cb80f26a8c9d309a67a32a4',1,'Datalayer']]], + ['dl_5finvalid_5ffloatingpoint_11',['DL_INVALID_FLOATINGPOINT',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8ac3c7ffcc02d658707889d2bcf446c1cc',1,'Datalayer']]], + ['dl_5finvalid_5fhandle_12',['DL_INVALID_HANDLE',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a4aaf5a000100d44b88aa0e7c44ad3231',1,'Datalayer']]], + ['dl_5finvalid_5foperation_5fmode_13',['DL_INVALID_OPERATION_MODE',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8ad465219dc1c5c58bf646d1457910389a',1,'Datalayer']]], + ['dl_5finvalid_5fvalue_14',['DL_INVALID_VALUE',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a073ad8dd5dfa5231a53482775ebb0911',1,'Datalayer']]], + ['dl_5flimit_5fmax_15',['DL_LIMIT_MAX',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8abdfaef2982edca446b8efc6e611cbaf2',1,'Datalayer']]], + ['dl_5flimit_5fmin_16',['DL_LIMIT_MIN',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8ac29324a5167e71a2b24a1bcc8fb203eb',1,'Datalayer']]], + ['dl_5fmissing_5fargument_17',['DL_MISSING_ARGUMENT',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a7b6373769b5293e47396ff921bf35813',1,'Datalayer']]], + ['dl_5fnot_5finitialized_18',['DL_NOT_INITIALIZED',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a3a4e76cce21fc35d1f73404a7971d913',1,'Datalayer']]], + ['dl_5fok_19',['DL_OK',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8adc27fedf4a787a777ab371bd57d6c333',1,'Datalayer']]], + ['dl_5fok_5fno_5fcontent_20',['DL_OK_NO_CONTENT',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a555f8a25a1de9fc7d0c8e8f1359a3690',1,'Datalayer']]], + ['dl_5fout_5fof_5fmemory_21',['DL_OUT_OF_MEMORY',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a462ab421a16c65416eba7fd1d8724523',1,'Datalayer']]], + ['dl_5fpermission_5fdenied_22',['DL_PERMISSION_DENIED',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a4b3fbb4c4f298edb2aba939b13f0c178',1,'Datalayer']]], + ['dl_5fprovider_5freset_5ftimeout_23',['DL_PROVIDER_RESET_TIMEOUT',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8aad18e518a8b089855eea207af6f2396f',1,'Datalayer']]], + ['dl_5fprovider_5fsub_5fhandling_24',['DL_PROVIDER_SUB_HANDLING',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8af8f59aff7717b3d62f8d7c5318f1d466',1,'Datalayer']]], + ['dl_5fprovider_5fupdate_5ftimeout_25',['DL_PROVIDER_UPDATE_TIMEOUT',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a8ce3241085b25f05ba34fe00683c8715',1,'Datalayer']]], + ['dl_5fresource_5funavailable_26',['DL_RESOURCE_UNAVAILABLE',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a4ca3e249a876a99c69af1c780d144ca5',1,'Datalayer']]], + ['dl_5frt_5finternal_5ferror_27',['DL_RT_INTERNAL_ERROR',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a3428a7dd8b177e5a18519282346d11d0',1,'Datalayer']]], + ['dl_5frt_5finvalid_5fretain_28',['DL_RT_INVALID_RETAIN',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8ad9bd8cf2113540a0b5d6255d3303912b',1,'Datalayer']]], + ['dl_5frt_5finvalidmemorymap_29',['DL_RT_INVALIDMEMORYMAP',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a1b885f575e449665ed8b667ab43e6e47',1,'Datalayer']]], + ['dl_5frt_5finvalidobject_30',['DL_RT_INVALIDOBJECT',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a7f689dfb5a5b45066c354f9b0c941b79',1,'Datalayer']]], + ['dl_5frt_5fmalloc_5ffailed_31',['DL_RT_MALLOC_FAILED',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8afc983719d20f9e9b4ac6942db33b25ce',1,'Datalayer']]], + ['dl_5frt_5fmemorylocked_32',['DL_RT_MEMORYLOCKED',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a852cff3698f3e624316de3a12b1f87b5',1,'Datalayer']]], + ['dl_5frt_5fnotopen_33',['DL_RT_NOTOPEN',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a5bb93e49149f20bb424721776889ea05',1,'Datalayer']]], + ['dl_5frt_5fnovaliddata_34',['DL_RT_NOVALIDDATA',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a304f18d78b2b8668f4c3d34ef0e8a27d',1,'Datalayer']]], + ['dl_5frt_5fwould_5fblock_35',['DL_RT_WOULD_BLOCK',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8aa8138650b0572726f454e222a7906ec6',1,'Datalayer']]], + ['dl_5frt_5fwrongrevison_36',['DL_RT_WRONGREVISON',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a58e8f7d0d740ca212499295794a66405',1,'Datalayer']]], + ['dl_5fsec_5finvalidsession_37',['DL_SEC_INVALIDSESSION',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8ad94bc99162d23a9ddef0553a497a0031',1,'Datalayer']]], + ['dl_5fsec_5finvalidtokencontent_38',['DL_SEC_INVALIDTOKENCONTENT',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8aaac9c87cf32874c931a65a3922d4d345',1,'Datalayer']]], + ['dl_5fsec_5fnotoken_39',['DL_SEC_NOTOKEN',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a6f4679f095a6bf5c327faaea904a7c8d',1,'Datalayer']]], + ['dl_5fsec_5fpayment_5frequired_40',['DL_SEC_PAYMENT_REQUIRED',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8ac5481194f8421a005b8d9d6d06a3777a',1,'Datalayer']]], + ['dl_5fsec_5funauthorized_41',['DL_SEC_UNAUTHORIZED',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8ad7d57fe21fe44304a9808a8f2328804f',1,'Datalayer']]], + ['dl_5fsize_5fmismatch_42',['DL_SIZE_MISMATCH',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8abce0216f174d3c9bd141189b0d66b5c5',1,'Datalayer']]], + ['dl_5fsubmodule_5ffailure_43',['DL_SUBMODULE_FAILURE',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8af498ab887c707eeb98f302d95ed9e9b2',1,'Datalayer']]], + ['dl_5ftimeout_44',['DL_TIMEOUT',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a2f594efff46815f7a267aae3fac94303',1,'Datalayer']]], + ['dl_5ftoo_5fmany_5farguments_45',['DL_TOO_MANY_ARGUMENTS',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a9a139fc4f6388fc5b5f6e2c53922741f',1,'Datalayer']]], + ['dl_5ftoo_5fmany_5foperations_46',['DL_TOO_MANY_OPERATIONS',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8ae7fe13b9ef76c7b9d368d0efaedeb0d2',1,'Datalayer']]], + ['dl_5ftype_5fmismatch_47',['DL_TYPE_MISMATCH',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a8ef0fc299d1390140a849fabe76d57b9',1,'Datalayer']]], + ['dl_5funsupported_48',['DL_UNSUPPORTED',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8ad03d4fd650db56f13877fae17722b28a',1,'Datalayer']]], + ['dl_5fversion_5fmismatch_49',['DL_VERSION_MISMATCH',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a779f905c67faf77f56a75395dc402fb1',1,'Datalayer']]], + ['dl_5fwould_5fblock_50',['DL_WOULD_BLOCK',['../namespaceDatalayer.html#a0d46a3e31a1859c7602d7d671bf75fc8a96375d9d1338dd4224e3726aa4aef651',1,'Datalayer']]], + ['dlr_5fschema_5fdiagnosis_51',['DLR_SCHEMA_DIAGNOSIS',['../namespaceDatalayer.html#af8b08dacadd30029d0855605d1a439f5ac961c12195fe2a124ff032d4bbf5abef',1,'Datalayer']]], + ['dlr_5fschema_5fmemory_52',['DLR_SCHEMA_MEMORY',['../namespaceDatalayer.html#af8b08dacadd30029d0855605d1a439f5ad515af92032500f25e56a1f932fc7a7c',1,'Datalayer']]], + ['dlr_5fschema_5fmemory_5fmap_53',['DLR_SCHEMA_MEMORY_MAP',['../namespaceDatalayer.html#af8b08dacadd30029d0855605d1a439f5a0f088d5949f43dd65e5b3aa3e9913ee6',1,'Datalayer']]], + ['dlr_5fschema_5fmetadata_54',['DLR_SCHEMA_METADATA',['../namespaceDatalayer.html#af8b08dacadd30029d0855605d1a439f5a655a03905c9e995d1d8100b242cb7702',1,'Datalayer']]], + ['dlr_5fschema_5fproblem_55',['DLR_SCHEMA_PROBLEM',['../namespaceDatalayer.html#af8b08dacadd30029d0855605d1a439f5a38dc4df48f200c0a352f3d53ffebcd8f',1,'Datalayer']]], + ['dlr_5fschema_5freflection_56',['DLR_SCHEMA_REFLECTION',['../namespaceDatalayer.html#af8b08dacadd30029d0855605d1a439f5a93ab7878cf77259f8536b0792dc8896c',1,'Datalayer']]], + ['dlr_5fschema_5ftoken_57',['DLR_SCHEMA_TOKEN',['../namespaceDatalayer.html#af8b08dacadd30029d0855605d1a439f5ad2475f61087d8a3a6b5f41844ac82f37',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5farray_5fof_5fbool8_58',['DLR_VARIANT_TYPE_ARRAY_OF_BOOL8',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9a9e2d403bab4f85f050c9f92ca1acf6b8',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5farray_5fof_5ffloat32_59',['DLR_VARIANT_TYPE_ARRAY_OF_FLOAT32',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9af9009f19366a32b3ba60306fc5452c2b',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5farray_5fof_5ffloat64_60',['DLR_VARIANT_TYPE_ARRAY_OF_FLOAT64',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9a82a897eb77a46e95a5a9aadd06849523',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5farray_5fof_5fint16_61',['DLR_VARIANT_TYPE_ARRAY_OF_INT16',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9a2e7e1fbc547c3ca79b49fde5ca9edcd6',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5farray_5fof_5fint32_62',['DLR_VARIANT_TYPE_ARRAY_OF_INT32',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9a7d2c30946d7fbabac7b0cff950d05726',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5farray_5fof_5fint64_63',['DLR_VARIANT_TYPE_ARRAY_OF_INT64',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9a0dd73c535e9b8af3c1ab44cabef742b6',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5farray_5fof_5fint8_64',['DLR_VARIANT_TYPE_ARRAY_OF_INT8',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9ad1fbbdea0d4074b363d21d3f648765dd',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5farray_5fof_5fstring_65',['DLR_VARIANT_TYPE_ARRAY_OF_STRING',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9a989a758238bc511cb7ab79ac6fbe83e6',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5farray_5fof_5ftimestamp_66',['DLR_VARIANT_TYPE_ARRAY_OF_TIMESTAMP',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9ab94bd166095aa4d4de34abd41e561690',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5farray_5fof_5fuint16_67',['DLR_VARIANT_TYPE_ARRAY_OF_UINT16',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9a8a3eeb721d3466eae497cdff5a4f7fcb',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5farray_5fof_5fuint32_68',['DLR_VARIANT_TYPE_ARRAY_OF_UINT32',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9a4e028c424226d0bd80c9f5c4fbdfa5be',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5farray_5fof_5fuint64_69',['DLR_VARIANT_TYPE_ARRAY_OF_UINT64',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9a7ec1e0ce78a2c7ec352940eebe56b0ca',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5farray_5fof_5fuint8_70',['DLR_VARIANT_TYPE_ARRAY_OF_UINT8',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9ae65eb55e3037f395352135400cc3e3c0',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5fbool8_71',['DLR_VARIANT_TYPE_BOOL8',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9ab4dc337c2afb68d5295ca7742b4471de',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5fflatbuffers_72',['DLR_VARIANT_TYPE_FLATBUFFERS',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9a76285ebb845f63084971f15885cfb949',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5ffloat32_73',['DLR_VARIANT_TYPE_FLOAT32',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9adb7fcbd27ecd75e7742e7497e9ed5cce',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5ffloat64_74',['DLR_VARIANT_TYPE_FLOAT64',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9aec6da9e150e9e879b03af8f6eead12c2',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5fint16_75',['DLR_VARIANT_TYPE_INT16',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9adbb26f3d97b1f04f4e9104925c490e32',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5fint32_76',['DLR_VARIANT_TYPE_INT32',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9a8bddb4815f3b7d936e36db1ba4915351',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5fint64_77',['DLR_VARIANT_TYPE_INT64',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9a44f66794af1076dddd962cbcd3242f24',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5fint8_78',['DLR_VARIANT_TYPE_INT8',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9a23b0c5b219e413781bebb170cb905f4d',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5fraw_79',['DLR_VARIANT_TYPE_RAW',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9a3f0d1599c56137088fff84b112941066',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5fstring_80',['DLR_VARIANT_TYPE_STRING',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9a1937cbc555ee7e85c8d8503db18c8a4a',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5ftimestamp_81',['DLR_VARIANT_TYPE_TIMESTAMP',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9ab73ac4fe6fc0363452a546e0c4c639d6',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5fuint16_82',['DLR_VARIANT_TYPE_UINT16',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9abefa2f81e3139439e4121427b127cc9d',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5fuint32_83',['DLR_VARIANT_TYPE_UINT32',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9a28fce873ff47ac9bde22d043bc10534e',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5fuint64_84',['DLR_VARIANT_TYPE_UINT64',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9a2b7369c066b1d9865a72d6dd625e7e1b',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5fuint8_85',['DLR_VARIANT_TYPE_UINT8',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9a1ce40f2f009de2c9e5598312c97c8104',1,'Datalayer']]], + ['dlr_5fvariant_5ftype_5funknown_86',['DLR_VARIANT_TYPE_UNKNOWN',['../namespaceDatalayer.html#ae56d178451c114ac0dde4ecc2269bad9af1ce21f1cb0fe40c3299c8ef34980d7b',1,'Datalayer']]] +]; diff --git a/3.4.0/api/net/html/search/enumvalues_4.js b/3.4.0/api/net/html/search/enumvalues_4.js new file mode 100644 index 000000000..013d8f030 --- /dev/null +++ b/3.4.0/api/net/html/search/enumvalues_4.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['idle_0',['Idle',['../namespaceDatalayer.html#ab8dd9973943421f0505eb79d1b7007deae599161956d626eda4cb0a5ffb85271c',1,'Datalayer']]], + ['ipc_1',['IPC',['../namespaceDatalayer.html#ad60e871193d3e9855e82f9ba97df3888ac8660c6d72e7323867ec800d6bb953df',1,'Datalayer']]] +]; diff --git a/3.4.0/api/net/html/search/enumvalues_5.js b/3.4.0/api/net/html/search/enumvalues_5.js new file mode 100644 index 000000000..8d51ff389 --- /dev/null +++ b/3.4.0/api/net/html/search/enumvalues_5.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['memorytype_5finput_0',['MemoryType_Input',['../namespaceDatalayer.html#a40238e23d8a470f0832bf1c50b1bce13aec685518f38471eecccba9f884ebca6d',1,'Datalayer']]], + ['memorytype_5foutput_1',['MemoryType_Output',['../namespaceDatalayer.html#a40238e23d8a470f0832bf1c50b1bce13a685d3ad013aba495f2a5eece3d216602',1,'Datalayer']]], + ['memorytype_5fshared_2',['MemoryType_Shared',['../namespaceDatalayer.html#a40238e23d8a470f0832bf1c50b1bce13a6e80e1c5b7e2fe0483010b69718c77ef',1,'Datalayer']]], + ['memorytype_5fsharedretain_3',['MemoryType_SharedRetain',['../namespaceDatalayer.html#a40238e23d8a470f0832bf1c50b1bce13a1fcdba751a7aaf571a78cdccd8c753c4',1,'Datalayer']]], + ['memorytype_5funknown_4',['MemoryType_Unknown',['../namespaceDatalayer.html#a40238e23d8a470f0832bf1c50b1bce13a8fdd2348a0765396ba228252f894d02b',1,'Datalayer']]] +]; diff --git a/3.4.0/api/net/html/search/enumvalues_6.js b/3.4.0/api/net/html/search/enumvalues_6.js new file mode 100644 index 000000000..b9616f9af --- /dev/null +++ b/3.4.0/api/net/html/search/enumvalues_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['none_0',['None',['../namespaceDatalayer.html#ac548b797bc499a716ce33d3e936468eda6adf97f83acf6453d4a6a4b1070f3754',1,'Datalayer']]] +]; diff --git a/3.4.0/api/net/html/search/enumvalues_7.js b/3.4.0/api/net/html/search/enumvalues_7.js new file mode 100644 index 000000000..e9e52c30f --- /dev/null +++ b/3.4.0/api/net/html/search/enumvalues_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['ping_0',['Ping',['../namespaceDatalayer.html#ab8dd9973943421f0505eb79d1b7007deab85815d04cec053ce6deb8021f2df1b8',1,'Datalayer']]] +]; diff --git a/3.4.0/api/net/html/search/enumvalues_8.js b/3.4.0/api/net/html/search/enumvalues_8.js new file mode 100644 index 000000000..d2e0492b1 --- /dev/null +++ b/3.4.0/api/net/html/search/enumvalues_8.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['read_0',['Read',['../namespaceDatalayer.html#ac548b797bc499a716ce33d3e936468eda7a1a5f3e79fdc91edf2f5ead9d66abb4',1,'Datalayer']]], + ['reconnect_1',['Reconnect',['../namespaceDatalayer.html#ab8dd9973943421f0505eb79d1b7007dea880b8461cba2e295e1828be8d6eedb0a',1,'Datalayer']]] +]; diff --git a/3.4.0/api/net/html/search/enumvalues_9.js b/3.4.0/api/net/html/search/enumvalues_9.js new file mode 100644 index 000000000..fad14aeb2 --- /dev/null +++ b/3.4.0/api/net/html/search/enumvalues_9.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['tcp_0',['TCP',['../namespaceDatalayer.html#ad60e871193d3e9855e82f9ba97df3888ab136ef5f6a01d816991fe3cf7a6ac763',1,'Datalayer']]] +]; diff --git a/3.4.0/api/net/html/search/enumvalues_a.js b/3.4.0/api/net/html/search/enumvalues_a.js new file mode 100644 index 000000000..3339d69d3 --- /dev/null +++ b/3.4.0/api/net/html/search/enumvalues_a.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['write_0',['Write',['../namespaceDatalayer.html#ac548b797bc499a716ce33d3e936468eda1129c0e4d43f2d121652a7302712cff6',1,'Datalayer']]] +]; diff --git a/3.4.0/api/net/html/search/events_0.js b/3.4.0/api/net/html/search/events_0.js new file mode 100644 index 000000000..de7fb11f9 --- /dev/null +++ b/3.4.0/api/net/html/search/events_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['datachanged_0',['DataChanged',['../interfaceDatalayer_1_1ISubscription.html#a86b7b4e2ce74e5c008917c8a72754aa4',1,'Datalayer::ISubscription']]] +]; diff --git a/3.4.0/api/net/html/search/functions_0.js b/3.4.0/api/net/html/search/functions_0.js new file mode 100644 index 000000000..9f1bf9c8a --- /dev/null +++ b/3.4.0/api/net/html/search/functions_0.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['adddescription_0',['AddDescription',['../classDatalayer_1_1MetadataBuilder.html#a43e3829710540cf1f83c7dc7801457c9',1,'Datalayer::MetadataBuilder']]], + ['adddisplayname_1',['AddDisplayName',['../classDatalayer_1_1MetadataBuilder.html#a8bb5b21928a152cfce296f7d882c69b8',1,'Datalayer::MetadataBuilder']]], + ['addextension_2',['AddExtension',['../classDatalayer_1_1MetadataBuilder.html#a954622ccf3822a0103cde8eb8d6798f6',1,'Datalayer::MetadataBuilder']]], + ['addreference_3',['AddReference',['../classDatalayer_1_1MetadataBuilder.html#a274ede3bbe3acef267269ac6c6ccf912',1,'Datalayer::MetadataBuilder']]] +]; diff --git a/3.4.0/api/net/html/search/functions_1.js b/3.4.0/api/net/html/search/functions_1.js new file mode 100644 index 000000000..08657c799 --- /dev/null +++ b/3.4.0/api/net/html/search/functions_1.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['browseasync_0',['BrowseAsync',['../interfaceDatalayer_1_1IClient.html#ad80f73849f3cf06ebe3d744061786460',1,'Datalayer::IClient']]], + ['build_1',['Build',['../classDatalayer_1_1MetadataBuilder.html#a93ff61a70da95f2c796a056dd85a9b2c',1,'Datalayer.MetadataBuilder.Build()'],['../classDatalayer_1_1SubscriptionPropertiesBuilder.html#a93ff61a70da95f2c796a056dd85a9b2c',1,'Datalayer.SubscriptionPropertiesBuilder.Build()']]], + ['bulkbrowseasync_2',['BulkBrowseAsync',['../interfaceDatalayer_1_1IClient.html#a12e7a526f7bbc829667bfc230c233bf1',1,'Datalayer::IClient']]], + ['bulkcreateasync_3',['BulkCreateAsync',['../interfaceDatalayer_1_1IClient.html#a471f8564ba23780931f4a9884399b0f5',1,'Datalayer::IClient']]], + ['bulkreadasync_4',['BulkReadAsync',['../interfaceDatalayer_1_1IClient.html#a0703c7f516b87c26f6e68f005e8a325d',1,'Datalayer.IClient.BulkReadAsync(string[] addresses)'],['../interfaceDatalayer_1_1IClient.html#a6dc46e507783fe6d15036d6fa301cb9d',1,'Datalayer.IClient.BulkReadAsync(string[] addresses, IVariant[] args)']]], + ['bulkreadmetadataasync_5',['BulkReadMetadataAsync',['../interfaceDatalayer_1_1IClient.html#a1e5cc013dc8b3407cd34339c306430ac',1,'Datalayer::IClient']]], + ['bulkremoveasync_6',['BulkRemoveAsync',['../interfaceDatalayer_1_1IClient.html#a165a53bf0734efb2bac392a389ba64de',1,'Datalayer::IClient']]], + ['bulkwriteasync_7',['BulkWriteAsync',['../interfaceDatalayer_1_1IClient.html#a39d4baf4c8cfd7d268f23a9146d77de7',1,'Datalayer::IClient']]] +]; diff --git a/3.4.0/api/net/html/search/functions_2.js b/3.4.0/api/net/html/search/functions_2.js new file mode 100644 index 000000000..b9dbc060a --- /dev/null +++ b/3.4.0/api/net/html/search/functions_2.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['checkconvert_0',['CheckConvert',['../interfaceDatalayer_1_1IVariant.html#a5e3cbf22bec3b06b473407bf16d7a08c',1,'Datalayer.IVariant.CheckConvert()'],['../classDatalayer_1_1Variant.html#acce5cdfae2d56b3f31c6b2354ce65c53',1,'Datalayer.Variant.CheckConvert()']]], + ['clone_1',['Clone',['../interfaceDatalayer_1_1IVariant.html#a9b8bbaab54d4b040e57a88a8ded2247b',1,'Datalayer.IVariant.Clone()'],['../classDatalayer_1_1Variant.html#a9b8bbaab54d4b040e57a88a8ded2247b',1,'Datalayer.Variant.Clone()']]], + ['createasync_2',['CreateAsync',['../interfaceDatalayer_1_1IClient.html#a05de64147a8ba02516d888a7c2aa38e6',1,'Datalayer::IClient']]], + ['createclient_3',['CreateClient',['../interfaceDatalayer_1_1IFactory.html#abe392c5fbd1a189e5e27c55182d7669d',1,'Datalayer::IFactory']]], + ['createprovider_4',['CreateProvider',['../interfaceDatalayer_1_1IFactory.html#ac67764fa327276d3d06ac257dfd044e5',1,'Datalayer::IFactory']]], + ['createsubscriptionasync_5',['CreateSubscriptionAsync',['../interfaceDatalayer_1_1IClient.html#a5486fb6764aaa88fb8d6ed2deb919afb',1,'Datalayer::IClient']]] +]; diff --git a/3.4.0/api/net/html/search/functions_3.js b/3.4.0/api/net/html/search/functions_3.js new file mode 100644 index 000000000..b4190c637 --- /dev/null +++ b/3.4.0/api/net/html/search/functions_3.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['datachangedeventhandler_0',['DataChangedEventHandler',['../interfaceDatalayer_1_1ISubscription.html#a3f303edaf0ba64fbe02563bed284381d',1,'Datalayer::ISubscription']]], + ['datalayersystem_1',['DatalayerSystem',['../classDatalayer_1_1DatalayerSystem.html#a0f208074ce7167a7f29265797aa5491e',1,'Datalayer::DatalayerSystem']]], + ['dispose_2',['Dispose',['../classDatalayer_1_1DatalayerSystem.html#a8ad4348ef0f9969025bab397e7e27e26',1,'Datalayer.DatalayerSystem.Dispose(bool disposing)'],['../classDatalayer_1_1DatalayerSystem.html#a6e2d745cdb7a7b983f861ed6a9a541a7',1,'Datalayer.DatalayerSystem.Dispose()'],['../classDatalayer_1_1Variant.html#a8ad4348ef0f9969025bab397e7e27e26',1,'Datalayer.Variant.Dispose(bool disposing)'],['../classDatalayer_1_1Variant.html#a6e2d745cdb7a7b983f861ed6a9a541a7',1,'Datalayer.Variant.Dispose()']]] +]; diff --git a/3.4.0/api/net/html/search/functions_4.js b/3.4.0/api/net/html/search/functions_4.js new file mode 100644 index 000000000..923c9c229 --- /dev/null +++ b/3.4.0/api/net/html/search/functions_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['equals_0',['Equals',['../interfaceDatalayer_1_1IVariant.html#a768bfe492f96453766631a639e0da5a1',1,'Datalayer.IVariant.Equals()'],['../classDatalayer_1_1Variant.html#aadf763f0213fc2f3875230b06bb0b6cf',1,'Datalayer.Variant.Equals(object obj)'],['../classDatalayer_1_1Variant.html#a768bfe492f96453766631a639e0da5a1',1,'Datalayer.Variant.Equals(Variant other)']]] +]; diff --git a/3.4.0/api/net/html/search/functions_5.js b/3.4.0/api/net/html/search/functions_5.js new file mode 100644 index 000000000..71df35b3f --- /dev/null +++ b/3.4.0/api/net/html/search/functions_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['gethashcode_0',['GetHashCode',['../interfaceDatalayer_1_1IVariant.html#a7e2732d719716610684b6bcbcca7d038',1,'Datalayer.IVariant.GetHashCode()'],['../classDatalayer_1_1Variant.html#a77e1afa2b6dee1ed3640da81d7407b42',1,'Datalayer.Variant.GetHashCode()']]] +]; diff --git a/3.4.0/api/net/html/search/functions_6.js b/3.4.0/api/net/html/search/functions_6.js new file mode 100644 index 000000000..3c7925c20 --- /dev/null +++ b/3.4.0/api/net/html/search/functions_6.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['isbad_0',['IsBad',['../classDatalayer_1_1ResultExtensions.html#a6f1dc9fcfe09617ac9976d377229edfb',1,'Datalayer::ResultExtensions']]], + ['isgood_1',['IsGood',['../classDatalayer_1_1ResultExtensions.html#a80ecfbc560e18460982658281c7068cd',1,'Datalayer::ResultExtensions']]] +]; diff --git a/3.4.0/api/net/html/search/functions_7.js b/3.4.0/api/net/html/search/functions_7.js new file mode 100644 index 000000000..ae06e5ebc --- /dev/null +++ b/3.4.0/api/net/html/search/functions_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['metadatabuilder_0',['MetadataBuilder',['../classDatalayer_1_1MetadataBuilder.html#a9c1b73fb1f408391e7526342097c7f9c',1,'Datalayer::MetadataBuilder']]] +]; diff --git a/3.4.0/api/net/html/search/functions_8.js b/3.4.0/api/net/html/search/functions_8.js new file mode 100644 index 000000000..40dddc7ce --- /dev/null +++ b/3.4.0/api/net/html/search/functions_8.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['onbrowse_0',['OnBrowse',['../interfaceDatalayer_1_1IProviderNodeHandler.html#ab1c27882663a8ebaf8fa8ea683b27a6a',1,'Datalayer::IProviderNodeHandler']]], + ['oncreate_1',['OnCreate',['../interfaceDatalayer_1_1IProviderNodeHandler.html#a3f92a70bfce5b021432e14e231151046',1,'Datalayer::IProviderNodeHandler']]], + ['onmetadata_2',['OnMetadata',['../interfaceDatalayer_1_1IProviderNodeHandler.html#a4fd497367e04ee5d4e5f88a374cba3b9',1,'Datalayer::IProviderNodeHandler']]], + ['onread_3',['OnRead',['../interfaceDatalayer_1_1IProviderNodeHandler.html#aa3f35022d6e3618922341bdbfc7331db',1,'Datalayer::IProviderNodeHandler']]], + ['onremove_4',['OnRemove',['../interfaceDatalayer_1_1IProviderNodeHandler.html#a0b616235dbec85c9f5e9144fc4b7c2a9',1,'Datalayer::IProviderNodeHandler']]], + ['onwrite_5',['OnWrite',['../interfaceDatalayer_1_1IProviderNodeHandler.html#ae74ad7f3deb71cfaf20b92b0fb55844f',1,'Datalayer::IProviderNodeHandler']]], + ['operator_20variant_6',['operator Variant',['../classDatalayer_1_1Variant.html#aea4a9b0432f77e8f9cf8c8a8612afce8',1,'Datalayer.Variant.operator Variant(bool source)'],['../classDatalayer_1_1Variant.html#a8e7703357f7fc58e1bb975943bac8153',1,'Datalayer.Variant.operator Variant(bool[] source)'],['../classDatalayer_1_1Variant.html#ae3049c24466337e7bd3485ee96a4bdb9',1,'Datalayer.Variant.operator Variant(sbyte source)'],['../classDatalayer_1_1Variant.html#abe74d517092f966c10c3c8383147d333',1,'Datalayer.Variant.operator Variant(sbyte[] source)'],['../classDatalayer_1_1Variant.html#a696540ecf668a7e6fa16ae2fa3b5b03d',1,'Datalayer.Variant.operator Variant(byte source)'],['../classDatalayer_1_1Variant.html#aff91713a8112cbcaa5b89f1ceab147b5',1,'Datalayer.Variant.operator Variant(byte[] source)'],['../classDatalayer_1_1Variant.html#ac1ad1d6d5b177417e7d140cd0899e01b',1,'Datalayer.Variant.operator Variant(short source)'],['../classDatalayer_1_1Variant.html#af9d8718989f7ec47d4f409bf7e0391ac',1,'Datalayer.Variant.operator Variant(short[] source)'],['../classDatalayer_1_1Variant.html#ad26bcf0308fd1059f322d228fb1a35df',1,'Datalayer.Variant.operator Variant(ushort source)'],['../classDatalayer_1_1Variant.html#a2779bcc56125f71e6fb16adb42798a0a',1,'Datalayer.Variant.operator Variant(ushort[] source)'],['../classDatalayer_1_1Variant.html#a9ecbd6449a741137de99c7dac0a6205c',1,'Datalayer.Variant.operator Variant(int source)'],['../classDatalayer_1_1Variant.html#a46107b2fadc2ebb15a8456791260f4f7',1,'Datalayer.Variant.operator Variant(int[] source)'],['../classDatalayer_1_1Variant.html#ad067c25cbf27b5342b7e1fbf7f28dd16',1,'Datalayer.Variant.operator Variant(uint source)'],['../classDatalayer_1_1Variant.html#ab54ad17c707825b0771594c18eb24dda',1,'Datalayer.Variant.operator Variant(uint[] source)'],['../classDatalayer_1_1Variant.html#ab015d27e128504a57c70a45076791ed6',1,'Datalayer.Variant.operator Variant(long source)'],['../classDatalayer_1_1Variant.html#a2c0c3403d3812ee7b1ec698511c180d8',1,'Datalayer.Variant.operator Variant(long[] source)'],['../classDatalayer_1_1Variant.html#a465e11e306756f8eb540673d5f9cc3fc',1,'Datalayer.Variant.operator Variant(ulong source)'],['../classDatalayer_1_1Variant.html#a930c69ef28e88ff2ece9295bdebc9bea',1,'Datalayer.Variant.operator Variant(ulong[] source)'],['../classDatalayer_1_1Variant.html#a9c53ad243715dc0983afc2f3ad4cf72c',1,'Datalayer.Variant.operator Variant(float source)'],['../classDatalayer_1_1Variant.html#ac983e3f2243f9130f9829ea6411e06ff',1,'Datalayer.Variant.operator Variant(float[] source)'],['../classDatalayer_1_1Variant.html#a5c8bc19ef8ab00d9a3d01eb78be172e6',1,'Datalayer.Variant.operator Variant(double source)'],['../classDatalayer_1_1Variant.html#a75fd018bde185a1bb157aaebcc745808',1,'Datalayer.Variant.operator Variant(double[] source)'],['../classDatalayer_1_1Variant.html#ab03c7c5f05170a7f9da68cac6ddbf00c',1,'Datalayer.Variant.operator Variant(string source)'],['../classDatalayer_1_1Variant.html#a9b7272bb426b38cae0d6e11e8e44d958',1,'Datalayer.Variant.operator Variant(string[] source)'],['../classDatalayer_1_1Variant.html#adaefd05f8b4bf92b8ebc7b91c0ad8768',1,'Datalayer.Variant.operator Variant(DateTime source)'],['../classDatalayer_1_1Variant.html#a9b2c841f8b0c7d7262725c5687651c1e',1,'Datalayer.Variant.operator Variant(DateTime[] source)'],['../classDatalayer_1_1Variant.html#a4641dcfcde244451d7e6f1c83f11b0ef',1,'Datalayer.Variant.operator Variant(FlatBufferBuilder source)'],['../classDatalayer_1_1Variant.html#a5f2d81a1e49469e7740eab4e6fe982b6',1,'Datalayer.Variant.operator Variant(ByteBuffer source)']]], + ['operator_21_3d_7',['operator!=',['../classDatalayer_1_1Variant.html#aa9fc6ccf613b2cc5356e7f81da1635ad',1,'Datalayer::Variant']]], + ['operator_3d_3d_8',['operator==',['../classDatalayer_1_1Variant.html#ad393d790d52712f35a5fd2121f2ca639',1,'Datalayer::Variant']]] +]; diff --git a/3.4.0/api/net/html/search/functions_9.js b/3.4.0/api/net/html/search/functions_9.js new file mode 100644 index 000000000..ba61417b1 --- /dev/null +++ b/3.4.0/api/net/html/search/functions_9.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['ping_0',['Ping',['../interfaceDatalayer_1_1IClient.html#a3565328c511f7a9e4375ce5181ceb963',1,'Datalayer::IClient']]], + ['pingasync_1',['PingAsync',['../interfaceDatalayer_1_1IClient.html#a2bb4b58b112157d60f75c50855ff0665',1,'Datalayer::IClient']]], + ['publishevent_2',['PublishEvent',['../interfaceDatalayer_1_1IProvider.html#a5af983a79238a9aee2746854e6cb567f',1,'Datalayer::IProvider']]] +]; diff --git a/3.4.0/api/net/html/search/functions_a.js b/3.4.0/api/net/html/search/functions_a.js new file mode 100644 index 000000000..b523ededc --- /dev/null +++ b/3.4.0/api/net/html/search/functions_a.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['readasync_0',['ReadAsync',['../interfaceDatalayer_1_1IClient.html#af55a294497d5e92c38bb1f0762f4a2d3',1,'Datalayer.IClient.ReadAsync(string address)'],['../interfaceDatalayer_1_1IClient.html#ae7bd7d468559ff01a4a13f8e61ab0fb5',1,'Datalayer.IClient.ReadAsync(string address, IVariant args)']]], + ['readjsonasync_1',['ReadJsonAsync',['../interfaceDatalayer_1_1IClient.html#a10534a2fa13538f83a90334f33bf5049',1,'Datalayer.IClient.ReadJsonAsync(string address, int indentStep=0)'],['../interfaceDatalayer_1_1IClient.html#a029b51142457434da721389966b60890',1,'Datalayer.IClient.ReadJsonAsync(string address, IVariant args, int indentStep=0)']]], + ['readmetadataasync_2',['ReadMetadataAsync',['../interfaceDatalayer_1_1IClient.html#af5dde224ead410a62983392efcba4519',1,'Datalayer::IClient']]], + ['readmultiasync_3',['ReadMultiAsync',['../interfaceDatalayer_1_1IClient.html#a51aa98c666c856a83b44287ef19addb4',1,'Datalayer::IClient']]], + ['registertype_4',['RegisterType',['../interfaceDatalayer_1_1IProvider.html#a7ee20a79cd1b758cc012e45411dd84b5',1,'Datalayer::IProvider']]], + ['registertypevariant_5',['RegisterTypeVariant',['../interfaceDatalayer_1_1IProvider.html#a6129cf171c635461be79c0f2a63a0385',1,'Datalayer::IProvider']]], + ['remote_6',['Remote',['../classDatalayer_1_1Remote.html#acd14cb587286e0bd0e758dee7c96edd2',1,'Datalayer::Remote']]], + ['remove_7',['Remove',['../interfaceDatalayer_1_1IClient.html#a108feb5466129ef3e52da999fcce973b',1,'Datalayer::IClient']]], + ['removeasync_8',['RemoveAsync',['../interfaceDatalayer_1_1IClient.html#acbf69f9262439e9dac2c071aa91dde7a',1,'Datalayer::IClient']]] +]; diff --git a/3.4.0/api/net/html/search/functions_b.js b/3.4.0/api/net/html/search/functions_b.js new file mode 100644 index 000000000..f504fb20b --- /dev/null +++ b/3.4.0/api/net/html/search/functions_b.js @@ -0,0 +1,25 @@ +var searchData= +[ + ['setchangeevents_0',['SetChangeEvents',['../classDatalayer_1_1SubscriptionPropertiesBuilder.html#a89d3c0e840c74d2087f93efccbe04377',1,'Datalayer::SubscriptionPropertiesBuilder']]], + ['setcounting_1',['SetCounting',['../classDatalayer_1_1SubscriptionPropertiesBuilder.html#a90528eca4c144dfddb28e33c6ec0228b',1,'Datalayer::SubscriptionPropertiesBuilder']]], + ['setdatachangefilter_2',['SetDataChangeFilter',['../classDatalayer_1_1SubscriptionPropertiesBuilder.html#aa0650d1e40db0e3f96b4d720e477ba49',1,'Datalayer::SubscriptionPropertiesBuilder']]], + ['setdisplayformat_3',['SetDisplayFormat',['../classDatalayer_1_1MetadataBuilder.html#a3dfefc3cc9924bb05fa8a03cbad35697',1,'Datalayer::MetadataBuilder']]], + ['setdisplayname_4',['SetDisplayName',['../classDatalayer_1_1MetadataBuilder.html#a28a911c6965e8bc86f1d52ca42d89227',1,'Datalayer::MetadataBuilder']]], + ['seterrorintervalmillis_5',['SetErrorIntervalMillis',['../classDatalayer_1_1SubscriptionPropertiesBuilder.html#a75fa75449ff562e2aeff419e8d7c2029',1,'Datalayer::SubscriptionPropertiesBuilder']]], + ['setkeepaliveintervalmillis_6',['SetKeepAliveIntervalMillis',['../classDatalayer_1_1SubscriptionPropertiesBuilder.html#ae6575bceae5ae51a1f37b2b78b2d4ddf',1,'Datalayer::SubscriptionPropertiesBuilder']]], + ['setnodeclass_7',['SetNodeClass',['../classDatalayer_1_1MetadataBuilder.html#a2953c4356b024469b0516fe6769a363d',1,'Datalayer::MetadataBuilder']]], + ['setpublishintervalmillis_8',['SetPublishIntervalMillis',['../classDatalayer_1_1SubscriptionPropertiesBuilder.html#a6c43b0e1274859ec6b100bb4e625fea5',1,'Datalayer::SubscriptionPropertiesBuilder']]], + ['setqueueing_9',['SetQueueing',['../classDatalayer_1_1SubscriptionPropertiesBuilder.html#a258b8d4f7378c3fdfe9b29b46867b5e4',1,'Datalayer::SubscriptionPropertiesBuilder']]], + ['setresult_10',['SetResult',['../interfaceDatalayer_1_1IProviderNodeResult.html#af0f8b79edf6dcdee540fbabeacf2bacc',1,'Datalayer.IProviderNodeResult.SetResult(DLR_RESULT result)'],['../interfaceDatalayer_1_1IProviderNodeResult.html#a9f54339c2713119dd2e6121e73617abc',1,'Datalayer.IProviderNodeResult.SetResult(DLR_RESULT result, IVariant value)']]], + ['setsamplingintervalmicros_11',['SetSamplingIntervalMicros',['../classDatalayer_1_1SubscriptionPropertiesBuilder.html#a2340a59e378666287264c1214482f177',1,'Datalayer::SubscriptionPropertiesBuilder']]], + ['setsamplingintervalmillis_12',['SetSamplingIntervalMillis',['../classDatalayer_1_1SubscriptionPropertiesBuilder.html#a4e7e7c4968b1f86652ca01eebdb21d38',1,'Datalayer::SubscriptionPropertiesBuilder']]], + ['settimeout_13',['SetTimeout',['../interfaceDatalayer_1_1IClient.html#ae73e0f8bb934143fb0d5c2cc686025a8',1,'Datalayer.IClient.SetTimeout()'],['../interfaceDatalayer_1_1IProviderNode.html#a617e11e2e4aad762e04b6ce5b78f28cb',1,'Datalayer.IProviderNode.SetTimeout()']]], + ['setunit_14',['SetUnit',['../classDatalayer_1_1MetadataBuilder.html#a19302e54a182fd8dde5ef303acd182c1',1,'Datalayer::MetadataBuilder']]], + ['start_15',['Start',['../classDatalayer_1_1DatalayerSystem.html#aedc8062676da3b418c85610e41174812',1,'Datalayer.DatalayerSystem.Start()'],['../interfaceDatalayer_1_1IDatalayerSystem.html#ab0f613d2e1cd090448e5543881f1d70d',1,'Datalayer.IDatalayerSystem.Start()'],['../interfaceDatalayer_1_1IProvider.html#abcc6b18c9d4fb2ed70e990f00016c0fe',1,'Datalayer.IProvider.Start()']]], + ['stop_16',['Stop',['../classDatalayer_1_1DatalayerSystem.html#a17a237457e57625296e6b24feb19c60a',1,'Datalayer.DatalayerSystem.Stop()'],['../interfaceDatalayer_1_1IDatalayerSystem.html#a17a237457e57625296e6b24feb19c60a',1,'Datalayer.IDatalayerSystem.Stop()'],['../interfaceDatalayer_1_1IProvider.html#a8e21506e57d91e044ccd2d276039df81',1,'Datalayer.IProvider.Stop()']]], + ['subscribe_17',['Subscribe',['../interfaceDatalayer_1_1ISubscription.html#a7887ed3200fcf3ae4b47b6d4b4062137',1,'Datalayer::ISubscription']]], + ['subscribeasync_18',['SubscribeAsync',['../interfaceDatalayer_1_1ISubscription.html#ac03404d1cfab473bbe8e9f5d21b5b234',1,'Datalayer::ISubscription']]], + ['subscribemulti_19',['SubscribeMulti',['../interfaceDatalayer_1_1ISubscription.html#a9390b851cf2198ba4cae6154f754bfb4',1,'Datalayer::ISubscription']]], + ['subscribemultiasync_20',['SubscribeMultiAsync',['../interfaceDatalayer_1_1ISubscription.html#a543a14bd035a1957f8e7f9d512e627c8',1,'Datalayer::ISubscription']]], + ['subscriptionpropertiesbuilder_21',['SubscriptionPropertiesBuilder',['../classDatalayer_1_1SubscriptionPropertiesBuilder.html#a906c787c69eda2cc0aaf995638d99512',1,'Datalayer::SubscriptionPropertiesBuilder']]] +]; diff --git a/3.4.0/api/net/html/search/functions_c.js b/3.4.0/api/net/html/search/functions_c.js new file mode 100644 index 000000000..b79b3b8cd --- /dev/null +++ b/3.4.0/api/net/html/search/functions_c.js @@ -0,0 +1,31 @@ +var searchData= +[ + ['tobool_0',['ToBool',['../interfaceDatalayer_1_1IVariant.html#a836015d7bac1c5bdbf87c6aff416def0',1,'Datalayer.IVariant.ToBool()'],['../classDatalayer_1_1Variant.html#a836015d7bac1c5bdbf87c6aff416def0',1,'Datalayer.Variant.ToBool()']]], + ['toboolarray_1',['ToBoolArray',['../interfaceDatalayer_1_1IVariant.html#aff7faba54d898225f00e994582057136',1,'Datalayer.IVariant.ToBoolArray()'],['../classDatalayer_1_1Variant.html#aff7faba54d898225f00e994582057136',1,'Datalayer.Variant.ToBoolArray()']]], + ['tobyte_2',['ToByte',['../interfaceDatalayer_1_1IVariant.html#a59e3e205bb96ab4244682480106341de',1,'Datalayer.IVariant.ToByte()'],['../classDatalayer_1_1Variant.html#a59e3e205bb96ab4244682480106341de',1,'Datalayer.Variant.ToByte()']]], + ['tobytearray_3',['ToByteArray',['../interfaceDatalayer_1_1IVariant.html#a5e05025d8b0434ab88b76301915aff2b',1,'Datalayer.IVariant.ToByteArray()'],['../classDatalayer_1_1Variant.html#a5e05025d8b0434ab88b76301915aff2b',1,'Datalayer.Variant.ToByteArray()']]], + ['todatetime_4',['ToDateTime',['../interfaceDatalayer_1_1IVariant.html#a32de86b638d07299fd094c662465fa55',1,'Datalayer.IVariant.ToDateTime()'],['../classDatalayer_1_1Variant.html#a32de86b638d07299fd094c662465fa55',1,'Datalayer.Variant.ToDateTime()']]], + ['todatetimearray_5',['ToDateTimeArray',['../interfaceDatalayer_1_1IVariant.html#afe4cc7230217220283dad3eead321a7c',1,'Datalayer.IVariant.ToDateTimeArray()'],['../classDatalayer_1_1Variant.html#afe4cc7230217220283dad3eead321a7c',1,'Datalayer.Variant.ToDateTimeArray()']]], + ['todouble_6',['ToDouble',['../interfaceDatalayer_1_1IVariant.html#a0bf7245d983694969034631ee82a51cf',1,'Datalayer.IVariant.ToDouble()'],['../classDatalayer_1_1Variant.html#a0bf7245d983694969034631ee82a51cf',1,'Datalayer.Variant.ToDouble()']]], + ['todoublearray_7',['ToDoubleArray',['../interfaceDatalayer_1_1IVariant.html#a440b7ec49753006174500f9ab80f34ba',1,'Datalayer.IVariant.ToDoubleArray()'],['../classDatalayer_1_1Variant.html#a440b7ec49753006174500f9ab80f34ba',1,'Datalayer.Variant.ToDoubleArray()']]], + ['toflatbuffers_8',['ToFlatbuffers',['../interfaceDatalayer_1_1IVariant.html#a4cebcb8a4d96db6f34ab8fdd2f2e9021',1,'Datalayer.IVariant.ToFlatbuffers()'],['../classDatalayer_1_1Variant.html#a4cebcb8a4d96db6f34ab8fdd2f2e9021',1,'Datalayer.Variant.ToFlatbuffers()']]], + ['tofloat_9',['ToFloat',['../interfaceDatalayer_1_1IVariant.html#ae154275c2988473c049394ccccb4dcc7',1,'Datalayer.IVariant.ToFloat()'],['../classDatalayer_1_1Variant.html#ae154275c2988473c049394ccccb4dcc7',1,'Datalayer.Variant.ToFloat()']]], + ['tofloatarray_10',['ToFloatArray',['../interfaceDatalayer_1_1IVariant.html#a0b0372425a3c492dd13c91dd54d5caf0',1,'Datalayer.IVariant.ToFloatArray()'],['../classDatalayer_1_1Variant.html#a0b0372425a3c492dd13c91dd54d5caf0',1,'Datalayer.Variant.ToFloatArray()']]], + ['toint16_11',['ToInt16',['../interfaceDatalayer_1_1IVariant.html#a0510dcf6776eb733ad47527a9c840f3f',1,'Datalayer.IVariant.ToInt16()'],['../classDatalayer_1_1Variant.html#a0510dcf6776eb733ad47527a9c840f3f',1,'Datalayer.Variant.ToInt16()']]], + ['toint16array_12',['ToInt16Array',['../interfaceDatalayer_1_1IVariant.html#a3bde119743d4d0bb403e31860b1fa11b',1,'Datalayer.IVariant.ToInt16Array()'],['../classDatalayer_1_1Variant.html#a3bde119743d4d0bb403e31860b1fa11b',1,'Datalayer.Variant.ToInt16Array()']]], + ['toint32_13',['ToInt32',['../interfaceDatalayer_1_1IVariant.html#aef413807d1c2334cbc84bd9452880f52',1,'Datalayer.IVariant.ToInt32()'],['../classDatalayer_1_1Variant.html#aef413807d1c2334cbc84bd9452880f52',1,'Datalayer.Variant.ToInt32()']]], + ['toint32array_14',['ToInt32Array',['../interfaceDatalayer_1_1IVariant.html#afab60cc9925b37156c33b0038afdb561',1,'Datalayer.IVariant.ToInt32Array()'],['../classDatalayer_1_1Variant.html#afab60cc9925b37156c33b0038afdb561',1,'Datalayer.Variant.ToInt32Array()']]], + ['toint64_15',['ToInt64',['../interfaceDatalayer_1_1IVariant.html#a98349bc5d9c022962787ff59abc6dc3b',1,'Datalayer.IVariant.ToInt64()'],['../classDatalayer_1_1Variant.html#a98349bc5d9c022962787ff59abc6dc3b',1,'Datalayer.Variant.ToInt64()']]], + ['toint64array_16',['ToInt64Array',['../interfaceDatalayer_1_1IVariant.html#a088194316ad0671c2fe854c354f618cb',1,'Datalayer.IVariant.ToInt64Array()'],['../classDatalayer_1_1Variant.html#a088194316ad0671c2fe854c354f618cb',1,'Datalayer.Variant.ToInt64Array()']]], + ['torawbytearray_17',['ToRawByteArray',['../interfaceDatalayer_1_1IVariant.html#a7c1f6808410877b3a9cfc66b40e607ee',1,'Datalayer.IVariant.ToRawByteArray()'],['../classDatalayer_1_1Variant.html#a7c1f6808410877b3a9cfc66b40e607ee',1,'Datalayer.Variant.ToRawByteArray()']]], + ['tosbyte_18',['ToSByte',['../interfaceDatalayer_1_1IVariant.html#a08fa1ede9d2e6dabdee29a87c8049f0c',1,'Datalayer.IVariant.ToSByte()'],['../classDatalayer_1_1Variant.html#a08fa1ede9d2e6dabdee29a87c8049f0c',1,'Datalayer.Variant.ToSByte()']]], + ['tosbytearray_19',['ToSByteArray',['../interfaceDatalayer_1_1IVariant.html#a1a3fa907947947a6a63f376b8d6fdd53',1,'Datalayer.IVariant.ToSByteArray()'],['../classDatalayer_1_1Variant.html#a1a3fa907947947a6a63f376b8d6fdd53',1,'Datalayer.Variant.ToSByteArray()']]], + ['tostring_20',['ToString',['../interfaceDatalayer_1_1IVariant.html#a18220b86ab5378509a68e4afa4a2fb5b',1,'Datalayer.IVariant.ToString()'],['../classDatalayer_1_1ReferenceType.html#aa73e7c4dd1df5fd5fbf81c7764ee1533',1,'Datalayer.ReferenceType.ToString()'],['../classDatalayer_1_1Remote.html#aa73e7c4dd1df5fd5fbf81c7764ee1533',1,'Datalayer.Remote.ToString()'],['../classDatalayer_1_1Variant.html#aa73e7c4dd1df5fd5fbf81c7764ee1533',1,'Datalayer.Variant.ToString()']]], + ['tostringarray_21',['ToStringArray',['../interfaceDatalayer_1_1IVariant.html#a04cb1158786ea29ad6578845b77846c2',1,'Datalayer.IVariant.ToStringArray()'],['../classDatalayer_1_1Variant.html#a04cb1158786ea29ad6578845b77846c2',1,'Datalayer.Variant.ToStringArray()']]], + ['touint16_22',['ToUInt16',['../interfaceDatalayer_1_1IVariant.html#ad85199356631d42955d8ca04d27c1e65',1,'Datalayer.IVariant.ToUInt16()'],['../classDatalayer_1_1Variant.html#ad85199356631d42955d8ca04d27c1e65',1,'Datalayer.Variant.ToUInt16()']]], + ['touint16array_23',['ToUInt16Array',['../interfaceDatalayer_1_1IVariant.html#a1f19dd7c3474093e6b64d332b88d29cc',1,'Datalayer.IVariant.ToUInt16Array()'],['../classDatalayer_1_1Variant.html#a1f19dd7c3474093e6b64d332b88d29cc',1,'Datalayer.Variant.ToUInt16Array()']]], + ['touint32_24',['ToUInt32',['../interfaceDatalayer_1_1IVariant.html#a53b3651691d777fd0485024076309eec',1,'Datalayer.IVariant.ToUInt32()'],['../classDatalayer_1_1Variant.html#a53b3651691d777fd0485024076309eec',1,'Datalayer.Variant.ToUInt32()']]], + ['touint32array_25',['ToUInt32Array',['../interfaceDatalayer_1_1IVariant.html#a8a2860eb4d668412571bd06b11214592',1,'Datalayer.IVariant.ToUInt32Array()'],['../classDatalayer_1_1Variant.html#a8a2860eb4d668412571bd06b11214592',1,'Datalayer.Variant.ToUInt32Array()']]], + ['touint64_26',['ToUInt64',['../interfaceDatalayer_1_1IVariant.html#aaab078e9d44ca35cbad95eb1c0b344cd',1,'Datalayer.IVariant.ToUInt64()'],['../classDatalayer_1_1Variant.html#aaab078e9d44ca35cbad95eb1c0b344cd',1,'Datalayer.Variant.ToUInt64()']]], + ['touint64array_27',['ToUInt64Array',['../interfaceDatalayer_1_1IVariant.html#a5a66a16d41087f033c9787db20d4e21c',1,'Datalayer.IVariant.ToUInt64Array()'],['../classDatalayer_1_1Variant.html#a5a66a16d41087f033c9787db20d4e21c',1,'Datalayer.Variant.ToUInt64Array()']]] +]; diff --git a/3.4.0/api/net/html/search/functions_d.js b/3.4.0/api/net/html/search/functions_d.js new file mode 100644 index 000000000..eeea9155f --- /dev/null +++ b/3.4.0/api/net/html/search/functions_d.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['unregisternode_0',['UnregisterNode',['../interfaceDatalayer_1_1IProvider.html#a0fafea31930342e5f804cf702a4f4d2e',1,'Datalayer::IProvider']]], + ['unregistertype_1',['UnregisterType',['../interfaceDatalayer_1_1IProvider.html#a65eb0f25d6f7d0a06598e7d53a524bf5',1,'Datalayer::IProvider']]], + ['unsubscribe_2',['Unsubscribe',['../interfaceDatalayer_1_1ISubscription.html#ab56f05b7edf672190d2ef0633f4b99a5',1,'Datalayer::ISubscription']]], + ['unsubscribeall_3',['UnsubscribeAll',['../interfaceDatalayer_1_1ISubscription.html#ac90398cc2d16ee8330be71fb26ea5c80',1,'Datalayer::ISubscription']]], + ['unsubscribeallasync_4',['UnsubscribeAllAsync',['../interfaceDatalayer_1_1ISubscription.html#ae373081bb6b1f0e58e9e40bfa96b9d04',1,'Datalayer::ISubscription']]], + ['unsubscribeasync_5',['UnsubscribeAsync',['../interfaceDatalayer_1_1ISubscription.html#a3d527bdb80a693b875ebb834aef59247',1,'Datalayer::ISubscription']]], + ['unsubscribemulti_6',['UnsubscribeMulti',['../interfaceDatalayer_1_1ISubscription.html#aa676752e1d60cb57cc18e5a64afd9902',1,'Datalayer::ISubscription']]], + ['unsubscribemultiasync_7',['UnsubscribeMultiAsync',['../interfaceDatalayer_1_1ISubscription.html#ab59e72c3428a1cc6ac4e2387bbf78e47',1,'Datalayer::ISubscription']]] +]; diff --git a/3.4.0/api/net/html/search/functions_e.js b/3.4.0/api/net/html/search/functions_e.js new file mode 100644 index 000000000..9e0c40051 --- /dev/null +++ b/3.4.0/api/net/html/search/functions_e.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['variant_0',['Variant',['../classDatalayer_1_1Variant.html#a3c631cdbf129a354bb091ce47c418f13',1,'Datalayer.Variant.Variant()'],['../classDatalayer_1_1Variant.html#a6f243981f98242d58740052123320906',1,'Datalayer.Variant.Variant(IVariant other)'],['../classDatalayer_1_1Variant.html#a8730a4089b1f3ad6c70701cc2bd49e01',1,'Datalayer.Variant.Variant(bool value)'],['../classDatalayer_1_1Variant.html#a1394786161c315b78168f0712aa25d88',1,'Datalayer.Variant.Variant(string value)'],['../classDatalayer_1_1Variant.html#a664bdf816b041a86995237bff694d35a',1,'Datalayer.Variant.Variant(sbyte value)'],['../classDatalayer_1_1Variant.html#abc32e2f4111baaed039c0bca2b791e63',1,'Datalayer.Variant.Variant(short value)'],['../classDatalayer_1_1Variant.html#a2239c42c8248a3bae29504b47a4607e8',1,'Datalayer.Variant.Variant(int value)'],['../classDatalayer_1_1Variant.html#a79efcc0eb9a39afb54499aca00d7fbb8',1,'Datalayer.Variant.Variant(long value)'],['../classDatalayer_1_1Variant.html#a328dc484bf10aeac3b3a40c0b958f852',1,'Datalayer.Variant.Variant(DateTime value)'],['../classDatalayer_1_1Variant.html#a8ce3d5a54e259c1e79023056be84f0de',1,'Datalayer.Variant.Variant(byte value)'],['../classDatalayer_1_1Variant.html#a627d64db6fed88d685f7467381ce44cd',1,'Datalayer.Variant.Variant(ushort value)'],['../classDatalayer_1_1Variant.html#ae08ebff5d31bc83da4423fe1ad5c93bf',1,'Datalayer.Variant.Variant(uint value)'],['../classDatalayer_1_1Variant.html#a5e7b4340c2eeb89a043c1c5787b74031',1,'Datalayer.Variant.Variant(ulong value)'],['../classDatalayer_1_1Variant.html#a8e3a2c0f1d809d50111f96f3b16b120c',1,'Datalayer.Variant.Variant(float value)'],['../classDatalayer_1_1Variant.html#a96d1a5135f5b013dffb5c67ea992e0c3',1,'Datalayer.Variant.Variant(double value)'],['../classDatalayer_1_1Variant.html#a41c449e1498b23503c327000e44b2a99',1,'Datalayer.Variant.Variant(bool[] value)'],['../classDatalayer_1_1Variant.html#ab504fb6081a84897d7881b5c14248049',1,'Datalayer.Variant.Variant(string[] value)'],['../classDatalayer_1_1Variant.html#a10ee097108609aea7bd83f0b3a2f92eb',1,'Datalayer.Variant.Variant(sbyte[] value)'],['../classDatalayer_1_1Variant.html#a69a1d1f92e4d959438435561bbf32cbd',1,'Datalayer.Variant.Variant(short[] value)'],['../classDatalayer_1_1Variant.html#afd1a52b640565e8d5ea65ffb2b547e8e',1,'Datalayer.Variant.Variant(int[] value)'],['../classDatalayer_1_1Variant.html#af7edce4a39cfdea9c9d27bda80bc84bb',1,'Datalayer.Variant.Variant(long[] value)'],['../classDatalayer_1_1Variant.html#a76da512ddf5000c79181e4b09ab9429f',1,'Datalayer.Variant.Variant(byte[] value, bool raw=false)'],['../classDatalayer_1_1Variant.html#abd4459c87f9e7bf649e9630094c214c9',1,'Datalayer.Variant.Variant(ushort[] value)'],['../classDatalayer_1_1Variant.html#a8e7d0f5bc4e0c2844faa8ade3a9ed252',1,'Datalayer.Variant.Variant(uint[] value)'],['../classDatalayer_1_1Variant.html#ae78c7426beb81723639cfe3db75eb002',1,'Datalayer.Variant.Variant(ulong[] value)'],['../classDatalayer_1_1Variant.html#acaa40cf58c049ba718ff99244ea21429',1,'Datalayer.Variant.Variant(float[] value)'],['../classDatalayer_1_1Variant.html#a9bb244ed6c236f58a948216de4713608',1,'Datalayer.Variant.Variant(double[] value)'],['../classDatalayer_1_1Variant.html#a53e69ae330fb8cbc380aa5ed55034135',1,'Datalayer.Variant.Variant(DateTime[] value)'],['../classDatalayer_1_1Variant.html#a29ee866cc3984e7936bde72d1b7e90f7',1,'Datalayer.Variant.Variant(ByteBuffer flatBuffers)'],['../classDatalayer_1_1Variant.html#af84d77d392671886a0031faec59cfe32',1,'Datalayer.Variant.Variant(FlatBufferBuilder builder)']]] +]; diff --git a/3.4.0/api/net/html/search/functions_f.js b/3.4.0/api/net/html/search/functions_f.js new file mode 100644 index 000000000..0d4684129 --- /dev/null +++ b/3.4.0/api/net/html/search/functions_f.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['write_0',['Write',['../interfaceDatalayer_1_1IClient.html#a7eec67cdf8d58b6cbb256388e3fc9fd1',1,'Datalayer::IClient']]], + ['writeasync_1',['WriteAsync',['../interfaceDatalayer_1_1IClient.html#a6fbe817ec1d4e05eaee1c5e48165eaef',1,'Datalayer::IClient']]], + ['writejsonasync_2',['WriteJsonAsync',['../interfaceDatalayer_1_1IClient.html#ab739649d70861ba3b9c83cf7f8695ca2',1,'Datalayer::IClient']]], + ['writemulti_3',['WriteMulti',['../interfaceDatalayer_1_1IClient.html#a05efe83614a91f69829046a328915f31',1,'Datalayer::IClient']]], + ['writemultiasync_4',['WriteMultiAsync',['../interfaceDatalayer_1_1IClient.html#a8f13cd9bf4f1ab9efe0f659c252bed05',1,'Datalayer::IClient']]] +]; diff --git a/3.4.0/api/net/html/search/mag.svg b/3.4.0/api/net/html/search/mag.svg new file mode 100644 index 000000000..9f46b301e --- /dev/null +++ b/3.4.0/api/net/html/search/mag.svg @@ -0,0 +1,37 @@ + + + + + + image/svg+xml + + + + + + + + + diff --git a/3.4.0/api/net/html/search/mag_d.svg b/3.4.0/api/net/html/search/mag_d.svg new file mode 100644 index 000000000..b9a814c78 --- /dev/null +++ b/3.4.0/api/net/html/search/mag_d.svg @@ -0,0 +1,37 @@ + + + + + + image/svg+xml + + + + + + + + + diff --git a/3.4.0/api/net/html/search/mag_sel.svg b/3.4.0/api/net/html/search/mag_sel.svg new file mode 100644 index 000000000..03626f64a --- /dev/null +++ b/3.4.0/api/net/html/search/mag_sel.svg @@ -0,0 +1,74 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/3.4.0/api/net/html/search/mag_seld.svg b/3.4.0/api/net/html/search/mag_seld.svg new file mode 100644 index 000000000..6e720dcc9 --- /dev/null +++ b/3.4.0/api/net/html/search/mag_seld.svg @@ -0,0 +1,74 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/3.4.0/api/net/html/search/namespaces_0.js b/3.4.0/api/net/html/search/namespaces_0.js new file mode 100644 index 000000000..aabe71d1d --- /dev/null +++ b/3.4.0/api/net/html/search/namespaces_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['datalayer_0',['Datalayer',['../namespaceDatalayer.html',1,'']]] +]; diff --git a/3.4.0/api/net/html/search/pages_0.js b/3.4.0/api/net/html/search/pages_0.js new file mode 100644 index 000000000..b99c65939 --- /dev/null +++ b/3.4.0/api/net/html/search/pages_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['main_20page_0',['Main Page',['../index.html',1,'']]] +]; diff --git a/3.4.0/api/net/html/search/properties_0.js b/3.4.0/api/net/html/search/properties_0.js new file mode 100644 index 000000000..935107cd3 --- /dev/null +++ b/3.4.0/api/net/html/search/properties_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['address_0',['Address',['../interfaceDatalayer_1_1IBulkItem.html#aec57182df53b04aceca477433c48ecfc',1,'Datalayer::IBulkItem']]], + ['authtoken_1',['AuthToken',['../interfaceDatalayer_1_1IClient.html#ab020460331b76e524941ab46ac6ebdfa',1,'Datalayer.IClient.AuthToken()'],['../interfaceDatalayer_1_1IProvider.html#ab020460331b76e524941ab46ac6ebdfa',1,'Datalayer.IProvider.AuthToken()']]] +]; diff --git a/3.4.0/api/net/html/search/properties_1.js b/3.4.0/api/net/html/search/properties_1.js new file mode 100644 index 000000000..c7ca7fb56 --- /dev/null +++ b/3.4.0/api/net/html/search/properties_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['bfbspath_0',['BfbsPath',['../classDatalayer_1_1DatalayerSystem.html#a7aab1ae266e615d729f60decf8a6de5f',1,'Datalayer.DatalayerSystem.BfbsPath()'],['../interfaceDatalayer_1_1IDatalayerSystem.html#a7aab1ae266e615d729f60decf8a6de5f',1,'Datalayer.IDatalayerSystem.BfbsPath()']]] +]; diff --git a/3.4.0/api/net/html/search/properties_2.js b/3.4.0/api/net/html/search/properties_2.js new file mode 100644 index 000000000..95945263e --- /dev/null +++ b/3.4.0/api/net/html/search/properties_2.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['client_0',['Client',['../interfaceDatalayer_1_1ISubscription.html#a365fee781ab42949e1331c585fcd0205',1,'Datalayer::ISubscription']]], + ['connectionstatus_1',['ConnectionStatus',['../interfaceDatalayer_1_1IClient.html#af3825f7c388e9c468b2908d84f94826a',1,'Datalayer::IClient']]], + ['converter_2',['Converter',['../classDatalayer_1_1DatalayerSystem.html#aa2305cf58e178ab1f86fb44b27827da1',1,'Datalayer.DatalayerSystem.Converter()'],['../interfaceDatalayer_1_1IDatalayerSystem.html#aa2305cf58e178ab1f86fb44b27827da1',1,'Datalayer.IDatalayerSystem.Converter()']]], + ['count_3',['Count',['../interfaceDatalayer_1_1IDataChangedEventArgs.html#a4683de68c1f0fc6be6aa3547478fdfdc',1,'Datalayer::IDataChangedEventArgs']]], + ['createtype_4',['CreateType',['../classDatalayer_1_1ReferenceType.html#a302bf5682531e20faec9a9b6e9b0a2cd',1,'Datalayer::ReferenceType']]] +]; diff --git a/3.4.0/api/net/html/search/properties_3.js b/3.4.0/api/net/html/search/properties_3.js new file mode 100644 index 000000000..562f1dc7c --- /dev/null +++ b/3.4.0/api/net/html/search/properties_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['datatype_0',['DataType',['../interfaceDatalayer_1_1IVariant.html#a7c3a4f151f7bcb2e535065e1c0400086',1,'Datalayer.IVariant.DataType()'],['../classDatalayer_1_1Variant.html#a7c3a4f151f7bcb2e535065e1c0400086',1,'Datalayer.Variant.DataType()']]] +]; diff --git a/3.4.0/api/net/html/search/properties_4.js b/3.4.0/api/net/html/search/properties_4.js new file mode 100644 index 000000000..73bacc7ae --- /dev/null +++ b/3.4.0/api/net/html/search/properties_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['factory_0',['Factory',['../classDatalayer_1_1DatalayerSystem.html#abefeb4acffc919ce04ebd948daa06b85',1,'Datalayer.DatalayerSystem.Factory()'],['../interfaceDatalayer_1_1IDatalayerSystem.html#abefeb4acffc919ce04ebd948daa06b85',1,'Datalayer.IDatalayerSystem.Factory()']]] +]; diff --git a/3.4.0/api/net/html/search/properties_5.js b/3.4.0/api/net/html/search/properties_5.js new file mode 100644 index 000000000..b19a6e3d3 --- /dev/null +++ b/3.4.0/api/net/html/search/properties_5.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['handler_0',['Handler',['../interfaceDatalayer_1_1IProviderNode.html#a629fc6ec0903bccf3e477aaf7fad79f1',1,'Datalayer::IProviderNode']]], + ['hassave_1',['HasSave',['../classDatalayer_1_1ReferenceType.html#a246b810bc6905db59c2a75f296b71d0e',1,'Datalayer::ReferenceType']]] +]; diff --git a/3.4.0/api/net/html/search/properties_6.js b/3.4.0/api/net/html/search/properties_6.js new file mode 100644 index 000000000..bb0692865 --- /dev/null +++ b/3.4.0/api/net/html/search/properties_6.js @@ -0,0 +1,18 @@ +var searchData= +[ + ['id_0',['Id',['../interfaceDatalayer_1_1ISubscription.html#a186291c875988107b7ace745ea84d4ec',1,'Datalayer::ISubscription']]], + ['info_1',['Info',['../interfaceDatalayer_1_1INotifyItem.html#aaca500fdbf156620e95d3fbf608a1e9b',1,'Datalayer::INotifyItem']]], + ['ip_2',['Ip',['../classDatalayer_1_1Remote.html#acfd2507889dd4ca10984553f890de256',1,'Datalayer::Remote']]], + ['ipcpath_3',['IpcPath',['../classDatalayer_1_1DatalayerSystem.html#a07d6bca7b87c1e03c76407fdf8fe7006',1,'Datalayer.DatalayerSystem.IpcPath()'],['../interfaceDatalayer_1_1IDatalayerSystem.html#a07d6bca7b87c1e03c76407fdf8fe7006',1,'Datalayer.IDatalayerSystem.IpcPath()']]], + ['isarray_4',['IsArray',['../interfaceDatalayer_1_1IVariant.html#afad44b5f3d66d321f75026142b350094',1,'Datalayer.IVariant.IsArray()'],['../classDatalayer_1_1Variant.html#afad44b5f3d66d321f75026142b350094',1,'Datalayer.Variant.IsArray()']]], + ['isbool_5',['IsBool',['../interfaceDatalayer_1_1IVariant.html#ac0cb5c9ac8b61a8903182242c4621852',1,'Datalayer.IVariant.IsBool()'],['../classDatalayer_1_1Variant.html#ac0cb5c9ac8b61a8903182242c4621852',1,'Datalayer.Variant.IsBool()']]], + ['isconnected_6',['IsConnected',['../interfaceDatalayer_1_1IClient.html#abac0113ff571c017320394966a1ae6d5',1,'Datalayer.IClient.IsConnected()'],['../interfaceDatalayer_1_1IProvider.html#abac0113ff571c017320394966a1ae6d5',1,'Datalayer.IProvider.IsConnected()']]], + ['isdisposed_7',['IsDisposed',['../classDatalayer_1_1DatalayerSystem.html#ab96a71c70205ed1aa4af692ee7f35403',1,'Datalayer.DatalayerSystem.IsDisposed()'],['../interfaceDatalayer_1_1INativeDisposable.html#ab96a71c70205ed1aa4af692ee7f35403',1,'Datalayer.INativeDisposable.IsDisposed()'],['../classDatalayer_1_1Variant.html#ab96a71c70205ed1aa4af692ee7f35403',1,'Datalayer.Variant.IsDisposed()']]], + ['isflatbuffers_8',['IsFlatbuffers',['../interfaceDatalayer_1_1IVariant.html#a795de924092940063018468542a0a3b1',1,'Datalayer.IVariant.IsFlatbuffers()'],['../classDatalayer_1_1Variant.html#a795de924092940063018468542a0a3b1',1,'Datalayer.Variant.IsFlatbuffers()']]], + ['isnull_9',['IsNull',['../interfaceDatalayer_1_1IVariant.html#a69588587684f7c6234dad9c7dea6e8e9',1,'Datalayer.IVariant.IsNull()'],['../classDatalayer_1_1Variant.html#a69588587684f7c6234dad9c7dea6e8e9',1,'Datalayer.Variant.IsNull()']]], + ['isnumber_10',['IsNumber',['../interfaceDatalayer_1_1IVariant.html#af76375772db03055743ffe560de9cb83',1,'Datalayer.IVariant.IsNumber()'],['../classDatalayer_1_1Variant.html#af76375772db03055743ffe560de9cb83',1,'Datalayer.Variant.IsNumber()']]], + ['isstarted_11',['IsStarted',['../classDatalayer_1_1DatalayerSystem.html#a9414c6daba9ce4aab80fa4c7ed02d507',1,'Datalayer.DatalayerSystem.IsStarted()'],['../interfaceDatalayer_1_1IDatalayerSystem.html#a9414c6daba9ce4aab80fa4c7ed02d507',1,'Datalayer.IDatalayerSystem.IsStarted()']]], + ['isstring_12',['IsString',['../interfaceDatalayer_1_1IVariant.html#a5a98459cc3688dfbd6ae933fedef2a9a',1,'Datalayer.IVariant.IsString()'],['../classDatalayer_1_1Variant.html#a5a98459cc3688dfbd6ae933fedef2a9a',1,'Datalayer.Variant.IsString()']]], + ['item_13',['Item',['../interfaceDatalayer_1_1IDataChangedEventArgs.html#aab457c0783b24f8609d589fc10dde237',1,'Datalayer::IDataChangedEventArgs']]], + ['items_14',['Items',['../interfaceDatalayer_1_1IBulk.html#ad07a380085308ef296066fccb14a7788',1,'Datalayer.IBulk.Items()'],['../interfaceDatalayer_1_1IClientAsyncBulkResult.html#ad07a380085308ef296066fccb14a7788',1,'Datalayer.IClientAsyncBulkResult.Items()']]] +]; diff --git a/3.4.0/api/net/html/search/properties_7.js b/3.4.0/api/net/html/search/properties_7.js new file mode 100644 index 000000000..37bb33997 --- /dev/null +++ b/3.4.0/api/net/html/search/properties_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['jsondatatype_0',['JsonDataType',['../interfaceDatalayer_1_1IVariant.html#ab4a6bde9780472924de64b1ef8059d3a',1,'Datalayer.IVariant.JsonDataType()'],['../classDatalayer_1_1Variant.html#ab4a6bde9780472924de64b1ef8059d3a',1,'Datalayer.Variant.JsonDataType()']]] +]; diff --git a/3.4.0/api/net/html/search/properties_8.js b/3.4.0/api/net/html/search/properties_8.js new file mode 100644 index 000000000..f293b65d7 --- /dev/null +++ b/3.4.0/api/net/html/search/properties_8.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['password_0',['Password',['../classDatalayer_1_1Remote.html#a9c7aae3a8518d5efd22e991b5944e0d4',1,'Datalayer::Remote']]], + ['port_1',['Port',['../classDatalayer_1_1Remote.html#a6ad5b3ea4ce74ad5f98cd49ff8511689',1,'Datalayer::Remote']]], + ['protocol_2',['Protocol',['../classDatalayer_1_1Remote.html#a0dda9c70e5a498baaa1cd780236ce1a1',1,'Datalayer::Remote']]], + ['protocolscheme_3',['ProtocolScheme',['../classDatalayer_1_1Remote.html#a3d08ba8bc2db79a0efb799146d13880f',1,'Datalayer::Remote']]], + ['provider_4',['Provider',['../interfaceDatalayer_1_1IProviderNode.html#a167fc502187e24d074ae0781d8547993',1,'Datalayer::IProviderNode']]] +]; diff --git a/3.4.0/api/net/html/search/properties_9.js b/3.4.0/api/net/html/search/properties_9.js new file mode 100644 index 000000000..068f362d1 --- /dev/null +++ b/3.4.0/api/net/html/search/properties_9.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['readintype_0',['ReadInType',['../classDatalayer_1_1ReferenceType.html#aa009a0a22f04001f55e194e8d8306faf',1,'Datalayer::ReferenceType']]], + ['readouttype_1',['ReadOutType',['../classDatalayer_1_1ReferenceType.html#a23a0c09636b7f8f1bef593ed179724a3',1,'Datalayer::ReferenceType']]], + ['readtype_2',['ReadType',['../classDatalayer_1_1ReferenceType.html#a21a03413de9f8f3810255fc62e36c83f',1,'Datalayer::ReferenceType']]], + ['result_3',['Result',['../interfaceDatalayer_1_1IBulkItem.html#afb2785bf656462fedb73dc757ebeba40',1,'Datalayer.IBulkItem.Result()'],['../interfaceDatalayer_1_1IClientAsyncBulkResult.html#afb2785bf656462fedb73dc757ebeba40',1,'Datalayer.IClientAsyncBulkResult.Result()'],['../interfaceDatalayer_1_1IClientAsyncResult.html#afb2785bf656462fedb73dc757ebeba40',1,'Datalayer.IClientAsyncResult.Result()'],['../interfaceDatalayer_1_1IDataChangedEventArgs.html#afb2785bf656462fedb73dc757ebeba40',1,'Datalayer.IDataChangedEventArgs.Result()']]] +]; diff --git a/3.4.0/api/net/html/search/properties_a.js b/3.4.0/api/net/html/search/properties_a.js new file mode 100644 index 000000000..56cd346d7 --- /dev/null +++ b/3.4.0/api/net/html/search/properties_a.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['sslport_0',['SslPort',['../classDatalayer_1_1Remote.html#a67afb250f2fb0a12185f5b161deac88b',1,'Datalayer::Remote']]], + ['subscription_1',['Subscription',['../interfaceDatalayer_1_1ISubscriptionAsyncResult.html#a67e453ac81a6513a6a7a4512801bee48',1,'Datalayer::ISubscriptionAsyncResult']]], + ['system_2',['System',['../interfaceDatalayer_1_1IClient.html#ad21e12c22b827906a29fcdf13646e750',1,'Datalayer.IClient.System()'],['../interfaceDatalayer_1_1IProvider.html#ad21e12c22b827906a29fcdf13646e750',1,'Datalayer.IProvider.System()']]] +]; diff --git a/3.4.0/api/net/html/search/properties_b.js b/3.4.0/api/net/html/search/properties_b.js new file mode 100644 index 000000000..b6c7f0c27 --- /dev/null +++ b/3.4.0/api/net/html/search/properties_b.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['timestamp_0',['Timestamp',['../interfaceDatalayer_1_1IBulkItem.html#ad61a3202df3c958377a1f7d95cfebb46',1,'Datalayer::IBulkItem']]] +]; diff --git a/3.4.0/api/net/html/search/properties_c.js b/3.4.0/api/net/html/search/properties_c.js new file mode 100644 index 000000000..0e8379bfd --- /dev/null +++ b/3.4.0/api/net/html/search/properties_c.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['user_0',['User',['../classDatalayer_1_1Remote.html#a9f8df451a16165b0cf243e37bf9c6b62',1,'Datalayer::Remote']]], + ['userdata_1',['UserData',['../interfaceDatalayer_1_1IDataChangedEventArgs.html#aeeccb94edafa8ab78eb999c2b2f97572',1,'Datalayer.IDataChangedEventArgs.UserData()'],['../interfaceDatalayer_1_1ISubscription.html#aeeccb94edafa8ab78eb999c2b2f97572',1,'Datalayer.ISubscription.UserData()']]], + ['uses_2',['Uses',['../classDatalayer_1_1ReferenceType.html#a590d5833dd7739782502752d0004befd',1,'Datalayer::ReferenceType']]] +]; diff --git a/3.4.0/api/net/html/search/properties_d.js b/3.4.0/api/net/html/search/properties_d.js new file mode 100644 index 000000000..b34bf55f0 --- /dev/null +++ b/3.4.0/api/net/html/search/properties_d.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['value_0',['Value',['../interfaceDatalayer_1_1IBulkItem.html#a9503c94b75a670263019963baa18c20d',1,'Datalayer.IBulkItem.Value()'],['../interfaceDatalayer_1_1IClientAsyncResult.html#a9503c94b75a670263019963baa18c20d',1,'Datalayer.IClientAsyncResult.Value()'],['../interfaceDatalayer_1_1INotifyItem.html#a9503c94b75a670263019963baa18c20d',1,'Datalayer.INotifyItem.Value()'],['../interfaceDatalayer_1_1IVariant.html#a2d7e8cd2081ad3db5aa8e597557123e9',1,'Datalayer.IVariant.Value()'],['../classDatalayer_1_1ReferenceType.html#af7b88db799d8f791f785e437bc6099d2',1,'Datalayer.ReferenceType.Value()'],['../classDatalayer_1_1Variant.html#a2d7e8cd2081ad3db5aa8e597557123e9',1,'Datalayer.Variant.Value()']]] +]; diff --git a/3.4.0/api/net/html/search/properties_e.js b/3.4.0/api/net/html/search/properties_e.js new file mode 100644 index 000000000..f9f8c332d --- /dev/null +++ b/3.4.0/api/net/html/search/properties_e.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['writeintype_0',['WriteInType',['../classDatalayer_1_1ReferenceType.html#a5d0ea2c95572ed7fa06d23320a74926c',1,'Datalayer::ReferenceType']]], + ['writeouttype_1',['WriteOutType',['../classDatalayer_1_1ReferenceType.html#a66042c1bc246be7a064aa33c7edc8c6b',1,'Datalayer::ReferenceType']]], + ['writetype_2',['WriteType',['../classDatalayer_1_1ReferenceType.html#a9fb27ed32816ad9c8dfde0eaaf2c4787',1,'Datalayer::ReferenceType']]] +]; diff --git a/3.4.0/api/net/html/search/search.css b/3.4.0/api/net/html/search/search.css new file mode 100644 index 000000000..19f76f9d5 --- /dev/null +++ b/3.4.0/api/net/html/search/search.css @@ -0,0 +1,291 @@ +/*---------------- Search Box positioning */ + +#main-menu > li:last-child { + /* This
  • object is the parent of the search bar */ + display: flex; + justify-content: center; + align-items: center; + height: 36px; + margin-right: 1em; +} + +/*---------------- Search box styling */ + +.SRPage * { + font-weight: normal; + line-height: normal; +} + +dark-mode-toggle { + margin-left: 5px; + display: flex; + float: right; +} + +#MSearchBox { + display: inline-block; + white-space : nowrap; + background: var(--search-background-color); + border-radius: 0.65em; + box-shadow: var(--search-box-shadow); + z-index: 102; +} + +#MSearchBox .left { + display: inline-block; + vertical-align: middle; + height: 1.4em; +} + +#MSearchSelect { + display: inline-block; + vertical-align: middle; + width: 20px; + height: 19px; + background-image: var(--search-magnification-select-image); + margin: 0 0 0 0.3em; + padding: 0; +} + +#MSearchSelectExt { + display: inline-block; + vertical-align: middle; + width: 10px; + height: 19px; + background-image: var(--search-magnification-image); + margin: 0 0 0 0.5em; + padding: 0; +} + + +#MSearchField { + display: inline-block; + vertical-align: middle; + width: 7.5em; + height: 19px; + margin: 0 0.15em; + padding: 0; + line-height: 1em; + border:none; + color: var(--search-foreground-color); + outline: none; + font-family: var(--font-family-search); + -webkit-border-radius: 0px; + border-radius: 0px; + background: none; +} + +@media(hover: none) { + /* to avoid zooming on iOS */ + #MSearchField { + font-size: 16px; + } +} + +#MSearchBox .right { + display: inline-block; + vertical-align: middle; + width: 1.4em; + height: 1.4em; +} + +#MSearchClose { + display: none; + font-size: inherit; + background : none; + border: none; + margin: 0; + padding: 0; + outline: none; + +} + +#MSearchCloseImg { + padding: 0.3em; + margin: 0; +} + +.MSearchBoxActive #MSearchField { + color: var(--search-active-color); +} + + + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid var(--search-filter-border-color); + background-color: var(--search-filter-background-color); + z-index: 10001; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt var(--font-family-search); + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: var(--font-family-monospace); + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: var(--search-filter-foreground-color); + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: var(--search-filter-foreground-color); + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: var(--search-filter-highlight-text-color); + background-color: var(--search-filter-highlight-bg-color); + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + /*width: 60ex;*/ + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid var(--search-results-border-color); + background-color: var(--search-results-background-color); + z-index:10000; + width: 300px; + height: 400px; + overflow: auto; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +div.SRPage { + margin: 5px 2px; + background-color: var(--search-results-background-color); +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: var(--search-results-foreground-color); + font-family: var(--font-family-search); + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: var(--search-results-foreground-color); + font-family: var(--font-family-search); + font-size: 8pt; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +span.SRScope { + padding-left: 4px; + font-family: var(--font-family-search); +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; + font-family: var(--font-family-search); +} + +.SRResult { + display: none; +} + +div.searchresults { + margin-left: 10px; + margin-right: 10px; +} + +/*---------------- External search page results */ + +.pages b { + color: white; + padding: 5px 5px 3px 5px; + background-image: var(--nav-gradient-active-image-parent); + background-repeat: repeat-x; + text-shadow: 0 1px 1px #000000; +} + +.pages { + line-height: 17px; + margin-left: 4px; + text-decoration: none; +} + +.hl { + font-weight: bold; +} + +#searchresults { + margin-bottom: 20px; +} + +.searchpages { + margin-top: 10px; +} + diff --git a/3.4.0/api/net/html/search/search.js b/3.4.0/api/net/html/search/search.js new file mode 100644 index 000000000..e103a2621 --- /dev/null +++ b/3.4.0/api/net/html/search/search.js @@ -0,0 +1,816 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function convertToId(search) +{ + var result = ''; + for (i=0;i do a search + { + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) // Up + { + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } + else if (e.keyCode==13 || e.keyCode==27) + { + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() + { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() + { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() + { + this.keyTimeout = 0; + + // strip leading whitespace + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + var code = searchValue.toLowerCase().charCodeAt(0); + var idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair + { + idxChar = searchValue.substr(0, 2); + } + + var jsFile; + + var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) + { + var hexCode=idx.toString(16); + jsFile = this.resultsPath + indexSectionNames[this.searchIndex] + '_' + hexCode + '.js'; + } + + var loadJS = function(url, impl, loc){ + var scriptTag = document.createElement('script'); + scriptTag.src = url; + scriptTag.onload = impl; + scriptTag.onreadystatechange = impl; + loc.appendChild(scriptTag); + } + + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + var domSearchBox = this.DOMSearchBox(); + var domPopupSearchResults = this.DOMPopupSearchResults(); + var domSearchClose = this.DOMSearchClose(); + var resultsPath = this.resultsPath; + + var handleResults = function() { + document.getElementById("Loading").style.display="none"; + if (typeof searchData !== 'undefined') { + createResults(resultsPath); + document.getElementById("NoMatches").style.display="none"; + } + + searchResults.Search(searchValue); + + if (domPopupSearchResultsWindow.style.display!='block') + { + domSearchClose.style.display = 'inline-block'; + var left = getXPos(domSearchBox) + 150; + var top = getYPos(domSearchBox) + 20; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + var maxWidth = document.body.clientWidth; + var maxHeight = document.body.clientHeight; + var width = 300; + if (left<10) left=10; + if (width+left+8>maxWidth) width=maxWidth-left-8; + var height = 400; + if (height+top+8>maxHeight) height=maxHeight-top-8; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResultsWindow.style.height = height + 'px'; + } + } + + if (jsFile) { + loadJS(jsFile, handleResults, this.DOMPopupSearchResultsWindow()); + } else { + handleResults(); + } + + this.lastSearchValue = searchValue; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) + { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) + { + this.DOMSearchBox().className = 'MSearchBoxActive'; + this.searchActive = true; + } + else if (!isActive) // directly remove the panel + { + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + this.DOMSearchField().value = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults(name) +{ + // The number of matches from the last run of . + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) + { + var parentElement = document.getElementById(id); + var element = parentElement.firstChild; + + while (element && element!=parentElement) + { + if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') + { + return element; + } + + if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes()) + { + element = element.firstChild; + } + else if (element.nextSibling) + { + element = element.nextSibling; + } + else + { + do + { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) + { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) + { + var element = this.FindChildElement(id); + if (element) + { + if (element.style.display == 'block') + { + element.style.display = 'none'; + } + else + { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) + { + if (!search) // get search word from URL + { + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) + { + row.style.display = 'block'; + matches++; + } + else + { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) // no results + { + document.getElementById("NoMatches").style.display='block'; + } + else // at least one result + { + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) + { + if (e.type == "keydown") + { + this.repeatOn = false; + this.lastKey = e.keyCode; + } + else if (e.type == "keypress") + { + if (!this.repeatOn) + { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } + else if (e.type == "keyup") + { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + var newIndex = itemIndex-1; + var focusItem = this.NavPrev(newIndex); + if (focusItem) + { + var child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') // children visible + { + var n=0; + var tmpElem; + while (1) // search for last child + { + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) + { + focusItem = tmpElem; + } + else // found it! + { + break; + } + n++; + } + } + } + if (focusItem) + { + focusItem.focus(); + } + else // return focus to search field + { + document.getElementById("MSearchField").focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = itemIndex+1; + var focusItem; + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') // children visible + { + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } + else if (this.lastKey==39) // Right + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } + else if (this.lastKey==37) // Left + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } + else if (this.lastKey==27) // Escape + { + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + if (childIndex>0) + { + var newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } + else // already at first child, jump to parent + { + document.getElementById('Item'+itemIndex).focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = childIndex+1; + var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) // last child, jump to parent next parent + { + elem = this.NavNext(itemIndex+1); + } + if (elem) + { + elem.focus(); + } + } + else if (this.lastKey==27) // Escape + { + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } +} + +function setKeyActions(elem,action) +{ + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); +} + +function setClassAttr(elem,attr) +{ + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); +} + +function createResults(resultsPath) +{ + var results = document.getElementById("SRResults"); + results.innerHTML = ''; + for (var e=0; eli>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:var(--nav-menu-button-color);-webkit-transition:all .25s;transition:all .25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px,1px,1px,1px)}#main-menu-state:not(:checked) ~ #main-menu{display:none}#main-menu-state:checked ~ #main-menu{display:block}@media(min-width:768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked) ~ #main-menu{display:block}}.sm-dox{background-image:var(--nav-gradient-image)}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:var(--font-family-nav);font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:var(--nav-text-normal-shadow);color:var(--nav-text-normal-color);outline:0}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:var(--nav-menu-toggle-color);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:var(--nav-menu-background-color)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:var(--nav-menu-background-color);background-image:none}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:var(--nav-gradient-image);line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:var(--nav-text-normal-color) transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:var(--nav-separator-image);background-repeat:no-repeat;background-position:right;-moz-border-radius:0 !important;-webkit-border-radius:0;border-radius:0 !important}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a:hover span.sub-arrow{border-color:var(--nav-text-hover-color) transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent var(--nav-menu-background-color) transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:var(--nav-menu-background-color);-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent var(--nav-menu-foreground-color);border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:var(--nav-menu-foreground-color);background-image:none;border:0 !important;color:var(--nav-menu-foreground-color);background-image:none}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent var(--nav-text-hover-color)}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:var(--nav-menu-background-color);height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent var(--nav-menu-foreground-color) transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:var(--nav-menu-foreground-color) transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:var(--nav-gradient-image)}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:var(--nav-menu-background-color)}} \ No newline at end of file diff --git a/3.4.0/api/python/____init_____8py_source.html b/3.4.0/api/python/____init_____8py_source.html new file mode 100644 index 000000000..20415e464 --- /dev/null +++ b/3.4.0/api/python/____init_____8py_source.html @@ -0,0 +1,112 @@ + + + + + + + +ctrlX Data Layer API for Python: /var/jenkins/workspace/script.python.datalayer/ctrlxdatalayer/__init__.py Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    __init__.py
    +
    +
    +
    1 """
    +
    2  __init__
    +
    3 """
    +
    4 __all__ = ["client", "converter", "factory",
    +
    5  "provider", "provider_node", "system", "variant",
    +
    6  "subscription_sync", "subscription_async", "metadata_utils", "bulk",
    +
    7  "subscription_properties_builder"]
    +
    8 from ctrlxdatalayer import (bulk, client, converter, factory, metadata_utils,
    +
    9  provider, provider_node, subscription_async,
    +
    10  subscription_properties_builder,
    +
    11  subscription_sync, system, variant)
    +
    +
    + + + + diff --git a/3.4.0/api/python/__version_8py_source.html b/3.4.0/api/python/__version_8py_source.html new file mode 100644 index 000000000..f43e0b736 --- /dev/null +++ b/3.4.0/api/python/__version_8py_source.html @@ -0,0 +1,104 @@ + + + + + + + +ctrlX Data Layer API for Python: /var/jenkins/workspace/script.python.datalayer/ctrlxdatalayer/_version.py Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    _version.py
    +
    +
    +
    1 """version info
    +
    2  """
    +
    3 __version__ = u"3.3.0"
    +
    +
    + + + + diff --git a/3.4.0/api/python/annotated.html b/3.4.0/api/python/annotated.html new file mode 100644 index 000000000..0f2ed0f7c --- /dev/null +++ b/3.4.0/api/python/annotated.html @@ -0,0 +1,159 @@ + + + + + + + +ctrlX Data Layer API for Python: Class List + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    Class List
    +
    +
    +
    Here are the classes, structs, unions and interfaces with brief descriptions:
    +
    [detail level 123]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     Nctrlxdatalayer
     Nbulk
     C_ResponseAsynMgrClass _ResponseAsynMgr
     C_ResponseBulkMgrClass _ResponseBulkMgr
     C_ResponseMgrClass _ResponseMgr
     CBulkClass Bulk
     CBulkCreateRequestStruct for BulkCreateRequest Address for the request Write data of the request
     CBulkReadRequestStruct for BulkReadRequest Address for the request Read argument of the request
     CBulkWriteRequestStruct for BulkWriteRequest Address for the request Write data of the request
     CResponseClass Bulk Response
     Nbulk_util
     C_AsyncCreatorClass _AsyncCreator
     C_BulkCreatorClass _BulkCreator
     C_RequestClass Bulk _Request
     Nclient
     C_CallbackPtrCallback wrapper
     CClientClient interface for accessing data from the system
     CTimeoutSettingSettings of different timeout values
     Nconverter
     CC_DLR_SCHEMAType of Converter
     CConverterConverter interface
     Nfactory
     CFactoryFactory class
     Nmetadata_utils
     CAllowedOperationAllowed Operation Flags
     CMetadataBuilderBuilds a flatbuffer provided with the metadata information for a Data Layer node
     CReferenceTypeList of reference types as strings
     Nprovider
     CProvider
     Nprovider_node
     C_CallbackPtr_CallbackPtr helper
     CProviderNodeProvider node interface for providing data to the system
     CProviderNodeCallbacksProvider Node callbacks interface
     Nprovider_subscription
     CNotifyInfoPublishNotifyInfoPublish
     CNotifyItemPublishClass NotifyItemPublish:
     CNotifyTypePublishNotifyTypePublish
     CProviderSubscriptionProviderSubscription helper class
     Nsubscription
     CNotifyItemNotifyItem
     CNotifyTypeNotifyType
     CSubscriptionSubscription
     Nsubscription_async
     CSubscriptionAsyncSubscriptionAsync
     Nsubscription_properties_builder
     CSubscriptionPropertiesBuilderSubscriptionPropertiesBuilder
     Nsubscription_sync
     CSubscriptionSyncSubscriptionSync
     Nsystem
     CSystemDatalayer System Instance
     Nvariant
     CResult
     CVariantVariant is a container for a many types of data
     CVariantRef
     CVariantType
    +
    +
    +
    + + + + diff --git a/3.4.0/api/python/annotated_dup.js b/3.4.0/api/python/annotated_dup.js new file mode 100644 index 000000000..fd5a37a23 --- /dev/null +++ b/3.4.0/api/python/annotated_dup.js @@ -0,0 +1,74 @@ +var annotated_dup = +[ + [ "ctrlxdatalayer", null, [ + [ "bulk", null, [ + [ "_ResponseAsynMgr", "classctrlxdatalayer_1_1bulk_1_1__ResponseAsynMgr.html", "classctrlxdatalayer_1_1bulk_1_1__ResponseAsynMgr" ], + [ "_ResponseBulkMgr", "classctrlxdatalayer_1_1bulk_1_1__ResponseBulkMgr.html", "classctrlxdatalayer_1_1bulk_1_1__ResponseBulkMgr" ], + [ "_ResponseMgr", "classctrlxdatalayer_1_1bulk_1_1__ResponseMgr.html", "classctrlxdatalayer_1_1bulk_1_1__ResponseMgr" ], + [ "Bulk", "classctrlxdatalayer_1_1bulk_1_1Bulk.html", "classctrlxdatalayer_1_1bulk_1_1Bulk" ], + [ "BulkCreateRequest", "classctrlxdatalayer_1_1bulk_1_1BulkCreateRequest.html", "classctrlxdatalayer_1_1bulk_1_1BulkCreateRequest" ], + [ "BulkReadRequest", "classctrlxdatalayer_1_1bulk_1_1BulkReadRequest.html", "classctrlxdatalayer_1_1bulk_1_1BulkReadRequest" ], + [ "BulkWriteRequest", "classctrlxdatalayer_1_1bulk_1_1BulkWriteRequest.html", "classctrlxdatalayer_1_1bulk_1_1BulkWriteRequest" ], + [ "Response", "classctrlxdatalayer_1_1bulk_1_1Response.html", "classctrlxdatalayer_1_1bulk_1_1Response" ] + ] ], + [ "bulk_util", null, [ + [ "_AsyncCreator", "classctrlxdatalayer_1_1bulk__util_1_1__AsyncCreator.html", "classctrlxdatalayer_1_1bulk__util_1_1__AsyncCreator" ], + [ "_BulkCreator", "classctrlxdatalayer_1_1bulk__util_1_1__BulkCreator.html", "classctrlxdatalayer_1_1bulk__util_1_1__BulkCreator" ], + [ "_Request", "classctrlxdatalayer_1_1bulk__util_1_1__Request.html", "classctrlxdatalayer_1_1bulk__util_1_1__Request" ] + ] ], + [ "client", null, [ + [ "_CallbackPtr", "classctrlxdatalayer_1_1client_1_1__CallbackPtr.html", "classctrlxdatalayer_1_1client_1_1__CallbackPtr" ], + [ "Client", "classctrlxdatalayer_1_1client_1_1Client.html", "classctrlxdatalayer_1_1client_1_1Client" ], + [ "TimeoutSetting", "classctrlxdatalayer_1_1client_1_1TimeoutSetting.html", "classctrlxdatalayer_1_1client_1_1TimeoutSetting" ] + ] ], + [ "converter", null, [ + [ "C_DLR_SCHEMA", "classctrlxdatalayer_1_1converter_1_1C__DLR__SCHEMA.html", "classctrlxdatalayer_1_1converter_1_1C__DLR__SCHEMA" ], + [ "Converter", "classctrlxdatalayer_1_1converter_1_1Converter.html", "classctrlxdatalayer_1_1converter_1_1Converter" ] + ] ], + [ "factory", null, [ + [ "Factory", "classctrlxdatalayer_1_1factory_1_1Factory.html", "classctrlxdatalayer_1_1factory_1_1Factory" ] + ] ], + [ "metadata_utils", null, [ + [ "AllowedOperation", "classctrlxdatalayer_1_1metadata__utils_1_1AllowedOperation.html", "classctrlxdatalayer_1_1metadata__utils_1_1AllowedOperation" ], + [ "MetadataBuilder", "classctrlxdatalayer_1_1metadata__utils_1_1MetadataBuilder.html", "classctrlxdatalayer_1_1metadata__utils_1_1MetadataBuilder" ], + [ "ReferenceType", "classctrlxdatalayer_1_1metadata__utils_1_1ReferenceType.html", "classctrlxdatalayer_1_1metadata__utils_1_1ReferenceType" ] + ] ], + [ "provider", null, [ + [ "Provider", "classctrlxdatalayer_1_1provider_1_1Provider.html", "classctrlxdatalayer_1_1provider_1_1Provider" ] + ] ], + [ "provider_node", null, [ + [ "_CallbackPtr", "classctrlxdatalayer_1_1provider__node_1_1__CallbackPtr.html", "classctrlxdatalayer_1_1provider__node_1_1__CallbackPtr" ], + [ "ProviderNode", "classctrlxdatalayer_1_1provider__node_1_1ProviderNode.html", "classctrlxdatalayer_1_1provider__node_1_1ProviderNode" ], + [ "ProviderNodeCallbacks", "classctrlxdatalayer_1_1provider__node_1_1ProviderNodeCallbacks.html", "classctrlxdatalayer_1_1provider__node_1_1ProviderNodeCallbacks" ] + ] ], + [ "provider_subscription", null, [ + [ "NotifyInfoPublish", "classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish.html", "classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish" ], + [ "NotifyItemPublish", "classctrlxdatalayer_1_1provider__subscription_1_1NotifyItemPublish.html", "classctrlxdatalayer_1_1provider__subscription_1_1NotifyItemPublish" ], + [ "NotifyTypePublish", "classctrlxdatalayer_1_1provider__subscription_1_1NotifyTypePublish.html", "classctrlxdatalayer_1_1provider__subscription_1_1NotifyTypePublish" ], + [ "ProviderSubscription", "classctrlxdatalayer_1_1provider__subscription_1_1ProviderSubscription.html", "classctrlxdatalayer_1_1provider__subscription_1_1ProviderSubscription" ] + ] ], + [ "subscription", null, [ + [ "NotifyItem", "classctrlxdatalayer_1_1subscription_1_1NotifyItem.html", "classctrlxdatalayer_1_1subscription_1_1NotifyItem" ], + [ "NotifyType", "classctrlxdatalayer_1_1subscription_1_1NotifyType.html", "classctrlxdatalayer_1_1subscription_1_1NotifyType" ], + [ "Subscription", "classctrlxdatalayer_1_1subscription_1_1Subscription.html", "classctrlxdatalayer_1_1subscription_1_1Subscription" ] + ] ], + [ "subscription_async", null, [ + [ "SubscriptionAsync", "classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync.html", "classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync" ] + ] ], + [ "subscription_properties_builder", null, [ + [ "SubscriptionPropertiesBuilder", "classctrlxdatalayer_1_1subscription__properties__builder_1_1SubscriptionPropertiesBuilder.html", "classctrlxdatalayer_1_1subscription__properties__builder_1_1SubscriptionPropertiesBuilder" ] + ] ], + [ "subscription_sync", null, [ + [ "SubscriptionSync", "classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync.html", "classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync" ] + ] ], + [ "system", null, [ + [ "System", "classctrlxdatalayer_1_1system_1_1System.html", "classctrlxdatalayer_1_1system_1_1System" ] + ] ], + [ "variant", null, [ + [ "Result", "classctrlxdatalayer_1_1variant_1_1Result.html", "classctrlxdatalayer_1_1variant_1_1Result" ], + [ "Variant", "classctrlxdatalayer_1_1variant_1_1Variant.html", "classctrlxdatalayer_1_1variant_1_1Variant" ], + [ "VariantRef", "classctrlxdatalayer_1_1variant_1_1VariantRef.html", "classctrlxdatalayer_1_1variant_1_1VariantRef" ], + [ "VariantType", "classctrlxdatalayer_1_1variant_1_1VariantType.html", "classctrlxdatalayer_1_1variant_1_1VariantType" ] + ] ] + ] ] +]; \ No newline at end of file diff --git a/3.4.0/api/python/bc_s.png b/3.4.0/api/python/bc_s.png new file mode 100644 index 000000000..224b29aa9 Binary files /dev/null and b/3.4.0/api/python/bc_s.png differ diff --git a/3.4.0/api/python/bdwn.png b/3.4.0/api/python/bdwn.png new file mode 100644 index 000000000..940a0b950 Binary files /dev/null and b/3.4.0/api/python/bdwn.png differ diff --git a/3.4.0/api/python/bulk_8py_source.html b/3.4.0/api/python/bulk_8py_source.html new file mode 100644 index 000000000..c731e3806 --- /dev/null +++ b/3.4.0/api/python/bulk_8py_source.html @@ -0,0 +1,1127 @@ + + + + + + + +ctrlX Data Layer API for Python: /var/jenkins/workspace/script.python.datalayer/ctrlxdatalayer/bulk.py Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    bulk.py
    +
    +
    +
    1 """
    +
    2 class Bulk
    +
    3 Function calls are combined into a single call
    +
    4 """
    +
    5 import ctypes
    +
    6 import datetime
    +
    7 import typing
    +
    8 
    +
    9 import ctrlxdatalayer
    +
    10 from ctrlxdatalayer.bulk_util import _AsyncCreator, _BulkCreator, _Request
    +
    11 from ctrlxdatalayer.clib import userData_c_void_p
    +
    12 from ctrlxdatalayer.clib_bulk import (C_DLR_BULK, C_DLR_CLIENT_BULK_RESPONSE,
    +
    13  C_VecBulkResponse)
    +
    14 from ctrlxdatalayer.clib_client import C_DLR_CLIENT
    +
    15 from ctrlxdatalayer.clib_variant import C_DLR_VARIANT
    +
    16 from ctrlxdatalayer.client import Client, _CallbackPtr
    +
    17 from ctrlxdatalayer.variant import Result, Variant
    +
    18 
    +
    19 
    +
    20 class Response:
    +
    21  """
    +
    22  class Bulk Response
    +
    23  """
    +
    24  __slots__ = ['__address', '__result', '__data', '__timestamp']
    +
    25 
    +
    26  def __init__(self, addr: str, data: C_DLR_VARIANT, time: ctypes.c_uint64, result: Result):
    +
    27  """init Response Bulk
    +
    28 
    +
    29  Args:
    +
    30  addr (str): Address for the response
    +
    31  data (C_DLR_VARIANT): Output data of the response
    +
    32  time (ctypes.c_uint64): Timestamp of the response
    +
    33  result (Result): Result of the response
    +
    34  """
    +
    35  self.__address__address = addr
    +
    36  self.__result__result = result
    +
    37  _, self.__data__data = Variant.copy(data)
    +
    38  t = time if isinstance(time, int) else time.value
    +
    39  self.__timestamp__timestamp = Variant.from_filetime(t)
    +
    40 
    +
    41  def __enter__(self):
    +
    42  """
    +
    43  use the python context manager
    +
    44  """
    +
    45  return self
    +
    46 
    +
    47  def __exit__(self, exc_type, exc_val, exc_tb):
    +
    48  """
    +
    49  use the python context manager
    +
    50  """
    +
    51  self.closeclose()
    +
    52 
    +
    53  def close(self):
    +
    54  """
    +
    55  close
    +
    56  """
    +
    57  self.__data__data.close()
    +
    58 
    +
    59  def get_address(self) -> str:
    +
    60  """
    +
    61  get_address
    +
    62 
    +
    63  Returns:
    +
    64  str: Address for the response
    +
    65  """
    +
    66  return self.__address__address
    +
    67 
    +
    68  def get_result(self) -> Result:
    +
    69  """get_result
    +
    70 
    +
    71  Returns:
    +
    72  Result: Result of the response
    +
    73  """
    +
    74  return self.__result__result
    +
    75 
    +
    76  def get_data(self) -> Variant:
    +
    77  """
    +
    78  get_data
    +
    79 
    +
    80  Returns:
    +
    81  Variant: Output data of the response
    +
    82  """
    +
    83  return self.__data__data
    +
    84 
    +
    85  def get_datetime(self) -> datetime.datetime:
    +
    86  """
    +
    87  get_datetime
    +
    88 
    +
    89  datetime object as timestamp (FILETIME) 64 bit 100ns since 1.1.1601 (UTC)
    +
    90 
    +
    91  Returns:
    +
    92  datetime.datetime: Timestamp of the response
    +
    93  """
    +
    94  return self.__timestamp__timestamp
    +
    95 
    +
    96 
    +
    97 ResponseCallback = typing.Callable[[
    +
    98  typing.List[Response], userData_c_void_p], None]
    +
    99 """ResponseCallback
    +
    100 
    +
    101  Returns:
    +
    102 
    +
    103 """
    +
    104 
    +
    105 
    +
    106 def _bulkGetCount(bulk: C_DLR_BULK) -> int:
    +
    107  """_bulkGetCount
    +
    108 
    +
    109  Args:
    +
    110  bulk (C_DLR_BULK): Reference to the bulk
    +
    111 
    +
    112  Returns:
    +
    113  int: sizeof bulk
    +
    114  """
    +
    115  return ctrlxdatalayer.clib.libcomm_datalayer.DLR_bulkGetCount(bulk)
    +
    116 
    +
    117 
    +
    118 def _bulkGetResponseAddress(bulk: C_DLR_BULK, i: int) -> bytes:
    +
    119  """_bulkGetResponseAddress
    +
    120 
    +
    121  Args:
    +
    122  bulk(C_DLR_BULK): Reference to the bulk
    +
    123  i(int): index[0..]
    +
    124 
    +
    125  Returns:
    +
    126  bytes: address of response
    +
    127  """
    +
    128  return ctrlxdatalayer.clib.libcomm_datalayer.DLR_bulkGetResponseAddress(bulk, ctypes.c_size_t(i))
    +
    129 
    +
    130 
    +
    131 def _bulkGetResponseData(bulk: C_DLR_BULK, i: int) -> C_DLR_VARIANT:
    +
    132  """_bulkGetResponseData
    +
    133 
    +
    134  Args:
    +
    135  bulk (C_DLR_BULK): Reference to the bulk
    +
    136  i (int): index [0..]
    +
    137  Returns:
    +
    138  C_DLR_VARIANT: data of response
    +
    139  """
    +
    140  return ctrlxdatalayer.clib.libcomm_datalayer.DLR_bulkGetResponseData(
    +
    141  bulk, ctypes.c_size_t(i))
    +
    142 
    +
    143 
    +
    144 def _bulkGetResponseTimestamp(bulk: C_DLR_BULK, i: int) -> ctypes.c_uint64:
    +
    145  """_bulkGetResponseTimestamp
    +
    146 
    +
    147  Args:
    +
    148  bulk (C_DLR_BULK): Reference to the bulk
    +
    149  i (int): index [0..]
    +
    150 
    +
    151  Returns:
    +
    152  c_uint64: timestamp of response
    +
    153  """
    +
    154  return ctrlxdatalayer.clib.libcomm_datalayer.DLR_bulkGetResponseTimestamp(
    +
    155  bulk, ctypes.c_size_t(i))
    +
    156 
    +
    157 
    +
    158 def _bulkGetResponseResult(bulk: C_DLR_BULK, i: int) -> Result:
    +
    159  """_bulkGetResponseResult
    +
    160 
    +
    161  Args:
    +
    162  bulk (C_DLR_BULK): Reference to the bulk
    +
    163  i (int): index [0..]
    +
    164 
    +
    165  Returns:
    +
    166  Result: status of response
    +
    167  """
    +
    168  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_bulkGetResponseResult(
    +
    169  bulk, ctypes.c_size_t(i)))
    +
    170 
    +
    171 
    +
    172 class _ResponseMgr:
    +
    173  """
    +
    174  class _ResponseMgr
    +
    175  """
    +
    176  __slots__ = ['_response']
    +
    177 
    +
    178  def __init__(self):
    +
    179  """
    +
    180  __init__
    +
    181 
    +
    182  Args:
    +
    183  bulk (clib_client.C_DLR_BULK): Bulk value
    +
    184  """
    +
    185  self._response: typing.List[Response] = []
    +
    186 
    +
    187  def __enter__(self):
    +
    188  """
    +
    189  use the python context manager
    +
    190  """
    +
    191  return self
    +
    192 
    +
    193  def __exit__(self, exc_type, exc_val, exc_tb):
    +
    194  """
    +
    195  use the python context manager
    +
    196  """
    +
    197  self.closeclose()
    +
    198 
    +
    199  def close(self):
    +
    200  """
    +
    201  close
    +
    202  """
    +
    203  for r in self._response_response:
    +
    204  r.close()
    +
    205  self._response_response = []
    +
    206 
    +
    207  def get_response(self) -> typing.List[Response]:
    +
    208  """
    +
    209  get_response
    +
    210 
    +
    211  Returns:
    +
    212  typing.List[Response]: List of response
    +
    213  """
    +
    214  return self._response_response
    +
    215 
    +
    216 
    + +
    218  """
    +
    219  class _ResponseBulkMgr
    +
    220  """
    +
    221 
    +
    222  def __init__(self, bulk: C_DLR_BULK):
    +
    223  """
    +
    224  __init__
    +
    225 
    +
    226  Args:
    +
    227  bulk (clib_client.C_DLR_BULK): Bulk value
    +
    228  """
    +
    229  super().__init__()
    +
    230 
    +
    231  size = _bulkGetCount(bulk)
    +
    232  for i in range(size):
    +
    233  addr = _bulkGetResponseAddress(bulk, i)
    +
    234  data = _bulkGetResponseData(bulk, i)
    +
    235  time = _bulkGetResponseTimestamp(bulk, i)
    +
    236  result = _bulkGetResponseResult(bulk, i)
    +
    237  obj = Response(addr.decode('utf-8'), data, time, result)
    +
    238  self._response_response.append(obj)
    +
    239 
    +
    240  def __enter__(self):
    +
    241  """
    +
    242  use the python context manager
    +
    243  """
    +
    244  return self
    +
    245 
    +
    246  def __exit__(self, exc_type, exc_val, exc_tb):
    +
    247  """
    +
    248  use the python context manager
    +
    249  """
    +
    250  self.closeclose()
    +
    251 
    +
    252 
    + +
    254  """
    +
    255  class _ResponseAsynMgr
    +
    256  """
    +
    257 
    +
    258  __slots__ = ['_response', '__async_creator']
    +
    259 
    +
    260  def __init__(self, ac: _AsyncCreator):
    +
    261  """__init__
    +
    262 
    +
    263  Args:
    +
    264  ac (_AsyncCreator): help class
    +
    265  """
    +
    266  super().__init__()
    +
    267  self._response_response = []
    +
    268  self.__async_creator = ac
    +
    269 
    +
    270  def __enter__(self):
    +
    271  """
    +
    272  use the python context manager
    +
    273  """
    +
    274  return self
    +
    275 
    +
    276  def __exit__(self, exc_type, exc_val, exc_tb):
    +
    277  """
    +
    278  use the python context manager
    +
    279  """
    +
    280  self.closecloseclose()
    +
    281 
    +
    282  def set_responses(self, responses: typing.List[Response]):
    +
    283  """set_responses
    +
    284  """
    +
    285  self._response_response_response = responses
    +
    286 
    +
    287  def close(self):
    +
    288  """close
    +
    289  """
    +
    290  self.__async_creator__async_creator.close()
    +
    291  self._response_response_response = []
    +
    292 
    +
    293 
    +
    294 def _clientBulkReadSync(client: C_DLR_CLIENT, bulk: C_DLR_BULK, token: bytes) -> Result:
    +
    295  """_clientBulkReadSync
    +
    296 
    +
    297  Args:
    +
    298  client (C_DLR_CLIENT): Reference to the client
    +
    299  bulk (C_DLR_BULK): Reference to the bulk
    +
    300  token (bytes): Security access token for authentication as JWT payload
    +
    301 
    +
    302  Returns:
    +
    303  Result: status of function call
    +
    304  """
    +
    305  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_clientBulkReadSync(client, bulk, token))
    +
    306 
    +
    307 
    +
    308 def _clientBulkWriteSync(client: C_DLR_CLIENT, bulk: C_DLR_BULK, token: bytes) -> Result:
    +
    309  """_clientBulkWriteSync
    +
    310 
    +
    311  Args:
    +
    312  client (C_DLR_CLIENT): Reference to the client
    +
    313  bulk (C_DLR_BULK): Reference to the bulk
    +
    314  token (bytes): Security access token for authentication as JWT payload
    +
    315 
    +
    316  Returns:
    +
    317  Result: status of function call
    +
    318  """
    +
    319  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_clientBulkWriteSync(client, bulk, token))
    +
    320 
    +
    321 
    +
    322 def _clientBulkBrowseSync(client: C_DLR_CLIENT, bulk: C_DLR_BULK, token: bytes) -> Result:
    +
    323  """_clientBulkBrowseSync
    +
    324 
    +
    325  Args:
    +
    326  client (C_DLR_CLIENT): Reference to the client
    +
    327  bulk (C_DLR_BULK): Reference to the bulk
    +
    328  token (bytes): Security access token for authentication as JWT payload
    +
    329 
    +
    330  Returns:
    +
    331  Result: status of function call
    +
    332  """
    +
    333  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_clientBulkBrowseSync(client, bulk, token))
    +
    334 
    +
    335 
    +
    336 def _clientBulkMetadataSync(client: C_DLR_CLIENT, bulk: C_DLR_BULK, token: bytes) -> Result:
    +
    337  """_clientBulkMetadataSync
    +
    338 
    +
    339  Args:
    +
    340  client (C_DLR_CLIENT): Reference to the client
    +
    341  bulk (C_DLR_BULK): Reference to the bulk
    +
    342  token (bytes): Security access token for authentication as JWT payload
    +
    343 
    +
    344  Returns:
    +
    345  Result: status of function call
    +
    346  """
    +
    347  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_clientBulkMetadataSync(client, bulk, token))
    +
    348 
    +
    349 
    +
    350 def _clientBulkCreateSync(client: C_DLR_CLIENT, bulk: C_DLR_BULK, token: bytes) -> Result:
    +
    351  """_clientBulkCreateSync
    +
    352 
    +
    353  Args:
    +
    354  client (C_DLR_CLIENT): Reference to the client
    +
    355  bulk (C_DLR_BULK): Reference to the bulk
    +
    356  token (bytes): Security access token for authentication as JWT payload
    +
    357 
    +
    358  Returns:
    +
    359  Result: status of function call
    +
    360  """
    +
    361  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_clientBulkCreateSync(client, bulk, token))
    +
    362 
    +
    363 
    +
    364 def _clientBulkDeleteSync(client: C_DLR_CLIENT, bulk: C_DLR_BULK, token: bytes) -> Result:
    +
    365  """_clientBulkDeleteSync
    +
    366 
    +
    367  Args:
    +
    368  client (C_DLR_CLIENT): Reference to the client
    +
    369  bulk (C_DLR_BULK): Reference to the bulk
    +
    370  token (bytes): Security access token for authentication as JWT payload
    +
    371 
    +
    372  Returns:
    +
    373  Result: status of function call
    +
    374  """
    +
    375  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_clientBulkDeleteSync(client, bulk, token))
    +
    376 
    +
    377 
    +
    378 def _clientReadBulkASync(client: C_DLR_CLIENT, request, token: bytes, cb: C_DLR_CLIENT_BULK_RESPONSE, userdata: userData_c_void_p) -> Result:
    +
    379  """_clientReadBulkASync
    +
    380 
    +
    381  Args:
    +
    382  client (C_DLR_CLIENT): Reference to the client
    +
    383  request (ctypes.POINTER(C_VecBulkRequest)): Requests
    +
    384  token (bytes): Security access token for authentication as JWT payload
    +
    385  cb (C_DLR_CLIENT_BULK_RESPONSE): Callback to call when function is finished
    +
    386  userdata (userData_c_void_p): User data - will be returned in callback as userdata.
    +
    387  You can use this userdata to identify your request
    +
    388 
    +
    389  Returns:
    +
    390  Result: status of function call
    +
    391  """
    +
    392  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_clientReadBulkASync(client, request, token, cb, userdata))
    +
    393 
    +
    394 
    +
    395 def _clientBrowseBulkASync(client: C_DLR_CLIENT, request, token: bytes, cb: C_DLR_CLIENT_BULK_RESPONSE, userdata: userData_c_void_p) -> Result:
    +
    396  """_clientBrowseBulkASync
    +
    397 
    +
    398  Args:
    +
    399  client (C_DLR_CLIENT): Reference to the client
    +
    400  request (ctypes.POINTER(C_VecBulkRequest)): Requests
    +
    401  token (bytes): Security access token for authentication as JWT payload
    +
    402  cb (C_DLR_CLIENT_BULK_RESPONSE): Callback to call when function is finished
    +
    403  userdata (userData_c_void_p): User data - will be returned in callback as userdata.
    +
    404  You can use this userdata to identify your request
    +
    405 
    +
    406  Returns:
    +
    407  Result: status of function call
    +
    408  """
    +
    409  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_clientBrowseBulkASync(client, request, token, cb, userdata))
    +
    410 
    +
    411 
    +
    412 def _clientMetadataBulkASync(client: C_DLR_CLIENT, request, token: bytes, cb: C_DLR_CLIENT_BULK_RESPONSE, userdata: userData_c_void_p) -> Result:
    +
    413  """_clientMetadataBulkASync
    +
    414 
    +
    415  Args:
    +
    416  client (C_DLR_CLIENT): Reference to the client
    +
    417  request (ctypes.POINTER(C_VecBulkRequest)): Requests
    +
    418  token (bytes): Security access token for authentication as JWT payload
    +
    419  cb (C_DLR_CLIENT_BULK_RESPONSE): Callback to call when function is finished
    +
    420  userdata (userData_c_void_p): User data - will be returned in callback as userdata.
    +
    421  You can use this userdata to identify your request
    +
    422 
    +
    423  Returns:
    +
    424  Result: status of function call
    +
    425  """
    +
    426  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_clientMetadataBulkASync(client, request, token, cb, userdata))
    +
    427 
    +
    428 
    +
    429 def _clientWriteBulkASync(client: C_DLR_CLIENT, request, token: bytes, cb: C_DLR_CLIENT_BULK_RESPONSE, userdata: userData_c_void_p) -> Result:
    +
    430  """_clientWriteBulkASync
    +
    431 
    +
    432  Args:
    +
    433  client (C_DLR_CLIENT): Reference to the client
    +
    434  request (ctypes.POINTER(C_VecBulkRequest)): Requests
    +
    435  token (bytes): Security access token for authentication as JWT payload
    +
    436  cb (C_DLR_CLIENT_BULK_RESPONSE): Callback to call when function is finished
    +
    437  userdata (userData_c_void_p): User data - will be returned in callback as userdata.
    +
    438  You can use this userdata to identify your request
    +
    439 
    +
    440  Returns:
    +
    441  Result: status of function call
    +
    442  """
    +
    443  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_clientWriteBulkASync(client, request, token, cb, userdata))
    +
    444 
    +
    445 
    +
    446 def _clientCreateBulkASync(client: C_DLR_CLIENT, request, token: bytes, cb: C_DLR_CLIENT_BULK_RESPONSE, userdata: userData_c_void_p) -> Result:
    +
    447  """_clientCreateBulkASync
    +
    448 
    +
    449  Args:
    +
    450  client (C_DLR_CLIENT): Reference to the client
    +
    451  request (ctypes.POINTER(C_VecBulkRequest)): Requests
    +
    452  token (bytes): Security access token for authentication as JWT payload
    +
    453  cb (C_DLR_CLIENT_BULK_RESPONSE): Callback to call when function is finished
    +
    454  userdata (userData_c_void_p): User data - will be returned in callback as userdata.
    +
    455  You can use this userdata to identify your request
    +
    456 
    +
    457  Returns:
    +
    458  Result: status of function call
    +
    459  """
    +
    460  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_clientCreateBulkASync(client, request, token, cb, userdata))
    +
    461 
    +
    462 
    +
    463 def _clientDeleteBulkASync(client: C_DLR_CLIENT, request, token: bytes, cb: C_DLR_CLIENT_BULK_RESPONSE, userdata: userData_c_void_p) -> Result:
    +
    464  """_clientDeleteBulkASync
    +
    465 
    +
    466  Args:
    +
    467  client (C_DLR_CLIENT): Reference to the client
    +
    468  request (ctypes.POINTER(C_VecBulkRequest)): Requests
    +
    469  token (bytes): Security access token for authentication as JWT payload
    +
    470  cb (C_DLR_CLIENT_BULK_RESPONSE): Callback to call when function is finished
    +
    471  userdata (userData_c_void_p): User data - will be returned in callback as userdata.
    +
    472  You can use this userdata to identify your request
    +
    473 
    +
    474  Returns:
    +
    475  Result: status of function call
    +
    476  """
    +
    477  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_clientDeleteBulkASync(client, request, token, cb, userdata))
    +
    478 
    +
    479 
    +
    480 class BulkReadRequest:
    +
    481  """Struct for BulkReadRequest
    +
    482  Address for the request
    +
    483  Read argument of the request
    +
    484  """
    +
    485 
    +
    486  def __init__(self, address: str, data: Variant = None):
    +
    487  """Struct for BulkReadRequest
    +
    488 
    +
    489  Args:
    +
    490  address (str): Address for the request
    +
    491  data (Variant, optional): Argument of the request. Defaults to None.
    +
    492  """
    +
    493  self.address = address
    +
    494  self.data = data
    +
    495 
    +
    496 
    +
    497 class BulkWriteRequest:
    +
    498  """Struct for BulkWriteRequest
    +
    499  Address for the request
    +
    500  Write data of the request
    +
    501  """
    +
    502 
    +
    503  def __init__(self, address: str, data: Variant):
    +
    504  """BulkWriteRequest
    +
    505 
    +
    506  Args:
    +
    507  address (str): Address for the request
    +
    508  data (Variant): Write data of the request
    +
    509  """
    +
    510  self.address = address
    +
    511  self.data = data
    +
    512 
    +
    513 
    +
    514 class BulkCreateRequest:
    +
    515  """Struct for BulkCreateRequest
    +
    516  Address for the request
    +
    517  Write data of the request
    +
    518  """
    +
    519 
    +
    520  def __init__(self, address: str, data: Variant = None):
    +
    521  """BulkCreateRequest
    +
    522 
    +
    523  Args:
    +
    524  address (str): Address for the request
    +
    525  data (Variant): Write data of the request
    +
    526  """
    +
    527  self.addressaddress = address
    +
    528  self.datadata = data
    +
    529 
    +
    530 
    +
    531 class Bulk:
    +
    532  """
    +
    533  class Bulk
    +
    534  """
    +
    535  __slots__ = ['_client', '_requests', '__resp_mgr', '__ptr_resp', '__on_cb']
    +
    536 
    +
    537  def __init__(self, c: Client):
    +
    538  """__init__
    +
    539 
    +
    540  Args:
    +
    541  c (Client): Client
    +
    542  """
    +
    543  self._client = c
    +
    544  self._requests: typing.List[_Request] = []
    +
    545  self.__resp_mgr = None
    +
    546  self.__ptr_resp: _CallbackPtr
    +
    547  self.__on_cb = False
    +
    548 
    +
    549  def __enter__(self):
    +
    550  """
    +
    551  use the python context manager
    +
    552  """
    +
    553  return self
    +
    554 
    +
    555  def __exit__(self, exc_type, exc_val, exc_tb):
    +
    556  """
    +
    557  use the python context manager
    +
    558  """
    +
    559  self.close()
    +
    560 
    +
    561  def close(self):
    +
    562  """
    +
    563  close
    +
    564  """
    +
    565  self._client = None
    +
    566  self._requests = []
    +
    567  self.__close_mgr()
    +
    568 
    +
    569  def __create_response_callback(self, cb: ResponseCallback):
    +
    570  """
    +
    571  callback management
    +
    572  """
    +
    573  self.__on_cb = False
    +
    574  cb_ptr = _CallbackPtr()
    +
    575  self.__ptr_resp__ptr_resp = cb_ptr
    +
    576 
    +
    577  def _cb(bulk_resp: ctypes.POINTER(C_VecBulkResponse), userdata: ctypes.c_void_p):
    +
    578  """
    +
    579  datalayer calls this function
    +
    580  """
    +
    581  if bulk_resp is None:
    +
    582  cb(None, userdata)
    +
    583  self.__on_cb__on_cb = True
    +
    584  return
    +
    585  ptr = bulk_resp[0]
    +
    586  resps = []
    +
    587  for i in range(ptr.count):
    +
    588  addr = ptr.response[i].address
    +
    589  data = ptr.response[i].data
    +
    590  time = ptr.response[i].timestamp
    +
    591  result = ptr.response[i].result
    +
    592  resp = Response(addr.decode('utf-8'),
    +
    593  data, time, Result(result))
    +
    594  resps.append(resp)
    +
    595  self.__resp_mgr__resp_mgr.set_responses(resps)
    +
    596  cb(resps, userdata)
    +
    597  self.__on_cb__on_cb = True
    +
    598 
    +
    599  cb_ptr.set_ptr(C_DLR_CLIENT_BULK_RESPONSE(_cb))
    +
    600  return cb_ptr.get_ptr()
    +
    601 
    +
    602  def _test_callback(self, cb: ResponseCallback):
    +
    603  """
    +
    604  internal use
    +
    605  """
    +
    606  return self.__create_response_callback__create_response_callback(cb)
    +
    607 
    +
    608  def _add(self, address: str, data: Variant = None):
    +
    609  """
    +
    610  add bulk request
    +
    611  """
    +
    612  req = _Request(address, data)
    +
    613  self._requests_requests.append(req)
    +
    614 
    +
    615  def read(self, request: typing.List[BulkReadRequest], cb: ResponseCallback = None, userdata: userData_c_void_p = None) -> Result:
    +
    616  """
    +
    617  read
    +
    618 
    +
    619  Bulk read request to read multiple nodes with a single request.
    +
    620  With cb is None, read is called synchronously
    +
    621 
    +
    622  Args:
    +
    623  request (typing.List[BulkReadRequest]): list of requests
    +
    624  cb (ResponseCallback, optional): Callback to call when function is finished. Defaults to None.
    +
    625  userdata (optional): User data - will be returned in callback as userdata. You can use this userdata to identify your request
    +
    626 
    +
    627  Returns:
    +
    628  Result: status of function call
    +
    629  """
    +
    630  self._requests_requests = []
    +
    631  for r in request:
    +
    632  self._add_add(r.address, r.data)
    +
    633  self.__close_mgr__close_mgr()
    +
    634  if cb is not None:
    +
    635  return self._read_async_read_async(cb, userdata)
    +
    636  return self._read_sync_read_sync()
    +
    637 
    +
    638  def _read_async(self, cb: ResponseCallback, userdata: userData_c_void_p) -> Result:
    +
    639  """_read_async
    +
    640 
    +
    641  Returns:
    +
    642  Result: status of function call
    +
    643  """
    +
    644  bulk = _AsyncCreator(self._requests_requests)
    +
    645  result = _clientReadBulkASync(self._client_client.get_handle(),
    +
    646  bulk.get_bulk_request(),
    +
    647  self._client_client.get_token(),
    +
    648  C_DLR_CLIENT_BULK_RESPONSE(
    +
    649  self.__create_response_callback__create_response_callback(cb)),
    +
    650  userdata)
    +
    651  self.__resp_mgr__resp_mgr = _ResponseAsynMgr(bulk)
    +
    652  return result
    +
    653 
    +
    654  def _read_sync(self) -> Result:
    +
    655  """_read_sync
    +
    656 
    +
    657  Returns:
    +
    658  Result: status of function call
    +
    659  """
    +
    660  with _BulkCreator(self._requests_requests) as bulk:
    +
    661  result = _clientBulkReadSync(
    +
    662  self._client_client.get_handle(), bulk.get_handle(), self._client_client.get_token())
    +
    663  if result != Result.OK:
    +
    664  return result
    +
    665  self.__resp_mgr__resp_mgr = _ResponseBulkMgr(bulk.get_handle())
    +
    666  return result
    +
    667 
    +
    668  def write(self, request: typing.List[BulkWriteRequest], cb: ResponseCallback = None, userdata: userData_c_void_p = None) -> Result:
    +
    669  """
    +
    670  write
    +
    671 
    +
    672  Bulk write request to write multiple nodes with a single request
    +
    673  With cb is None, write is called synchronously
    +
    674 
    +
    675  Args:
    +
    676  request (typing.List[BulkWriteRequest]): list of requests
    +
    677  cb (ResponseCallback, optional): callback Callback to call when function is finished. Defaults to None.
    +
    678  userdata (optional): User data - will be returned in callback as userdata. You can use this userdata to identify your request
    +
    679 
    +
    680  Returns:
    +
    681  Result: status of function call
    +
    682  """
    +
    683  self._requests_requests = []
    +
    684  for r in request:
    +
    685  self._add_add(r.address, r.data)
    +
    686  self.__close_mgr__close_mgr()
    +
    687  if cb is not None:
    +
    688  return self._write_async_write_async(cb, userdata)
    +
    689  return self._write_sync_write_sync()
    +
    690 
    +
    691  def _write_sync(self) -> Result:
    +
    692  """_write_sync
    +
    693 
    +
    694  Returns:
    +
    695  Result: status of function call
    +
    696  """
    +
    697  with _BulkCreator(self._requests_requests) as bulk:
    +
    698  result = _clientBulkWriteSync(
    +
    699  self._client_client.get_handle(), bulk.get_handle(), self._client_client.get_token())
    +
    700  if result != Result.OK:
    +
    701  return result
    +
    702  self.__resp_mgr__resp_mgr = _ResponseBulkMgr(bulk.get_handle())
    +
    703  return result
    +
    704 
    +
    705  def _write_async(self, cb: ResponseCallback, userdata: userData_c_void_p) -> Result:
    +
    706  """_write_async
    +
    707 
    +
    708  Returns:
    +
    709  Result: status of function call
    +
    710  """
    +
    711  bulk = _AsyncCreator(self._requests_requests)
    +
    712  result = _clientWriteBulkASync(self._client_client.get_handle(),
    +
    713  bulk.get_bulk_request(),
    +
    714  self._client_client.get_token(),
    +
    715  C_DLR_CLIENT_BULK_RESPONSE(
    +
    716  self.__create_response_callback__create_response_callback(cb)),
    +
    717  userdata)
    +
    718  self.__resp_mgr__resp_mgr = _ResponseAsynMgr(bulk)
    +
    719  return result
    +
    720 
    +
    721  def browse(self, request: typing.List[str], cb: ResponseCallback = None, userdata: userData_c_void_p = None) -> Result:
    +
    722  """
    +
    723  browse
    +
    724 
    +
    725  Bulk browse request to browse multiple nodes with a single request
    +
    726  With cb is None, browse is called synchronously
    +
    727 
    +
    728  Args:
    +
    729  request (typing.List[str]): list of requests
    +
    730  cb (ResponseCallback, optional): callback Callback to call when function is finished. Defaults to None.
    +
    731  userdata (optional): User data - will be returned in callback as userdata. You can use this userdata to identify your request
    +
    732 
    +
    733  Returns:
    +
    734  Result: status of function call
    +
    735  """
    +
    736  self._requests_requests = []
    +
    737  for r in request:
    +
    738  self._add_add(r, None)
    +
    739  self.__close_mgr__close_mgr()
    +
    740  if cb is not None:
    +
    741  return self._browse_async_browse_async(cb, userdata)
    +
    742 
    +
    743  return self._browse_sync_browse_sync()
    +
    744 
    +
    745  def _browse_async(self, cb: ResponseCallback, userdata: userData_c_void_p) -> Result:
    +
    746  """_browse_async
    +
    747 
    +
    748  Returns:
    +
    749  Result: status of function call
    +
    750  """
    +
    751  bulk = _AsyncCreator(self._requests_requests)
    +
    752  result = _clientBrowseBulkASync(self._client_client.get_handle(),
    +
    753  bulk.get_bulk_request(),
    +
    754  self._client_client.get_token(),
    +
    755  C_DLR_CLIENT_BULK_RESPONSE(
    +
    756  self.__create_response_callback__create_response_callback(cb)),
    +
    757  userdata)
    +
    758  self.__resp_mgr__resp_mgr = _ResponseAsynMgr(bulk)
    +
    759  return result
    +
    760 
    +
    761  def _browse_sync(self) -> Result:
    +
    762  """_browse_sync
    +
    763 
    +
    764  Returns:
    +
    765  Result: status of function call
    +
    766  """
    +
    767  with _BulkCreator(self._requests_requests) as bulk:
    +
    768  result = _clientBulkBrowseSync(
    +
    769  self._client_client.get_handle(), bulk.get_handle(), self._client_client.get_token())
    +
    770  if result != Result.OK:
    +
    771  return result
    +
    772  self.__resp_mgr__resp_mgr = _ResponseBulkMgr(bulk.get_handle())
    +
    773  return result
    +
    774 
    +
    775  def metadata(self, request: typing.List[str], cb: ResponseCallback = None, userdata: userData_c_void_p = None) -> Result:
    +
    776  """
    +
    777  metadata
    +
    778 
    +
    779  Bulk metadata request to metadata multiple nodes with a single request
    +
    780  With cb is None, metadata is called synchronously
    +
    781 
    +
    782  Args:
    +
    783  request (typing.List[str]): list of requests
    +
    784  cb (ResponseCallback, optional): callback Callback to call when function is finished. Defaults to None.
    +
    785  userdata (optional): User data - will be returned in callback as userdata. You can use this userdata to identify your request
    +
    786 
    +
    787  Returns:
    +
    788  Result: status of function call
    +
    789  """
    +
    790  self._requests_requests = []
    +
    791  for r in request:
    +
    792  self._add_add(r, None)
    +
    793  self.__close_mgr__close_mgr()
    +
    794  if cb is not None:
    +
    795  return self._metadata_async_metadata_async(cb, userdata)
    +
    796 
    +
    797  return self._metadata_sync_metadata_sync()
    +
    798 
    +
    799  def _metadata_async(self, cb: ResponseCallback, userdata: userData_c_void_p) -> Result:
    +
    800  """_metadata_async
    +
    801 
    +
    802  Returns:
    +
    803  Result: status of function call
    +
    804  """
    +
    805  bulk = _AsyncCreator(self._requests_requests)
    +
    806  result = _clientMetadataBulkASync(self._client_client.get_handle(),
    +
    807  bulk.get_bulk_request(),
    +
    808  self._client_client.get_token(),
    +
    809  C_DLR_CLIENT_BULK_RESPONSE(
    +
    810  self.__create_response_callback__create_response_callback(cb)),
    +
    811  userdata)
    +
    812  self.__resp_mgr__resp_mgr = _ResponseAsynMgr(bulk)
    +
    813  return result
    +
    814 
    +
    815  def _metadata_sync(self) -> Result:
    +
    816  """_metadata_sync
    +
    817 
    +
    818  Returns:
    +
    819  Result: status of function call
    +
    820  """
    +
    821  with _BulkCreator(self._requests_requests) as bulk:
    +
    822  result = _clientBulkMetadataSync(
    +
    823  self._client_client.get_handle(), bulk.get_handle(), self._client_client.get_token())
    +
    824  if result != Result.OK:
    +
    825  return result
    +
    826  self.__resp_mgr__resp_mgr = _ResponseBulkMgr(bulk.get_handle())
    +
    827  return result
    +
    828 
    +
    829  def create(self, request: typing.List[BulkCreateRequest], cb: ResponseCallback = None, userdata: userData_c_void_p = None) -> Result:
    +
    830  """
    +
    831  create
    +
    832 
    +
    833  Bulk create request to create multiple nodes with a single request
    +
    834  With cb is None, create is called synchronously
    +
    835 
    +
    836  Args:
    +
    837  request (typing.List[BulkCreateRequest]): list of requests
    +
    838  cb (ResponseCallback, optional): callback Callback to call when function is finished. Defaults to None.
    +
    839  userdata (optional): User data - will be returned in callback as userdata. You can use this userdata to identify your request
    +
    840 
    +
    841  Returns:
    +
    842  Result: status of function call
    +
    843  """
    +
    844  self._requests_requests = []
    +
    845  for r in request:
    +
    846  self._add_add(r.address, r.data)
    +
    847  self.__close_mgr__close_mgr()
    +
    848  if cb is not None:
    +
    849  return self._create_async_create_async(cb, userdata)
    +
    850  return self._create_sync_create_sync()
    +
    851 
    +
    852  def _create_sync(self) -> Result:
    +
    853  """_create_sync
    +
    854 
    +
    855  Returns:
    +
    856  Result: status of function call
    +
    857  """
    +
    858  with _BulkCreator(self._requests_requests) as bulk:
    +
    859  result = _clientBulkCreateSync(
    +
    860  self._client_client.get_handle(), bulk.get_handle(), self._client_client.get_token())
    +
    861  if result != Result.OK:
    +
    862  return result
    +
    863  self.__resp_mgr__resp_mgr = _ResponseBulkMgr(bulk.get_handle())
    +
    864  return result
    +
    865 
    +
    866  def _create_async(self, cb: ResponseCallback, userdata: userData_c_void_p) -> Result:
    +
    867  """_create_async
    +
    868 
    +
    869  Returns:
    +
    870  Result: status of function call
    +
    871  """
    +
    872  bulk = _AsyncCreator(self._requests_requests)
    +
    873  result = _clientCreateBulkASync(self._client_client.get_handle(),
    +
    874  bulk.get_bulk_request(),
    +
    875  self._client_client.get_token(),
    +
    876  C_DLR_CLIENT_BULK_RESPONSE(
    +
    877  self.__create_response_callback__create_response_callback(cb)),
    +
    878  userdata)
    +
    879  self.__resp_mgr__resp_mgr = _ResponseAsynMgr(bulk)
    +
    880  return result
    +
    881 
    +
    882  def delete(self, request: typing.List[str], cb: ResponseCallback = None, userdata: userData_c_void_p = None) -> Result:
    +
    883  """
    +
    884  delete
    +
    885 
    +
    886  Bulk delete request to delete multiple nodes with a single request
    +
    887  With cb is None, delete is called synchronously
    +
    888 
    +
    889  Args:
    +
    890  request (typing.List[str]): list of requests
    +
    891  cb (ResponseCallback, optional): callback Callback to call when function is finished. Defaults to None.
    +
    892  userdata (optional): User data - will be returned in callback as userdata. You can use this userdata to identify your request
    +
    893 
    +
    894  Returns:
    +
    895  Result: status of function call
    +
    896  """
    +
    897  self._requests_requests = []
    +
    898  for r in request:
    +
    899  self._add_add(r, None)
    +
    900  self.__close_mgr__close_mgr()
    +
    901  if cb is not None:
    +
    902  return self._delete_async_delete_async(cb, userdata)
    +
    903  return self._delete_sync_delete_sync()
    +
    904 
    +
    905  def _delete_sync(self) -> Result:
    +
    906  """_delete_sync
    +
    907 
    +
    908  Returns:
    +
    909  Result: status of function call
    +
    910  """
    +
    911  with _BulkCreator(self._requests_requests) as bulk:
    +
    912  result = _clientBulkDeleteSync(
    +
    913  self._client_client.get_handle(), bulk.get_handle(), self._client_client.get_token())
    +
    914  if result != Result.OK:
    +
    915  return result
    +
    916  self.__resp_mgr__resp_mgr = _ResponseBulkMgr(bulk.get_handle())
    +
    917  return result
    +
    918 
    +
    919  def _delete_async(self, cb: ResponseCallback, userdata: userData_c_void_p) -> Result:
    +
    920  """_delete_async
    +
    921 
    +
    922  Returns:
    +
    923  Result: status of function call
    +
    924  """
    +
    925  bulk = _AsyncCreator(self._requests_requests)
    +
    926  result = _clientDeleteBulkASync(self._client_client.get_handle(),
    +
    927  bulk.get_bulk_request(),
    +
    928  self._client_client.get_token(),
    +
    929  C_DLR_CLIENT_BULK_RESPONSE(
    +
    930  self.__create_response_callback__create_response_callback(cb)),
    +
    931  userdata)
    +
    932  self.__resp_mgr__resp_mgr = _ResponseAsynMgr(bulk)
    +
    933  return result
    +
    934 
    +
    935  def get_response(self) -> typing.List[Response]:
    +
    936  """
    +
    937  get_response
    +
    938 
    +
    939  Returns:
    +
    940  typing.List[Response]: List of response
    +
    941  """
    +
    942  if self.__resp_mgr__resp_mgr is None:
    +
    943  return []
    +
    944  return self.__resp_mgr__resp_mgr.get_response()
    +
    945 
    +
    946  def __close_mgr(self):
    +
    947  """__close_mgr
    +
    948  """
    +
    949  if self.__resp_mgr__resp_mgr is not None:
    +
    950  self.__resp_mgr__resp_mgr.close()
    +
    951  self.__resp_mgr__resp_mgr = None
    +
    Struct for BulkCreateRequest Address for the request Write data of the request.
    Definition: bulk.py:558
    +
    Struct for BulkReadRequest Address for the request Read argument of the request.
    Definition: bulk.py:524
    +
    def __init__(self, str address, Variant data=None)
    Struct for BulkReadRequest.
    Definition: bulk.py:532
    + + +
    Struct for BulkWriteRequest Address for the request Write data of the request.
    Definition: bulk.py:541
    + +
    Result _create_sync(self)
    Definition: bulk.py:923
    +
    Result _read_async(self, ResponseCallback cb, userData_c_void_p userdata)
    Definition: bulk.py:693
    +
    def _add(self, str address, Variant data=None)
    Definition: bulk.py:659
    +
    Result write(self, typing.List[BulkWriteRequest] request, ResponseCallback cb=None, userData_c_void_p userdata=None)
    write
    Definition: bulk.py:734
    +
    Result read(self, typing.List[BulkReadRequest] request, ResponseCallback cb=None, userData_c_void_p userdata=None)
    read
    Definition: bulk.py:677
    +
    Result _write_async(self, ResponseCallback cb, userData_c_void_p userdata)
    Definition: bulk.py:766
    +
    Result _delete_async(self, ResponseCallback cb, userData_c_void_p userdata)
    Definition: bulk.py:996
    +
    Result _browse_sync(self)
    Definition: bulk.py:826
    +
    def __create_response_callback(self, ResponseCallback cb)
    Definition: bulk.py:614
    +
    Result _metadata_async(self, ResponseCallback cb, userData_c_void_p userdata)
    Definition: bulk.py:866
    +
    Result _delete_sync(self)
    Definition: bulk.py:980
    +
    typing.List[Response] get_response(self)
    get_response
    Definition: bulk.py:1013
    + +
    Result browse(self, typing.List[str] request, ResponseCallback cb=None, userData_c_void_p userdata=None)
    browse
    Definition: bulk.py:791
    +
    Result create(self, typing.List[BulkCreateRequest] request, ResponseCallback cb=None, userData_c_void_p userdata=None)
    create
    Definition: bulk.py:907
    +
    Result _create_async(self, ResponseCallback cb, userData_c_void_p userdata)
    Definition: bulk.py:939
    +
    Result metadata(self, typing.List[str] request, ResponseCallback cb=None, userData_c_void_p userdata=None)
    metadata
    Definition: bulk.py:849
    +
    Result _read_sync(self)
    Definition: bulk.py:711
    +
    def close(self)
    close
    Definition: bulk.py:604
    + +
    Result delete(self, typing.List[str] request, ResponseCallback cb=None, userData_c_void_p userdata=None)
    delete
    Definition: bulk.py:964
    + + +
    Result _write_sync(self)
    Definition: bulk.py:750
    +
    def __close_mgr(self)
    Definition: bulk.py:1022
    +
    Result _metadata_sync(self)
    Definition: bulk.py:884
    +
    Result _browse_async(self, ResponseCallback cb, userData_c_void_p userdata)
    Definition: bulk.py:808
    + +
    class Bulk Response
    Definition: bulk.py:23
    +
    def __exit__(self, exc_type, exc_val, exc_tb)
    use the python context manager
    Definition: bulk.py:50
    +
    def __enter__(self)
    use the python context manager
    Definition: bulk.py:44
    +
    def __init__(self, str addr, C_DLR_VARIANT data, ctypes.c_uint64 time, Result result)
    init Response Bulk
    Definition: bulk.py:34
    + +
    str get_address(self)
    get_address
    Definition: bulk.py:65
    +
    datetime.datetime get_datetime(self)
    get_datetime
    Definition: bulk.py:93
    +
    def close(self)
    close
    Definition: bulk.py:56
    + + + +
    Result get_result(self)
    get_result
    Definition: bulk.py:73
    +
    Variant get_data(self)
    get_data
    Definition: bulk.py:82
    +
    class _ResponseAsynMgr
    Definition: bulk.py:272
    +
    def __exit__(self, exc_type, exc_val, exc_tb)
    use the python context manager
    Definition: bulk.py:295
    + + +
    def __init__(self, _AsyncCreator ac)
    init
    Definition: bulk.py:281
    + +
    def set_responses(self, typing.List[Response] responses)
    set_responses
    Definition: bulk.py:300
    +
    class _ResponseBulkMgr
    Definition: bulk.py:234
    +
    def __exit__(self, exc_type, exc_val, exc_tb)
    use the python context manager
    Definition: bulk.py:263
    +
    def __enter__(self)
    use the python context manager
    Definition: bulk.py:257
    +
    def __init__(self, C_DLR_BULK bulk)
    init
    Definition: bulk.py:242
    +
    class _ResponseMgr
    Definition: bulk.py:187
    +
    def __exit__(self, exc_type, exc_val, exc_tb)
    use the python context manager
    Definition: bulk.py:208
    +
    def __enter__(self)
    use the python context manager
    Definition: bulk.py:202
    +
    typing.List[Response] get_response(self)
    get_response
    Definition: bulk.py:225
    + + + + + + + + + + + + +
    +
    + + + + diff --git a/3.4.0/api/python/bulk__util_8py_source.html b/3.4.0/api/python/bulk__util_8py_source.html new file mode 100644 index 000000000..2c7b0cb34 --- /dev/null +++ b/3.4.0/api/python/bulk__util_8py_source.html @@ -0,0 +1,397 @@ + + + + + + + +ctrlX Data Layer API for Python: /var/jenkins/workspace/script.python.datalayer/ctrlxdatalayer/bulk_util.py Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    bulk_util.py
    +
    +
    +
    1 """
    +
    2 bulk util
    +
    3 
    +
    4 """
    +
    5 import ctypes
    +
    6 import typing
    +
    7 
    +
    8 import ctrlxdatalayer
    +
    9 from ctrlxdatalayer.clib_bulk import (C_DLR_BULK, C_BulkRequest,
    +
    10  C_VecBulkRequest)
    +
    11 from ctrlxdatalayer.clib_variant import C_DLR_VARIANT
    +
    12 from ctrlxdatalayer.variant import Result, Variant, VariantRef, copy
    +
    13 
    +
    14 
    +
    15 class _Request:
    +
    16  """
    +
    17  class Bulk _Request
    +
    18  """
    +
    19  __slots__ = ['__address', '__data']
    +
    20 
    +
    21  def __init__(self, addr: str, data: Variant):
    +
    22  """
    +
    23  init Request parameters
    +
    24  """
    +
    25  self.__address__address = addr.encode('utf-8') # !!
    +
    26  self.__data__data = None if data is None else data.get_handle()
    +
    27 
    +
    28  def __enter__(self):
    +
    29  """
    +
    30  use the python context manager
    +
    31  """
    +
    32  return self
    +
    33 
    +
    34  def __exit__(self, exc_type, exc_val, exc_tb):
    +
    35  """
    +
    36  use the python context manager
    +
    37  """
    +
    38  self.closeclose()
    +
    39 
    +
    40  def close(self):
    +
    41  """
    +
    42  close
    +
    43  """
    +
    44  pass
    +
    45 
    +
    46  def get_address(self) -> bytes:
    +
    47  """
    +
    48  get_address
    +
    49 
    +
    50  Returns:
    +
    51  str: Address of the request
    +
    52  """
    +
    53  return self.__address
    +
    54 
    +
    55  def get_data(self) -> C_DLR_VARIANT:
    +
    56  """
    +
    57  get_data
    +
    58 
    +
    59  Returns:
    +
    60  C_DLR_VARIANT: Input data of the request
    +
    61  """
    +
    62  return self.__data__data
    +
    63 
    +
    64 
    +
    65 def _bulkDelete(bulk: C_DLR_BULK):
    +
    66  """_bulkDelete
    +
    67 
    +
    68  Args:
    +
    69  bulk (C_DLR_BULK): Reference to the bulk
    +
    70  """
    +
    71  ctrlxdatalayer.clib.libcomm_datalayer.DLR_bulkDelete(bulk)
    +
    72 
    +
    73 
    +
    74 def _bulkCreate(size: int) -> C_DLR_BULK:
    +
    75  """_bulkCreate
    +
    76 
    +
    77  Args:
    +
    78  size (int): size of bulk requests
    +
    79 
    +
    80  Returns:
    +
    81  C_DLR_BULK: Reference to the bulk
    +
    82  """
    +
    83  return ctrlxdatalayer.clib.libcomm_datalayer.DLR_bulkCreate(
    +
    84  ctypes.c_size_t(size))
    +
    85 
    +
    86 
    +
    87 def _bulkSetRequestAddress(bulk: C_DLR_BULK, i: int, addr: bytes) -> Result:
    +
    88  """_bulkSetRequestAddress
    +
    89 
    +
    90  Args:
    +
    91  bulk (C_DLR_BULK): Reference to the bulk
    +
    92  i (int): index [0..]
    +
    93  addr (bytes): address
    +
    94 
    +
    95  Returns:
    +
    96  Result: status of function call
    +
    97  """
    +
    98  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_bulkSetRequestAddress(
    +
    99  bulk, ctypes.c_size_t(i), addr))
    +
    100 
    +
    101 
    +
    102 def _bulkSetRequestData(bulk: C_DLR_BULK, i: int, data: C_DLR_VARIANT):
    +
    103  """_bulkSetRequestData
    +
    104 
    +
    105  Args:
    +
    106  bulk (C_DLR_BULK): Reference to the bulk
    +
    107  i (int): index [0..]
    +
    108  data (C_DLR_VARIANT): Argument of read of write data
    +
    109 
    +
    110  Returns:
    +
    111  Result: status of function call
    +
    112  """
    +
    113  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_bulkSetRequestData(
    +
    114  bulk, ctypes.c_size_t(i), data))
    +
    115 
    +
    116 
    +
    117 class _BulkCreator:
    +
    118  """
    +
    119  class _BulkCreator
    +
    120  """
    +
    121  __slots__ = ['__bulk']
    +
    122 
    +
    123  def __init__(self, reqs: typing.List[_Request]):
    +
    124  """
    +
    125  __init__
    +
    126 
    +
    127  Args:
    +
    128  reqs (typing.List[_Request]): List of request
    +
    129  """
    +
    130  self.__bulk = None
    +
    131  self.__create(reqs)
    +
    132 
    +
    133  def __enter__(self):
    +
    134  """
    +
    135  use the python context manager
    +
    136  """
    +
    137  return self
    +
    138 
    +
    139  def __exit__(self, exc_type, exc_val, exc_tb):
    +
    140  """
    +
    141  use the python context manager
    +
    142  """
    +
    143  self.closeclose()
    +
    144 
    +
    145  def close(self):
    +
    146  """
    +
    147  close
    +
    148  """
    +
    149  if self.__bulk__bulk is None:
    +
    150  return
    +
    151  _bulkDelete(self.__bulk__bulk)
    +
    152  self.__bulk__bulk = None
    +
    153 
    +
    154  def get_handle(self) -> C_DLR_BULK:
    +
    155  """get_handle
    +
    156 
    +
    157  Returns:
    +
    158  clib_client.C_DLR_BULK: handle value of bulk
    +
    159  """
    +
    160  return self.__bulk__bulk
    +
    161 
    +
    162  def __create(self, reqs: typing.List[_Request]):
    +
    163  """__create
    +
    164 
    +
    165  Args:
    +
    166  reqs (typing.List[_Request]): List of request
    +
    167 
    +
    168  Returns:
    +
    169  clib_client.C_DLR_BULK: handle value of bulk
    +
    170  """
    +
    171  req_len = len(reqs)
    +
    172  bulk = _bulkCreate(req_len)
    +
    173 
    +
    174  i = 0
    +
    175  for r in reqs:
    +
    176  result = _bulkSetRequestAddress(bulk, i, r.get_address())
    +
    177  if result != Result.OK:
    +
    178  print(f"set address error {result}")
    +
    179  return None
    +
    180  if r.get_data() is not None:
    +
    181  result = _bulkSetRequestData(bulk, i, r.get_data())
    +
    182  if result != Result.OK:
    +
    183  print(f"set data error {result}")
    +
    184  return None
    +
    185  i += 1
    +
    186  self.__bulk__bulk = bulk
    +
    187 
    +
    188 
    +
    189 def _createBulkRequest(count: int):
    +
    190  """def _createBulkRequest(count: int):
    +
    191 
    +
    192  Args:
    +
    193  count (int): size of bulk requests
    +
    194 
    +
    195  Returns:
    +
    196  ctypes.POINTER(C_VecBulkRequest): Reference to the bulk request
    +
    197  """
    +
    198  return ctrlxdatalayer.clib.libcomm_datalayer.DLR_createBulkRequest(ctypes.c_size_t(count))
    +
    199 
    +
    200 
    +
    201 def _deleteBulkRequest(bulk_req):
    +
    202  """def _deleteBulkRequest(count: int):
    +
    203 
    +
    204  Args:
    +
    205  ctypes.POINTER(C_VecBulkRequest): Reference to the bulk request
    +
    206  """
    +
    207  ctrlxdatalayer.clib.libcomm_datalayer.DLR_deleteBulkRequest(bulk_req)
    +
    208 
    +
    209 
    +
    210 class _AsyncCreator:
    +
    211  """
    +
    212  class _AsyncCreator
    +
    213  """
    +
    214  __slots__ = ['__bulk_request']
    +
    215 
    +
    216  def __init__(self, reqs: typing.List[_Request]):
    +
    217  """
    +
    218  __init__
    +
    219 
    +
    220  Args:
    +
    221  reqs (typing.List[_Request]): List of request
    +
    222  """
    +
    223  self.__bulk_request = None
    +
    224  self.__create__create(reqs)
    +
    225 
    +
    226  def __enter__(self):
    +
    227  """
    +
    228  use the python context manager
    +
    229  """
    +
    230  return self
    +
    231 
    +
    232  def __exit__(self, exc_type, exc_val, exc_tb):
    +
    233  """
    +
    234  use the python context manager
    +
    235  """
    +
    236  self.closeclose()
    +
    237 
    +
    238  def close(self):
    +
    239  """
    +
    240  close
    +
    241  """
    +
    242  if self.__bulk_request__bulk_request is not None:
    +
    243  _deleteBulkRequest(self.__bulk_request__bulk_request)
    +
    244 
    +
    245  def get_bulk_request(self) -> ctypes.POINTER(C_VecBulkRequest):
    +
    246  """get_bulk_request
    +
    247 
    +
    248  Returns:
    +
    249  ctypes.POINTER: pointer of C_VecBulkRequest
    +
    250  """
    +
    251  return self.__bulk_request__bulk_request
    +
    252 
    +
    253  def __create(self, reqs: typing.List[_Request]):
    +
    254  """__create
    +
    255 
    +
    256  Args:
    +
    257  reqs (typing.List[_Request]): List of request
    +
    258 
    +
    259  Returns:
    +
    260  clib_client.C_DLR_BULK: handle value of bulk
    +
    261  """
    +
    262  req_len = len(reqs)
    +
    263  bulkreq = _createBulkRequest(req_len)
    +
    264  ptr = ctypes.cast(bulkreq[0].request, ctypes.POINTER(
    +
    265  C_BulkRequest*req_len))
    +
    266  i = 0
    +
    267  for r in reqs:
    +
    268  ptr[0][i].address = r.get_address()
    +
    269  if r.get_data() is not None:
    +
    270  copy(VariantRef(ptr[0][i].data), VariantRef(r.get_data()))
    +
    271  i += 1
    +
    272  self.__bulk_request__bulk_request = bulkreq
    + + +
    ctypes.POINTER(C_VecBulkRequest) get_bulk_request(self)
    get_bulk_request
    Definition: bulk_util.py:270
    + + + +
    def __exit__(self, exc_type, exc_val, exc_tb)
    use the python context manager
    Definition: bulk_util.py:154
    +
    def __init__(self, typing.List[_Request] reqs)
    init
    Definition: bulk_util.py:141
    +
    def __enter__(self)
    use the python context manager
    Definition: bulk_util.py:148
    + +
    def __create(self, typing.List[_Request] reqs)
    Definition: bulk_util.py:184
    +
    C_DLR_BULK get_handle(self)
    get_handle
    Definition: bulk_util.py:171
    + +
    def __exit__(self, exc_type, exc_val, exc_tb)
    use the python context manager
    Definition: bulk_util.py:39
    +
    def __init__(self, str addr, Variant data)
    init Request parameters
    Definition: bulk_util.py:26
    +
    def __enter__(self)
    use the python context manager
    Definition: bulk_util.py:33
    + +
    bytes get_address(self)
    get_address
    Definition: bulk_util.py:54
    +
    C_DLR_VARIANT get_data(self)
    get_data
    Definition: bulk_util.py:63
    + + + + + +
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1Bulk-members.html b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1Bulk-members.html new file mode 100644 index 000000000..422c3fbc6 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1Bulk-members.html @@ -0,0 +1,114 @@ + + + + + + + +ctrlX Data Layer API for Python: Member List + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    Bulk Member List
    +
    +
    + +

    This is the complete list of members for Bulk, including all inherited members.

    + + + + + + + + + + + + +
    __enter__(self)Bulk
    __exit__(self, exc_type, exc_val, exc_tb)Bulk
    __init__(self, Client c)Bulk
    browse(self, typing.List[str] request, ResponseCallback cb=None, userData_c_void_p userdata=None)Bulk
    close(self)Bulk
    create(self, typing.List[BulkCreateRequest] request, ResponseCallback cb=None, userData_c_void_p userdata=None)Bulk
    delete(self, typing.List[str] request, ResponseCallback cb=None, userData_c_void_p userdata=None)Bulk
    get_response(self)Bulk
    metadata(self, typing.List[str] request, ResponseCallback cb=None, userData_c_void_p userdata=None)Bulk
    read(self, typing.List[BulkReadRequest] request, ResponseCallback cb=None, userData_c_void_p userdata=None)Bulk
    write(self, typing.List[BulkWriteRequest] request, ResponseCallback cb=None, userData_c_void_p userdata=None)Bulk
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1Bulk.html b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1Bulk.html new file mode 100644 index 000000000..65f94c338 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1Bulk.html @@ -0,0 +1,554 @@ + + + + + + + +ctrlX Data Layer API for Python: Bulk Class Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    Bulk Class Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    def __init__ (self, Client c)
     
    +def __enter__ (self)
     
    +def __exit__ (self, exc_type, exc_val, exc_tb)
     
    Result browse (self, typing.List[str] request, ResponseCallback cb=None, userData_c_void_p userdata=None)
     
    +def close (self)
     
    Result create (self, typing.List[BulkCreateRequest] request, ResponseCallback cb=None, userData_c_void_p userdata=None)
     
    Result delete (self, typing.List[str] request, ResponseCallback cb=None, userData_c_void_p userdata=None)
     
    typing.List[Responseget_response (self)
     
    Result metadata (self, typing.List[str] request, ResponseCallback cb=None, userData_c_void_p userdata=None)
     
    Result read (self, typing.List[BulkReadRequest] request, ResponseCallback cb=None, userData_c_void_p userdata=None)
     
    Result write (self, typing.List[BulkWriteRequest] request, ResponseCallback cb=None, userData_c_void_p userdata=None)
     
    +

    Detailed Description

    +

    class Bulk

    + +

    Definition at line 574 of file bulk.py.

    +

    Constructor & Destructor Documentation

    + +

    ◆ __init__()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    def __init__ ( self,
    Client c 
    )
    +
    + +

    init

    +
    Parameters
    + + +
    cClient
    +
    +
    + +

    Definition at line 582 of file bulk.py.

    + +

    References Bulk.__on_cb, SubscriptionAsync.__on_cb, Bulk.__ptr_resp, SubscriptionAsync.__ptr_resp, Bulk.__resp_mgr, Bulk._client, and Bulk._requests.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ browse()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Result browse ( self,
    typing.List[str] request,
    ResponseCallback  cb = None,
    userData_c_void_p  userdata = None 
    )
    +
    + +

    browse

    +
       Bulk browse request to browse multiple nodes with a single request
    +   With cb is None, browse is called synchronously
    +
    Parameters
    + + + +
    requestlist of requests cb (ResponseCallback, optional): callback Callback to call when function is finished. Defaults to None.
    userdataUser data - will be returned in callback as userdata. You can use this userdata to identify your request
    +
    +
    +
    Returns
    +
    +Result status of function call
    + +

    Definition at line 791 of file bulk.py.

    + +

    References Bulk.__close_mgr(), SubscriptionAsync.__create_response_callback(), Bulk.__create_response_callback(), Bulk.__resp_mgr, Bulk._add(), Bulk._browse_async(), Bulk._browse_sync(), Bulk._client, and Bulk._requests.

    + +
    +
    + +

    ◆ create()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Result create ( self,
    typing.List[BulkCreateRequestrequest,
    ResponseCallback  cb = None,
    userData_c_void_p  userdata = None 
    )
    +
    + +

    create

    +
       Bulk create request to create multiple nodes with a single request
    +   With cb is None, create is called synchronously
    +
    Parameters
    + + + +
    requestlist of requests cb (ResponseCallback, optional): callback Callback to call when function is finished. Defaults to None.
    userdataUser data - will be returned in callback as userdata. You can use this userdata to identify your request
    +
    +
    +
    Returns
    +
    +Result status of function call
    + +

    Definition at line 907 of file bulk.py.

    + +

    References Bulk.__close_mgr(), SubscriptionAsync.__create_response_callback(), Bulk.__create_response_callback(), Bulk.__resp_mgr, Bulk._add(), Bulk._client, Bulk._create_async(), Bulk._create_sync(), and Bulk._requests.

    + +
    +
    + +

    ◆ delete()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Result delete ( self,
    typing.List[str] request,
    ResponseCallback  cb = None,
    userData_c_void_p  userdata = None 
    )
    +
    + +

    delete

    +
       Bulk delete request to delete multiple nodes with a single request
    +   With cb is None, delete is called synchronously
    +
    Parameters
    + + + +
    requestlist of requests cb (ResponseCallback, optional): callback Callback to call when function is finished. Defaults to None.
    userdataUser data - will be returned in callback as userdata. You can use this userdata to identify your request
    +
    +
    +
    Returns
    +
    +Result status of function call
    + +

    Definition at line 964 of file bulk.py.

    + +

    References Bulk.__close_mgr(), SubscriptionAsync.__create_response_callback(), Bulk.__create_response_callback(), Bulk.__resp_mgr, Bulk._add(), Bulk._client, Bulk._delete_async(), Bulk._delete_sync(), and Bulk._requests.

    + +
    +
    + +

    ◆ get_response()

    + +
    +
    + + + + + + + + +
    typing.List[Response] get_response ( self)
    +
    + +

    get_response

    +
    Returns
    +
    +typing List of response
    + +

    Definition at line 1013 of file bulk.py.

    + +

    References Bulk.__resp_mgr, and Bulk.close().

    + +
    +
    + +

    ◆ metadata()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Result metadata ( self,
    typing.List[str] request,
    ResponseCallback  cb = None,
    userData_c_void_p  userdata = None 
    )
    +
    + +

    metadata

    +
       Bulk metadata request to metadata multiple nodes with a single request
    +   With cb is None, metadata is called synchronously
    +
    Parameters
    + + + +
    requestlist of requests cb (ResponseCallback, optional): callback Callback to call when function is finished. Defaults to None.
    userdataUser data - will be returned in callback as userdata. You can use this userdata to identify your request
    +
    +
    +
    Returns
    +
    +Result status of function call
    + +

    Definition at line 849 of file bulk.py.

    + +

    References Bulk.__close_mgr(), SubscriptionAsync.__create_response_callback(), Bulk.__create_response_callback(), Bulk.__resp_mgr, Bulk._add(), Bulk._client, Bulk._metadata_async(), Bulk._metadata_sync(), and Bulk._requests.

    + +
    +
    + +

    ◆ read()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Result read ( self,
    typing.List[BulkReadRequestrequest,
    ResponseCallback  cb = None,
    userData_c_void_p  userdata = None 
    )
    +
    + +

    read

    +
       Bulk read request to read multiple nodes with a single request.
    +   With cb is None, read is called synchronously
    +
    Parameters
    + + + +
    requestlist of requests cb (ResponseCallback, optional): Callback to call when function is finished. Defaults to None.
    userdataUser data - will be returned in callback as userdata. You can use this userdata to identify your request
    +
    +
    +
    Returns
    +
    +Result status of function call
    + +

    Definition at line 677 of file bulk.py.

    + +

    References Bulk.__close_mgr(), SubscriptionAsync.__create_response_callback(), Bulk.__create_response_callback(), Bulk.__resp_mgr, Bulk._add(), Bulk._client, Bulk._read_async(), Bulk._read_sync(), and Bulk._requests.

    + +
    +
    + +

    ◆ write()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Result write ( self,
    typing.List[BulkWriteRequestrequest,
    ResponseCallback  cb = None,
    userData_c_void_p  userdata = None 
    )
    +
    + +

    write

    +
       Bulk write request to write multiple nodes with a single request
    +   With cb is None, write is called synchronously
    +
    Parameters
    + + + +
    requestlist of requests cb (ResponseCallback, optional): callback Callback to call when function is finished. Defaults to None.
    userdataUser data - will be returned in callback as userdata. You can use this userdata to identify your request
    +
    +
    +
    Returns
    +
    +Result status of function call
    + +

    Definition at line 734 of file bulk.py.

    + +

    References Bulk.__close_mgr(), SubscriptionAsync.__create_response_callback(), Bulk.__create_response_callback(), Bulk.__resp_mgr, Bulk._add(), Bulk._client, Bulk._requests, Bulk._write_async(), and Bulk._write_sync().

    + +
    +
    +
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1Bulk.js b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1Bulk.js new file mode 100644 index 000000000..83a35da49 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1Bulk.js @@ -0,0 +1,14 @@ +var classctrlxdatalayer_1_1bulk_1_1Bulk = +[ + [ "__init__", "classctrlxdatalayer_1_1bulk_1_1Bulk.html#a01ad4c2b877b990eb9b6c9bc973fa749", null ], + [ "__enter__", "classctrlxdatalayer_1_1bulk_1_1Bulk.html#a404692262c90487a8013dbdd128cdd7f", null ], + [ "__exit__", "classctrlxdatalayer_1_1bulk_1_1Bulk.html#a1d4375d5b88ea11310dcd3bfb10ecb97", null ], + [ "browse", "classctrlxdatalayer_1_1bulk_1_1Bulk.html#a67d6caf627c2d3b657b9cc622a9c9608", null ], + [ "close", "classctrlxdatalayer_1_1bulk_1_1Bulk.html#a8639372c33e15084a7f7c4d9d87b7bfe", null ], + [ "create", "classctrlxdatalayer_1_1bulk_1_1Bulk.html#a68b570345086320f449d9b6e25382508", null ], + [ "delete", "classctrlxdatalayer_1_1bulk_1_1Bulk.html#a9aaab0b04160f55559e1e4cea136a821", null ], + [ "get_response", "classctrlxdatalayer_1_1bulk_1_1Bulk.html#a5c6716a7af505ad22c0b5bbef1b2f868", null ], + [ "metadata", "classctrlxdatalayer_1_1bulk_1_1Bulk.html#a85de33ea82d0b5f03c9202f143613c6e", null ], + [ "read", "classctrlxdatalayer_1_1bulk_1_1Bulk.html#a2069c5a977cebb1d92c684b03852391c", null ], + [ "write", "classctrlxdatalayer_1_1bulk_1_1Bulk.html#a1952b6905816ea9de9cafe94a28561a9", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1BulkCreateRequest-members.html b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1BulkCreateRequest-members.html new file mode 100644 index 000000000..85cf528d5 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1BulkCreateRequest-members.html @@ -0,0 +1,106 @@ + + + + + + + +ctrlX Data Layer API for Python: Member List + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    BulkCreateRequest Member List
    +
    +
    + +

    This is the complete list of members for BulkCreateRequest, including all inherited members.

    + + + + +
    __init__(self, str address, Variant data=None)BulkCreateRequest
    address (defined in BulkCreateRequest)BulkCreateRequest
    data (defined in BulkCreateRequest)BulkCreateRequest
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1BulkCreateRequest.html b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1BulkCreateRequest.html new file mode 100644 index 000000000..d81205931 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1BulkCreateRequest.html @@ -0,0 +1,172 @@ + + + + + + + +ctrlX Data Layer API for Python: BulkCreateRequest Class Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    BulkCreateRequest Class Reference
    +
    +
    + + + + +

    +Public Member Functions

    def __init__ (self, str address, Variant data=None)
     
    + + + + + +

    +Public Attributes

    address
     
    data
     
    +

    Detailed Description

    +

    Struct for BulkCreateRequest Address for the request Write data of the request.

    + +

    Definition at line 558 of file bulk.py.

    +

    Constructor & Destructor Documentation

    + +

    ◆ __init__()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    def __init__ ( self,
    str address,
    Variant  data = None 
    )
    +
    + +

    BulkCreateRequest.

    +
    Parameters
    + + + +
    addressAddress for the request
    dataWrite data of the request
    +
    +
    + +

    Definition at line 566 of file bulk.py.

    + +

    References BulkReadRequest.address, BulkWriteRequest.address, BulkCreateRequest.address, BulkReadRequest.data, BulkWriteRequest.data, and BulkCreateRequest.data.

    + +
    +
    +
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1BulkCreateRequest.js b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1BulkCreateRequest.js new file mode 100644 index 000000000..8e0486582 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1BulkCreateRequest.js @@ -0,0 +1,6 @@ +var classctrlxdatalayer_1_1bulk_1_1BulkCreateRequest = +[ + [ "__init__", "classctrlxdatalayer_1_1bulk_1_1BulkCreateRequest.html#a01278ebd1178bd7ee028e30ebf19f7f6", null ], + [ "address", "classctrlxdatalayer_1_1bulk_1_1BulkCreateRequest.html#ade5a18d52133ef21f211020ceb464c07", null ], + [ "data", "classctrlxdatalayer_1_1bulk_1_1BulkCreateRequest.html#a511ae0b1c13f95e5f08f1a0dd3da3d93", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1BulkReadRequest-members.html b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1BulkReadRequest-members.html new file mode 100644 index 000000000..b59591a66 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1BulkReadRequest-members.html @@ -0,0 +1,106 @@ + + + + + + + +ctrlX Data Layer API for Python: Member List + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    BulkReadRequest Member List
    +
    +
    + +

    This is the complete list of members for BulkReadRequest, including all inherited members.

    + + + + +
    __init__(self, str address, Variant data=None)BulkReadRequest
    address (defined in BulkReadRequest)BulkReadRequest
    data (defined in BulkReadRequest)BulkReadRequest
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1BulkReadRequest.html b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1BulkReadRequest.html new file mode 100644 index 000000000..aee3a917e --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1BulkReadRequest.html @@ -0,0 +1,171 @@ + + + + + + + +ctrlX Data Layer API for Python: BulkReadRequest Class Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    BulkReadRequest Class Reference
    +
    +
    + + + + +

    +Public Member Functions

    def __init__ (self, str address, Variant data=None)
     
    + + + + + +

    +Public Attributes

    address
     
    data
     
    +

    Detailed Description

    +

    Struct for BulkReadRequest Address for the request Read argument of the request.

    + +

    Definition at line 524 of file bulk.py.

    +

    Constructor & Destructor Documentation

    + +

    ◆ __init__()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    def __init__ ( self,
    str address,
    Variant  data = None 
    )
    +
    + +

    Struct for BulkReadRequest.

    +
    Parameters
    + + +
    addressAddress for the request data (Variant, optional): Argument of the request. Defaults to None.
    +
    +
    + +

    Definition at line 532 of file bulk.py.

    + +

    References BulkReadRequest.address, BulkWriteRequest.address, BulkCreateRequest.address, BulkReadRequest.data, BulkWriteRequest.data, and BulkCreateRequest.data.

    + +
    +
    +
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1BulkReadRequest.js b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1BulkReadRequest.js new file mode 100644 index 000000000..46c4f43e8 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1BulkReadRequest.js @@ -0,0 +1,6 @@ +var classctrlxdatalayer_1_1bulk_1_1BulkReadRequest = +[ + [ "__init__", "classctrlxdatalayer_1_1bulk_1_1BulkReadRequest.html#a01278ebd1178bd7ee028e30ebf19f7f6", null ], + [ "address", "classctrlxdatalayer_1_1bulk_1_1BulkReadRequest.html#ade5a18d52133ef21f211020ceb464c07", null ], + [ "data", "classctrlxdatalayer_1_1bulk_1_1BulkReadRequest.html#a511ae0b1c13f95e5f08f1a0dd3da3d93", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1BulkWriteRequest-members.html b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1BulkWriteRequest-members.html new file mode 100644 index 000000000..8e7b4e015 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1BulkWriteRequest-members.html @@ -0,0 +1,106 @@ + + + + + + + +ctrlX Data Layer API for Python: Member List + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    BulkWriteRequest Member List
    +
    +
    + +

    This is the complete list of members for BulkWriteRequest, including all inherited members.

    + + + + +
    __init__(self, str address, Variant data)BulkWriteRequest
    address (defined in BulkWriteRequest)BulkWriteRequest
    data (defined in BulkWriteRequest)BulkWriteRequest
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1BulkWriteRequest.html b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1BulkWriteRequest.html new file mode 100644 index 000000000..88ea18540 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1BulkWriteRequest.html @@ -0,0 +1,172 @@ + + + + + + + +ctrlX Data Layer API for Python: BulkWriteRequest Class Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    BulkWriteRequest Class Reference
    +
    +
    + + + + +

    +Public Member Functions

    def __init__ (self, str address, Variant data)
     
    + + + + + +

    +Public Attributes

    address
     
    data
     
    +

    Detailed Description

    +

    Struct for BulkWriteRequest Address for the request Write data of the request.

    + +

    Definition at line 541 of file bulk.py.

    +

    Constructor & Destructor Documentation

    + +

    ◆ __init__()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    def __init__ ( self,
    str address,
    Variant data 
    )
    +
    + +

    BulkWriteRequest.

    +
    Parameters
    + + + +
    addressAddress for the request
    dataWrite data of the request
    +
    +
    + +

    Definition at line 549 of file bulk.py.

    + +

    References BulkReadRequest.address, BulkWriteRequest.address, BulkCreateRequest.address, BulkReadRequest.data, BulkWriteRequest.data, and BulkCreateRequest.data.

    + +
    +
    +
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1BulkWriteRequest.js b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1BulkWriteRequest.js new file mode 100644 index 000000000..00ce43633 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1BulkWriteRequest.js @@ -0,0 +1,6 @@ +var classctrlxdatalayer_1_1bulk_1_1BulkWriteRequest = +[ + [ "__init__", "classctrlxdatalayer_1_1bulk_1_1BulkWriteRequest.html#a1d3639228672c53153653832e183dbfd", null ], + [ "address", "classctrlxdatalayer_1_1bulk_1_1BulkWriteRequest.html#ade5a18d52133ef21f211020ceb464c07", null ], + [ "data", "classctrlxdatalayer_1_1bulk_1_1BulkWriteRequest.html#a511ae0b1c13f95e5f08f1a0dd3da3d93", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1Response-members.html b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1Response-members.html new file mode 100644 index 000000000..38fd045a8 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1Response-members.html @@ -0,0 +1,111 @@ + + + + + + + +ctrlX Data Layer API for Python: Member List + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    Response Member List
    +
    +
    + +

    This is the complete list of members for Response, including all inherited members.

    + + + + + + + + + +
    __enter__(self)Response
    __exit__(self, exc_type, exc_val, exc_tb)Response
    __init__(self, str addr, C_DLR_VARIANT data, ctypes.c_uint64 time, Result result)Response
    close(self)Response
    get_address(self)Response
    get_data(self)Response
    get_datetime(self)Response
    get_result(self)Response
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1Response.html b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1Response.html new file mode 100644 index 000000000..71db15496 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1Response.html @@ -0,0 +1,305 @@ + + + + + + + +ctrlX Data Layer API for Python: Response Class Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    Response Class Reference
    +
    +
    + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    def __init__ (self, str addr, C_DLR_VARIANT data, ctypes.c_uint64 time, Result result)
     
    +def __enter__ (self)
     
    +def __exit__ (self, exc_type, exc_val, exc_tb)
     
    +def close (self)
     
    str get_address (self)
     
    Variant get_data (self)
     
    datetime.datetime get_datetime (self)
     
    Result get_result (self)
     
    +

    Detailed Description

    +

    class Bulk Response

    + +

    Definition at line 23 of file bulk.py.

    +

    Constructor & Destructor Documentation

    + +

    ◆ __init__()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    def __init__ ( self,
    str addr,
    C_DLR_VARIANT data,
    ctypes.c_uint64 time,
    Result result 
    )
    +
    + +

    init Response Bulk

    +
    Parameters
    + + + + + +
    addrAddress for the response
    dataOutput data of the response
    timeTimestamp of the response
    resultResult of the response
    +
    +
    + +

    Definition at line 34 of file bulk.py.

    + +

    References Response.__address, _Request.__address, Response.__data, _Request.__data, NotifyItemPublish.__data, NotifyItem.__data, Response.__result, Response.__timestamp, and NotifyInfoPublish.__timestamp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ get_address()

    + +
    +
    + + + + + + + + +
    str get_address ( self)
    +
    + +

    get_address

    +
    Returns
    +
    +str Address for the response
    + +

    Definition at line 65 of file bulk.py.

    + +

    References Response.__address, and _Request.__address.

    + +
    +
    + +

    ◆ get_data()

    + +
    +
    + + + + + + + + +
    Variant get_data ( self)
    +
    + +

    get_data

    +
    Returns
    +
    +Variant Output data of the response
    + +

    Definition at line 82 of file bulk.py.

    + +

    References Response.__data, _Request.__data, NotifyItemPublish.__data, and NotifyItem.__data.

    + +

    Referenced by Variant.get_flatbuffers().

    + +
    +
    + +

    ◆ get_datetime()

    + +
    +
    + + + + + + + + +
    datetime.datetime get_datetime ( self)
    +
    + +

    get_datetime

    +
       datetime object as timestamp (FILETIME) 64 bit 100ns since 1.1.1601 (UTC)
    +
    Returns
    +
    +datetime Timestamp of the response
    + +

    Definition at line 93 of file bulk.py.

    + +

    References Response.__timestamp, and NotifyInfoPublish.__timestamp.

    + +
    +
    + +

    ◆ get_result()

    + +
    +
    + + + + + + + + +
    Result get_result ( self)
    +
    + +

    get_result

    +
    Returns
    +
    +Result Result of the response
    + +

    Definition at line 73 of file bulk.py.

    + +

    References Response.__result.

    + +
    +
    +
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1Response.js b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1Response.js new file mode 100644 index 000000000..5c86411f7 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1Response.js @@ -0,0 +1,11 @@ +var classctrlxdatalayer_1_1bulk_1_1Response = +[ + [ "__init__", "classctrlxdatalayer_1_1bulk_1_1Response.html#a407a62ac4d6cbe6307badf553961efa5", null ], + [ "__enter__", "classctrlxdatalayer_1_1bulk_1_1Response.html#a404692262c90487a8013dbdd128cdd7f", null ], + [ "__exit__", "classctrlxdatalayer_1_1bulk_1_1Response.html#a1d4375d5b88ea11310dcd3bfb10ecb97", null ], + [ "close", "classctrlxdatalayer_1_1bulk_1_1Response.html#a8639372c33e15084a7f7c4d9d87b7bfe", null ], + [ "get_address", "classctrlxdatalayer_1_1bulk_1_1Response.html#a5c11c7b63803746d10dc05f9e6d0f477", null ], + [ "get_data", "classctrlxdatalayer_1_1bulk_1_1Response.html#afc01672756c355231e72eb572e8816cb", null ], + [ "get_datetime", "classctrlxdatalayer_1_1bulk_1_1Response.html#a84011aab6c79b9302277b0792c38e2de", null ], + [ "get_result", "classctrlxdatalayer_1_1bulk_1_1Response.html#af6dbafa5e6230c546fe9d430b05aa161", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1__ResponseAsynMgr-members.html b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1__ResponseAsynMgr-members.html new file mode 100644 index 000000000..f210f068e --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1__ResponseAsynMgr-members.html @@ -0,0 +1,110 @@ + + + + + + + +ctrlX Data Layer API for Python: Member List + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    _ResponseAsynMgr Member List
    +
    +
    + +

    This is the complete list of members for _ResponseAsynMgr, including all inherited members.

    + + + + + + + + +
    __enter__(self)_ResponseAsynMgr
    __exit__(self, exc_type, exc_val, exc_tb)_ResponseAsynMgr
    __init__(self, _AsyncCreator ac)_ResponseAsynMgr
    ctrlxdatalayer::bulk::_ResponseMgr.__init__(self)_ResponseMgr
    close(self)_ResponseAsynMgr
    get_response(self)_ResponseMgr
    set_responses(self, typing.List[Response] responses)_ResponseAsynMgr
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1__ResponseAsynMgr.html b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1__ResponseAsynMgr.html new file mode 100644 index 000000000..306c77bea --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1__ResponseAsynMgr.html @@ -0,0 +1,183 @@ + + + + + + + +ctrlX Data Layer API for Python: _ResponseAsynMgr Class Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    _ResponseAsynMgr Class Reference
    +
    +
    +
    + + Inheritance diagram for _ResponseAsynMgr:
    +
    +
    + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    def __init__ (self, _AsyncCreator ac)
     
    +def __enter__ (self)
     
    +def __exit__ (self, exc_type, exc_val, exc_tb)
     
    +def close (self)
     
    +def set_responses (self, typing.List[Response] responses)
     
    - Public Member Functions inherited from _ResponseMgr
    def __init__ (self)
     
    typing.List[Responseget_response (self)
     
    +

    Detailed Description

    +

    class _ResponseAsynMgr

    + +

    Definition at line 272 of file bulk.py.

    +

    Constructor & Destructor Documentation

    + +

    ◆ __init__()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    def __init__ ( self,
    _AsyncCreator ac 
    )
    +
    + +

    init

    +
    Parameters
    + + +
    achelp class
    +
    +
    + +

    Definition at line 281 of file bulk.py.

    + +

    References _ResponseAsynMgr.__async_creator, _ResponseMgr._response, and _ResponseAsynMgr._response.

    + +
    +
    +
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1__ResponseAsynMgr.js b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1__ResponseAsynMgr.js new file mode 100644 index 000000000..2814b3f0c --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1__ResponseAsynMgr.js @@ -0,0 +1,8 @@ +var classctrlxdatalayer_1_1bulk_1_1__ResponseAsynMgr = +[ + [ "__init__", "classctrlxdatalayer_1_1bulk_1_1__ResponseAsynMgr.html#a8b9b0623fa419354cf6e3778fe6e3f9b", null ], + [ "__enter__", "classctrlxdatalayer_1_1bulk_1_1__ResponseAsynMgr.html#a404692262c90487a8013dbdd128cdd7f", null ], + [ "__exit__", "classctrlxdatalayer_1_1bulk_1_1__ResponseAsynMgr.html#a1d4375d5b88ea11310dcd3bfb10ecb97", null ], + [ "close", "classctrlxdatalayer_1_1bulk_1_1__ResponseAsynMgr.html#a8639372c33e15084a7f7c4d9d87b7bfe", null ], + [ "set_responses", "classctrlxdatalayer_1_1bulk_1_1__ResponseAsynMgr.html#afa59d16d0f675600ade61c54b28e78a8", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1__ResponseAsynMgr.png b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1__ResponseAsynMgr.png new file mode 100644 index 000000000..1375e7da4 Binary files /dev/null and b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1__ResponseAsynMgr.png differ diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1__ResponseBulkMgr-members.html b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1__ResponseBulkMgr-members.html new file mode 100644 index 000000000..ed82f0df3 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1__ResponseBulkMgr-members.html @@ -0,0 +1,109 @@ + + + + + + + +ctrlX Data Layer API for Python: Member List + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    _ResponseBulkMgr Member List
    +
    +
    + +

    This is the complete list of members for _ResponseBulkMgr, including all inherited members.

    + + + + + + + +
    __enter__(self)_ResponseBulkMgr
    __exit__(self, exc_type, exc_val, exc_tb)_ResponseBulkMgr
    __init__(self, C_DLR_BULK bulk)_ResponseBulkMgr
    ctrlxdatalayer::bulk::_ResponseMgr.__init__(self)_ResponseMgr
    close(self)_ResponseMgr
    get_response(self)_ResponseMgr
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1__ResponseBulkMgr.html b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1__ResponseBulkMgr.html new file mode 100644 index 000000000..aacde4ecc --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1__ResponseBulkMgr.html @@ -0,0 +1,180 @@ + + + + + + + +ctrlX Data Layer API for Python: _ResponseBulkMgr Class Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    _ResponseBulkMgr Class Reference
    +
    +
    +
    + + Inheritance diagram for _ResponseBulkMgr:
    +
    +
    + + + + + + + + + + + + + + + + +

    +Public Member Functions

    def __init__ (self, C_DLR_BULK bulk)
     
    +def __enter__ (self)
     
    +def __exit__ (self, exc_type, exc_val, exc_tb)
     
    - Public Member Functions inherited from _ResponseMgr
    def __init__ (self)
     
    +def close (self)
     
    typing.List[Responseget_response (self)
     
    +

    Detailed Description

    +

    class _ResponseBulkMgr

    + +

    Definition at line 234 of file bulk.py.

    +

    Constructor & Destructor Documentation

    + +

    ◆ __init__()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    def __init__ ( self,
    C_DLR_BULK bulk 
    )
    +
    + +

    init

    +
    Parameters
    + + +
    bulkBulk value
    +
    +
    + +

    Definition at line 242 of file bulk.py.

    + +

    References _ResponseMgr._response, and _ResponseAsynMgr._response.

    + +
    +
    +
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1__ResponseBulkMgr.js b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1__ResponseBulkMgr.js new file mode 100644 index 000000000..b3c70e43b --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1__ResponseBulkMgr.js @@ -0,0 +1,6 @@ +var classctrlxdatalayer_1_1bulk_1_1__ResponseBulkMgr = +[ + [ "__init__", "classctrlxdatalayer_1_1bulk_1_1__ResponseBulkMgr.html#aa52be931985624f18ac85b3f6fc801e2", null ], + [ "__enter__", "classctrlxdatalayer_1_1bulk_1_1__ResponseBulkMgr.html#a404692262c90487a8013dbdd128cdd7f", null ], + [ "__exit__", "classctrlxdatalayer_1_1bulk_1_1__ResponseBulkMgr.html#a1d4375d5b88ea11310dcd3bfb10ecb97", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1__ResponseBulkMgr.png b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1__ResponseBulkMgr.png new file mode 100644 index 000000000..d5cc76849 Binary files /dev/null and b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1__ResponseBulkMgr.png differ diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1__ResponseMgr-members.html b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1__ResponseMgr-members.html new file mode 100644 index 000000000..a696c946c --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1__ResponseMgr-members.html @@ -0,0 +1,108 @@ + + + + + + + +ctrlX Data Layer API for Python: Member List + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    _ResponseMgr Member List
    +
    +
    + +

    This is the complete list of members for _ResponseMgr, including all inherited members.

    + + + + + + +
    __enter__(self)_ResponseMgr
    __exit__(self, exc_type, exc_val, exc_tb)_ResponseMgr
    __init__(self)_ResponseMgr
    close(self)_ResponseMgr
    get_response(self)_ResponseMgr
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1__ResponseMgr.html b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1__ResponseMgr.html new file mode 100644 index 000000000..e26f0cf33 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1__ResponseMgr.html @@ -0,0 +1,196 @@ + + + + + + + +ctrlX Data Layer API for Python: _ResponseMgr Class Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    _ResponseMgr Class Reference
    +
    +
    +
    + + Inheritance diagram for _ResponseMgr:
    +
    +
    + + + + + + + + + + + + + +

    +Public Member Functions

    def __init__ (self)
     
    +def __enter__ (self)
     
    +def __exit__ (self, exc_type, exc_val, exc_tb)
     
    +def close (self)
     
    typing.List[Responseget_response (self)
     
    +

    Detailed Description

    +

    class _ResponseMgr

    + +

    Definition at line 187 of file bulk.py.

    +

    Constructor & Destructor Documentation

    + +

    ◆ __init__()

    + +
    +
    + + + + + + + + +
    def __init__ ( self)
    +
    + +

    init

    +
    Parameters
    + + +
    bulkBulk value
    +
    +
    + +

    Definition at line 196 of file bulk.py.

    + +

    References _ResponseMgr._response, and _ResponseAsynMgr._response.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ get_response()

    + +
    +
    + + + + + + + + +
    typing.List[Response] get_response ( self)
    +
    + +

    get_response

    +
    Returns
    +
    +typing List of response
    + +

    Definition at line 225 of file bulk.py.

    + +

    References _ResponseMgr._response, and _ResponseAsynMgr._response.

    + +
    +
    +
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1__ResponseMgr.js b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1__ResponseMgr.js new file mode 100644 index 000000000..1e9d8348c --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1__ResponseMgr.js @@ -0,0 +1,8 @@ +var classctrlxdatalayer_1_1bulk_1_1__ResponseMgr = +[ + [ "__init__", "classctrlxdatalayer_1_1bulk_1_1__ResponseMgr.html#ae64f0875afe3067b97ba370b354b9213", null ], + [ "__enter__", "classctrlxdatalayer_1_1bulk_1_1__ResponseMgr.html#a404692262c90487a8013dbdd128cdd7f", null ], + [ "__exit__", "classctrlxdatalayer_1_1bulk_1_1__ResponseMgr.html#a1d4375d5b88ea11310dcd3bfb10ecb97", null ], + [ "close", "classctrlxdatalayer_1_1bulk_1_1__ResponseMgr.html#a8639372c33e15084a7f7c4d9d87b7bfe", null ], + [ "get_response", "classctrlxdatalayer_1_1bulk_1_1__ResponseMgr.html#a5c6716a7af505ad22c0b5bbef1b2f868", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1__ResponseMgr.png b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1__ResponseMgr.png new file mode 100644 index 000000000..6ad5bb8aa Binary files /dev/null and b/3.4.0/api/python/classctrlxdatalayer_1_1bulk_1_1__ResponseMgr.png differ diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1bulk__util_1_1__AsyncCreator-members.html b/3.4.0/api/python/classctrlxdatalayer_1_1bulk__util_1_1__AsyncCreator-members.html new file mode 100644 index 000000000..57577973a --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1bulk__util_1_1__AsyncCreator-members.html @@ -0,0 +1,108 @@ + + + + + + + +ctrlX Data Layer API for Python: Member List + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    _AsyncCreator Member List
    +
    +
    + +

    This is the complete list of members for _AsyncCreator, including all inherited members.

    + + + + + + +
    __enter__(self)_AsyncCreator
    __exit__(self, exc_type, exc_val, exc_tb)_AsyncCreator
    __init__(self, typing.List[_Request] reqs)_AsyncCreator
    close(self)_AsyncCreator
    get_bulk_request(self)_AsyncCreator
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1bulk__util_1_1__AsyncCreator.html b/3.4.0/api/python/classctrlxdatalayer_1_1bulk__util_1_1__AsyncCreator.html new file mode 100644 index 000000000..01dc305dd --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1bulk__util_1_1__AsyncCreator.html @@ -0,0 +1,194 @@ + + + + + + + +ctrlX Data Layer API for Python: _AsyncCreator Class Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    _AsyncCreator Class Reference
    +
    +
    + + + + + + + + + + + + +

    +Public Member Functions

    def __init__ (self, typing.List[_Request] reqs)
     
    +def __enter__ (self)
     
    +def __exit__ (self, exc_type, exc_val, exc_tb)
     
    +def close (self)
     
    ctypes.POINTER(C_VecBulkRequest) get_bulk_request (self)
     
    +

    Detailed Description

    +

    class _AsyncCreator

    + +

    Definition at line 233 of file bulk_util.py.

    +

    Constructor & Destructor Documentation

    + +

    ◆ __init__()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    def __init__ ( self,
    typing.List[_Requestreqs 
    )
    +
    + +

    init

    +
    Parameters
    + + +
    reqsList of request
    +
    +
    + +

    Definition at line 242 of file bulk_util.py.

    + +

    References _AsyncCreator.__bulk_request, _BulkCreator.__create(), and _AsyncCreator.__create().

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ get_bulk_request()

    + +
    +
    + + + + + + + + +
    ctypes.POINTER(C_VecBulkRequest) get_bulk_request ( self)
    +
    + +

    get_bulk_request

    +
    Returns
    +
    +ctypes pointer of C_VecBulkRequest
    + +

    Definition at line 270 of file bulk_util.py.

    + +

    References _AsyncCreator.__bulk_request.

    + +
    +
    +
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1bulk__util_1_1__AsyncCreator.js b/3.4.0/api/python/classctrlxdatalayer_1_1bulk__util_1_1__AsyncCreator.js new file mode 100644 index 000000000..a6aeb38b3 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1bulk__util_1_1__AsyncCreator.js @@ -0,0 +1,8 @@ +var classctrlxdatalayer_1_1bulk__util_1_1__AsyncCreator = +[ + [ "__init__", "classctrlxdatalayer_1_1bulk__util_1_1__AsyncCreator.html#a3e78654ce73af801d64e389d6bb40c46", null ], + [ "__enter__", "classctrlxdatalayer_1_1bulk__util_1_1__AsyncCreator.html#a404692262c90487a8013dbdd128cdd7f", null ], + [ "__exit__", "classctrlxdatalayer_1_1bulk__util_1_1__AsyncCreator.html#a1d4375d5b88ea11310dcd3bfb10ecb97", null ], + [ "close", "classctrlxdatalayer_1_1bulk__util_1_1__AsyncCreator.html#a8639372c33e15084a7f7c4d9d87b7bfe", null ], + [ "get_bulk_request", "classctrlxdatalayer_1_1bulk__util_1_1__AsyncCreator.html#af35d103c09730fcabfca4c80fd54cea7", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1bulk__util_1_1__BulkCreator-members.html b/3.4.0/api/python/classctrlxdatalayer_1_1bulk__util_1_1__BulkCreator-members.html new file mode 100644 index 000000000..8b5a29e66 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1bulk__util_1_1__BulkCreator-members.html @@ -0,0 +1,108 @@ + + + + + + + +ctrlX Data Layer API for Python: Member List + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    _BulkCreator Member List
    +
    +
    + +

    This is the complete list of members for _BulkCreator, including all inherited members.

    + + + + + + +
    __enter__(self)_BulkCreator
    __exit__(self, exc_type, exc_val, exc_tb)_BulkCreator
    __init__(self, typing.List[_Request] reqs)_BulkCreator
    close(self)_BulkCreator
    get_handle(self)_BulkCreator
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1bulk__util_1_1__BulkCreator.html b/3.4.0/api/python/classctrlxdatalayer_1_1bulk__util_1_1__BulkCreator.html new file mode 100644 index 000000000..658afb706 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1bulk__util_1_1__BulkCreator.html @@ -0,0 +1,194 @@ + + + + + + + +ctrlX Data Layer API for Python: _BulkCreator Class Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    _BulkCreator Class Reference
    +
    +
    + + + + + + + + + + + + +

    +Public Member Functions

    def __init__ (self, typing.List[_Request] reqs)
     
    +def __enter__ (self)
     
    +def __exit__ (self, exc_type, exc_val, exc_tb)
     
    +def close (self)
     
    C_DLR_BULK get_handle (self)
     
    +

    Detailed Description

    +

    class _BulkCreator

    + +

    Definition at line 132 of file bulk_util.py.

    +

    Constructor & Destructor Documentation

    + +

    ◆ __init__()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    def __init__ ( self,
    typing.List[_Requestreqs 
    )
    +
    + +

    init

    +
    Parameters
    + + +
    reqsList of request
    +
    +
    + +

    Definition at line 141 of file bulk_util.py.

    + +

    References _BulkCreator.__bulk, _BulkCreator.__create(), and _AsyncCreator.__create().

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ get_handle()

    + +
    +
    + + + + + + + + +
    C_DLR_BULK get_handle ( self)
    +
    + +

    get_handle

    +
    Returns
    +
    +clib_client handle value of bulk
    + +

    Definition at line 171 of file bulk_util.py.

    + +

    References _BulkCreator.__bulk.

    + +
    +
    +
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1bulk__util_1_1__BulkCreator.js b/3.4.0/api/python/classctrlxdatalayer_1_1bulk__util_1_1__BulkCreator.js new file mode 100644 index 000000000..c29ee6be7 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1bulk__util_1_1__BulkCreator.js @@ -0,0 +1,8 @@ +var classctrlxdatalayer_1_1bulk__util_1_1__BulkCreator = +[ + [ "__init__", "classctrlxdatalayer_1_1bulk__util_1_1__BulkCreator.html#a3e78654ce73af801d64e389d6bb40c46", null ], + [ "__enter__", "classctrlxdatalayer_1_1bulk__util_1_1__BulkCreator.html#a404692262c90487a8013dbdd128cdd7f", null ], + [ "__exit__", "classctrlxdatalayer_1_1bulk__util_1_1__BulkCreator.html#a1d4375d5b88ea11310dcd3bfb10ecb97", null ], + [ "close", "classctrlxdatalayer_1_1bulk__util_1_1__BulkCreator.html#a8639372c33e15084a7f7c4d9d87b7bfe", null ], + [ "get_handle", "classctrlxdatalayer_1_1bulk__util_1_1__BulkCreator.html#acc12f2877df6c527e5ea11c25f0fa2f3", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1bulk__util_1_1__Request-members.html b/3.4.0/api/python/classctrlxdatalayer_1_1bulk__util_1_1__Request-members.html new file mode 100644 index 000000000..b8a701b4a --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1bulk__util_1_1__Request-members.html @@ -0,0 +1,109 @@ + + + + + + + +ctrlX Data Layer API for Python: Member List + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    _Request Member List
    +
    +
    + +

    This is the complete list of members for _Request, including all inherited members.

    + + + + + + + +
    __enter__(self)_Request
    __exit__(self, exc_type, exc_val, exc_tb)_Request
    __init__(self, str addr, Variant data)_Request
    close(self)_Request
    get_address(self)_Request
    get_data(self)_Request
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1bulk__util_1_1__Request.html b/3.4.0/api/python/classctrlxdatalayer_1_1bulk__util_1_1__Request.html new file mode 100644 index 000000000..cfff923d3 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1bulk__util_1_1__Request.html @@ -0,0 +1,185 @@ + + + + + + + +ctrlX Data Layer API for Python: _Request Class Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    _Request Class Reference
    +
    +
    + + + + + + + + + + + + + + +

    +Public Member Functions

    +def __init__ (self, str addr, Variant data)
     
    +def __enter__ (self)
     
    +def __exit__ (self, exc_type, exc_val, exc_tb)
     
    +def close (self)
     
    bytes get_address (self)
     
    C_DLR_VARIANT get_data (self)
     
    +

    Detailed Description

    +

    class Bulk _Request

    + +

    Definition at line 20 of file bulk_util.py.

    +

    Member Function Documentation

    + +

    ◆ get_address()

    + +
    +
    + + + + + + + + +
    bytes get_address ( self)
    +
    + +

    get_address

    +
    Returns
    +
    +str Address of the request
    + +

    Definition at line 54 of file bulk_util.py.

    + +

    References Response.__address, and _Request.__address.

    + +
    +
    + +

    ◆ get_data()

    + +
    +
    + + + + + + + + +
    C_DLR_VARIANT get_data ( self)
    +
    + +

    get_data

    +
    Returns
    +
    +C_DLR_VARIANT Input data of the request
    + +

    Definition at line 63 of file bulk_util.py.

    + +

    References Response.__data, _Request.__data, NotifyItemPublish.__data, and NotifyItem.__data.

    + +

    Referenced by Variant.get_flatbuffers().

    + +
    +
    +
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1bulk__util_1_1__Request.js b/3.4.0/api/python/classctrlxdatalayer_1_1bulk__util_1_1__Request.js new file mode 100644 index 000000000..3552d5688 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1bulk__util_1_1__Request.js @@ -0,0 +1,9 @@ +var classctrlxdatalayer_1_1bulk__util_1_1__Request = +[ + [ "__init__", "classctrlxdatalayer_1_1bulk__util_1_1__Request.html#a29d80f48606a09d55c47958832ab5aa5", null ], + [ "__enter__", "classctrlxdatalayer_1_1bulk__util_1_1__Request.html#a404692262c90487a8013dbdd128cdd7f", null ], + [ "__exit__", "classctrlxdatalayer_1_1bulk__util_1_1__Request.html#a1d4375d5b88ea11310dcd3bfb10ecb97", null ], + [ "close", "classctrlxdatalayer_1_1bulk__util_1_1__Request.html#a8639372c33e15084a7f7c4d9d87b7bfe", null ], + [ "get_address", "classctrlxdatalayer_1_1bulk__util_1_1__Request.html#ab1d98a53d4dcc8457427964c3669fc43", null ], + [ "get_data", "classctrlxdatalayer_1_1bulk__util_1_1__Request.html#ada947705a81f7acad95740579376eaf1", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1client_1_1Client-members.html b/3.4.0/api/python/classctrlxdatalayer_1_1client_1_1Client-members.html new file mode 100644 index 000000000..fd05c8dff --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1client_1_1Client-members.html @@ -0,0 +1,134 @@ + + + + + + + +ctrlX Data Layer API for Python: Member List + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    Client Member List
    +
    +
    + +

    This is the complete list of members for Client, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    __enter__(self)Client
    __exit__(self, exc_type, exc_val, exc_tb)Client
    __init__(self, C_DLR_CLIENT c_client)Client
    browse_async(self, str address, ResponseCallback cb, userData_c_void_p userdata=None)Client
    browse_sync(self, str address)Client
    close(self)Client
    create_async(self, str address, Variant data, ResponseCallback cb, userData_c_void_p userdata=None)Client
    create_bulk(self)Client
    create_subscription_async(self, Variant prop, ctrlxdatalayer.subscription.ResponseNotifyCallback cnb, ResponseCallback cb, userData_c_void_p userdata=None)Client
    create_subscription_sync(self, Variant prop, ctrlxdatalayer.subscription.ResponseNotifyCallback cnb, userData_c_void_p userdata=None)Client
    create_sync(self, str address, Variant data)Client
    get_auth_token(self)Client
    get_handle(self)Client
    get_token(self)Client
    is_connected(self)Client
    metadata_async(self, str address, ResponseCallback cb, userData_c_void_p userdata=None)Client
    metadata_sync(self, str address)Client
    ping_async(self, ResponseCallback cb, userData_c_void_p userdata=None)Client
    ping_sync(self)Client
    read_async(self, str address, ResponseCallback cb, userData_c_void_p userdata=None)Client
    read_async_args(self, str address, Variant args, ResponseCallback cb, userData_c_void_p userdata=None)Client
    read_json_sync(self, Converter conv, str address, int indent, Variant data=None)Client
    read_sync(self, str address)Client
    read_sync_args(self, str address, Variant args)Client
    remove_async(self, str address, ResponseCallback cb, userData_c_void_p userdata=None)Client
    remove_sync(self, str address)Client
    set_auth_token(self, str token)Client
    set_timeout(self, TimeoutSetting timeout, int value)Client
    write_async(self, str address, Variant data, ResponseCallback cb, userData_c_void_p userdata=None)Client
    write_json_sync(self, Converter conv, str address, str json)Client
    write_sync(self, str address, Variant data)Client
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1client_1_1Client.html b/3.4.0/api/python/classctrlxdatalayer_1_1client_1_1Client.html new file mode 100644 index 000000000..886a80d49 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1client_1_1Client.html @@ -0,0 +1,1438 @@ + + + + + + + +ctrlX Data Layer API for Python: Client Class Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    Client Class Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    def __init__ (self, C_DLR_CLIENT c_client)
     
    +def __enter__ (self)
     
    +def __exit__ (self, exc_type, exc_val, exc_tb)
     
    Result browse_async (self, str address, ResponseCallback cb, userData_c_void_p userdata=None)
     
    def browse_sync (self, str address)
     
    +def close (self)
     
    Result create_async (self, str address, Variant data, ResponseCallback cb, userData_c_void_p userdata=None)
     
    def create_bulk (self)
     
    def create_subscription_async (self, Variant prop, ctrlxdatalayer.subscription.ResponseNotifyCallback cnb, ResponseCallback cb, userData_c_void_p userdata=None)
     
    def create_subscription_sync (self, Variant prop, ctrlxdatalayer.subscription.ResponseNotifyCallback cnb, userData_c_void_p userdata=None)
     
    def create_sync (self, str address, Variant data)
     
    str get_auth_token (self)
     
    +def get_handle (self)
     
    +def get_token (self)
     
    bool is_connected (self)
     
    Result metadata_async (self, str address, ResponseCallback cb, userData_c_void_p userdata=None)
     
    def metadata_sync (self, str address)
     
    Result ping_async (self, ResponseCallback cb, userData_c_void_p userdata=None)
     
    Result ping_sync (self)
     
    Result read_async (self, str address, ResponseCallback cb, userData_c_void_p userdata=None)
     
    Result read_async_args (self, str address, Variant args, ResponseCallback cb, userData_c_void_p userdata=None)
     
    def read_json_sync (self, Converter conv, str address, int indent, Variant data=None)
     
    def read_sync (self, str address)
     
    def read_sync_args (self, str address, Variant args)
     
    Result remove_async (self, str address, ResponseCallback cb, userData_c_void_p userdata=None)
     
    Result remove_sync (self, str address)
     
    def set_auth_token (self, str token)
     
    Result set_timeout (self, TimeoutSetting timeout, int value)
     
    Result write_async (self, str address, Variant data, ResponseCallback cb, userData_c_void_p userdata=None)
     
    def write_json_sync (self, Converter conv, str address, str json)
     
    def write_sync (self, str address, Variant data)
     
    +

    Detailed Description

    +

    Client interface for accessing data from the system.

    +

    Hint see python context manager for instance handling

    + +

    Definition at line 61 of file client.py.

    +

    Constructor & Destructor Documentation

    + +

    ◆ __init__()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    def __init__ ( self,
    C_DLR_CLIENT c_client 
    )
    +
    +
    +

    Member Function Documentation

    + +

    ◆ browse_async()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Result browse_async ( self,
    str address,
    ResponseCallback cb,
    userData_c_void_p  userdata = None 
    )
    +
    + +

    Browse an object.

    +

    This function is asynchronous. It will return immediately. Callback will be called if function call is finished. Result data may be provided in callback function.

    Parameters
    + + + + +
    [in]addressAddress of the node to browse
    [in]callbackCallback to call when function is finished
    [in]userdataUser data - will be returned in callback as userdata. You can use this userdata to identify your request
    +
    +
    +
    Returns
    <Result> status of function call
    + +

    Definition at line 337 of file client.py.

    + +

    References SubscriptionAsync.__client, SubscriptionSync.__client, ProviderNode.__create_callback(), Client.__create_callback(), and Client.__token.

    + +
    +
    + +

    ◆ browse_sync()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    def browse_sync ( self,
    str address 
    )
    +
    + +

    Browse an object.

    +

    This function is synchronous: It will wait for the answer.

    Parameters
    + + +
    [in]addressAddress of the node to browse
    +
    +
    +
    Returns
    tuple (Result, Variant)
    +
    +<Result>, status of function call,
    +
    +<Variant>, Children of the node. Data will be provided as Variant array of strings.
    + +

    Definition at line 227 of file client.py.

    + +

    References SubscriptionAsync.__client, SubscriptionSync.__client, and Client.__token.

    + +
    +
    + +

    ◆ create_async()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Result create_async ( self,
    str address,
    Variant data,
    ResponseCallback cb,
    userData_c_void_p  userdata = None 
    )
    +
    + +

    Create an object.

    +

    This function is asynchronous. It will return immediately. Callback will be called if function call is finished. Result data may be provided in callback function.

    Parameters
    + + + + + +
    [in]addressAddress of the node to create object in
    [in]dataData of the object
    [in]callbackCallback to call when function is finished
    [in]userdataUser data - will be returned in callback as userdata. You can use this userdata to identify your request
    +
    +
    +
    Returns
    <Result> status of function call
    + +

    Definition at line 305 of file client.py.

    + +

    References SubscriptionAsync.__client, SubscriptionSync.__client, ProviderNode.__create_callback(), Client.__create_callback(), and Client.__token.

    + +
    +
    + +

    ◆ create_bulk()

    + +
    +
    + + + + + + + + +
    def create_bulk ( self)
    +
    + +

    Setup a bulk object.

    +
    Returns
    +
    +Bulk Bulk object
    + +

    Definition at line 513 of file client.py.

    + +
    +
    + +

    ◆ create_subscription_async()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    def create_subscription_async ( self,
    Variant prop,
    ctrlxdatalayer.subscription.ResponseNotifyCallback cnb,
    ResponseCallback cb,
    userData_c_void_p  userdata = None 
    )
    +
    + +

    Set up a subscription.

    +
    Parameters
    + + + + +
    [in]rulesetVariant that describe ruleset of subscription as subscription.fbs
    [in]publishCallbackCallback to call when new data is available
    [in]userdataUser data - will be returned in publishCallback as userdata. You can use this userdata to identify your subscription
    +
    +
    +
    Returns
    <Result>, status of function cal
    + +

    Definition at line 442 of file client.py.

    + +
    +
    + +

    ◆ create_subscription_sync()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    def create_subscription_sync ( self,
    Variant prop,
    ctrlxdatalayer.subscription.ResponseNotifyCallback cnb,
    userData_c_void_p  userdata = None 
    )
    +
    + +

    Set up a subscription.

    +
    Parameters
    + + + + +
    [in]rulesetVariant that describe ruleset of subscription as subscription.fbs
    [in]publishCallbackCallback to call when new data is available
    [in]userdataUser data - will be returned in publishCallback as userdata. You can use this userdata to identify your subscription
    +
    +
    +
    Returns
    <Result>, status of function cal
    + +

    Definition at line 426 of file client.py.

    + +
    +
    + +

    ◆ create_sync()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    def create_sync ( self,
    str address,
    Variant data 
    )
    +
    + +

    Create an object.

    +

    This function is synchronous: It will wait for the answer.

    Parameters
    + + + +
    [in]addressAddress of the node to create object in
    [in]variantData of the object
    +
    +
    +
    Returns
    tuple (Result, Variant)
    +
    +<Result>, status of function call
    +
    +<Variant>, variant result of write
    + +

    Definition at line 204 of file client.py.

    + +

    References SubscriptionAsync.__client, SubscriptionSync.__client, and Client.__token.

    + +
    +
    + +

    ◆ get_auth_token()

    + +
    +
    + + + + + + + + +
    str get_auth_token ( self)
    +
    + +

    returns persistent security access token for authentication

    +
    Returns
    <str> security access token for authentication
    + +

    Definition at line 183 of file client.py.

    + +

    References SubscriptionAsync.__client, SubscriptionSync.__client, and Client.__token.

    + +
    +
    + +

    ◆ is_connected()

    + +
    +
    + + + + + + + + +
    bool is_connected ( self)
    +
    + +

    returns whether provider is connected

    +
    Returns
    <bool> status of connection
    + +

    Definition at line 165 of file client.py.

    + +

    References SubscriptionAsync.__client, and SubscriptionSync.__client.

    + +
    +
    + +

    ◆ metadata_async()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Result metadata_async ( self,
    str address,
    ResponseCallback cb,
    userData_c_void_p  userdata = None 
    )
    +
    + +

    Read metadata of an object.

    +

    This function is asynchronous. It will return immediately. Callback will be called if function call is finished. Result data may be provided in callback function.

    Parameters
    + + + + +
    [in]addressAddress of the node to read metadata
    [in]callbackCallback to call when function is finished
    [in]userdataUser data - will be returned in callback as userdata. You can use this userdata to identify your request
    +
    +
    +
    Returns
    <Result>, status of function call
    + +

    Definition at line 402 of file client.py.

    + +

    References SubscriptionAsync.__client, SubscriptionSync.__client, ProviderNode.__create_callback(), Client.__create_callback(), and Client.__token.

    + +
    +
    + +

    ◆ metadata_sync()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    def metadata_sync ( self,
    str address 
    )
    +
    + +

    Read metadata of an object.

    +

    This function is synchronous: It will wait for the answer.

    Parameters
    + + +
    [in]addressAddress of the node to read metadata of
    +
    +
    +
    Returns
    tuple (Result, Variant)
    +
    +<Result>, status of function call,
    +
    +<Variant>, Metadata of the node. Data will be provided as Variant flatbuffers with metadata.fbs data type.
    + +

    Definition at line 280 of file client.py.

    + +

    References SubscriptionAsync.__client, SubscriptionSync.__client, and Client.__token.

    + +
    +
    + +

    ◆ ping_async()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    Result ping_async ( self,
    ResponseCallback cb,
    userData_c_void_p  userdata = None 
    )
    +
    + +

    Ping the next hop.

    +

    This function is asynchronous. It will return immediately. Callback will be called if function call is finished.

    Parameters
    + + + +
    [in]callbackCallback to call when function is finished
    [in]userdataUser data - will be returned in callback as userdata. You can use this userdata to identify your request
    +
    +
    +
    Returns
    <Result> status of function call
    + +

    Definition at line 293 of file client.py.

    + +

    References SubscriptionAsync.__client, SubscriptionSync.__client, ProviderNode.__create_callback(), and Client.__create_callback().

    + +
    +
    + +

    ◆ ping_sync()

    + +
    +
    + + + + + + + + +
    Result ping_sync ( self)
    +
    + +

    Ping the next hop.

    +

    This function is synchronous: It will wait for the answer.

    Returns
    <Result> status of function call
    + +

    Definition at line 193 of file client.py.

    + +

    References SubscriptionAsync.__client, and SubscriptionSync.__client.

    + +
    +
    + +

    ◆ read_async()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Result read_async ( self,
    str address,
    ResponseCallback cb,
    userData_c_void_p  userdata = None 
    )
    +
    + +

    Read an object.

    +

    This function is asynchronous. It will return immediately. Callback will be called if function call is finished. Result data may be provided in callback function.

    Parameters
    + + + + +
    [in]addressAddress of the node to read
    [in]callbackCallback to call when function is finished
    [in]userdataUser data - will be returned in callback as userdata. You can use this userdata to identify your request
    +
    +
    +
    Returns
    <Result>, status of function call
    + +

    Definition at line 351 of file client.py.

    + +

    References Client.read_async_args().

    + +
    +
    + +

    ◆ read_async_args()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Result read_async_args ( self,
    str address,
    Variant args,
    ResponseCallback cb,
    userData_c_void_p  userdata = None 
    )
    +
    + +

    Read an object.

    +

    This function is asynchronous. It will return immediately. Callback will be called if function call is finished. Result data may be provided in callback function.

    Parameters
    + + + + + +
    [in]addressAddress of the node to read
    [in]argsRead arguments data of the node
    [in]callbackCallback to call when function is finished
    [in]userdataUser data - will be returned in callback as userdata. You can use this userdata to identify your request
    +
    +
    +
    Returns
    <Result>, status of function call
    + +

    Definition at line 364 of file client.py.

    + +

    References SubscriptionAsync.__client, SubscriptionSync.__client, ProviderNode.__create_callback(), Client.__create_callback(), and Client.__token.

    + +

    Referenced by Client.read_async().

    + +
    +
    + +

    ◆ read_json_sync()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    def read_json_sync ( self,
    Converter conv,
    str address,
    int indent,
    Variant  data = None 
    )
    +
    + +

    This function reads a values as a JSON string.

    +
    Parameters
    + + + + + +
    [in]converterReference to the converter (see System json_converter())
    [in]addressAddress of the node to read
    [in]indentStepIndentation length for json string
    [in]jsonGenerated JSON as Variant (string)
    +
    +
    +
    Returns
    tuple (Result, Variant)
    +
    +<Result>, status of function call,
    +
    +<Variant>, Generated JSON as Variant (string)
    + +

    Definition at line 472 of file client.py.

    + +

    References SubscriptionAsync.__client, SubscriptionSync.__client, and Client.__token.

    + +
    +
    + +

    ◆ read_sync()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    def read_sync ( self,
    str address 
    )
    +
    + +

    Read an object.

    +

    This function is synchronous: It will wait for the answer.

    Parameters
    + + +
    [in]addressAddress of the node to read
    +
    +
    +
    Returns
    tuple (Result, Variant)
    +
    +<Result>, status of function call,
    +
    +<Variant>, Data of the node
    + +

    Definition at line 241 of file client.py.

    + +

    References Client.read_sync_args().

    + +
    +
    + +

    ◆ read_sync_args()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    def read_sync_args ( self,
    str address,
    Variant args 
    )
    +
    + +

    Read an object.

    +

    This function is synchronous: It will wait for the answer.

    Parameters
    + + + +
    [in]addressAddress of the node to read
    [in,out]argsRead arguments data of the node
    +
    +
    +
    Returns
    tuple (Result, Variant)
    +
    +<Result>, status of function call,
    +
    +<Variant>, Data of the node
    + +

    Definition at line 253 of file client.py.

    + +

    References SubscriptionAsync.__client, SubscriptionSync.__client, and Client.__token.

    + +

    Referenced by Client.read_sync().

    + +
    +
    + +

    ◆ remove_async()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Result remove_async ( self,
    str address,
    ResponseCallback cb,
    userData_c_void_p  userdata = None 
    )
    +
    + +

    Remove an object.

    +

    This function is asynchronous. It will return immediately. Callback will be called if function call is finished. Result data may be provided in callback function.

    Parameters
    + + + + +
    [in]addressAddress of the node to remove
    [in]callbackCallback to call when function is finished
    [in]userdataUser data - will be returned in callback as userdata. You can use this userdata to identify your request
    +
    +
    +
    Returns
    <Result> status of function call
    + +

    Definition at line 319 of file client.py.

    + +

    References SubscriptionAsync.__client, SubscriptionSync.__client, ProviderNode.__create_callback(), Client.__create_callback(), and Client.__token.

    + +
    +
    + +

    ◆ remove_sync()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    Result remove_sync ( self,
    str address 
    )
    +
    + +

    Remove an object.

    +

    This function is synchronous: It will wait for the answer.

    Parameters
    + + +
    [in]addressAddress of the node to remove
    +
    +
    +
    Returns
    <Result> status of function call
    + +

    Definition at line 215 of file client.py.

    + +

    References SubscriptionAsync.__client, SubscriptionSync.__client, and Client.__token.

    + +
    +
    + +

    ◆ set_auth_token()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    def set_auth_token ( self,
    str token 
    )
    +
    + +

    Set persistent security access token for authentication as JWT payload.

    +
    Parameters
    + + +
    [in]tokenSecurity access &token for authentication
    +
    +
    + +

    Definition at line 172 of file client.py.

    + +

    References SubscriptionAsync.__client, SubscriptionSync.__client, and Client.__token.

    + +
    +
    + +

    ◆ set_timeout()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    Result set_timeout ( self,
    TimeoutSetting timeout,
    int value 
    )
    +
    + +

    Set client timeout value.

    +
    Parameters
    + + + +
    [in]timeoutTimeout to set (see DLR_TIMEOUT_SETTING)
    [in]valueValue to set
    +
    +
    +
    Returns
    <Result>, status of function call
    + +

    Definition at line 157 of file client.py.

    + +

    References SubscriptionAsync.__client, and SubscriptionSync.__client.

    + +
    +
    + +

    ◆ write_async()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Result write_async ( self,
    str address,
    Variant data,
    ResponseCallback cb,
    userData_c_void_p  userdata = None 
    )
    +
    + +

    Write an object.

    +

    This function is synchronous: It will wait for the answer.

    Parameters
    + + + + + +
    [in]addressAddress of the node to read metadata
    [in]dataData of the object
    [in]callbackCallback to call when function is finished
    [in]userdataUser data - will be returned in callback as userdata. You can use this userdata to identify your request
    +
    +
    +
    Returns
    <Result>, status of function call
    + +

    Definition at line 383 of file client.py.

    + +

    References SubscriptionAsync.__client, SubscriptionSync.__client, ProviderNode.__create_callback(), Client.__create_callback(), and Client.__token.

    + +
    +
    + +

    ◆ write_json_sync()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    def write_json_sync ( self,
    Converter conv,
    str address,
    str json 
    )
    +
    + +

    This function writes a JSON value.

    +
    Parameters
    + + + + + +
    [in]converterReference to the converter (see System json_converter())
    [in]addressAddress of the node to write
    [in]jsonJSON value to write
    [in,out]errorError of conversion as variant string
    +
    +
    +
    Returns
    result status of the function
    +
    +tuple (Result, Variant)
    +
    +<Result>, status of function call,
    +
    +<Variant>, Error of conversion as variant string
    + +

    Definition at line 496 of file client.py.

    + +

    References SubscriptionAsync.__client, SubscriptionSync.__client, and Client.__token.

    + +
    +
    + +

    ◆ write_sync()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    def write_sync ( self,
    str address,
    Variant data 
    )
    +
    + +

    Write an object.

    +

    This function is synchronous: It will wait for the answer.

    Parameters
    + + + +
    [in]addressAddress of the node to write
    [in]variantNew data of the node
    +
    +
    +
    Returns
    tuple (Result, Variant)
    +
    +<Result>, status of function call,
    +
    +<Variant>, result of write
    + +

    Definition at line 267 of file client.py.

    + +

    References SubscriptionAsync.__client, SubscriptionSync.__client, and Client.__token.

    + +
    +
    +
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1client_1_1Client.js b/3.4.0/api/python/classctrlxdatalayer_1_1client_1_1Client.js new file mode 100644 index 000000000..ef89744ca --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1client_1_1Client.js @@ -0,0 +1,34 @@ +var classctrlxdatalayer_1_1client_1_1Client = +[ + [ "__init__", "classctrlxdatalayer_1_1client_1_1Client.html#a59e19ccd3e870535695c362c97b839ac", null ], + [ "__enter__", "classctrlxdatalayer_1_1client_1_1Client.html#a404692262c90487a8013dbdd128cdd7f", null ], + [ "__exit__", "classctrlxdatalayer_1_1client_1_1Client.html#a1d4375d5b88ea11310dcd3bfb10ecb97", null ], + [ "browse_async", "classctrlxdatalayer_1_1client_1_1Client.html#a2d33323152a7b0947c56c06fc685465c", null ], + [ "browse_sync", "classctrlxdatalayer_1_1client_1_1Client.html#af92fddc1c4f24cad1059def5d7973f1f", null ], + [ "close", "classctrlxdatalayer_1_1client_1_1Client.html#a8639372c33e15084a7f7c4d9d87b7bfe", null ], + [ "create_async", "classctrlxdatalayer_1_1client_1_1Client.html#a267723d6d0a39d08d8d14c330803dc43", null ], + [ "create_bulk", "classctrlxdatalayer_1_1client_1_1Client.html#abbacaa1907d5b10876475c2a83658a39", null ], + [ "create_subscription_async", "classctrlxdatalayer_1_1client_1_1Client.html#a6f8575c365dfbb20acc2ba9cac44cbb3", null ], + [ "create_subscription_sync", "classctrlxdatalayer_1_1client_1_1Client.html#aeb7a9d17ccd6fa6935b8e800f74c129c", null ], + [ "create_sync", "classctrlxdatalayer_1_1client_1_1Client.html#a68d2c78acb14dfd4e474cf83fa255ed9", null ], + [ "get_auth_token", "classctrlxdatalayer_1_1client_1_1Client.html#abd8f0167039751e5a366dcb6cdb7adde", null ], + [ "get_handle", "classctrlxdatalayer_1_1client_1_1Client.html#aa0041e70f5a3139baac2676f0a1367bb", null ], + [ "get_token", "classctrlxdatalayer_1_1client_1_1Client.html#a51d3f96e76304c8b09e2fa013e367ac0", null ], + [ "is_connected", "classctrlxdatalayer_1_1client_1_1Client.html#ac32346ebf625109187290cca9dd0c936", null ], + [ "metadata_async", "classctrlxdatalayer_1_1client_1_1Client.html#acd2a9e71f05e665be6a3154503437c4d", null ], + [ "metadata_sync", "classctrlxdatalayer_1_1client_1_1Client.html#ad0f79c6d663be73664640772f78ff928", null ], + [ "ping_async", "classctrlxdatalayer_1_1client_1_1Client.html#a7ee7a6f91b4e621ad70450fc03eb1bfc", null ], + [ "ping_sync", "classctrlxdatalayer_1_1client_1_1Client.html#a9bb75215a97faa9d58983bdd5c6dffcb", null ], + [ "read_async", "classctrlxdatalayer_1_1client_1_1Client.html#af3f62e6a492fc3fab7dae517aad4dc1b", null ], + [ "read_async_args", "classctrlxdatalayer_1_1client_1_1Client.html#a016e2bf7378827cade38b386fbfe8b9a", null ], + [ "read_json_sync", "classctrlxdatalayer_1_1client_1_1Client.html#aa6dc479dcc9115696b36bb94f07bd9f7", null ], + [ "read_sync", "classctrlxdatalayer_1_1client_1_1Client.html#a83db3e6fc133f4add01b9607abc9da41", null ], + [ "read_sync_args", "classctrlxdatalayer_1_1client_1_1Client.html#a02e7b65adf36bea6b910ab1aa3e50eec", null ], + [ "remove_async", "classctrlxdatalayer_1_1client_1_1Client.html#a44edb6a2c554663cb248e44584f75e2e", null ], + [ "remove_sync", "classctrlxdatalayer_1_1client_1_1Client.html#af8b49ba365916fad17d5af01542ebde2", null ], + [ "set_auth_token", "classctrlxdatalayer_1_1client_1_1Client.html#abff547e12e4e35837bd436f956ff9996", null ], + [ "set_timeout", "classctrlxdatalayer_1_1client_1_1Client.html#a50cde33dfad02fb5b16245ff0e967b8e", null ], + [ "write_async", "classctrlxdatalayer_1_1client_1_1Client.html#ad1a0a9d48d8f6b80ee0bbd37033c94dc", null ], + [ "write_json_sync", "classctrlxdatalayer_1_1client_1_1Client.html#ac3e70cdfa24ba53b78cc2c8abed8f4cb", null ], + [ "write_sync", "classctrlxdatalayer_1_1client_1_1Client.html#a92d14c48a7e8966b4675e23292240162", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1client_1_1TimeoutSetting-members.html b/3.4.0/api/python/classctrlxdatalayer_1_1client_1_1TimeoutSetting-members.html new file mode 100644 index 000000000..8dd0b1dc2 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1client_1_1TimeoutSetting-members.html @@ -0,0 +1,106 @@ + + + + + + + +ctrlX Data Layer API for Python: Member List + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    TimeoutSetting Member List
    +
    +
    + +

    This is the complete list of members for TimeoutSetting, including all inherited members.

    + + + + +
    IDLE (defined in TimeoutSetting)TimeoutSettingstatic
    PING (defined in TimeoutSetting)TimeoutSettingstatic
    Reconnect (defined in TimeoutSetting)TimeoutSettingstatic
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1client_1_1TimeoutSetting.html b/3.4.0/api/python/classctrlxdatalayer_1_1client_1_1TimeoutSetting.html new file mode 100644 index 000000000..1f2a426ed --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1client_1_1TimeoutSetting.html @@ -0,0 +1,129 @@ + + + + + + + +ctrlX Data Layer API for Python: TimeoutSetting Class Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    TimeoutSetting Class Reference
    +
    +
    +
    + + Inheritance diagram for TimeoutSetting:
    +
    +
    + + + + + + + + + +

    +Static Public Attributes

    +int IDLE = 0
     
    +int PING = 1
     
    +int Reconnect = 2
     
    +

    Detailed Description

    +

    Settings of different timeout values.

    + +

    Definition at line 50 of file client.py.

    +
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1client_1_1TimeoutSetting.js b/3.4.0/api/python/classctrlxdatalayer_1_1client_1_1TimeoutSetting.js new file mode 100644 index 000000000..d95d59cef --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1client_1_1TimeoutSetting.js @@ -0,0 +1,6 @@ +var classctrlxdatalayer_1_1client_1_1TimeoutSetting = +[ + [ "IDLE", "classctrlxdatalayer_1_1client_1_1TimeoutSetting.html#aa7e0dc1f4b2fabfa561842731b7e275d", null ], + [ "PING", "classctrlxdatalayer_1_1client_1_1TimeoutSetting.html#a8fdb48422f44016970794f38cac3adb9", null ], + [ "Reconnect", "classctrlxdatalayer_1_1client_1_1TimeoutSetting.html#ad9fbabf1bfd0b312b802b7d93501761f", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1client_1_1TimeoutSetting.png b/3.4.0/api/python/classctrlxdatalayer_1_1client_1_1TimeoutSetting.png new file mode 100644 index 000000000..6ffce62c8 Binary files /dev/null and b/3.4.0/api/python/classctrlxdatalayer_1_1client_1_1TimeoutSetting.png differ diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1client_1_1__CallbackPtr-members.html b/3.4.0/api/python/classctrlxdatalayer_1_1client_1_1__CallbackPtr-members.html new file mode 100644 index 000000000..c8b1900f7 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1client_1_1__CallbackPtr-members.html @@ -0,0 +1,106 @@ + + + + + + + +ctrlX Data Layer API for Python: Member List + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    _CallbackPtr Member List
    +
    +
    + +

    This is the complete list of members for _CallbackPtr, including all inherited members.

    + + + + +
    __init__(self)_CallbackPtr
    get_ptr(self)_CallbackPtr
    set_ptr(self, ptr)_CallbackPtr
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1client_1_1__CallbackPtr.html b/3.4.0/api/python/classctrlxdatalayer_1_1client_1_1__CallbackPtr.html new file mode 100644 index 000000000..9e43e9dd3 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1client_1_1__CallbackPtr.html @@ -0,0 +1,121 @@ + + + + + + + +ctrlX Data Layer API for Python: _CallbackPtr Class Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    _CallbackPtr Class Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    +def __init__ (self)
     
    +def get_ptr (self)
     
    +def set_ptr (self, ptr)
     
    +

    Detailed Description

    +

    Callback wrapper.

    + +

    Definition at line 25 of file client.py.

    +
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1client_1_1__CallbackPtr.js b/3.4.0/api/python/classctrlxdatalayer_1_1client_1_1__CallbackPtr.js new file mode 100644 index 000000000..793ce34bc --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1client_1_1__CallbackPtr.js @@ -0,0 +1,6 @@ +var classctrlxdatalayer_1_1client_1_1__CallbackPtr = +[ + [ "__init__", "classctrlxdatalayer_1_1client_1_1__CallbackPtr.html#ae64f0875afe3067b97ba370b354b9213", null ], + [ "get_ptr", "classctrlxdatalayer_1_1client_1_1__CallbackPtr.html#a76edc2d231bb616d48fc4c62eb08dc11", null ], + [ "set_ptr", "classctrlxdatalayer_1_1client_1_1__CallbackPtr.html#a37eebd24129a6e95c21c59d45f365cf5", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1converter_1_1C__DLR__SCHEMA-members.html b/3.4.0/api/python/classctrlxdatalayer_1_1converter_1_1C__DLR__SCHEMA-members.html new file mode 100644 index 000000000..a603bed8b --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1converter_1_1C__DLR__SCHEMA-members.html @@ -0,0 +1,110 @@ + + + + + + + +ctrlX Data Layer API for Python: Member List + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    C_DLR_SCHEMA Member List
    +
    +
    + +

    This is the complete list of members for C_DLR_SCHEMA, including all inherited members.

    + + + + + + + + +
    DIAGNOSIS (defined in C_DLR_SCHEMA)C_DLR_SCHEMAstatic
    MEMORY (defined in C_DLR_SCHEMA)C_DLR_SCHEMAstatic
    MEMORY_MAP (defined in C_DLR_SCHEMA)C_DLR_SCHEMAstatic
    METADATA (defined in C_DLR_SCHEMA)C_DLR_SCHEMAstatic
    PROBLEM (defined in C_DLR_SCHEMA)C_DLR_SCHEMAstatic
    REFLECTION (defined in C_DLR_SCHEMA)C_DLR_SCHEMAstatic
    TOKEN (defined in C_DLR_SCHEMA)C_DLR_SCHEMAstatic
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1converter_1_1C__DLR__SCHEMA.html b/3.4.0/api/python/classctrlxdatalayer_1_1converter_1_1C__DLR__SCHEMA.html new file mode 100644 index 000000000..991084c39 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1converter_1_1C__DLR__SCHEMA.html @@ -0,0 +1,141 @@ + + + + + + + +ctrlX Data Layer API for Python: C_DLR_SCHEMA Class Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    C_DLR_SCHEMA Class Reference
    +
    +
    +
    + + Inheritance diagram for C_DLR_SCHEMA:
    +
    +
    + + + + + + + + + + + + + + + + + +

    +Static Public Attributes

    +int DIAGNOSIS = 6
     
    +int MEMORY = 2
     
    +int MEMORY_MAP = 3
     
    +int METADATA = 0
     
    +int PROBLEM = 5
     
    +int REFLECTION = 1
     
    +int TOKEN = 4
     
    +

    Detailed Description

    +

    Type of Converter.

    + +

    Definition at line 17 of file converter.py.

    +
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1converter_1_1C__DLR__SCHEMA.js b/3.4.0/api/python/classctrlxdatalayer_1_1converter_1_1C__DLR__SCHEMA.js new file mode 100644 index 000000000..19881f34e --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1converter_1_1C__DLR__SCHEMA.js @@ -0,0 +1,10 @@ +var classctrlxdatalayer_1_1converter_1_1C__DLR__SCHEMA = +[ + [ "DIAGNOSIS", "classctrlxdatalayer_1_1converter_1_1C__DLR__SCHEMA.html#aec99e722993bd11f73ade614f8fa6c6c", null ], + [ "MEMORY", "classctrlxdatalayer_1_1converter_1_1C__DLR__SCHEMA.html#afdc8b735d9b565787feba69347861108", null ], + [ "MEMORY_MAP", "classctrlxdatalayer_1_1converter_1_1C__DLR__SCHEMA.html#ab944901cd967d92101650b17938785b9", null ], + [ "METADATA", "classctrlxdatalayer_1_1converter_1_1C__DLR__SCHEMA.html#ad312f0966495cfcd0aa39cf1eecf8785", null ], + [ "PROBLEM", "classctrlxdatalayer_1_1converter_1_1C__DLR__SCHEMA.html#ad3a8eef499763285ba7eacaa3738745c", null ], + [ "REFLECTION", "classctrlxdatalayer_1_1converter_1_1C__DLR__SCHEMA.html#a1a933280e3f0e190ee5426265a6b6b30", null ], + [ "TOKEN", "classctrlxdatalayer_1_1converter_1_1C__DLR__SCHEMA.html#a13de2b138712a083a86f30ff694287bd", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1converter_1_1C__DLR__SCHEMA.png b/3.4.0/api/python/classctrlxdatalayer_1_1converter_1_1C__DLR__SCHEMA.png new file mode 100644 index 000000000..49595a2ae Binary files /dev/null and b/3.4.0/api/python/classctrlxdatalayer_1_1converter_1_1C__DLR__SCHEMA.png differ diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1converter_1_1Converter-members.html b/3.4.0/api/python/classctrlxdatalayer_1_1converter_1_1Converter-members.html new file mode 100644 index 000000000..c4311cfee --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1converter_1_1Converter-members.html @@ -0,0 +1,110 @@ + + + + + + + +ctrlX Data Layer API for Python: Member List + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    Converter Member List
    +
    +
    + +

    This is the complete list of members for Converter, including all inherited members.

    + + + + + + + + +
    __init__(self, C_DLR_CONVERTER c_converter)Converter
    converter_generate_json_complex(self, Variant data, Variant ty, int indent_step)Converter
    converter_generate_json_simple(self, Variant data, int indent_step)Converter
    get_handle(self)Converter
    get_schema(self, C_DLR_SCHEMA schema)Converter
    parse_json_complex(self, str json, Variant ty)Converter
    parse_json_simple(self, str json)Converter
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1converter_1_1Converter.html b/3.4.0/api/python/classctrlxdatalayer_1_1converter_1_1Converter.html new file mode 100644 index 000000000..5d894be50 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1converter_1_1Converter.html @@ -0,0 +1,386 @@ + + + + + + + +ctrlX Data Layer API for Python: Converter Class Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    Converter Class Reference
    +
    +
    + + + + + + + + + + + + + + + + +

    +Public Member Functions

    +def __init__ (self, C_DLR_CONVERTER c_converter)
     
    def converter_generate_json_complex (self, Variant data, Variant ty, int indent_step)
     
    def converter_generate_json_simple (self, Variant data, int indent_step)
     
    +def get_handle (self)
     
    def get_schema (self, C_DLR_SCHEMA schema)
     
    def parse_json_complex (self, str json, Variant ty)
     
    def parse_json_simple (self, str json)
     
    +

    Detailed Description

    +

    Converter interface.

    + +

    Definition at line 30 of file converter.py.

    +

    Member Function Documentation

    + +

    ◆ converter_generate_json_complex()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    def converter_generate_json_complex ( self,
    Variant data,
    Variant ty,
    int indent_step 
    )
    +
    + +

    This function generate a JSON string out of a Variant with complex type (flatbuffers) and the metadata of this data.

    +
    Parameters
    + + + + +
    [in]dataVariant which contains data of complex data type (flatbuffers) if data is empty (VariantType::UNKNOWN) type is converted to json schema
    [in]typeVariant which contains type of data (Variant with flatbuffers BFBS)
    [in]indentStepIndentation length for json string
    +
    +
    +
    Returns
    tuple (Result, Variant)
    +
    +<Result>, status of function call,
    +
    +<Variant>, Generated JSON as Variant (string)
    + +

    Definition at line 69 of file converter.py.

    + +

    References Converter.__converter.

    + +
    +
    + +

    ◆ converter_generate_json_simple()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    def converter_generate_json_simple ( self,
    Variant data,
    int indent_step 
    )
    +
    + +

    This function generate a JSON string out of a Variant witch have a simple data type.

    +
    Parameters
    + + + +
    [in]dataVariant which contains data with simple data type
    [in]indentStepIndentation length for json string
    +
    +
    +
    Returns
    tuple (Result, Variant)
    +
    +<Result>, status of function call,
    +
    +<Variant>, Generated JSON as Variant (string)
    + +

    Definition at line 54 of file converter.py.

    + +

    References Converter.__converter.

    + +
    +
    + +

    ◆ get_schema()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    def get_schema ( self,
    C_DLR_SCHEMA schema 
    )
    +
    + +

    This function returns the type (schema)

    +
    Parameters
    + + +
    [in]schemaRequested schema
    +
    +
    +
    Returns
    tuple (Result, Variant)
    +
    +<Result>, status of function call,
    +
    +<Variant>, Variant which contains the type (schema)
    + +

    Definition at line 115 of file converter.py.

    + +

    References Converter.__converter.

    + +
    +
    + +

    ◆ parse_json_complex()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    def parse_json_complex ( self,
    str json,
    Variant ty 
    )
    +
    + +

    This function generates a Variant out of a JSON string containing the (complex) data.

    +
    Parameters
    + + + +
    [in]jsonData of the Variant as a json string
    [in]typeVariant which contains type of data (Variant with bfbs flatbuffer content)
    +
    +
    +
    Returns
    tuple (Result, Variant, Variant)
    +
    +<Result>, status of function call,
    +
    +<Variant>, Variant which contains the data
    +
    +<Variant>, Error as Variant (string)
    + +

    Definition at line 100 of file converter.py.

    + +

    References Converter.__converter.

    + +
    +
    + +

    ◆ parse_json_simple()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    def parse_json_simple ( self,
    str json 
    )
    +
    + +

    This function generates a Variant out of a JSON string containing the (simple) data.

    +
    Parameters
    + + +
    [in]jsonData of the Variant as a json string
    +
    +
    +
    Returns
    tuple (Result, Variant, Variant)
    +
    +<Result>, status of function call,
    +
    +<Variant>, Variant which contains the data
    +
    +<Variant>, Error as Variant (string)
    + +

    Definition at line 83 of file converter.py.

    + +

    References Converter.__converter.

    + +
    +
    +
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1converter_1_1Converter.js b/3.4.0/api/python/classctrlxdatalayer_1_1converter_1_1Converter.js new file mode 100644 index 000000000..a30f11cd2 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1converter_1_1Converter.js @@ -0,0 +1,10 @@ +var classctrlxdatalayer_1_1converter_1_1Converter = +[ + [ "__init__", "classctrlxdatalayer_1_1converter_1_1Converter.html#a3bd786a63e4fb3b6f41c630a454d2814", null ], + [ "converter_generate_json_complex", "classctrlxdatalayer_1_1converter_1_1Converter.html#a30abdd62206a5a872b874a9d24db1d98", null ], + [ "converter_generate_json_simple", "classctrlxdatalayer_1_1converter_1_1Converter.html#a2e5e1f24ba0c9ef47c1f1a9eec9be019", null ], + [ "get_handle", "classctrlxdatalayer_1_1converter_1_1Converter.html#aa0041e70f5a3139baac2676f0a1367bb", null ], + [ "get_schema", "classctrlxdatalayer_1_1converter_1_1Converter.html#ad183b9029660db6bb4bb69433724e296", null ], + [ "parse_json_complex", "classctrlxdatalayer_1_1converter_1_1Converter.html#ad4a041c00ab8eb15be81937553bcc2b0", null ], + [ "parse_json_simple", "classctrlxdatalayer_1_1converter_1_1Converter.html#a9424dc33f2ba517cabb366f00d73a676", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1factory_1_1Factory-members.html b/3.4.0/api/python/classctrlxdatalayer_1_1factory_1_1Factory-members.html new file mode 100644 index 000000000..7f790e3bb --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1factory_1_1Factory-members.html @@ -0,0 +1,107 @@ + + + + + + + +ctrlX Data Layer API for Python: Member List + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    Factory Member List
    +
    +
    + +

    This is the complete list of members for Factory, including all inherited members.

    + + + + + +
    __init__(self, C_DLR_FACTORY c_factory)Factory
    create_client(self, str remote)Factory
    create_provider(self, str remote)Factory
    get_handle(self)Factory
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1factory_1_1Factory.html b/3.4.0/api/python/classctrlxdatalayer_1_1factory_1_1Factory.html new file mode 100644 index 000000000..2bf7d7358 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1factory_1_1Factory.html @@ -0,0 +1,205 @@ + + + + + + + +ctrlX Data Layer API for Python: Factory Class Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    Factory Class Reference
    +
    +
    + + + + + + + + + + +

    +Public Member Functions

    +def __init__ (self, C_DLR_FACTORY c_factory)
     
    Client create_client (self, str remote)
     
    Provider create_provider (self, str remote)
     
    +def get_handle (self)
     
    +

    Detailed Description

    +

    Factory class.

    + +

    Definition at line 11 of file factory.py.

    +

    Member Function Documentation

    + +

    ◆ create_client()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    Client create_client ( self,
    str remote 
    )
    +
    + +

    Creates a client for accessing data of the system.

    +
    Parameters
    + + +
    [in]remoteRemote address of the data layer
    +
    +
    +
    Returns
    <Client>
    + +

    Definition at line 32 of file factory.py.

    + +

    References Factory.__factory.

    + +
    +
    + +

    ◆ create_provider()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    Provider create_provider ( self,
    str remote 
    )
    +
    + +

    Creates a provider to provide data to the datalayer.

    +
    Parameters
    + + +
    [in]remoteRemote address of the data layer
    +
    +
    +
    Returns
    <Provider>
    + +

    Definition at line 43 of file factory.py.

    + +

    References Factory.__factory.

    + +
    +
    +
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1factory_1_1Factory.js b/3.4.0/api/python/classctrlxdatalayer_1_1factory_1_1Factory.js new file mode 100644 index 000000000..08fdee48c --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1factory_1_1Factory.js @@ -0,0 +1,7 @@ +var classctrlxdatalayer_1_1factory_1_1Factory = +[ + [ "__init__", "classctrlxdatalayer_1_1factory_1_1Factory.html#a2fc5414186d67b965f04bbef9cbcddf6", null ], + [ "create_client", "classctrlxdatalayer_1_1factory_1_1Factory.html#ac1e11e43644987a9d766014d192a3eac", null ], + [ "create_provider", "classctrlxdatalayer_1_1factory_1_1Factory.html#a70593e62040d99948079f6f6328420f0", null ], + [ "get_handle", "classctrlxdatalayer_1_1factory_1_1Factory.html#aa0041e70f5a3139baac2676f0a1367bb", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1metadata__utils_1_1AllowedOperation-members.html b/3.4.0/api/python/classctrlxdatalayer_1_1metadata__utils_1_1AllowedOperation-members.html new file mode 100644 index 000000000..e34482772 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1metadata__utils_1_1AllowedOperation-members.html @@ -0,0 +1,110 @@ + + + + + + + +ctrlX Data Layer API for Python: Member List + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    AllowedOperation Member List
    +
    +
    + +

    This is the complete list of members for AllowedOperation, including all inherited members.

    + + + + + + + + +
    ALL (defined in AllowedOperation)AllowedOperationstatic
    BROWSE (defined in AllowedOperation)AllowedOperationstatic
    CREATE (defined in AllowedOperation)AllowedOperationstatic
    DELETE (defined in AllowedOperation)AllowedOperationstatic
    NONE (defined in AllowedOperation)AllowedOperationstatic
    READ (defined in AllowedOperation)AllowedOperationstatic
    WRITE (defined in AllowedOperation)AllowedOperationstatic
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1metadata__utils_1_1AllowedOperation.html b/3.4.0/api/python/classctrlxdatalayer_1_1metadata__utils_1_1AllowedOperation.html new file mode 100644 index 000000000..0809ee2c9 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1metadata__utils_1_1AllowedOperation.html @@ -0,0 +1,141 @@ + + + + + + + +ctrlX Data Layer API for Python: AllowedOperation Class Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    AllowedOperation Class Reference
    +
    +
    +
    + + Inheritance diagram for AllowedOperation:
    +
    +
    + + + + + + + + + + + + + + + + + +

    +Static Public Attributes

    +int ALL = READ | WRITE | CREATE | DELETE | BROWSE
     
    +int BROWSE = 0x10000
     
    +int CREATE = 0x00100
     
    +int DELETE = 0x01000
     
    +int NONE = 0x00000
     
    +int READ = 0x00001
     
    +int WRITE = 0x00010
     
    +

    Detailed Description

    +

    Allowed Operation Flags.

    + +

    Definition at line 67 of file metadata_utils.py.

    +
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1metadata__utils_1_1AllowedOperation.js b/3.4.0/api/python/classctrlxdatalayer_1_1metadata__utils_1_1AllowedOperation.js new file mode 100644 index 000000000..f1d3dfeb4 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1metadata__utils_1_1AllowedOperation.js @@ -0,0 +1,10 @@ +var classctrlxdatalayer_1_1metadata__utils_1_1AllowedOperation = +[ + [ "ALL", "classctrlxdatalayer_1_1metadata__utils_1_1AllowedOperation.html#aadda1bcc9f63948dc0704d00fcd15e0d", null ], + [ "BROWSE", "classctrlxdatalayer_1_1metadata__utils_1_1AllowedOperation.html#a8c3488133acf264034b9dcdbb0f2fc47", null ], + [ "CREATE", "classctrlxdatalayer_1_1metadata__utils_1_1AllowedOperation.html#a574f76adbfad7433c58d9f487cba7711", null ], + [ "DELETE", "classctrlxdatalayer_1_1metadata__utils_1_1AllowedOperation.html#a590918203e660dae0666661f58bfb2cd", null ], + [ "NONE", "classctrlxdatalayer_1_1metadata__utils_1_1AllowedOperation.html#a8da3a66cae7ac2c40966de471684f3fb", null ], + [ "READ", "classctrlxdatalayer_1_1metadata__utils_1_1AllowedOperation.html#a760b2298f31b9e96dcd55072a563be35", null ], + [ "WRITE", "classctrlxdatalayer_1_1metadata__utils_1_1AllowedOperation.html#ac711764236ed0984fffa3b630971e2cb", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1metadata__utils_1_1AllowedOperation.png b/3.4.0/api/python/classctrlxdatalayer_1_1metadata__utils_1_1AllowedOperation.png new file mode 100644 index 000000000..ba88bbce4 Binary files /dev/null and b/3.4.0/api/python/classctrlxdatalayer_1_1metadata__utils_1_1AllowedOperation.png differ diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1metadata__utils_1_1MetadataBuilder-members.html b/3.4.0/api/python/classctrlxdatalayer_1_1metadata__utils_1_1MetadataBuilder-members.html new file mode 100644 index 000000000..2e0627b4f --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1metadata__utils_1_1MetadataBuilder-members.html @@ -0,0 +1,115 @@ + + + + + + + +ctrlX Data Layer API for Python: Member List + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    MetadataBuilder Member List
    +
    +
    + +

    This is the complete list of members for MetadataBuilder, including all inherited members.

    + + + + + + + + + + + + + +
    __init__(self, AllowedOperation allowed=AllowedOperation.BROWSE, str description="", str description_url="")MetadataBuilder
    add_extensions(self, str key, str val)MetadataBuilder
    add_localization_description(self, str ident, str txt)MetadataBuilder
    add_localization_display_name(self, str ident, str txt)MetadataBuilder
    add_reference(self, ReferenceType t, str addr)MetadataBuilder
    build(self)MetadataBuilder
    create_metadata(str name, str description, str unit, str description_url, NodeClass node_class, bool read_allowed, bool write_allowed, bool create_allowed, bool delete_allowed, bool browse_allowed, str type_path, dict references=None) (defined in MetadataBuilder)MetadataBuilderstatic
    set_display_format(self, DisplayFormat.DisplayFormat.Auto f)MetadataBuilder
    set_display_name(self, str name)MetadataBuilder
    set_node_class(self, NodeClass node_class)MetadataBuilder
    set_operations(self, AllowedOperation allowed=AllowedOperation.NONE)MetadataBuilder
    set_unit(self, str unit)MetadataBuilder
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1metadata__utils_1_1MetadataBuilder.html b/3.4.0/api/python/classctrlxdatalayer_1_1metadata__utils_1_1MetadataBuilder.html new file mode 100644 index 000000000..0e795218f --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1metadata__utils_1_1MetadataBuilder.html @@ -0,0 +1,179 @@ + + + + + + + +ctrlX Data Layer API for Python: MetadataBuilder Class Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    MetadataBuilder Class Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    +def __init__ (self, AllowedOperation allowed=AllowedOperation.BROWSE, str description="", str description_url="")
     
    +def add_extensions (self, str key, str val)
     
    +def add_localization_description (self, str ident, str txt)
     
    +def add_localization_display_name (self, str ident, str txt)
     
    +def add_reference (self, ReferenceType t, str addr)
     
    Variant build (self)
     
    +def set_display_format (self, DisplayFormat.DisplayFormat.Auto f)
     
    +def set_display_name (self, str name)
     
    +def set_node_class (self, NodeClass node_class)
     
    +def set_operations (self, AllowedOperation allowed=AllowedOperation.NONE)
     
    +def set_unit (self, str unit)
     
    + + + +

    +Static Public Member Functions

    +Variant create_metadata (str name, str description, str unit, str description_url, NodeClass node_class, bool read_allowed, bool write_allowed, bool create_allowed, bool delete_allowed, bool browse_allowed, str type_path, dict references=None)
     
    +

    Detailed Description

    +

    Builds a flatbuffer provided with the metadata information for a Data Layer node.

    + +

    Definition at line 78 of file metadata_utils.py.

    +

    Member Function Documentation

    + +

    ◆ build()

    + + +
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1metadata__utils_1_1MetadataBuilder.js b/3.4.0/api/python/classctrlxdatalayer_1_1metadata__utils_1_1MetadataBuilder.js new file mode 100644 index 000000000..7175704e2 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1metadata__utils_1_1MetadataBuilder.js @@ -0,0 +1,15 @@ +var classctrlxdatalayer_1_1metadata__utils_1_1MetadataBuilder = +[ + [ "__init__", "classctrlxdatalayer_1_1metadata__utils_1_1MetadataBuilder.html#a9f5d291e1cf6a7d897bea182759e543a", null ], + [ "add_extensions", "classctrlxdatalayer_1_1metadata__utils_1_1MetadataBuilder.html#a89cedeb8a15e5862343a39815b129fae", null ], + [ "add_localization_description", "classctrlxdatalayer_1_1metadata__utils_1_1MetadataBuilder.html#af15420cfd5214f4cccead48732709e52", null ], + [ "add_localization_display_name", "classctrlxdatalayer_1_1metadata__utils_1_1MetadataBuilder.html#ac855536d363277c3b3d9691d63b56557", null ], + [ "add_reference", "classctrlxdatalayer_1_1metadata__utils_1_1MetadataBuilder.html#ad93702ffc7422e56d588e32d7c3c473d", null ], + [ "build", "classctrlxdatalayer_1_1metadata__utils_1_1MetadataBuilder.html#a8c9808276b6848b2a1b39b748ab61a70", null ], + [ "create_metadata", "classctrlxdatalayer_1_1metadata__utils_1_1MetadataBuilder.html#a4faed623f5e2d17da1ee5535e4f5428a", null ], + [ "set_display_format", "classctrlxdatalayer_1_1metadata__utils_1_1MetadataBuilder.html#a2cf382265dc4c1c970c358e25404d862", null ], + [ "set_display_name", "classctrlxdatalayer_1_1metadata__utils_1_1MetadataBuilder.html#a4b144a088ac76f44a1dbeb7be69772ae", null ], + [ "set_node_class", "classctrlxdatalayer_1_1metadata__utils_1_1MetadataBuilder.html#a760ef5e9db2d57aad5cd92cd2e6b8837", null ], + [ "set_operations", "classctrlxdatalayer_1_1metadata__utils_1_1MetadataBuilder.html#acf3c195c61a938bd77461eb29bbd86ab", null ], + [ "set_unit", "classctrlxdatalayer_1_1metadata__utils_1_1MetadataBuilder.html#a0c7585e90d8eab7426cbabcdd1ce848d", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1metadata__utils_1_1ReferenceType-members.html b/3.4.0/api/python/classctrlxdatalayer_1_1metadata__utils_1_1ReferenceType-members.html new file mode 100644 index 000000000..94bbbda8b --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1metadata__utils_1_1ReferenceType-members.html @@ -0,0 +1,112 @@ + + + + + + + +ctrlX Data Layer API for Python: Member List + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    ReferenceType Member List
    +
    +
    + +

    This is the complete list of members for ReferenceType, including all inherited members.

    + + + + + + + + + + +
    create(cls)ReferenceType
    has_save(cls) (defined in ReferenceType)ReferenceType
    read(cls)ReferenceType
    read_in(cls)ReferenceType
    read_out(cls)ReferenceType
    uses(cls)ReferenceType
    write(cls)ReferenceType
    write_in(cls)ReferenceType
    write_out(cls)ReferenceType
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1metadata__utils_1_1ReferenceType.html b/3.4.0/api/python/classctrlxdatalayer_1_1metadata__utils_1_1ReferenceType.html new file mode 100644 index 000000000..ecc31a66c --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1metadata__utils_1_1ReferenceType.html @@ -0,0 +1,162 @@ + + + + + + + +ctrlX Data Layer API for Python: ReferenceType Class Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    ReferenceType Class Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    +def create (cls)
     
    +def has_save (cls)
     
    +def read (cls)
     
    +def read_in (cls)
     
    +def read_out (cls)
     
    +def uses (cls)
     
    def write (cls)
     
    +def write_in (cls)
     
    +def write_out (cls)
     
    +

    Detailed Description

    +

    List of reference types as strings.

    + +

    Definition at line 13 of file metadata_utils.py.

    +

    Member Function Documentation

    + +

    ◆ write()

    + +
    +
    + + + + + + + + +
    def write ( cls)
    +
    + +

    Type when writing a value (absolute node address).

    +

    Input/Output type are the same.

    + +

    Definition at line 32 of file metadata_utils.py.

    + +
    +
    +
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1metadata__utils_1_1ReferenceType.js b/3.4.0/api/python/classctrlxdatalayer_1_1metadata__utils_1_1ReferenceType.js new file mode 100644 index 000000000..dd6125b49 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1metadata__utils_1_1ReferenceType.js @@ -0,0 +1,12 @@ +var classctrlxdatalayer_1_1metadata__utils_1_1ReferenceType = +[ + [ "create", "classctrlxdatalayer_1_1metadata__utils_1_1ReferenceType.html#aeadffb9df4df6d3f2862c20c41876841", null ], + [ "has_save", "classctrlxdatalayer_1_1metadata__utils_1_1ReferenceType.html#a8e890aaa1701eea37f3dd2bacc5b4633", null ], + [ "read", "classctrlxdatalayer_1_1metadata__utils_1_1ReferenceType.html#a3163bff827604da27b61fec6c17e2bac", null ], + [ "read_in", "classctrlxdatalayer_1_1metadata__utils_1_1ReferenceType.html#a77753b931fc152ec17f95bb8512bf60e", null ], + [ "read_out", "classctrlxdatalayer_1_1metadata__utils_1_1ReferenceType.html#a3fc13f331391b2937258262f5f2e2ddd", null ], + [ "uses", "classctrlxdatalayer_1_1metadata__utils_1_1ReferenceType.html#a9d679ac2fd5bade9fdda9a89ef5247cb", null ], + [ "write", "classctrlxdatalayer_1_1metadata__utils_1_1ReferenceType.html#a874d67aa2c1f6369a696bfc71a5a84cb", null ], + [ "write_in", "classctrlxdatalayer_1_1metadata__utils_1_1ReferenceType.html#af68893200c74c860fb075ead9c43349b", null ], + [ "write_out", "classctrlxdatalayer_1_1metadata__utils_1_1ReferenceType.html#a18ce3f79d2e006c17ed760533dd92e2c", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1provider_1_1Provider-members.html b/3.4.0/api/python/classctrlxdatalayer_1_1provider_1_1Provider-members.html new file mode 100644 index 000000000..d37924abf --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1provider_1_1Provider-members.html @@ -0,0 +1,117 @@ + + + + + + + +ctrlX Data Layer API for Python: Member List + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    Provider Member List
    +
    +
    + +

    This is the complete list of members for Provider, including all inherited members.

    + + + + + + + + + + + + + + + +
    __enter__(self)Provider
    __exit__(self, exc_type, exc_val, exc_tb)Provider
    __init__(self, C_DLR_PROVIDER c_provider)Provider
    close(self)Provider
    get_token(self)Provider
    is_connected(self)Provider
    register_node(self, str address, ProviderNode node)Provider
    register_type(self, str address, str pathname)Provider
    register_type_variant(self, str address, Variant data)Provider
    set_timeout_node(self, ProviderNode node, int timeout_ms)Provider
    start(self)Provider
    stop(self)Provider
    unregister_node(self, str address)Provider
    unregister_type(self, str address)Provider
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1provider_1_1Provider.html b/3.4.0/api/python/classctrlxdatalayer_1_1provider_1_1Provider.html new file mode 100644 index 000000000..5794f0569 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1provider_1_1Provider.html @@ -0,0 +1,500 @@ + + + + + + + +ctrlX Data Layer API for Python: Provider Class Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    Provider Class Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    +def __init__ (self, C_DLR_PROVIDER c_provider)
     
    +def __enter__ (self)
     
    +def __exit__ (self, exc_type, exc_val, exc_tb)
     
    +def close (self)
     
    Variant get_token (self)
     
    bool is_connected (self)
     
    Result register_node (self, str address, ProviderNode node)
     
    Result register_type (self, str address, str pathname)
     
    Result register_type_variant (self, str address, Variant data)
     
    Result set_timeout_node (self, ProviderNode node, int timeout_ms)
     
    Result start (self)
     
    Result stop (self)
     
    Result unregister_node (self, str address)
     
    Result unregister_type (self, str address)
     
    +

    Detailed Description

    +
    +

    Definition at line 14 of file provider.py.

    +

    Member Function Documentation

    + +

    ◆ get_token()

    + +
    +
    + + + + + + + + +
    Variant get_token ( self)
    +
    + +

    return the current token of the current request.You can call this function during your onRead, onWrite, ...

    +

    methods of your ProviderNodes. If there is no current request the method return an empty token

    Returns
    <Variant> current token
    + +

    Definition at line 123 of file provider.py.

    + +
    +
    + +

    ◆ is_connected()

    + +
    +
    + + + + + + + + +
    bool is_connected ( self)
    +
    + +

    returns whether provider is connected

    +
    Returns
    status of connection
    + +

    Definition at line 116 of file provider.py.

    + +
    +
    + +

    ◆ register_node()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    Result register_node ( self,
    str address,
    ProviderNode node 
    )
    +
    + +

    Register a node to the datalayer.

    +
    Parameters
    + + + +
    [in]addressAddress of the node to register (wildcards allowed)
    [in]nodeNode to register
    +
    +
    +
    Returns
    <Result>, status of function call
    + +

    Definition at line 74 of file provider.py.

    + +
    +
    + +

    ◆ register_type()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    Result register_type ( self,
    str address,
    str pathname 
    )
    +
    + +

    Register a type to the datalayer.

    +
    Parameters
    + + + +
    [in]addressAddress of the node to register (no wildcards allowed)
    [in]pathnamePath to flatbuffer bfbs
    +
    +
    +
    Returns
    <Result>, status of function call
    + +

    Definition at line 54 of file provider.py.

    + +
    +
    + +

    ◆ register_type_variant()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    Result register_type_variant ( self,
    str address,
    Variant data 
    )
    +
    + +

    Register a type to the datalayer.

    +
    Parameters
    + + + +
    [in]addressAddress of the node to register (no wildcards allowed)
    [in]dataVariant with flatbuffer type
    +
    +
    +
    Returns
    <Result>, status of function call
    + +

    Definition at line 132 of file provider.py.

    + +
    +
    + +

    ◆ set_timeout_node()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    Result set_timeout_node ( self,
    ProviderNode node,
    int timeout_ms 
    )
    +
    + +

    Set timeout for a node for asynchron requests (default value is 1000ms)

    +
    Parameters
    + + + +
    [in]nodeNode to set timeout for
    [in]timeoutMSTimeout in milliseconds for this node
    +
    +
    +
    Returns
    <Result>, status of function call
    + +

    Definition at line 93 of file provider.py.

    + +
    +
    + +

    ◆ start()

    + +
    +
    + + + + + + + + +
    Result start ( self)
    +
    + +

    Start the provider.

    +
    Returns
    <Result>, status of function call
    + +

    Definition at line 102 of file provider.py.

    + +
    +
    + +

    ◆ stop()

    + +
    +
    + + + + + + + + +
    Result stop ( self)
    +
    + +

    Stop the provider.

    +
    Returns
    <Result>, status of function call
    + +

    Definition at line 109 of file provider.py.

    + +

    Referenced by System.close().

    + +
    +
    + +

    ◆ unregister_node()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    Result unregister_node ( self,
    str address 
    )
    +
    + +

    Unregister a node from the datalayer.

    +
    Parameters
    + + +
    [in]addressAddress of the node to register (wildcards allowed)
    +
    +
    +
    Returns
    <Result>, status of function call
    + +

    Definition at line 83 of file provider.py.

    + +
    +
    + +

    ◆ unregister_type()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    Result unregister_type ( self,
    str address 
    )
    +
    + +

    Unregister a type from the datalayer.

    +
    Parameters
    + + +
    [in]addressAddress of the node to register (wildcards allowed)
    +
    +
    +
    Returns
    <Result>, status of function call
    + +

    Definition at line 64 of file provider.py.

    + +
    +
    +
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1provider_1_1Provider.js b/3.4.0/api/python/classctrlxdatalayer_1_1provider_1_1Provider.js new file mode 100644 index 000000000..224a0f9c5 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1provider_1_1Provider.js @@ -0,0 +1,17 @@ +var classctrlxdatalayer_1_1provider_1_1Provider = +[ + [ "__init__", "classctrlxdatalayer_1_1provider_1_1Provider.html#a9124c75ffef4d7c89c7f389515ea5c54", null ], + [ "__enter__", "classctrlxdatalayer_1_1provider_1_1Provider.html#a404692262c90487a8013dbdd128cdd7f", null ], + [ "__exit__", "classctrlxdatalayer_1_1provider_1_1Provider.html#a1d4375d5b88ea11310dcd3bfb10ecb97", null ], + [ "close", "classctrlxdatalayer_1_1provider_1_1Provider.html#a8639372c33e15084a7f7c4d9d87b7bfe", null ], + [ "get_token", "classctrlxdatalayer_1_1provider_1_1Provider.html#a063c3d4b65698a948694d0d2253a4ebf", null ], + [ "is_connected", "classctrlxdatalayer_1_1provider_1_1Provider.html#ac32346ebf625109187290cca9dd0c936", null ], + [ "register_node", "classctrlxdatalayer_1_1provider_1_1Provider.html#aee4f015e58fc712f5cee4268020b92e0", null ], + [ "register_type", "classctrlxdatalayer_1_1provider_1_1Provider.html#a34d8a422403f116cae869ae57301fa7b", null ], + [ "register_type_variant", "classctrlxdatalayer_1_1provider_1_1Provider.html#a1a75a4d35dff57fe7c351c7df640ea73", null ], + [ "set_timeout_node", "classctrlxdatalayer_1_1provider_1_1Provider.html#af68383acc4596ef6ff108200e8f6b031", null ], + [ "start", "classctrlxdatalayer_1_1provider_1_1Provider.html#a764c2f88608a6720e368d45781820547", null ], + [ "stop", "classctrlxdatalayer_1_1provider_1_1Provider.html#a0930c5af691b4c2e5f9b650d5a47e908", null ], + [ "unregister_node", "classctrlxdatalayer_1_1provider_1_1Provider.html#a40c3a4318a6ed2a50e06b38d315178be", null ], + [ "unregister_type", "classctrlxdatalayer_1_1provider_1_1Provider.html#ac472816492feb2c946bba3fa93ebffdc", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1provider__node_1_1ProviderNode-members.html b/3.4.0/api/python/classctrlxdatalayer_1_1provider__node_1_1ProviderNode-members.html new file mode 100644 index 000000000..8c93ca692 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1provider__node_1_1ProviderNode-members.html @@ -0,0 +1,109 @@ + + + + + + + +ctrlX Data Layer API for Python: Member List + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    ProviderNode Member List
    +
    +
    + +

    This is the complete list of members for ProviderNode, including all inherited members.

    + + + + + + + +
    __del__(self)ProviderNode
    __enter__(self)ProviderNode
    __exit__(self, exc_type, exc_val, exc_tb)ProviderNode
    __init__(self, ProviderNodeCallbacks cbs, userData_c_void_p userdata=None)ProviderNode
    close(self)ProviderNode
    get_handle(self)ProviderNode
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1provider__node_1_1ProviderNode.html b/3.4.0/api/python/classctrlxdatalayer_1_1provider__node_1_1ProviderNode.html new file mode 100644 index 000000000..77bcc9b95 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1provider__node_1_1ProviderNode.html @@ -0,0 +1,131 @@ + + + + + + + +ctrlX Data Layer API for Python: ProviderNode Class Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    ProviderNode Class Reference
    +
    +
    + + + + + + + + + + + + + + +

    +Public Member Functions

    +def __init__ (self, ProviderNodeCallbacks cbs, userData_c_void_p userdata=None)
     
    +def __del__ (self)
     
    +def __enter__ (self)
     
    +def __exit__ (self, exc_type, exc_val, exc_tb)
     
    +def close (self)
     
    +def get_handle (self)
     
    +

    Detailed Description

    +

    Provider node interface for providing data to the system.

    +

    Hint see python context manager for instance handling

    + +

    Definition at line 87 of file provider_node.py.

    +
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1provider__node_1_1ProviderNode.js b/3.4.0/api/python/classctrlxdatalayer_1_1provider__node_1_1ProviderNode.js new file mode 100644 index 000000000..6089b5b64 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1provider__node_1_1ProviderNode.js @@ -0,0 +1,9 @@ +var classctrlxdatalayer_1_1provider__node_1_1ProviderNode = +[ + [ "__init__", "classctrlxdatalayer_1_1provider__node_1_1ProviderNode.html#ad46014d2cd90ce7aeba19dbbed380a74", null ], + [ "__del__", "classctrlxdatalayer_1_1provider__node_1_1ProviderNode.html#a41a65d7030dd1006b177d0bc24e1a12b", null ], + [ "__enter__", "classctrlxdatalayer_1_1provider__node_1_1ProviderNode.html#a404692262c90487a8013dbdd128cdd7f", null ], + [ "__exit__", "classctrlxdatalayer_1_1provider__node_1_1ProviderNode.html#a1d4375d5b88ea11310dcd3bfb10ecb97", null ], + [ "close", "classctrlxdatalayer_1_1provider__node_1_1ProviderNode.html#a8639372c33e15084a7f7c4d9d87b7bfe", null ], + [ "get_handle", "classctrlxdatalayer_1_1provider__node_1_1ProviderNode.html#aa0041e70f5a3139baac2676f0a1367bb", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1provider__node_1_1ProviderNodeCallbacks-members.html b/3.4.0/api/python/classctrlxdatalayer_1_1provider__node_1_1ProviderNodeCallbacks-members.html new file mode 100644 index 000000000..8e0ee328b --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1provider__node_1_1ProviderNodeCallbacks-members.html @@ -0,0 +1,112 @@ + + + + + + + +ctrlX Data Layer API for Python: Member List + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    ProviderNodeCallbacks Member List
    +
    +
    + +

    This is the complete list of members for ProviderNodeCallbacks, including all inherited members.

    + + + + + + + + + + +
    __init__(self, NodeFunctionData on_create, NodeFunction on_remove, NodeFunction on_browse, NodeFunctionData on_read, NodeFunctionData on_write, NodeFunction on_metadata, NodeFunctionSubscription on_subscribe=None, NodeFunctionSubscription on_unsubscribe=None)ProviderNodeCallbacks
    on_browse (defined in ProviderNodeCallbacks)ProviderNodeCallbacks
    on_create (defined in ProviderNodeCallbacks)ProviderNodeCallbacks
    on_metadata (defined in ProviderNodeCallbacks)ProviderNodeCallbacks
    on_read (defined in ProviderNodeCallbacks)ProviderNodeCallbacks
    on_remove (defined in ProviderNodeCallbacks)ProviderNodeCallbacks
    on_subscribe (defined in ProviderNodeCallbacks)ProviderNodeCallbacks
    on_unsubscribe (defined in ProviderNodeCallbacks)ProviderNodeCallbacks
    on_write (defined in ProviderNodeCallbacks)ProviderNodeCallbacks
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1provider__node_1_1ProviderNodeCallbacks.html b/3.4.0/api/python/classctrlxdatalayer_1_1provider__node_1_1ProviderNodeCallbacks.html new file mode 100644 index 000000000..fe023f634 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1provider__node_1_1ProviderNodeCallbacks.html @@ -0,0 +1,143 @@ + + + + + + + +ctrlX Data Layer API for Python: ProviderNodeCallbacks Class Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    ProviderNodeCallbacks Class Reference
    +
    +
    + + + + +

    +Public Member Functions

    +def __init__ (self, NodeFunctionData on_create, NodeFunction on_remove, NodeFunction on_browse, NodeFunctionData on_read, NodeFunctionData on_write, NodeFunction on_metadata, NodeFunctionSubscription on_subscribe=None, NodeFunctionSubscription on_unsubscribe=None)
     
    + + + + + + + + + + + + + + + + + +

    +Public Attributes

    on_browse
     
    on_create
     
    on_metadata
     
    on_read
     
    on_remove
     
    on_subscribe
     
    on_unsubscribe
     
    on_write
     
    +

    Detailed Description

    +

    Provider Node callbacks interface.

    + +

    Definition at line 55 of file provider_node.py.

    +
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1provider__node_1_1ProviderNodeCallbacks.js b/3.4.0/api/python/classctrlxdatalayer_1_1provider__node_1_1ProviderNodeCallbacks.js new file mode 100644 index 000000000..04e94b2ad --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1provider__node_1_1ProviderNodeCallbacks.js @@ -0,0 +1,12 @@ +var classctrlxdatalayer_1_1provider__node_1_1ProviderNodeCallbacks = +[ + [ "__init__", "classctrlxdatalayer_1_1provider__node_1_1ProviderNodeCallbacks.html#a194ad510b8413868e4fa2293369f9358", null ], + [ "on_browse", "classctrlxdatalayer_1_1provider__node_1_1ProviderNodeCallbacks.html#ac2ee216e04d7369a3c4b4a22795b64b2", null ], + [ "on_create", "classctrlxdatalayer_1_1provider__node_1_1ProviderNodeCallbacks.html#a47f888b3eee98ac5a47164a58ba63f8d", null ], + [ "on_metadata", "classctrlxdatalayer_1_1provider__node_1_1ProviderNodeCallbacks.html#ad02177fb2549848dbec8ab4bdaa82c7b", null ], + [ "on_read", "classctrlxdatalayer_1_1provider__node_1_1ProviderNodeCallbacks.html#ac55b774b9acb34bbdad9ab28d0b7ed6e", null ], + [ "on_remove", "classctrlxdatalayer_1_1provider__node_1_1ProviderNodeCallbacks.html#a1ce52502f8addace3e04bc000b4028bb", null ], + [ "on_subscribe", "classctrlxdatalayer_1_1provider__node_1_1ProviderNodeCallbacks.html#addf9142dd2ade0d6cfaf874848b32015", null ], + [ "on_unsubscribe", "classctrlxdatalayer_1_1provider__node_1_1ProviderNodeCallbacks.html#a60e4e6277183cb9d88c0f8b5074ba4ca", null ], + [ "on_write", "classctrlxdatalayer_1_1provider__node_1_1ProviderNodeCallbacks.html#ab8e9909223278899b7d1f700022049b4", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1provider__node_1_1__CallbackPtr-members.html b/3.4.0/api/python/classctrlxdatalayer_1_1provider__node_1_1__CallbackPtr-members.html new file mode 100644 index 000000000..625f24e13 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1provider__node_1_1__CallbackPtr-members.html @@ -0,0 +1,106 @@ + + + + + + + +ctrlX Data Layer API for Python: Member List + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    _CallbackPtr Member List
    +
    +
    + +

    This is the complete list of members for _CallbackPtr, including all inherited members.

    + + + + +
    __init__(self)_CallbackPtr
    get_ptr(self)_CallbackPtr
    set_ptr(self, ptr)_CallbackPtr
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1provider__node_1_1__CallbackPtr.html b/3.4.0/api/python/classctrlxdatalayer_1_1provider__node_1_1__CallbackPtr.html new file mode 100644 index 000000000..3c95ceb86 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1provider__node_1_1__CallbackPtr.html @@ -0,0 +1,121 @@ + + + + + + + +ctrlX Data Layer API for Python: _CallbackPtr Class Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    _CallbackPtr Class Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    +def __init__ (self)
     
    +def get_ptr (self)
     
    +def set_ptr (self, ptr)
     
    +

    Detailed Description

    +

    _CallbackPtr helper

    + +

    Definition at line 29 of file provider_node.py.

    +
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1provider__node_1_1__CallbackPtr.js b/3.4.0/api/python/classctrlxdatalayer_1_1provider__node_1_1__CallbackPtr.js new file mode 100644 index 000000000..275b2ed76 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1provider__node_1_1__CallbackPtr.js @@ -0,0 +1,6 @@ +var classctrlxdatalayer_1_1provider__node_1_1__CallbackPtr = +[ + [ "__init__", "classctrlxdatalayer_1_1provider__node_1_1__CallbackPtr.html#ae64f0875afe3067b97ba370b354b9213", null ], + [ "get_ptr", "classctrlxdatalayer_1_1provider__node_1_1__CallbackPtr.html#a76edc2d231bb616d48fc4c62eb08dc11", null ], + [ "set_ptr", "classctrlxdatalayer_1_1provider__node_1_1__CallbackPtr.html#a37eebd24129a6e95c21c59d45f365cf5", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish-members.html b/3.4.0/api/python/classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish-members.html new file mode 100644 index 000000000..57e8e74ff --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish-members.html @@ -0,0 +1,115 @@ + + + + + + + +ctrlX Data Layer API for Python: Member List + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    NotifyInfoPublish Member List
    +
    +
    + +

    This is the complete list of members for NotifyInfoPublish, including all inherited members.

    + + + + + + + + + + + + + +
    __init__(self, str node_address)NotifyInfoPublish
    get_event_type(self)NotifyInfoPublish
    get_node(self)NotifyInfoPublish
    get_notify_type(self)NotifyInfoPublish
    get_sequence_number(self)NotifyInfoPublish
    get_source_name(self)NotifyInfoPublish
    get_timestamp(self)NotifyInfoPublish
    set_event_type(self, str et)NotifyInfoPublish
    set_notify_type(self, NotifyTypePublish nt)NotifyInfoPublish
    set_sequence_number(self, int sn)NotifyInfoPublish
    set_source_name(self, str source)NotifyInfoPublish
    set_timestamp(self, datetime.datetime dt)NotifyInfoPublish
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish.html b/3.4.0/api/python/classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish.html new file mode 100644 index 000000000..ff5132cb9 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish.html @@ -0,0 +1,509 @@ + + + + + + + +ctrlX Data Layer API for Python: NotifyInfoPublish Class Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    NotifyInfoPublish Class Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    def __init__ (self, str node_address)
     
    str get_event_type (self)
     
    str get_node (self)
     
    NotifyTypePublish get_notify_type (self)
     
    int get_sequence_number (self)
     
    str get_source_name (self)
     
    def get_timestamp (self)
     
    def set_event_type (self, str et)
     
    def set_notify_type (self, NotifyTypePublish nt)
     
    def set_sequence_number (self, int sn)
     
    def set_source_name (self, str source)
     
    def set_timestamp (self, datetime.datetime dt)
     
    +

    Detailed Description

    +

    NotifyInfoPublish.

    +

    containing notify_info.fbs (address, timestamp, type, ...)

    + +

    Definition at line 76 of file provider_subscription.py.

    +

    Constructor & Destructor Documentation

    + +

    ◆ __init__()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    def __init__ ( self,
    str node_address 
    )
    +
    +
    +

    Member Function Documentation

    + +

    ◆ get_event_type()

    + +
    +
    + + + + + + + + +
    str get_event_type ( self)
    +
    + +

    get_event_type

    +
    Returns
    str:
    + +

    Definition at line 152 of file provider_subscription.py.

    + +

    References NotifyInfoPublish.__event_type.

    + +
    +
    + +

    ◆ get_node()

    + +
    +
    + + + + + + + + +
    str get_node ( self)
    +
    + +

    get_node

    +
    Returns
    +
    +str node address
    + +

    Definition at line 99 of file provider_subscription.py.

    + +

    References NotifyInfoPublish.__node.

    + +
    +
    + +

    ◆ get_notify_type()

    + +
    +
    + + + + + + + + +
    NotifyTypePublish get_notify_type ( self)
    +
    + +

    get_notify_type

    +
    Returns
    +
    NotifyTypePublish
    + +

    Definition at line 133 of file provider_subscription.py.

    + +

    References NotifyInfoPublish.__notify_type.

    + +
    +
    + +

    ◆ get_sequence_number()

    + +
    +
    + + + + + + + + +
    int get_sequence_number ( self)
    +
    + +

    get_sequence_number

    +
    Returns
    int:
    + +

    Definition at line 169 of file provider_subscription.py.

    + +

    References NotifyInfoPublish.__sequence_number.

    + +
    +
    + +

    ◆ get_source_name()

    + +
    +
    + + + + + + + + +
    str get_source_name ( self)
    +
    + +

    get_source_name

    +
    Returns
    str:
    + +

    Definition at line 187 of file provider_subscription.py.

    + +

    References NotifyInfoPublish.__source_name.

    + +
    +
    + +

    ◆ get_timestamp()

    + +
    +
    + + + + + + + + +
    def get_timestamp ( self)
    +
    + +

    get_timestamp

    +
    Returns
    datetime.datetime:
    + +

    Definition at line 116 of file provider_subscription.py.

    + +

    References Response.__timestamp, and NotifyInfoPublish.__timestamp.

    + +
    +
    + +

    ◆ set_event_type()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    def set_event_type ( self,
    str et 
    )
    +
    + +

    set_event_type In case of an event, this string contains the information what EventType has been fired.

    +

    E "types/events/ExampleEvent"

        et (str):
    +
    +

    Definition at line 143 of file provider_subscription.py.

    + +

    References NotifyInfoPublish.__event_type.

    + +
    +
    + +

    ◆ set_notify_type()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    def set_notify_type ( self,
    NotifyTypePublish nt 
    )
    +
    + +

    set_notify_type

    +
            nt (NotifyTypePublish):
    +
    +

    Definition at line 124 of file provider_subscription.py.

    + +

    References NotifyInfoPublish.__notify_type.

    + +
    +
    + +

    ◆ set_sequence_number()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    def set_sequence_number ( self,
    int sn 
    )
    +
    + +

    set_sequence_number sequence number of an event

    +
    Parameters
    + + +
    sn0 default
    +
    +
    + +

    Definition at line 160 of file provider_subscription.py.

    + +

    References NotifyInfoPublish.__sequence_number.

    + +
    +
    + +

    ◆ set_source_name()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    def set_source_name ( self,
    str source 
    )
    +
    + +

    set_source_name description of the source of an event

    +
            source (str):
    +
    +

    Definition at line 178 of file provider_subscription.py.

    + +

    References NotifyInfoPublish.__source_name.

    + +
    +
    + +

    ◆ set_timestamp()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    def set_timestamp ( self,
    datetime.datetime dt 
    )
    +
    + +

    set_timestamp

    +
            dt (datetime.datetime):
    +
    +

    Definition at line 107 of file provider_subscription.py.

    + +

    References Response.__timestamp, and NotifyInfoPublish.__timestamp.

    + +

    Referenced by Variant.set_datetime().

    + +
    +
    +
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish.js b/3.4.0/api/python/classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish.js new file mode 100644 index 000000000..d18c5f42b --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish.js @@ -0,0 +1,15 @@ +var classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish = +[ + [ "__init__", "classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish.html#a21cd8ad87da0ec28b2d018bf11d40827", null ], + [ "get_event_type", "classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish.html#a751d88e98de02bd623f527508ced5f33", null ], + [ "get_node", "classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish.html#ad9194b2e43ababe2e3ae64e69773db51", null ], + [ "get_notify_type", "classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish.html#a88f45ae28206cc34aab3e4c2111c5148", null ], + [ "get_sequence_number", "classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish.html#a7a438516b796cc54c24eb08f4fdf7a2e", null ], + [ "get_source_name", "classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish.html#a6854b89f7fd6993dfb9dfb963ea4c3ee", null ], + [ "get_timestamp", "classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish.html#a74bf9a26aefa0f7c5a2a1aba45bad87e", null ], + [ "set_event_type", "classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish.html#a36a063ff85260f7e1b9a6014cc697f42", null ], + [ "set_notify_type", "classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish.html#a4d5257c2d39fb1820618c9010b174cdd", null ], + [ "set_sequence_number", "classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish.html#abd219f05f00188b322577213f1ab67dd", null ], + [ "set_source_name", "classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish.html#abe66cc2811b8a32147af24a06f2a51d5", null ], + [ "set_timestamp", "classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish.html#a9760f5d9c86ad591cf935711948e064a", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1provider__subscription_1_1NotifyItemPublish-members.html b/3.4.0/api/python/classctrlxdatalayer_1_1provider__subscription_1_1NotifyItemPublish-members.html new file mode 100644 index 000000000..aef64e819 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1provider__subscription_1_1NotifyItemPublish-members.html @@ -0,0 +1,111 @@ + + + + + + + +ctrlX Data Layer API for Python: Member List + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    NotifyItemPublish Member List
    +
    +
    + +

    This is the complete list of members for NotifyItemPublish, including all inherited members.

    + + + + + + + + + +
    __del__(self)NotifyItemPublish
    __enter__(self)NotifyItemPublish
    __exit__(self, exc_type, exc_val, exc_tb)NotifyItemPublish
    __init__(self, str node_address)NotifyItemPublish
    close(self)NotifyItemPublish
    get_data(self)NotifyItemPublish
    get_info(self)NotifyItemPublish
    get_notify_info(self)NotifyItemPublish
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1provider__subscription_1_1NotifyItemPublish.html b/3.4.0/api/python/classctrlxdatalayer_1_1provider__subscription_1_1NotifyItemPublish.html new file mode 100644 index 000000000..d487dccc4 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1provider__subscription_1_1NotifyItemPublish.html @@ -0,0 +1,215 @@ + + + + + + + +ctrlX Data Layer API for Python: NotifyItemPublish Class Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    NotifyItemPublish Class Reference
    +
    +
    + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    +def __init__ (self, str node_address)
     
    +def __del__ (self)
     
    +def __enter__ (self)
     
    +def __exit__ (self, exc_type, exc_val, exc_tb)
     
    +def close (self)
     
    Variant get_data (self)
     
    Variant get_info (self)
     
    NotifyInfoPublish get_notify_info (self)
     
    +

    Detailed Description

    +

    class NotifyItemPublish:

    + +

    Definition at line 194 of file provider_subscription.py.

    +

    Member Function Documentation

    + +

    ◆ get_data()

    + +
    +
    + + + + + + + + +
    Variant get_data ( self)
    +
    + +

    get_data

    +
    Returns
    +
    +Variant data of the notify item
    + +

    Definition at line 235 of file provider_subscription.py.

    + +

    References Response.__data, _Request.__data, NotifyItemPublish.__data, and NotifyItem.__data.

    + +

    Referenced by Variant.get_flatbuffers().

    + +
    +
    + +

    ◆ get_info()

    + +
    +
    + + + + + + + + +
    Variant get_info ( self)
    +
    + +

    internal use

    +
    Returns
    +
    +Variant containing notify_info.fbs (address, timestamp, type, ...)
    + +

    Definition at line 251 of file provider_subscription.py.

    + +

    References NotifyItemPublish.__info, NotifyItem.__info, and NotifyItemPublish.__notify_info.

    + +
    +
    + +

    ◆ get_notify_info()

    + +
    +
    + + + + + + + + +
    NotifyInfoPublish get_notify_info ( self)
    +
    + +

    get_notify_info

    +
    Returns
    get_notify_info:
    + +

    Definition at line 243 of file provider_subscription.py.

    + +

    References NotifyItemPublish.__notify_info.

    + +
    +
    +
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1provider__subscription_1_1NotifyItemPublish.js b/3.4.0/api/python/classctrlxdatalayer_1_1provider__subscription_1_1NotifyItemPublish.js new file mode 100644 index 000000000..bc5b7aad2 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1provider__subscription_1_1NotifyItemPublish.js @@ -0,0 +1,11 @@ +var classctrlxdatalayer_1_1provider__subscription_1_1NotifyItemPublish = +[ + [ "__init__", "classctrlxdatalayer_1_1provider__subscription_1_1NotifyItemPublish.html#a21cd8ad87da0ec28b2d018bf11d40827", null ], + [ "__del__", "classctrlxdatalayer_1_1provider__subscription_1_1NotifyItemPublish.html#a41a65d7030dd1006b177d0bc24e1a12b", null ], + [ "__enter__", "classctrlxdatalayer_1_1provider__subscription_1_1NotifyItemPublish.html#a404692262c90487a8013dbdd128cdd7f", null ], + [ "__exit__", "classctrlxdatalayer_1_1provider__subscription_1_1NotifyItemPublish.html#a1d4375d5b88ea11310dcd3bfb10ecb97", null ], + [ "close", "classctrlxdatalayer_1_1provider__subscription_1_1NotifyItemPublish.html#a8639372c33e15084a7f7c4d9d87b7bfe", null ], + [ "get_data", "classctrlxdatalayer_1_1provider__subscription_1_1NotifyItemPublish.html#afc01672756c355231e72eb572e8816cb", null ], + [ "get_info", "classctrlxdatalayer_1_1provider__subscription_1_1NotifyItemPublish.html#a7d8f727dd8e6922458fc69753615c7f3", null ], + [ "get_notify_info", "classctrlxdatalayer_1_1provider__subscription_1_1NotifyItemPublish.html#a133a89175644a835b1da1f1692bffffb", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1provider__subscription_1_1NotifyTypePublish-members.html b/3.4.0/api/python/classctrlxdatalayer_1_1provider__subscription_1_1NotifyTypePublish-members.html new file mode 100644 index 000000000..e626dd35f --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1provider__subscription_1_1NotifyTypePublish-members.html @@ -0,0 +1,109 @@ + + + + + + + +ctrlX Data Layer API for Python: Member List + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    NotifyTypePublish Member List
    +
    +
    + +

    This is the complete list of members for NotifyTypePublish, including all inherited members.

    + + + + + + + +
    BROWSE (defined in NotifyTypePublish)NotifyTypePublishstatic
    DATA (defined in NotifyTypePublish)NotifyTypePublishstatic
    EVENT (defined in NotifyTypePublish)NotifyTypePublishstatic
    KEEPALIVE (defined in NotifyTypePublish)NotifyTypePublishstatic
    METADATA (defined in NotifyTypePublish)NotifyTypePublishstatic
    TYPE (defined in NotifyTypePublish)NotifyTypePublishstatic
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1provider__subscription_1_1NotifyTypePublish.html b/3.4.0/api/python/classctrlxdatalayer_1_1provider__subscription_1_1NotifyTypePublish.html new file mode 100644 index 000000000..2e7a3824c --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1provider__subscription_1_1NotifyTypePublish.html @@ -0,0 +1,138 @@ + + + + + + + +ctrlX Data Layer API for Python: NotifyTypePublish Class Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    NotifyTypePublish Class Reference
    +
    +
    +
    + + Inheritance diagram for NotifyTypePublish:
    +
    +
    + + + + + + + + + + + + + + + +

    +Static Public Attributes

    +int BROWSE = 1
     
    +int DATA = 0
     
    +int EVENT = 5
     
    +int KEEPALIVE = 3
     
    +int METADATA = 2
     
    +int TYPE = 4
     
    +

    Detailed Description

    +

    NotifyTypePublish.

    + +

    Definition at line 64 of file provider_subscription.py.

    +
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1provider__subscription_1_1NotifyTypePublish.js b/3.4.0/api/python/classctrlxdatalayer_1_1provider__subscription_1_1NotifyTypePublish.js new file mode 100644 index 000000000..43f7a373e --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1provider__subscription_1_1NotifyTypePublish.js @@ -0,0 +1,9 @@ +var classctrlxdatalayer_1_1provider__subscription_1_1NotifyTypePublish = +[ + [ "BROWSE", "classctrlxdatalayer_1_1provider__subscription_1_1NotifyTypePublish.html#a8c3488133acf264034b9dcdbb0f2fc47", null ], + [ "DATA", "classctrlxdatalayer_1_1provider__subscription_1_1NotifyTypePublish.html#a90abc41b8456616fcc2191b4631d1887", null ], + [ "EVENT", "classctrlxdatalayer_1_1provider__subscription_1_1NotifyTypePublish.html#a3b0d6b27f2729657cc2d7d20f75f6fd1", null ], + [ "KEEPALIVE", "classctrlxdatalayer_1_1provider__subscription_1_1NotifyTypePublish.html#a80f2ee22c26c738e935c5c19ec7e515b", null ], + [ "METADATA", "classctrlxdatalayer_1_1provider__subscription_1_1NotifyTypePublish.html#ad312f0966495cfcd0aa39cf1eecf8785", null ], + [ "TYPE", "classctrlxdatalayer_1_1provider__subscription_1_1NotifyTypePublish.html#a6ad57ac048da75eecbd760ac00b8b427", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1provider__subscription_1_1NotifyTypePublish.png b/3.4.0/api/python/classctrlxdatalayer_1_1provider__subscription_1_1NotifyTypePublish.png new file mode 100644 index 000000000..dde201cac Binary files /dev/null and b/3.4.0/api/python/classctrlxdatalayer_1_1provider__subscription_1_1NotifyTypePublish.png differ diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1provider__subscription_1_1ProviderSubscription-members.html b/3.4.0/api/python/classctrlxdatalayer_1_1provider__subscription_1_1ProviderSubscription-members.html new file mode 100644 index 000000000..9d11e0810 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1provider__subscription_1_1ProviderSubscription-members.html @@ -0,0 +1,109 @@ + + + + + + + +ctrlX Data Layer API for Python: Member List + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    ProviderSubscription Member List
    +
    +
    + +

    This is the complete list of members for ProviderSubscription, including all inherited members.

    + + + + + + + +
    __init__(self, C_DLR_SUBSCRIPTION sub)ProviderSubscription
    get_id(self)ProviderSubscription
    get_notes(self)ProviderSubscription
    get_props(self)ProviderSubscription
    get_timestamp(self)ProviderSubscription
    publish(self, Result status, typing.List[NotifyItemPublish] items)ProviderSubscription
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1provider__subscription_1_1ProviderSubscription.html b/3.4.0/api/python/classctrlxdatalayer_1_1provider__subscription_1_1ProviderSubscription.html new file mode 100644 index 000000000..6806ef899 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1provider__subscription_1_1ProviderSubscription.html @@ -0,0 +1,283 @@ + + + + + + + +ctrlX Data Layer API for Python: ProviderSubscription Class Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    ProviderSubscription Class Reference
    +
    +
    + + + + + + + + + + + + + + +

    +Public Member Functions

    +def __init__ (self, C_DLR_SUBSCRIPTION sub)
     
    str get_id (self)
     
    typing.List[str] get_notes (self)
     
    comm.datalayer.SubscriptionProperties get_props (self)
     
    datetime.datetime get_timestamp (self)
     
    Result publish (self, Result status, typing.List[NotifyItemPublish] items)
     
    +

    Detailed Description

    +

    ProviderSubscription helper class.

    + +

    Definition at line 297 of file provider_subscription.py.

    +

    Member Function Documentation

    + +

    ◆ get_id()

    + +
    +
    + + + + + + + + +
    str get_id ( self)
    +
    +
    + +

    ◆ get_notes()

    + +
    +
    + + + + + + + + +
    typing.List[str] get_notes ( self)
    +
    + +

    get_notes

    +
    Returns
    +
    +typing Subscribed nodes as array of strings
    + +

    Definition at line 341 of file provider_subscription.py.

    + +

    References ProviderSubscription.__subscription.

    + +
    +
    + +

    ◆ get_props()

    + +
    +
    + + + + + + + + +
    comm.datalayer.SubscriptionProperties get_props ( self)
    +
    + +

    get_props

    +
    Returns
    +
    +comm subscription properties
    + +

    Definition at line 323 of file provider_subscription.py.

    + +

    References ProviderSubscription.__subscription.

    + +

    Referenced by ProviderSubscription.get_id().

    + +
    +
    + +

    ◆ get_timestamp()

    + +
    +
    + + + + + + + + +
    datetime.datetime get_timestamp ( self)
    +
    + +

    timestamp

    +
    Returns
    +
    +datetime timestamp
    + +

    Definition at line 332 of file provider_subscription.py.

    + +

    References ProviderSubscription.__subscription.

    + +
    +
    + +

    ◆ publish()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    Result publish ( self,
    Result status,
    typing.List[NotifyItemPublishitems 
    )
    +
    + +

    publish

    +
    Parameters
    + + + +
    statusStatus of notification. On failure subscription is canceled for all items.
    itemsNotification items
    +
    +
    + +

    Definition at line 352 of file provider_subscription.py.

    + +

    References ProviderSubscription.__subscription.

    + +
    +
    +
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1provider__subscription_1_1ProviderSubscription.js b/3.4.0/api/python/classctrlxdatalayer_1_1provider__subscription_1_1ProviderSubscription.js new file mode 100644 index 000000000..21c17ff54 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1provider__subscription_1_1ProviderSubscription.js @@ -0,0 +1,9 @@ +var classctrlxdatalayer_1_1provider__subscription_1_1ProviderSubscription = +[ + [ "__init__", "classctrlxdatalayer_1_1provider__subscription_1_1ProviderSubscription.html#addc0c99aa3c0319b7c5855836e500ece", null ], + [ "get_id", "classctrlxdatalayer_1_1provider__subscription_1_1ProviderSubscription.html#a554bd0d14273b89e8f9b662ddfbfc7dd", null ], + [ "get_notes", "classctrlxdatalayer_1_1provider__subscription_1_1ProviderSubscription.html#a0bb75e2c61e2795f17c65872ca2d9030", null ], + [ "get_props", "classctrlxdatalayer_1_1provider__subscription_1_1ProviderSubscription.html#afc5177bdb6b5a4c38fab6ef286de972f", null ], + [ "get_timestamp", "classctrlxdatalayer_1_1provider__subscription_1_1ProviderSubscription.html#a3764a06e12be83a591b503c2187aaa91", null ], + [ "publish", "classctrlxdatalayer_1_1provider__subscription_1_1ProviderSubscription.html#a90a5676117808684b01329a31f3a9061", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1subscription_1_1NotifyItem-members.html b/3.4.0/api/python/classctrlxdatalayer_1_1subscription_1_1NotifyItem-members.html new file mode 100644 index 000000000..51c27b10e --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1subscription_1_1NotifyItem-members.html @@ -0,0 +1,108 @@ + + + + + + + +ctrlX Data Layer API for Python: Member List + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    NotifyItem Member List
    +
    +
    + +

    This is the complete list of members for NotifyItem, including all inherited members.

    + + + + + + +
    __init__(self, C_DLR_VARIANT data, C_DLR_VARIANT info)NotifyItem
    get_address(self)NotifyItem
    get_data(self)NotifyItem
    get_timestamp(self) (defined in NotifyItem)NotifyItem
    get_type(self)NotifyItem
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1subscription_1_1NotifyItem.html b/3.4.0/api/python/classctrlxdatalayer_1_1subscription_1_1NotifyItem.html new file mode 100644 index 000000000..5a5314483 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1subscription_1_1NotifyItem.html @@ -0,0 +1,247 @@ + + + + + + + +ctrlX Data Layer API for Python: NotifyItem Class Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    NotifyItem Class Reference
    +
    +
    + + + + + + + + + + + + +

    +Public Member Functions

    def __init__ (self, C_DLR_VARIANT data, C_DLR_VARIANT info)
     
    str get_address (self)
     
    Variant get_data (self)
     
    +int get_timestamp (self)
     
    NotifyType get_type (self)
     
    +

    Detailed Description

    +

    NotifyItem.

    + +

    Definition at line 30 of file subscription.py.

    +

    Constructor & Destructor Documentation

    + +

    ◆ __init__()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    def __init__ ( self,
    C_DLR_VARIANT data,
    C_DLR_VARIANT info 
    )
    +
    +
    Parameters
    + + + +
    [in]dataof the notify item
    [in]containingnotify_info.fbs
    +
    +
    + +

    Definition at line 38 of file subscription.py.

    + +

    References Response.__data, _Request.__data, NotifyItemPublish.__data, NotifyItem.__data, NotifyItemPublish.__info, and NotifyItem.__info.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ get_address()

    + +
    +
    + + + + + + + + +
    str get_address ( self)
    +
    + +

    Node address.

    +
       @returns <str>
    +
    +

    Definition at line 60 of file subscription.py.

    + +

    References NotifyItemPublish.__info, and NotifyItem.__info.

    + +
    +
    + +

    ◆ get_data()

    + +
    +
    + + + + + + + + +
    Variant get_data ( self)
    +
    + +

    data of the notify item

    +
       @returns <Variant>
    +
    +

    Definition at line 52 of file subscription.py.

    + +

    References Response.__data, _Request.__data, NotifyItemPublish.__data, and NotifyItem.__data.

    + +

    Referenced by Variant.get_flatbuffers().

    + +
    +
    + +

    ◆ get_type()

    + +
    +
    + + + + + + + + +
    NotifyType get_type ( self)
    +
    + +

    Notify type.

    +
       @returns <NotifyType>
    +
    +

    Definition at line 68 of file subscription.py.

    + +

    References NotifyItemPublish.__info, and NotifyItem.__info.

    + +
    +
    +
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1subscription_1_1NotifyItem.js b/3.4.0/api/python/classctrlxdatalayer_1_1subscription_1_1NotifyItem.js new file mode 100644 index 000000000..b3cf0d69b --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1subscription_1_1NotifyItem.js @@ -0,0 +1,8 @@ +var classctrlxdatalayer_1_1subscription_1_1NotifyItem = +[ + [ "__init__", "classctrlxdatalayer_1_1subscription_1_1NotifyItem.html#aa55af3047b40476b66ac223c6e2e97f9", null ], + [ "get_address", "classctrlxdatalayer_1_1subscription_1_1NotifyItem.html#a5c11c7b63803746d10dc05f9e6d0f477", null ], + [ "get_data", "classctrlxdatalayer_1_1subscription_1_1NotifyItem.html#afc01672756c355231e72eb572e8816cb", null ], + [ "get_timestamp", "classctrlxdatalayer_1_1subscription_1_1NotifyItem.html#ad81dfd91ac67b21a427c85d33518c80d", null ], + [ "get_type", "classctrlxdatalayer_1_1subscription_1_1NotifyItem.html#a9b06f22c2a8042372c2147d73138b8c9", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1subscription_1_1NotifyType-members.html b/3.4.0/api/python/classctrlxdatalayer_1_1subscription_1_1NotifyType-members.html new file mode 100644 index 000000000..96e5bf6a3 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1subscription_1_1NotifyType-members.html @@ -0,0 +1,106 @@ + + + + + + + +ctrlX Data Layer API for Python: Member List + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    NotifyType Member List
    +
    +
    + +

    This is the complete list of members for NotifyType, including all inherited members.

    + + + + +
    BROWSE (defined in NotifyType)NotifyTypestatic
    DATA (defined in NotifyType)NotifyTypestatic
    METADATA (defined in NotifyType)NotifyTypestatic
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1subscription_1_1NotifyType.html b/3.4.0/api/python/classctrlxdatalayer_1_1subscription_1_1NotifyType.html new file mode 100644 index 000000000..c83a1c906 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1subscription_1_1NotifyType.html @@ -0,0 +1,129 @@ + + + + + + + +ctrlX Data Layer API for Python: NotifyType Class Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    NotifyType Class Reference
    +
    +
    +
    + + Inheritance diagram for NotifyType:
    +
    +
    + + + + + + + + + +

    +Static Public Attributes

    +int BROWSE = 1
     
    +int DATA = 0
     
    +int METADATA = 2
     
    +

    Detailed Description

    +

    NotifyType.

    + +

    Definition at line 21 of file subscription.py.

    +
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1subscription_1_1NotifyType.js b/3.4.0/api/python/classctrlxdatalayer_1_1subscription_1_1NotifyType.js new file mode 100644 index 000000000..8e8816070 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1subscription_1_1NotifyType.js @@ -0,0 +1,6 @@ +var classctrlxdatalayer_1_1subscription_1_1NotifyType = +[ + [ "BROWSE", "classctrlxdatalayer_1_1subscription_1_1NotifyType.html#a8c3488133acf264034b9dcdbb0f2fc47", null ], + [ "DATA", "classctrlxdatalayer_1_1subscription_1_1NotifyType.html#a90abc41b8456616fcc2191b4631d1887", null ], + [ "METADATA", "classctrlxdatalayer_1_1subscription_1_1NotifyType.html#ad312f0966495cfcd0aa39cf1eecf8785", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1subscription_1_1NotifyType.png b/3.4.0/api/python/classctrlxdatalayer_1_1subscription_1_1NotifyType.png new file mode 100644 index 000000000..8e18c091e Binary files /dev/null and b/3.4.0/api/python/classctrlxdatalayer_1_1subscription_1_1NotifyType.png differ diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1subscription_1_1Subscription-members.html b/3.4.0/api/python/classctrlxdatalayer_1_1subscription_1_1Subscription-members.html new file mode 100644 index 000000000..014997b5e --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1subscription_1_1Subscription-members.html @@ -0,0 +1,105 @@ + + + + + + + +ctrlX Data Layer API for Python: Member List + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    Subscription Member List
    +
    +
    + +

    This is the complete list of members for Subscription, including all inherited members.

    + + + +
    id(self)Subscription
    on_close(self)Subscription
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1subscription_1_1Subscription.html b/3.4.0/api/python/classctrlxdatalayer_1_1subscription_1_1Subscription.html new file mode 100644 index 000000000..8667709c4 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1subscription_1_1Subscription.html @@ -0,0 +1,130 @@ + + + + + + + +ctrlX Data Layer API for Python: Subscription Class Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    Subscription Class Reference
    +
    +
    +
    + + Inheritance diagram for Subscription:
    +
    +
    + + + + + + + +

    +Public Member Functions

    +str id (self)
     
    +def on_close (self)
     
    +

    Detailed Description

    +

    Subscription.

    + +

    Definition at line 122 of file subscription.py.

    +
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1subscription_1_1Subscription.js b/3.4.0/api/python/classctrlxdatalayer_1_1subscription_1_1Subscription.js new file mode 100644 index 000000000..b3ea100ab --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1subscription_1_1Subscription.js @@ -0,0 +1,5 @@ +var classctrlxdatalayer_1_1subscription_1_1Subscription = +[ + [ "id", "classctrlxdatalayer_1_1subscription_1_1Subscription.html#a2e9c2ba39c6a3dbdcede2e442af296b4", null ], + [ "on_close", "classctrlxdatalayer_1_1subscription_1_1Subscription.html#a7e20a417210b832ce9e307ce5dc0f2a8", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1subscription_1_1Subscription.png b/3.4.0/api/python/classctrlxdatalayer_1_1subscription_1_1Subscription.png new file mode 100644 index 000000000..0fb2b51a8 Binary files /dev/null and b/3.4.0/api/python/classctrlxdatalayer_1_1subscription_1_1Subscription.png differ diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync-members.html b/3.4.0/api/python/classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync-members.html new file mode 100644 index 000000000..cf6705413 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync-members.html @@ -0,0 +1,115 @@ + + + + + + + +ctrlX Data Layer API for Python: Member List + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    SubscriptionAsync Member List
    +
    +
    + +

    This is the complete list of members for SubscriptionAsync, including all inherited members.

    + + + + + + + + + + + + + +
    __enter__(self)SubscriptionAsync
    __exit__(self, exc_type, exc_val, exc_tb)SubscriptionAsync
    __init__(self, ctrlxdatalayer.client.Client client)SubscriptionAsync
    close(self)SubscriptionAsync
    id(self)SubscriptionAsync
    on_close(self)SubscriptionAsync
    subscribe(self, str address, ctrlxdatalayer.client.ResponseCallback cb, userData_c_void_p userdata=None)SubscriptionAsync
    subscribe_multi(self, typing.List[str] address, ctrlxdatalayer.client.ResponseCallback cb, userData_c_void_p userdata=None)SubscriptionAsync
    unsubscribe(self, str address, ctrlxdatalayer.client.ResponseCallback cb, userData_c_void_p userdata=None)SubscriptionAsync
    unsubscribe_all(self, ctrlxdatalayer.client.ResponseCallback cb, userData_c_void_p userdata=None)SubscriptionAsync
    unsubscribe_multi(self, typing.List[str] address, ctrlxdatalayer.client.ResponseCallback cb, userData_c_void_p userdata=None)SubscriptionAsync
    wait_on_response_cb(self, int wait=5)SubscriptionAsync
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync.html b/3.4.0/api/python/classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync.html new file mode 100644 index 000000000..06f041c96 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync.html @@ -0,0 +1,464 @@ + + + + + + + +ctrlX Data Layer API for Python: SubscriptionAsync Class Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    SubscriptionAsync Class Reference
    +
    +
    +
    + + Inheritance diagram for SubscriptionAsync:
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    def __init__ (self, ctrlxdatalayer.client.Client client)
     
    +def __enter__ (self)
     
    +def __exit__ (self, exc_type, exc_val, exc_tb)
     
    +def close (self)
     
    +str id (self)
     
    +def on_close (self)
     
    Result subscribe (self, str address, ctrlxdatalayer.client.ResponseCallback cb, userData_c_void_p userdata=None)
     
    Result subscribe_multi (self, typing.List[str] address, ctrlxdatalayer.client.ResponseCallback cb, userData_c_void_p userdata=None)
     
    Result unsubscribe (self, str address, ctrlxdatalayer.client.ResponseCallback cb, userData_c_void_p userdata=None)
     
    Result unsubscribe_all (self, ctrlxdatalayer.client.ResponseCallback cb, userData_c_void_p userdata=None)
     
    Result unsubscribe_multi (self, typing.List[str] address, ctrlxdatalayer.client.ResponseCallback cb, userData_c_void_p userdata=None)
     
    +bool wait_on_response_cb (self, int wait=5)
     
    +

    Detailed Description

    +

    SubscriptionAsync.

    + +

    Definition at line 21 of file subscription_async.py.

    +

    Constructor & Destructor Documentation

    + +

    ◆ __init__()

    + + +

    Member Function Documentation

    + +

    ◆ subscribe()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Result subscribe ( self,
    str address,
    ctrlxdatalayer.client.ResponseCallback cb,
    userData_c_void_p  userdata = None 
    )
    +
    + +

    Set up a subscription to a node.

    +
    Parameters
    + + + + +
    [in]addressAddress of the node to add a subscription to
    [in]callbackCallback to called when data is subscribed
    [in]userdataUser data - will be returned in callback as userdata. You can use this userdata to identify your request
    +
    +
    +
    Returns
    <Result> status of function call
    + +

    Definition at line 186 of file subscription_async.py.

    + +

    References SubscriptionAsync.__client, SubscriptionSync.__client, SubscriptionAsync.__create_response_callback(), Bulk.__create_response_callback(), Subscription.id(), SubscriptionAsync.id(), and SubscriptionSync.id().

    + +
    +
    + +

    ◆ subscribe_multi()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Result subscribe_multi ( self,
    typing.List[str] address,
    ctrlxdatalayer.client.ResponseCallback cb,
    userData_c_void_p  userdata = None 
    )
    +
    + +

    Set up a subscription to multiple nodes.

    +
    Parameters
    + + + + + +
    [in]addressSet of addresses of nodes, that should be removed to the given subscription.
    [in]countCount of addresses.
    [in]callbackCallback to called when data is subscribed
    [in]userdataUser data - will be returned in callback as userdata. You can use this userdata to identify your request
    +
    +
    +
    Returns
    <Result> status of function call
    + +

    Definition at line 221 of file subscription_async.py.

    + +

    References SubscriptionAsync.__client, SubscriptionSync.__client, SubscriptionAsync.__create_response_callback(), Bulk.__create_response_callback(), Subscription.id(), SubscriptionAsync.id(), and SubscriptionSync.id().

    + +
    +
    + +

    ◆ unsubscribe()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Result unsubscribe ( self,
    str address,
    ctrlxdatalayer.client.ResponseCallback cb,
    userData_c_void_p  userdata = None 
    )
    +
    + +

    Removes a node from a subscription id.

    +
    Parameters
    + + + + +
    [in]addressAddress of a node, that should be removed to the given subscription.
    [in]callbackCallback to called when data is subscribed
    [in]userdataUser data - will be returned in callback as userdata. You can use this userdata to identify your request
    +
    +
    +
    Returns
    <Result> status of function call
    + +

    Definition at line 203 of file subscription_async.py.

    + +

    References SubscriptionAsync.__client, SubscriptionSync.__client, SubscriptionAsync.__create_response_callback(), Bulk.__create_response_callback(), Subscription.id(), SubscriptionAsync.id(), and SubscriptionSync.id().

    + +
    +
    + +

    ◆ unsubscribe_all()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    Result unsubscribe_all ( self,
    ctrlxdatalayer.client.ResponseCallback cb,
    userData_c_void_p  userdata = None 
    )
    +
    + +

    Removes all subscriptions from a subscription id.

    +
    Parameters
    + + + +
    [in]callbackCallback to called when data is subscribed
    [in]userdataUser data - will be returned in callback as userdata. You can use this userdata to identify your request
    +
    +
    +
    Returns
    <Result> status of function call
    + +

    Definition at line 258 of file subscription_async.py.

    + +

    References SubscriptionAsync.__client, SubscriptionSync.__client, SubscriptionAsync.__create_response_callback(), Bulk.__create_response_callback(), Subscription.id(), SubscriptionAsync.id(), and SubscriptionSync.id().

    + +

    Referenced by SubscriptionAsync.close(), and SubscriptionSync.close().

    + +
    +
    + +

    ◆ unsubscribe_multi()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Result unsubscribe_multi ( self,
    typing.List[str] address,
    ctrlxdatalayer.client.ResponseCallback cb,
    userData_c_void_p  userdata = None 
    )
    +
    + +

    Removes a set of nodes from a subscription id.

    +
    Parameters
    + + + + +
    [in]addressAddress of a node, that should be removed to the given subscription.
    [in]callbackCallback to called when data is subscribed
    [in]userdataUser data - will be returned in callback as userdata. You can use this userdata to identify your request
    +
    +
    +
    Returns
    <Result> status of function call
    + +

    Definition at line 240 of file subscription_async.py.

    + +

    References SubscriptionAsync.__client, SubscriptionSync.__client, SubscriptionAsync.__create_response_callback(), Bulk.__create_response_callback(), Subscription.id(), SubscriptionAsync.id(), and SubscriptionSync.id().

    + +
    +
    +
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync.js b/3.4.0/api/python/classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync.js new file mode 100644 index 000000000..62c3e9d39 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync.js @@ -0,0 +1,15 @@ +var classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync = +[ + [ "__init__", "classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync.html#a81fad585830e0fcd87d27b3a8f7653e6", null ], + [ "__enter__", "classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync.html#a404692262c90487a8013dbdd128cdd7f", null ], + [ "__exit__", "classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync.html#a1d4375d5b88ea11310dcd3bfb10ecb97", null ], + [ "close", "classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync.html#a8639372c33e15084a7f7c4d9d87b7bfe", null ], + [ "id", "classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync.html#a2e9c2ba39c6a3dbdcede2e442af296b4", null ], + [ "on_close", "classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync.html#a7e20a417210b832ce9e307ce5dc0f2a8", null ], + [ "subscribe", "classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync.html#a821e0f9f914647f2058a771a3e8be078", null ], + [ "subscribe_multi", "classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync.html#a2f33cdc9ef14837b31d01f59c3b80886", null ], + [ "unsubscribe", "classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync.html#a3f04a7c817c357d161827d59e4888587", null ], + [ "unsubscribe_all", "classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync.html#ac7fabd459529db06a4efb77057b81785", null ], + [ "unsubscribe_multi", "classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync.html#a08861b5e3d144c0c490d060596d7f1f5", null ], + [ "wait_on_response_cb", "classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync.html#a13f3ccd5cb5081d6c2cd5d12a916eb69", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync.png b/3.4.0/api/python/classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync.png new file mode 100644 index 000000000..d4e94fa39 Binary files /dev/null and b/3.4.0/api/python/classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync.png differ diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1subscription__properties__builder_1_1SubscriptionPropertiesBuilder-members.html b/3.4.0/api/python/classctrlxdatalayer_1_1subscription__properties__builder_1_1SubscriptionPropertiesBuilder-members.html new file mode 100644 index 000000000..42b2ab5ec --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1subscription__properties__builder_1_1SubscriptionPropertiesBuilder-members.html @@ -0,0 +1,114 @@ + + + + + + + +ctrlX Data Layer API for Python: Member List + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    SubscriptionPropertiesBuilder Member List
    +
    +
    + +

    This is the complete list of members for SubscriptionPropertiesBuilder, including all inherited members.

    + + + + + + + + + + + + +
    __init__(self, str id_val)SubscriptionPropertiesBuilder
    add_rule_changeevents(self, ChangeEvents.ChangeEventsT rule)SubscriptionPropertiesBuilder
    add_rule_counting(self, Counting.CountingT rule)SubscriptionPropertiesBuilder
    add_rule_datachangefilter(self, DataChangeFilter.DataChangeFilterT rule)SubscriptionPropertiesBuilder
    add_rule_losslessratelimit(self, LosslessRateLimit.LosslessRateLimitT rule)SubscriptionPropertiesBuilder
    add_rule_queueing(self, Queueing.QueueingT rule)SubscriptionPropertiesBuilder
    add_rule_sampling(self, Sampling.SamplingT rule)SubscriptionPropertiesBuilder
    build(self)SubscriptionPropertiesBuilder
    set_error_interval(self, int interval)SubscriptionPropertiesBuilder
    set_keepalive_interval(self, int interval)SubscriptionPropertiesBuilder
    set_publish_interval(self, int interval)SubscriptionPropertiesBuilder
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1subscription__properties__builder_1_1SubscriptionPropertiesBuilder.html b/3.4.0/api/python/classctrlxdatalayer_1_1subscription__properties__builder_1_1SubscriptionPropertiesBuilder.html new file mode 100644 index 000000000..d4f1b23d5 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1subscription__properties__builder_1_1SubscriptionPropertiesBuilder.html @@ -0,0 +1,530 @@ + + + + + + + +ctrlX Data Layer API for Python: SubscriptionPropertiesBuilder Class Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    SubscriptionPropertiesBuilder Class Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    def __init__ (self, str id_val)
     
    def add_rule_changeevents (self, ChangeEvents.ChangeEventsT rule)
     
    def add_rule_counting (self, Counting.CountingT rule)
     
    def add_rule_datachangefilter (self, DataChangeFilter.DataChangeFilterT rule)
     
    def add_rule_losslessratelimit (self, LosslessRateLimit.LosslessRateLimitT rule)
     
    def add_rule_queueing (self, Queueing.QueueingT rule)
     
    def add_rule_sampling (self, Sampling.SamplingT rule)
     
    Variant build (self)
     
    def set_error_interval (self, int interval)
     
    def set_keepalive_interval (self, int interval)
     
    def set_publish_interval (self, int interval)
     
    +

    Detailed Description

    +

    Constructor & Destructor Documentation

    + +

    ◆ __init__()

    + + +

    Member Function Documentation

    + +

    ◆ add_rule_changeevents()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    def add_rule_changeevents ( self,
    ChangeEvents.ChangeEventsT rule 
    )
    +
    + +

    add_rule_changeevents

    +
            rule (ChangeEvents.ChangeEventsT):
    +
    +

    Definition at line 123 of file subscription_properties_builder.py.

    + +

    References SubscriptionPropertiesBuilder.__rules.

    + +
    +
    + +

    ◆ add_rule_counting()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    def add_rule_counting ( self,
    Counting.CountingT rule 
    )
    +
    + +

    add_rule_counting

    +
            rule (Counting.CountingT):
    +
    +

    Definition at line 135 of file subscription_properties_builder.py.

    + +

    References SubscriptionPropertiesBuilder.__rules.

    + +
    +
    + +

    ◆ add_rule_datachangefilter()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    def add_rule_datachangefilter ( self,
    DataChangeFilter.DataChangeFilterT rule 
    )
    +
    + +

    add_rule_datachangefilter

    +
            rule (DataChangeFilter.DataChangeFilterT):
    +
    +

    Definition at line 111 of file subscription_properties_builder.py.

    + +

    References SubscriptionPropertiesBuilder.__rules.

    + +
    +
    + +

    ◆ add_rule_losslessratelimit()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    def add_rule_losslessratelimit ( self,
    LosslessRateLimit.LosslessRateLimitT rule 
    )
    +
    + +

    add_rule_losslessratelimit

    +
            rule (LosslessRateLimit.LosslessRateLimitT):
    +
    +

    Definition at line 147 of file subscription_properties_builder.py.

    + +

    References SubscriptionPropertiesBuilder.__rules.

    + +
    +
    + +

    ◆ add_rule_queueing()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    def add_rule_queueing ( self,
    Queueing.QueueingT rule 
    )
    +
    + +

    add_rule_queueing

    +
            rule (Queueing.QueueingT):
    +
    +

    Definition at line 99 of file subscription_properties_builder.py.

    + +

    References SubscriptionPropertiesBuilder.__rules.

    + +
    +
    + +

    ◆ add_rule_sampling()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    def add_rule_sampling ( self,
    Sampling.SamplingT rule 
    )
    +
    + +

    add_rule_sampling

    +
       !!!Hint: 'samplingInterval = 0' only RT nodes, see "datalayer/nodesrt"
    +
    +       rule (Sampling.SamplingT):
    +
    +

    Definition at line 87 of file subscription_properties_builder.py.

    + +

    References SubscriptionPropertiesBuilder.__rules.

    + +
    +
    + +

    ◆ build()

    + + + +

    ◆ set_error_interval()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    def set_error_interval ( self,
    int interval 
    )
    +
    + +

    set_error_interval

    +
    Parameters
    + + +
    intervalerror interval
    +
    +
    + +

    Definition at line 77 of file subscription_properties_builder.py.

    + +

    References SubscriptionPropertiesBuilder.__error_interval.

    + +
    +
    + +

    ◆ set_keepalive_interval()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    def set_keepalive_interval ( self,
    int interval 
    )
    +
    + +

    set_keepalive_interval

    +
    Parameters
    + + +
    intervalkeep alvive interval
    +
    +
    + +

    Definition at line 59 of file subscription_properties_builder.py.

    + +

    References SubscriptionPropertiesBuilder.__keepalive_interval.

    + +
    +
    + +

    ◆ set_publish_interval()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    def set_publish_interval ( self,
    int interval 
    )
    +
    + +

    set_publish_interval

    +
    Parameters
    + + +
    intervalpublish interval
    +
    +
    + +

    Definition at line 68 of file subscription_properties_builder.py.

    + +

    References SubscriptionPropertiesBuilder.__publish_interval.

    + +
    +
    +
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1subscription__properties__builder_1_1SubscriptionPropertiesBuilder.js b/3.4.0/api/python/classctrlxdatalayer_1_1subscription__properties__builder_1_1SubscriptionPropertiesBuilder.js new file mode 100644 index 000000000..454431326 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1subscription__properties__builder_1_1SubscriptionPropertiesBuilder.js @@ -0,0 +1,14 @@ +var classctrlxdatalayer_1_1subscription__properties__builder_1_1SubscriptionPropertiesBuilder = +[ + [ "__init__", "classctrlxdatalayer_1_1subscription__properties__builder_1_1SubscriptionPropertiesBuilder.html#a945c5108a22ccbc5b391f61e7979db73", null ], + [ "add_rule_changeevents", "classctrlxdatalayer_1_1subscription__properties__builder_1_1SubscriptionPropertiesBuilder.html#a3a247667665491e77c9115ed17536373", null ], + [ "add_rule_counting", "classctrlxdatalayer_1_1subscription__properties__builder_1_1SubscriptionPropertiesBuilder.html#a0fca6a36ee83d736c179d60dc4088916", null ], + [ "add_rule_datachangefilter", "classctrlxdatalayer_1_1subscription__properties__builder_1_1SubscriptionPropertiesBuilder.html#a2bbd42efca40e43bffb491799e2c9a12", null ], + [ "add_rule_losslessratelimit", "classctrlxdatalayer_1_1subscription__properties__builder_1_1SubscriptionPropertiesBuilder.html#ac295149faa197ba17b1099d5abbf7541", null ], + [ "add_rule_queueing", "classctrlxdatalayer_1_1subscription__properties__builder_1_1SubscriptionPropertiesBuilder.html#a155e08d359f57d0d7b14b26d0abeba94", null ], + [ "add_rule_sampling", "classctrlxdatalayer_1_1subscription__properties__builder_1_1SubscriptionPropertiesBuilder.html#a320ba39526d732049fca11f6b0af1412", null ], + [ "build", "classctrlxdatalayer_1_1subscription__properties__builder_1_1SubscriptionPropertiesBuilder.html#a8c9808276b6848b2a1b39b748ab61a70", null ], + [ "set_error_interval", "classctrlxdatalayer_1_1subscription__properties__builder_1_1SubscriptionPropertiesBuilder.html#abea6673abcd60543fc8f35c4433851e2", null ], + [ "set_keepalive_interval", "classctrlxdatalayer_1_1subscription__properties__builder_1_1SubscriptionPropertiesBuilder.html#a53aa6fa4bd0bfea0a991b339e797afdb", null ], + [ "set_publish_interval", "classctrlxdatalayer_1_1subscription__properties__builder_1_1SubscriptionPropertiesBuilder.html#a992aa6fccd6801faee9dabb71ddc8a91", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync-members.html b/3.4.0/api/python/classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync-members.html new file mode 100644 index 000000000..522422cb3 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync-members.html @@ -0,0 +1,114 @@ + + + + + + + +ctrlX Data Layer API for Python: Member List + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    SubscriptionSync Member List
    +
    +
    + +

    This is the complete list of members for SubscriptionSync, including all inherited members.

    + + + + + + + + + + + + +
    __enter__(self)SubscriptionSync
    __exit__(self, exc_type, exc_val, exc_tb)SubscriptionSync
    __init__(self, ctrlxdatalayer.client.Client client)SubscriptionSync
    close(self)SubscriptionSync
    id(self)SubscriptionSync
    on_close(self)SubscriptionSync
    subscribe(self, str address)SubscriptionSync
    subscribe_multi(self, typing.List[str] address)SubscriptionSync
    unsubscribe(self, str address)SubscriptionSync
    unsubscribe_all(self)SubscriptionSync
    unsubscribe_multi(self, typing.List[str] address)SubscriptionSync
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync.html b/3.4.0/api/python/classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync.html new file mode 100644 index 000000000..d85eaecf2 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync.html @@ -0,0 +1,410 @@ + + + + + + + +ctrlX Data Layer API for Python: SubscriptionSync Class Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    SubscriptionSync Class Reference
    +
    +
    +
    + + Inheritance diagram for SubscriptionSync:
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    def __init__ (self, ctrlxdatalayer.client.Client client)
     
    +def __enter__ (self)
     
    +def __exit__ (self, exc_type, exc_val, exc_tb)
     
    +def close (self)
     
    str id (self)
     
    +def on_close (self)
     
    Result subscribe (self, str address)
     
    Result subscribe_multi (self, typing.List[str] address)
     
    Result unsubscribe (self, str address)
     
    Result unsubscribe_all (self)
     
    Result unsubscribe_multi (self, typing.List[str] address)
     
    +

    Detailed Description

    +

    SubscriptionSync.

    + +

    Definition at line 20 of file subscription_sync.py.

    +

    Constructor & Destructor Documentation

    + +

    ◆ __init__()

    + + +

    Member Function Documentation

    + +

    ◆ id()

    + + + +

    ◆ subscribe()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    Result subscribe ( self,
    str address 
    )
    +
    + +

    Adds a node to a subscription id.

    +
    Parameters
    + + +
    [in]addressAddress of a node, that should be added to the given subscription.
    +
    +
    +
    Returns
    <Result> status of function call
    + +

    Definition at line 135 of file subscription_sync.py.

    + +

    References SubscriptionAsync.__client, SubscriptionSync.__client, Subscription.id(), SubscriptionAsync.id(), and SubscriptionSync.id().

    + +
    +
    + +

    ◆ subscribe_multi()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    Result subscribe_multi ( self,
    typing.List[str] address 
    )
    +
    + +

    Adds a list of nodes to a subscription id.

    +
    Parameters
    + + + +
    [in]addressList of Addresses of a node, that should be added to the given subscription.
    [in]countCount of addresses.
    +
    +
    +
    Returns
    <Result> status of function call
    + +

    Definition at line 158 of file subscription_sync.py.

    + +

    References SubscriptionAsync.__client, SubscriptionSync.__client, Subscription.id(), SubscriptionAsync.id(), and SubscriptionSync.id().

    + +
    +
    + +

    ◆ unsubscribe()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    Result unsubscribe ( self,
    str address 
    )
    +
    + +

    Removes a node from a subscription id.

    +
    Parameters
    + + +
    [in]addressAddress of a node, that should be removed to the given subscription.
    +
    +
    +
    Returns
    <Result> status of function call
    + +

    Definition at line 146 of file subscription_sync.py.

    + +

    References SubscriptionAsync.__client, SubscriptionSync.__client, Subscription.id(), SubscriptionAsync.id(), and SubscriptionSync.id().

    + +
    +
    + +

    ◆ unsubscribe_all()

    + +
    +
    + + + + + + + + +
    Result unsubscribe_all ( self)
    +
    + +

    Removes subscription id completely.

    +
    Returns
    <Result> status of function call
    + +

    Definition at line 181 of file subscription_sync.py.

    + +

    References SubscriptionAsync.__client, SubscriptionSync.__client, Subscription.id(), SubscriptionAsync.id(), and SubscriptionSync.id().

    + +

    Referenced by SubscriptionAsync.close(), and SubscriptionSync.close().

    + +
    +
    + +

    ◆ unsubscribe_multi()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    Result unsubscribe_multi ( self,
    typing.List[str] address 
    )
    +
    + +

    Removes a set of nodes from a subscription id.

    +
    Parameters
    + + +
    [in]addressSet of addresses of nodes, that should be removed to the given subscription.
    +
    +
    +
    Returns
    <Result> status of function call
    + +

    Definition at line 170 of file subscription_sync.py.

    + +

    References SubscriptionAsync.__client, SubscriptionSync.__client, Subscription.id(), SubscriptionAsync.id(), and SubscriptionSync.id().

    + +
    +
    +
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync.js b/3.4.0/api/python/classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync.js new file mode 100644 index 000000000..5554d0eef --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync.js @@ -0,0 +1,14 @@ +var classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync = +[ + [ "__init__", "classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync.html#a81fad585830e0fcd87d27b3a8f7653e6", null ], + [ "__enter__", "classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync.html#a404692262c90487a8013dbdd128cdd7f", null ], + [ "__exit__", "classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync.html#a1d4375d5b88ea11310dcd3bfb10ecb97", null ], + [ "close", "classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync.html#a8639372c33e15084a7f7c4d9d87b7bfe", null ], + [ "id", "classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync.html#a2e9c2ba39c6a3dbdcede2e442af296b4", null ], + [ "on_close", "classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync.html#a7e20a417210b832ce9e307ce5dc0f2a8", null ], + [ "subscribe", "classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync.html#afe11d9803c614a1546aaf7181a7cfbd4", null ], + [ "subscribe_multi", "classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync.html#a7edb60061768545658e3e9c276d1c4ee", null ], + [ "unsubscribe", "classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync.html#a0b34dabb343b27b4b09dd28259780294", null ], + [ "unsubscribe_all", "classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync.html#a252cb59cde7dd64a460f4b219d93518f", null ], + [ "unsubscribe_multi", "classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync.html#a7baf1c8d15b03ebef99c495b61ba5a15", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync.png b/3.4.0/api/python/classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync.png new file mode 100644 index 000000000..c918ff76e Binary files /dev/null and b/3.4.0/api/python/classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync.png differ diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1system_1_1System-members.html b/3.4.0/api/python/classctrlxdatalayer_1_1system_1_1System-members.html new file mode 100644 index 000000000..c38fc4a52 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1system_1_1System-members.html @@ -0,0 +1,113 @@ + + + + + + + +ctrlX Data Layer API for Python: Member List + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    System Member List
    +
    +
    + +

    This is the complete list of members for System, including all inherited members.

    + + + + + + + + + + + +
    __enter__(self)System
    __exit__(self, exc_type, exc_val, exc_tb)System
    __init__(self, str ipc_path)System
    close(self)System
    factory(self)System
    get_handle(self)System
    json_converter(self)System
    set_bfbs_path(self, path)System
    start(self, bool bo_start_broker)System
    stop(self, bool bo_force_provider_stop)System
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1system_1_1System.html b/3.4.0/api/python/classctrlxdatalayer_1_1system_1_1System.html new file mode 100644 index 000000000..8ab6a3401 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1system_1_1System.html @@ -0,0 +1,352 @@ + + + + + + + +ctrlX Data Layer API for Python: System Class Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    System Class Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    def __init__ (self, str ipc_path)
     
    +def __enter__ (self)
     
    +def __exit__ (self, exc_type, exc_val, exc_tb)
     
    +def close (self)
     
    Factory factory (self)
     
    +def get_handle (self)
     
    Converter json_converter (self)
     
    def set_bfbs_path (self, path)
     
    def start (self, bool bo_start_broker)
     
    bool stop (self, bool bo_force_provider_stop)
     
    +

    Detailed Description

    +

    Datalayer System Instance.

    +

    Hint see python context manager for instance handling

    + +

    Definition at line 15 of file system.py.

    +

    Constructor & Destructor Documentation

    + +

    ◆ __init__()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    def __init__ ( self,
    str ipc_path 
    )
    +
    + +

    Creates a datalayer system.

    +
    Parameters
    + + +
    [in]ipc_pathPath for interprocess communication - use null pointer for automatic detection
    +
    +
    + +

    Definition at line 22 of file system.py.

    + +

    References Client.__closed, Provider.__closed, ProviderNode.__closed, SubscriptionAsync.__closed, SubscriptionSync.__closed, System.__closed, Variant.__closed, and System.__system.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ factory()

    + +
    +
    + + + + + + + + +
    Factory factory ( self)
    +
    + +

    Returns the factory to create clients and provider for the datalayer.

    +
    Returns
    <Factory>
    + +

    Definition at line 77 of file system.py.

    + +

    References System.__system.

    + +
    +
    + +

    ◆ json_converter()

    + +
    +
    + + + + + + + + +
    Converter json_converter ( self)
    +
    + +

    Returns converter between JSON and Variant.

    +
    Returns
    <Converter>
    + +

    Definition at line 86 of file system.py.

    + +

    References System.__system.

    + +
    +
    + +

    ◆ set_bfbs_path()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    def set_bfbs_path ( self,
     path 
    )
    +
    + +

    Sets the base path to bfbs files.

    +
    Parameters
    + + +
    [in]pathBase path to bfbs files
    +
    +
    + +

    Definition at line 95 of file system.py.

    + +

    References System.__system.

    + +
    +
    + +

    ◆ start()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    def start ( self,
    bool bo_start_broker 
    )
    +
    + +

    Starts a datalayer system.

    +
    Parameters
    + + +
    [in]bo_start_brokerUse true to start a broker. If you are a user of the datalayer - call with false!
    +
    +
    + +

    Definition at line 60 of file system.py.

    + +

    References System.__system.

    + +
    +
    + +

    ◆ stop()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    bool stop ( self,
    bool bo_force_provider_stop 
    )
    +
    + +

    Stops a datalayer system.

    +
    Parameters
    + + +
    [in]bo_force_provider_stopForce stop off all created providers for this datalayer system
    +
    +
    +
    Returns
    <bool> false if there is a client or provider active
    + +

    Definition at line 69 of file system.py.

    + +

    References System.__system.

    + +

    Referenced by System.close().

    + +
    +
    +
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1system_1_1System.js b/3.4.0/api/python/classctrlxdatalayer_1_1system_1_1System.js new file mode 100644 index 000000000..03b0dd0a0 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1system_1_1System.js @@ -0,0 +1,13 @@ +var classctrlxdatalayer_1_1system_1_1System = +[ + [ "__init__", "classctrlxdatalayer_1_1system_1_1System.html#af22afd382b95e54de8c30f6e0f8b1766", null ], + [ "__enter__", "classctrlxdatalayer_1_1system_1_1System.html#a404692262c90487a8013dbdd128cdd7f", null ], + [ "__exit__", "classctrlxdatalayer_1_1system_1_1System.html#a1d4375d5b88ea11310dcd3bfb10ecb97", null ], + [ "close", "classctrlxdatalayer_1_1system_1_1System.html#a8639372c33e15084a7f7c4d9d87b7bfe", null ], + [ "factory", "classctrlxdatalayer_1_1system_1_1System.html#a3479cf570ce19a1c8bd04b7d2ed77a16", null ], + [ "get_handle", "classctrlxdatalayer_1_1system_1_1System.html#aa0041e70f5a3139baac2676f0a1367bb", null ], + [ "json_converter", "classctrlxdatalayer_1_1system_1_1System.html#ae6d78ceb96f08364a282efafc23c378a", null ], + [ "set_bfbs_path", "classctrlxdatalayer_1_1system_1_1System.html#a02ddb48ce95bbb2e5baac72f98727f54", null ], + [ "start", "classctrlxdatalayer_1_1system_1_1System.html#a491f5dd818499e13abb39b8720660961", null ], + [ "stop", "classctrlxdatalayer_1_1system_1_1System.html#ad20f78fa941d9474c641babacff5e109", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1variant_1_1Result-members.html b/3.4.0/api/python/classctrlxdatalayer_1_1variant_1_1Result-members.html new file mode 100644 index 000000000..cb3e7a0c8 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1variant_1_1Result-members.html @@ -0,0 +1,149 @@ + + + + + + + +ctrlX Data Layer API for Python: Member List + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    Result Member List
    +
    +
    + +

    This is the complete list of members for Result, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ALREADY_EXISTS (defined in Result)Resultstatic
    CLIENT_NOT_CONNECTED (defined in Result)Resultstatic
    COMM_INVALID_HEADER (defined in Result)Resultstatic
    COMM_PROTOCOL_ERROR (defined in Result)Resultstatic
    COMMUNICATION_ERROR (defined in Result)Resultstatic
    CREATION_FAILED (defined in Result)Resultstatic
    DEPRECATED (defined in Result)Resultstatic
    FAILED (defined in Result)Resultstatic
    INVALID_ADDRESS (defined in Result)Resultstatic
    INVALID_CONFIGURATION (defined in Result)Resultstatic
    INVALID_FLOATINGPOINT (defined in Result)Resultstatic
    INVALID_HANDLE (defined in Result)Resultstatic
    INVALID_OPERATION_MODE (defined in Result)Resultstatic
    INVALID_VALUE (defined in Result)Resultstatic
    LIMIT_MAX (defined in Result)Resultstatic
    LIMIT_MIN (defined in Result)Resultstatic
    MISSING_ARGUMENT (defined in Result)Resultstatic
    NOT_INITIALIZED (defined in Result)Resultstatic
    OK (defined in Result)Resultstatic
    OK_NO_CONTENT (defined in Result)Resultstatic
    OUT_OF_MEMORY (defined in Result)Resultstatic
    PERMISSION_DENIED (defined in Result)Resultstatic
    RESOURCE_UNAVAILABLE (defined in Result)Resultstatic
    RT_INVALID_ERROR (defined in Result)Resultstatic
    RT_INVALID_MEMORY_MAP (defined in Result)Resultstatic
    RT_INVALID_OBJECT (defined in Result)Resultstatic
    RT_INVALID_RETAIN (defined in Result)Resultstatic
    RT_MALLOC_FAILED (defined in Result)Resultstatic
    RT_MEMORY_LOCKED (defined in Result)Resultstatic
    RT_NO_VALID_DATA (defined in Result)Resultstatic
    RT_NOT_OPEN (defined in Result)Resultstatic
    RT_WRONG_REVISION (defined in Result)Resultstatic
    SEC_INVALID_SESSION (defined in Result)Resultstatic
    SEC_INVALID_TOKEN_CONTENT (defined in Result)Resultstatic
    sec_noSEC_NO_TOKEN_token (defined in Result)Resultstatic
    SEC_PAYMENT_REQUIRED (defined in Result)Resultstatic
    SEC_UNAUTHORIZED (defined in Result)Resultstatic
    SIZE_MISMATCH (defined in Result)Resultstatic
    SUBMODULE_FAILURE (defined in Result)Resultstatic
    TIMEOUT (defined in Result)Resultstatic
    TOO_MANY_ARGUMENTS (defined in Result)Resultstatic
    TOO_MANY_OPERATIONS (defined in Result)Resultstatic
    TYPE_MISMATCH (defined in Result)Resultstatic
    UNSUPPORTED (defined in Result)Resultstatic
    VERSION_MISMATCH (defined in Result)Resultstatic
    WOULD_BLOCK (defined in Result)Resultstatic
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1variant_1_1Result.html b/3.4.0/api/python/classctrlxdatalayer_1_1variant_1_1Result.html new file mode 100644 index 000000000..6e4ce3693 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1variant_1_1Result.html @@ -0,0 +1,259 @@ + + + + + + + +ctrlX Data Layer API for Python: Result Class Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    Result Class Reference
    +
    +
    +
    + + Inheritance diagram for Result:
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Static Public Attributes

    +int ALREADY_EXISTS = 0x80010010
     
    +int CLIENT_NOT_CONNECTED = 0x80030001
     
    +int COMM_INVALID_HEADER = 0x80020002
     
    +int COMM_PROTOCOL_ERROR = 0x80020001
     
    +int COMMUNICATION_ERROR = 0x80010019
     
    +int CREATION_FAILED = 0x80010011
     
    +int DEPRECATED = 0x80010013
     
    +int FAILED = 0x80000001
     
    +int INVALID_ADDRESS = 0x80010001
     
    +int INVALID_CONFIGURATION = 0x8001000C
     
    +int INVALID_FLOATINGPOINT = 0x80010009
     
    +int INVALID_HANDLE = 0x8001000A
     
    +int INVALID_OPERATION_MODE = 0x8001000B
     
    +int INVALID_VALUE = 0x8001000D
     
    +int LIMIT_MAX = 0x80010005
     
    +int LIMIT_MIN = 0x80010004
     
    +int MISSING_ARGUMENT = 0x80010016
     
    +int NOT_INITIALIZED = 0x80010015
     
    +int OK = 0
     
    +int OK_NO_CONTENT = 0x00000001
     
    +int OUT_OF_MEMORY = 0x80010003
     
    +int PERMISSION_DENIED = 0x80010014
     
    +int RESOURCE_UNAVAILABLE = 0x80010018
     
    +int RT_INVALID_ERROR = 0x80060008
     
    +int RT_INVALID_MEMORY_MAP = 0x80060006
     
    +int RT_INVALID_OBJECT = 0x80060002
     
    +int RT_INVALID_RETAIN = 0x80060007
     
    +int RT_MALLOC_FAILED = 0x80060009
     
    +int RT_MEMORY_LOCKED = 0x80060005
     
    +int RT_NO_VALID_DATA = 0x80060004
     
    +int RT_NOT_OPEN = 0x80060001
     
    +int RT_WRONG_REVISION = 0x80060003
     
    +int SEC_INVALID_SESSION = 0x80070002
     
    +int SEC_INVALID_TOKEN_CONTENT = 0x80070003
     
    +int sec_noSEC_NO_TOKEN_token = 0x80070001
     
    +int SEC_PAYMENT_REQUIRED = 0x80070005
     
    +int SEC_UNAUTHORIZED = 0x80070004
     
    +int SIZE_MISMATCH = 0x80010007
     
    +int SUBMODULE_FAILURE = 0x8001000E
     
    +int TIMEOUT = 0x8001000F
     
    +int TOO_MANY_ARGUMENTS = 0x80010017
     
    +int TOO_MANY_OPERATIONS = 0x8001001A
     
    +int TYPE_MISMATCH = 0x80010006
     
    +int UNSUPPORTED = 0x80010002
     
    +int VERSION_MISMATCH = 0x80010012
     
    +int WOULD_BLOCK = 0x8001001B
     
    +

    Detailed Description

    +
    Result(Enum)
    +

    status of function call

    + +

    Definition at line 24 of file variant.py.

    +
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1variant_1_1Result.js b/3.4.0/api/python/classctrlxdatalayer_1_1variant_1_1Result.js new file mode 100644 index 000000000..d38c98c05 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1variant_1_1Result.js @@ -0,0 +1,49 @@ +var classctrlxdatalayer_1_1variant_1_1Result = +[ + [ "ALREADY_EXISTS", "classctrlxdatalayer_1_1variant_1_1Result.html#ac66914a69c071db297192734ee379d26", null ], + [ "CLIENT_NOT_CONNECTED", "classctrlxdatalayer_1_1variant_1_1Result.html#adf724d195c44bd182a785561df4b3ef0", null ], + [ "COMM_INVALID_HEADER", "classctrlxdatalayer_1_1variant_1_1Result.html#a78b8c9e5f1de5d85133b501cf3d0cab6", null ], + [ "COMM_PROTOCOL_ERROR", "classctrlxdatalayer_1_1variant_1_1Result.html#afc6c58c175adad7e9162e3124526e6cb", null ], + [ "COMMUNICATION_ERROR", "classctrlxdatalayer_1_1variant_1_1Result.html#a13ad2efeb64b4ba345119ae7ae5f0d03", null ], + [ "CREATION_FAILED", "classctrlxdatalayer_1_1variant_1_1Result.html#a3a0504d03b084efe23221f865dee809c", null ], + [ "DEPRECATED", "classctrlxdatalayer_1_1variant_1_1Result.html#a6a872eb99d89cbbedeb9a3f8d5ba55ba", null ], + [ "FAILED", "classctrlxdatalayer_1_1variant_1_1Result.html#a1b36e350a0ccd3034b122070e6c27196", null ], + [ "INVALID_ADDRESS", "classctrlxdatalayer_1_1variant_1_1Result.html#af7c00a69b38079029f42eae9634278e2", null ], + [ "INVALID_CONFIGURATION", "classctrlxdatalayer_1_1variant_1_1Result.html#ac536cd2bf8659232e35bd6384bacf0ae", null ], + [ "INVALID_FLOATINGPOINT", "classctrlxdatalayer_1_1variant_1_1Result.html#a488276fa864382da10c45e2d3c0c93c6", null ], + [ "INVALID_HANDLE", "classctrlxdatalayer_1_1variant_1_1Result.html#a21d2f176f2adcc0d2428876264b3d04c", null ], + [ "INVALID_OPERATION_MODE", "classctrlxdatalayer_1_1variant_1_1Result.html#a94ed20095f0617be543996538536e353", null ], + [ "INVALID_VALUE", "classctrlxdatalayer_1_1variant_1_1Result.html#afcacc6c3929c60439383f47bd871e0ab", null ], + [ "LIMIT_MAX", "classctrlxdatalayer_1_1variant_1_1Result.html#a24f5da583196fd9c253e658fc78539e4", null ], + [ "LIMIT_MIN", "classctrlxdatalayer_1_1variant_1_1Result.html#a02ac8215c806beb61594f5c8189f1f83", null ], + [ "MISSING_ARGUMENT", "classctrlxdatalayer_1_1variant_1_1Result.html#a71fdd9aefd3a0340df18c00c0e7a2cd0", null ], + [ "NOT_INITIALIZED", "classctrlxdatalayer_1_1variant_1_1Result.html#ac548f1218742f993d1dea257285d1dbd", null ], + [ "OK", "classctrlxdatalayer_1_1variant_1_1Result.html#a03b91fde8a6d9602d4c87d15fb7a7bfd", null ], + [ "OK_NO_CONTENT", "classctrlxdatalayer_1_1variant_1_1Result.html#af1c3b68c1a89d953de8e292fdeb0fc85", null ], + [ "OUT_OF_MEMORY", "classctrlxdatalayer_1_1variant_1_1Result.html#ab029abf20099a16945dd17918c736443", null ], + [ "PERMISSION_DENIED", "classctrlxdatalayer_1_1variant_1_1Result.html#aa9735b41ee4a6e99c96592eb2ed175ae", null ], + [ "RESOURCE_UNAVAILABLE", "classctrlxdatalayer_1_1variant_1_1Result.html#a3948b94f50bc9ff892f7064cef3a63b4", null ], + [ "RT_INVALID_ERROR", "classctrlxdatalayer_1_1variant_1_1Result.html#ae4c05aa76ddf83c78dfd5a65faabedf5", null ], + [ "RT_INVALID_MEMORY_MAP", "classctrlxdatalayer_1_1variant_1_1Result.html#ac8d7147ba4e1a949406ca8958852b05c", null ], + [ "RT_INVALID_OBJECT", "classctrlxdatalayer_1_1variant_1_1Result.html#a3d429802e968ac1a73956eed811bd5bc", null ], + [ "RT_INVALID_RETAIN", "classctrlxdatalayer_1_1variant_1_1Result.html#a2ed093da06829b70d4f6fcebca4f6f63", null ], + [ "RT_MALLOC_FAILED", "classctrlxdatalayer_1_1variant_1_1Result.html#a9c951f73c52402af543368c65192c66b", null ], + [ "RT_MEMORY_LOCKED", "classctrlxdatalayer_1_1variant_1_1Result.html#a75794b835ba8379d4e4f10fa766fb70f", null ], + [ "RT_NO_VALID_DATA", "classctrlxdatalayer_1_1variant_1_1Result.html#a45ea277c9290e39427c722e2a212fb8c", null ], + [ "RT_NOT_OPEN", "classctrlxdatalayer_1_1variant_1_1Result.html#a990f655c26d7ad3b94a062cd570cd249", null ], + [ "RT_WRONG_REVISION", "classctrlxdatalayer_1_1variant_1_1Result.html#a6cec46a632c7e7c0585510a72c8139bc", null ], + [ "SEC_INVALID_SESSION", "classctrlxdatalayer_1_1variant_1_1Result.html#a10f4e6dd11b3d44744fe8cdece3e5249", null ], + [ "SEC_INVALID_TOKEN_CONTENT", "classctrlxdatalayer_1_1variant_1_1Result.html#ad3b20a2bb064feada078198484c46719", null ], + [ "sec_noSEC_NO_TOKEN_token", "classctrlxdatalayer_1_1variant_1_1Result.html#a111f951ea7787e099c654fe11250948a", null ], + [ "SEC_PAYMENT_REQUIRED", "classctrlxdatalayer_1_1variant_1_1Result.html#ad5e51c4f6ba78f903880ebe99b4f92c4", null ], + [ "SEC_UNAUTHORIZED", "classctrlxdatalayer_1_1variant_1_1Result.html#a939c52eca71ac9303e3a72b8cee2ea28", null ], + [ "SIZE_MISMATCH", "classctrlxdatalayer_1_1variant_1_1Result.html#a6f45c4ddb218b790113f8064a2bee5d7", null ], + [ "SUBMODULE_FAILURE", "classctrlxdatalayer_1_1variant_1_1Result.html#ab1974cf6cb4446519e3c601a8e5cc883", null ], + [ "TIMEOUT", "classctrlxdatalayer_1_1variant_1_1Result.html#acb1703e795b348cfb0d1efae78314f83", null ], + [ "TOO_MANY_ARGUMENTS", "classctrlxdatalayer_1_1variant_1_1Result.html#a5fe435449885ec0ce2516257c61e204a", null ], + [ "TOO_MANY_OPERATIONS", "classctrlxdatalayer_1_1variant_1_1Result.html#a2531088d3c10c25917984425d0f3023b", null ], + [ "TYPE_MISMATCH", "classctrlxdatalayer_1_1variant_1_1Result.html#a4972b1925e9f73ff10dcbe4ab5285524", null ], + [ "UNSUPPORTED", "classctrlxdatalayer_1_1variant_1_1Result.html#ae4030175c53f6987b07aab15b76820ee", null ], + [ "VERSION_MISMATCH", "classctrlxdatalayer_1_1variant_1_1Result.html#a37ec3815a65f8f858384c0c1b730527c", null ], + [ "WOULD_BLOCK", "classctrlxdatalayer_1_1variant_1_1Result.html#a1bce7ec81ca4a9d4b4c0c13bb27b0115", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1variant_1_1Result.png b/3.4.0/api/python/classctrlxdatalayer_1_1variant_1_1Result.png new file mode 100644 index 000000000..203064036 Binary files /dev/null and b/3.4.0/api/python/classctrlxdatalayer_1_1variant_1_1Result.png differ diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1variant_1_1Variant-members.html b/3.4.0/api/python/classctrlxdatalayer_1_1variant_1_1Variant-members.html new file mode 100644 index 000000000..15e2112b6 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1variant_1_1Variant-members.html @@ -0,0 +1,174 @@ + + + + + + + +ctrlX Data Layer API for Python: Member List + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    Variant Member List
    +
    +
    + +

    This is the complete list of members for Variant, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    __del__(self)Variant
    __enter__(self)Variant
    __exit__(self, exc_type, exc_val, exc_tb)Variant
    __init__(self, C_DLR_VARIANT c_variant=None)Variant
    check_convert(self, VariantType datatype)Variant
    clone(self)Variant
    close(self)Variant
    copy(C_DLR_VARIANT c_variant)Variantstatic
    from_filetime(filetime)Variantstatic
    get_array_bool8(self)Variant
    get_array_datetime(self)Variant
    get_array_float32(self)Variant
    get_array_float64(self)Variant
    get_array_int16(self)Variant
    get_array_int32(self)Variant
    get_array_int64(self)Variant
    get_array_int8(self)Variant
    get_array_string(self)Variant
    get_array_uint16(self)Variant
    get_array_uint32(self)Variant
    get_array_uint64(self)Variant
    get_array_uint8(self)Variant
    get_bool8(self)Variant
    get_count(self)Variant
    get_data(self)Variant
    get_datetime(self)Variant
    get_flatbuffers(self)Variant
    get_float32(self)Variant
    get_float64(self)Variant
    get_handle(self)Variant
    get_int16(self)Variant
    get_int32(self)Variant
    get_int64(self)Variant
    get_int8(self)Variant
    get_size(self)Variant
    get_string(self)Variant
    get_type(self)Variant
    get_uint16(self)Variant
    get_uint32(self)Variant
    get_uint64(self)Variant
    get_uint8(self)Variant
    set_array_bool8(self, typing.List[bool] data)Variant
    set_array_datetime(self, typing.List[datetime.datetime] data)Variant
    set_array_float32(self, typing.List[float] data)Variant
    set_array_float64(self, typing.List[float] data)Variant
    set_array_int16(self, typing.List[int] data)Variant
    set_array_int32(self, typing.List[int] data)Variant
    set_array_int64(self, typing.List[int] data)Variant
    set_array_int8(self, typing.List[int] data)Variant
    set_array_string(self, typing.List[str] data)Variant
    set_array_timestamp(self, typing.List[int] data)Variant
    set_array_uint16(self, typing.List[int] data)Variant
    set_array_uint32(self, typing.List[int] data)Variant
    set_array_uint64(self, typing.List[int] data)Variant
    set_array_uint8(self, typing.List[int] data)Variant
    set_bool8(self, bool data)Variant
    set_datetime(self, datetime dt)Variant
    set_flatbuffers(self, bytearray data)Variant
    set_float32(self, float data)Variant
    set_float64(self, float data)Variant
    set_int16(self, int data)Variant
    set_int32(self, int data)Variant
    set_int64(self, int data)Variant
    set_int8(self, int data)Variant
    set_string(self, str data)Variant
    set_timestamp(self, int data) (defined in Variant)Variant
    set_uint16(self, int data)Variant
    set_uint32(self, int data)Variant
    set_uint64(self, int data)Variant
    set_uint8(self, int data)Variant
    to_filetime(datetime dt)Variantstatic
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1variant_1_1Variant.html b/3.4.0/api/python/classctrlxdatalayer_1_1variant_1_1Variant.html new file mode 100644 index 000000000..4e6768990 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1variant_1_1Variant.html @@ -0,0 +1,2230 @@ + + + + + + + +ctrlX Data Layer API for Python: Variant Class Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + + +
    +
    + + Inheritance diagram for Variant:
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    +def __init__ (self, C_DLR_VARIANT c_variant=None)
     
    +def __del__ (self)
     
    +def __enter__ (self)
     
    +def __exit__ (self, exc_type, exc_val, exc_tb)
     
    Result check_convert (self, VariantType datatype)
     
    def clone (self)
     
    +def close (self)
     
    typing.List[bool] get_array_bool8 (self)
     
    typing.List[datetime.datetime] get_array_datetime (self)
     
    typing.List[float] get_array_float32 (self)
     
    typing.List[float] get_array_float64 (self)
     
    typing.List[int] get_array_int16 (self)
     
    typing.List[int] get_array_int32 (self)
     
    typing.List[int] get_array_int64 (self)
     
    typing.List[int] get_array_int8 (self)
     
    typing.List[str] get_array_string (self)
     
    typing.List[int] get_array_uint16 (self)
     
    typing.List[int] get_array_uint32 (self)
     
    typing.List[int] get_array_uint64 (self)
     
    typing.List[int] get_array_uint8 (self)
     
    bool get_bool8 (self)
     
    int get_count (self)
     
    bytearray get_data (self)
     
    datetime.datetime get_datetime (self)
     
    bytearray get_flatbuffers (self)
     
    float get_float32 (self)
     
    float get_float64 (self)
     
    +def get_handle (self)
     
    int get_int16 (self)
     
    int get_int32 (self)
     
    int get_int64 (self)
     
    int get_int8 (self)
     
    int get_size (self)
     
    str get_string (self)
     
    VariantType get_type (self)
     
    int get_uint16 (self)
     
    int get_uint32 (self)
     
    int get_uint64 (self)
     
    int get_uint8 (self)
     
    Result set_array_bool8 (self, typing.List[bool] data)
     
    Result set_array_datetime (self, typing.List[datetime.datetime] data)
     
    Result set_array_float32 (self, typing.List[float] data)
     
    Result set_array_float64 (self, typing.List[float] data)
     
    Result set_array_int16 (self, typing.List[int] data)
     
    Result set_array_int32 (self, typing.List[int] data)
     
    Result set_array_int64 (self, typing.List[int] data)
     
    Result set_array_int8 (self, typing.List[int] data)
     
    Result set_array_string (self, typing.List[str] data)
     
    Result set_array_timestamp (self, typing.List[int] data)
     
    Result set_array_uint16 (self, typing.List[int] data)
     
    Result set_array_uint32 (self, typing.List[int] data)
     
    Result set_array_uint64 (self, typing.List[int] data)
     
    Result set_array_uint8 (self, typing.List[int] data)
     
    Result set_bool8 (self, bool data)
     
    Result set_datetime (self, datetime dt)
     
    Result set_flatbuffers (self, bytearray data)
     
    Result set_float32 (self, float data)
     
    Result set_float64 (self, float data)
     
    Result set_int16 (self, int data)
     
    Result set_int32 (self, int data)
     
    Result set_int64 (self, int data)
     
    Result set_int8 (self, int data)
     
    Result set_string (self, str data)
     
    +Result set_timestamp (self, int data)
     
    Result set_uint16 (self, int data)
     
    Result set_uint32 (self, int data)
     
    Result set_uint64 (self, int data)
     
    Result set_uint8 (self, int data)
     
    + + + + + + + +

    +Static Public Member Functions

    def copy (C_DLR_VARIANT c_variant)
     
    datetime from_filetime (filetime)
     
    int to_filetime (datetime dt)
     
    +

    Detailed Description

    +

    Variant is a container for a many types of data.

    +

    Hint see python context manager for instance handling

    + +

    Definition at line 150 of file variant.py.

    +

    Member Function Documentation

    + +

    ◆ check_convert()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    Result check_convert ( self,
    VariantType datatype 
    )
    +
    +
    + +

    ◆ clone()

    + +
    +
    + + + + + + + + +
    def clone ( self)
    +
    + +

    clones the content of a variant to another variant

    +
    Returns
    tuple (Result, Variant)
    +
    +<Result>, status of function call,
    +
    +<Variant>, clones of variant
    + +

    Definition at line 256 of file variant.py.

    + +

    References Variant._variant.

    + +
    +
    + +

    ◆ copy()

    + +
    +
    + + + + + +
    + + + + + + + + +
    def copy (C_DLR_VARIANT c_variant)
    +
    +static
    +
    + +

    copies the content of a variant to another variant

    +
    Returns
    tuple (Result, Variant)
    +
    +<Result>, status of function call,
    +
    +<Variant>, copy of variant
    + +

    Definition at line 244 of file variant.py.

    + +

    Referenced by Variant.set_array_datetime().

    + +
    +
    + +

    ◆ from_filetime()

    + +
    +
    + + + + + +
    + + + + + + + + +
    datetime from_filetime ( filetime)
    +
    +static
    +
    + +

    convert filetime to datetime

    +
    Parameters
    + + +
    filetime(FILETIME) 64 bit 100ns since 1.1.1601 (UTC)
    +
    +
    +
    Returns
    +
    +datetime datetime object
    + +

    Definition at line 689 of file variant.py.

    + +
    +
    + +

    ◆ get_array_bool8()

    + +
    +
    + + + + + + + + +
    typing.List[bool] get_array_bool8 ( self)
    +
    + +

    Returns the array of int8 if the type is an array of int8 otherwise null.

    +
    Returns
    array of bool8
    + +

    Definition at line 372 of file variant.py.

    + +

    References Variant._variant, and Variant.check_convert().

    + +
    +
    + +

    ◆ get_array_datetime()

    + +
    +
    + + + + + + + + +
    typing.List[datetime.datetime] get_array_datetime ( self)
    +
    + +

    datetime objects as timestamp (FILETIME) 64 bit 100ns since 1.1.1601 (UTC)

    +
    Returns
    array of datetime.datetime: datetime object
    + +

    Definition at line 531 of file variant.py.

    + +

    References Variant.get_array_uint64().

    + +
    +
    + +

    ◆ get_array_float32()

    + +
    +
    + + + + + + + + +
    typing.List[float] get_array_float32 ( self)
    +
    + +

    Returns the array of float if the type is an array of float otherwise null.

    +
    Returns
    array of float32
    + +

    Definition at line 491 of file variant.py.

    + +

    References Variant._variant, and Variant.check_convert().

    + +
    +
    + +

    ◆ get_array_float64()

    + +
    +
    + + + + + + + + +
    typing.List[float] get_array_float64 ( self)
    +
    + +

    Returns the array of double if the type is an array of double otherwise null.

    +
    Returns
    array of float64
    + +

    Definition at line 504 of file variant.py.

    + +

    References Variant._variant, and Variant.check_convert().

    + +
    +
    + +

    ◆ get_array_int16()

    + +
    +
    + + + + + + + + +
    typing.List[int] get_array_int16 ( self)
    +
    + +

    Returns the array of int16 if the type is an array of int16 otherwise null.

    +
    Returns
    array of int16
    + +

    Definition at line 412 of file variant.py.

    + +

    References Variant._variant, and Variant.check_convert().

    + +
    +
    + +

    ◆ get_array_int32()

    + +
    +
    + + + + + + + + +
    typing.List[int] get_array_int32 ( self)
    +
    + +

    Returns the array of int32 if the type is an array of int32 otherwise null.

    +
    Returns
    array of int32
    + +

    Definition at line 438 of file variant.py.

    + +

    References Variant._variant, and Variant.check_convert().

    + +
    +
    + +

    ◆ get_array_int64()

    + +
    +
    + + + + + + + + +
    typing.List[int] get_array_int64 ( self)
    +
    + +

    Returns the array of int64 if the type is an array of int64 otherwise null.

    +
    Returns
    array of int64
    + +

    Definition at line 464 of file variant.py.

    + +

    References Variant._variant, and Variant.check_convert().

    + +
    +
    + +

    ◆ get_array_int8()

    + +
    +
    + + + + + + + + +
    typing.List[int] get_array_int8 ( self)
    +
    + +

    Returns the array of int8 if the type is an array of int8 otherwise null.

    +
    Returns
    array of int8
    + +

    Definition at line 386 of file variant.py.

    + +

    References Variant._variant, and Variant.check_convert().

    + +
    +
    + +

    ◆ get_array_string()

    + +
    +
    + + + + + + + + +
    typing.List[str] get_array_string ( self)
    +
    + +

    Returns the type of the variant.

    +
    Returns
    array of strings
    + +

    Definition at line 517 of file variant.py.

    + +

    References Variant._variant, and Variant.check_convert().

    + +
    +
    + +

    ◆ get_array_uint16()

    + +
    +
    + + + + + + + + +
    typing.List[int] get_array_uint16 ( self)
    +
    + +

    Returns the array of uint16 if the type is an array of uint16 otherwise null.

    +
    Returns
    array of uint16
    + +

    Definition at line 425 of file variant.py.

    + +

    References Variant._variant, and Variant.check_convert().

    + +
    +
    + +

    ◆ get_array_uint32()

    + +
    +
    + + + + + + + + +
    typing.List[int] get_array_uint32 ( self)
    +
    + +

    Returns the array of uint32 if the type is an array of uint32 otherwise null.

    +
    Returns
    array of uint32
    + +

    Definition at line 451 of file variant.py.

    + +

    References Variant._variant, and Variant.check_convert().

    + +
    +
    + +

    ◆ get_array_uint64()

    + +
    +
    + + + + + + + + +
    typing.List[int] get_array_uint64 ( self)
    +
    + +

    Returns the array of uint64 if the type is an array of uint64 otherwise null.

    +
    Returns
    array of uint64
    + +

    Definition at line 477 of file variant.py.

    + +

    References Variant._variant, and Variant.check_convert().

    + +

    Referenced by Variant.get_array_datetime().

    + +
    +
    + +

    ◆ get_array_uint8()

    + +
    +
    + + + + + + + + +
    typing.List[int] get_array_uint8 ( self)
    +
    + +

    Returns the array of uint8 if the type is an array of uint8 otherwise null.

    +
    Returns
    array of uint8
    + +

    Definition at line 399 of file variant.py.

    + +

    References Variant._variant, and Variant.check_convert().

    + +
    +
    + +

    ◆ get_bool8()

    + +
    +
    + + + + + + + + +
    bool get_bool8 ( self)
    +
    + +

    Returns the value of the variant as a bool (auto convert if possible) otherwise 0.

    +
    Returns
    [True, False]
    + +

    Definition at line 263 of file variant.py.

    + +

    References Variant._variant.

    + +
    +
    + +

    ◆ get_count()

    + +
    +
    + + + + + + + + +
    int get_count ( self)
    +
    + +

    Returns the count of elements in the variant (scalar data types = 1, array = count of elements in array)

    +
    Returns
    count of a type
    + +

    Definition at line 226 of file variant.py.

    + +

    References Variant._variant.

    + +
    +
    + +

    ◆ get_data()

    + +
    +
    + + + + + + + + +
    bytearray get_data ( self)
    +
    + +

    Returns the pointer to the data of the variant.

    +
    Returns
    array of bytes
    + +

    Definition at line 209 of file variant.py.

    + +

    References Variant._variant.

    + +

    Referenced by Variant.get_flatbuffers().

    + +
    +
    + +

    ◆ get_datetime()

    + +
    +
    + + + + + + + + +
    datetime.datetime get_datetime ( self)
    +
    + +

    datetime object as timestamp (FILETIME) 64 bit 100ns since 1.1.1601 (UTC)

    +
    Returns
    +
    +datetime datetime object
    + +

    Definition at line 364 of file variant.py.

    + +

    References Variant.get_uint64().

    + +
    +
    + +

    ◆ get_flatbuffers()

    + +
    +
    + + + + + + + + +
    bytearray get_flatbuffers ( self)
    +
    + +

    Returns the flatbuffers if the type is a flatbuffers otherwise null.

    +
    Returns
    flatbuffer (bytearray)
    + +

    Definition at line 353 of file variant.py.

    + +

    References Variant.check_convert(), Response.get_data(), _Request.get_data(), NotifyItemPublish.get_data(), NotifyItem.get_data(), and Variant.get_data().

    + +
    +
    + +

    ◆ get_float32()

    + +
    +
    + + + + + + + + +
    float get_float32 ( self)
    +
    + +

    Returns the value of the variant as a float (auto convert if possible) otherwise 0.

    +
    Returns
    [1.2E-38, 3.4E+38]
    + +

    Definition at line 326 of file variant.py.

    + +

    References Variant._variant.

    + +
    +
    + +

    ◆ get_float64()

    + +
    +
    + + + + + + + + +
    float get_float64 ( self)
    +
    + +

    Returns the value of the variant as a double (auto convert if possible) otherwise 0.

    +
    Returns
    [2.3E-308, 1.7E+308]
    + +

    Definition at line 333 of file variant.py.

    + +

    References Variant._variant.

    + +
    +
    + +

    ◆ get_int16()

    + +
    +
    + + + + + + + + +
    int get_int16 ( self)
    +
    + +

    Returns the value of the variant as an int16 (auto convert if possible) otherwise 0.

    +
    Returns
    [-32768, 32767]
    + +

    Definition at line 284 of file variant.py.

    + +

    References Variant._variant.

    + +
    +
    + +

    ◆ get_int32()

    + +
    +
    + + + + + + + + +
    int get_int32 ( self)
    +
    + +

    Returns the value of the variant as an int32 (auto convert if possible) otherwise 0.

    +
    Returns
    [-2.147.483.648, 2.147.483.647]
    + +

    Definition at line 298 of file variant.py.

    + +

    References Variant._variant.

    + +
    +
    + +

    ◆ get_int64()

    + +
    +
    + + + + + + + + +
    int get_int64 ( self)
    +
    + +

    Returns the value of the variant as an int64 (auto convert if possible) otherwise 0.

    +
    Returns
    [-9.223.372.036.854.775.808, 9.223.372.036.854.775.807]
    + +

    Definition at line 312 of file variant.py.

    + +

    References Variant._variant.

    + +
    +
    + +

    ◆ get_int8()

    + +
    +
    + + + + + + + + +
    int get_int8 ( self)
    +
    + +

    Returns the value of the variant as an int8 (auto convert if possible) otherwise 0.

    +
    Returns
    [-128, 127]
    + +

    Definition at line 270 of file variant.py.

    + +

    References Variant._variant.

    + +
    +
    + +

    ◆ get_size()

    + +
    +
    + + + + + + + + +
    int get_size ( self)
    +
    +
    Returns
    size of the type in bytes
    + +

    Definition at line 219 of file variant.py.

    + +

    References Variant._variant.

    + +
    +
    + +

    ◆ get_string()

    + +
    +
    + + + + + + + + +
    str get_string ( self)
    +
    + +

    Returns the array of bool8 if the type is an array of bool otherwise null.

    +
    Returns
    string
    + +

    Definition at line 340 of file variant.py.

    + +

    References Variant._variant, and Variant.check_convert().

    + +
    +
    + +

    ◆ get_type()

    + +
    +
    + + + + + + + + +
    VariantType get_type ( self)
    +
    + +

    Returns the type of the variant.

    +
    Returns
    <VariantType>
    + +

    Definition at line 202 of file variant.py.

    + +

    References Variant._variant.

    + +
    +
    + +

    ◆ get_uint16()

    + +
    +
    + + + + + + + + +
    int get_uint16 ( self)
    +
    + +

    Returns the value of the variant as an uint16 (auto convert if possible) otherwise 0.

    +
    Returns
    [0, 65.535]
    + +

    Definition at line 291 of file variant.py.

    + +

    References Variant._variant.

    + +
    +
    + +

    ◆ get_uint32()

    + +
    +
    + + + + + + + + +
    int get_uint32 ( self)
    +
    + +

    Returns the value of the variant as an Uint32 (auto convert if possible) otherwise 0.

    +
    Returns
    [0, 4.294.967.295]
    + +

    Definition at line 305 of file variant.py.

    + +

    References Variant._variant.

    + +
    +
    + +

    ◆ get_uint64()

    + +
    +
    + + + + + + + + +
    int get_uint64 ( self)
    +
    + +

    Returns the value of the variant as an uint64 (auto convert if possible) otherwise 0.

    +
    Returns
    [0, 18446744073709551615]
    + +

    Definition at line 319 of file variant.py.

    + +

    References Variant._variant.

    + +

    Referenced by Variant.get_datetime().

    + +
    +
    + +

    ◆ get_uint8()

    + +
    +
    + + + + + + + + +
    int get_uint8 ( self)
    +
    + +

    Returns the value of the variant as an uint8 (auto convert if possible) otherwise 0.

    +
    Returns
    [0, 255]
    + +

    Definition at line 277 of file variant.py.

    + +

    References Variant._variant.

    + +
    +
    + +

    ◆ set_array_bool8()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    Result set_array_bool8 ( self,
    typing.List[bool] data 
    )
    +
    + +

    Set array of bool8.

    +
    Returns
    <Result>, status of function call
    + +

    Definition at line 711 of file variant.py.

    + +

    References Client.__closed, Provider.__closed, ProviderNode.__closed, SubscriptionAsync.__closed, SubscriptionSync.__closed, System.__closed, Variant.__closed, and Variant._variant.

    + +
    +
    + +

    ◆ set_array_datetime()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    Result set_array_datetime ( self,
    typing.List[datetime.datetime] data 
    )
    +
    + +

    Set array of datetime.

    +
    Returns
    <Result>, status of function call
    + +

    Definition at line 881 of file variant.py.

    + +

    References Client.__closed, Provider.__closed, ProviderNode.__closed, SubscriptionAsync.__closed, SubscriptionSync.__closed, System.__closed, Variant.__closed, Variant.copy(), and Variant.set_array_timestamp().

    + +
    +
    + +

    ◆ set_array_float32()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    Result set_array_float32 ( self,
    typing.List[float] data 
    )
    +
    + +

    Set array of float32.

    +
    Returns
    <Result>, status of function call
    + +

    Definition at line 828 of file variant.py.

    + +

    References Client.__closed, Provider.__closed, ProviderNode.__closed, SubscriptionAsync.__closed, SubscriptionSync.__closed, System.__closed, Variant.__closed, and Variant._variant.

    + +
    +
    + +

    ◆ set_array_float64()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    Result set_array_float64 ( self,
    typing.List[float] data 
    )
    +
    + +

    Set array of float64.

    +
    Returns
    <Result>, status of function call
    + +

    Definition at line 841 of file variant.py.

    + +

    References Client.__closed, Provider.__closed, ProviderNode.__closed, SubscriptionAsync.__closed, SubscriptionSync.__closed, System.__closed, Variant.__closed, and Variant._variant.

    + +
    +
    + +

    ◆ set_array_int16()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    Result set_array_int16 ( self,
    typing.List[int] data 
    )
    +
    + +

    Set array of int16.

    +
    Returns
    <Result>, status of function call
    + +

    Definition at line 750 of file variant.py.

    + +

    References Client.__closed, Provider.__closed, ProviderNode.__closed, SubscriptionAsync.__closed, SubscriptionSync.__closed, System.__closed, Variant.__closed, and Variant._variant.

    + +
    +
    + +

    ◆ set_array_int32()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    Result set_array_int32 ( self,
    typing.List[int] data 
    )
    +
    + +

    Set array of int32.

    +
    Returns
    <Result>, status of function call
    + +

    Definition at line 776 of file variant.py.

    + +

    References Client.__closed, Provider.__closed, ProviderNode.__closed, SubscriptionAsync.__closed, SubscriptionSync.__closed, System.__closed, Variant.__closed, and Variant._variant.

    + +
    +
    + +

    ◆ set_array_int64()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    Result set_array_int64 ( self,
    typing.List[int] data 
    )
    +
    + +

    Set array of int64.

    +
    Returns
    <Result>, status of function call
    + +

    Definition at line 802 of file variant.py.

    + +

    References Client.__closed, Provider.__closed, ProviderNode.__closed, SubscriptionAsync.__closed, SubscriptionSync.__closed, System.__closed, Variant.__closed, and Variant._variant.

    + +
    +
    + +

    ◆ set_array_int8()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    Result set_array_int8 ( self,
    typing.List[int] data 
    )
    +
    + +

    Set array of int8.

    +
    Returns
    <Result>, status of function call
    + +

    Definition at line 724 of file variant.py.

    + +

    References Client.__closed, Provider.__closed, ProviderNode.__closed, SubscriptionAsync.__closed, SubscriptionSync.__closed, System.__closed, Variant.__closed, and Variant._variant.

    + +
    +
    + +

    ◆ set_array_string()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    Result set_array_string ( self,
    typing.List[str] data 
    )
    +
    + +

    Set array of strings.

    +
    Returns
    <Result>, status of function call
    + +

    Definition at line 854 of file variant.py.

    + +

    References Client.__closed, Provider.__closed, ProviderNode.__closed, SubscriptionAsync.__closed, SubscriptionSync.__closed, System.__closed, Variant.__closed, and Variant._variant.

    + +
    +
    + +

    ◆ set_array_timestamp()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    Result set_array_timestamp ( self,
    typing.List[int] data 
    )
    +
    + +

    Set array of timestamp (uint64)

    +
    Returns
    <Result>, status of function call
    + +

    Definition at line 868 of file variant.py.

    + +

    References Client.__closed, Provider.__closed, ProviderNode.__closed, SubscriptionAsync.__closed, SubscriptionSync.__closed, System.__closed, Variant.__closed, and Variant._variant.

    + +

    Referenced by Variant.set_array_datetime().

    + +
    +
    + +

    ◆ set_array_uint16()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    Result set_array_uint16 ( self,
    typing.List[int] data 
    )
    +
    + +

    Set array of uint16.

    +
    Returns
    <Result>, status of function call
    + +

    Definition at line 763 of file variant.py.

    + +

    References Client.__closed, Provider.__closed, ProviderNode.__closed, SubscriptionAsync.__closed, SubscriptionSync.__closed, System.__closed, Variant.__closed, and Variant._variant.

    + +
    +
    + +

    ◆ set_array_uint32()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    Result set_array_uint32 ( self,
    typing.List[int] data 
    )
    +
    + +

    Set array of uint32.

    +
    Returns
    <Result>, status of function call
    + +

    Definition at line 789 of file variant.py.

    + +

    References Client.__closed, Provider.__closed, ProviderNode.__closed, SubscriptionAsync.__closed, SubscriptionSync.__closed, System.__closed, Variant.__closed, and Variant._variant.

    + +
    +
    + +

    ◆ set_array_uint64()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    Result set_array_uint64 ( self,
    typing.List[int] data 
    )
    +
    + +

    Set array of uint64.

    +
    Returns
    <Result>, status of function call
    + +

    Definition at line 815 of file variant.py.

    + +

    References Client.__closed, Provider.__closed, ProviderNode.__closed, SubscriptionAsync.__closed, SubscriptionSync.__closed, System.__closed, Variant.__closed, and Variant._variant.

    + +
    +
    + +

    ◆ set_array_uint8()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    Result set_array_uint8 ( self,
    typing.List[int] data 
    )
    +
    + +

    Set array of uint8.

    +
    Returns
    <Result>, status of function call
    + +

    Definition at line 737 of file variant.py.

    + +

    References Client.__closed, Provider.__closed, ProviderNode.__closed, SubscriptionAsync.__closed, SubscriptionSync.__closed, System.__closed, Variant.__closed, and Variant._variant.

    + +
    +
    + +

    ◆ set_bool8()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    Result set_bool8 ( self,
    bool data 
    )
    +
    + +

    Set a bool value.

    +
    Returns
    <Result>, status of function call
    + +

    Definition at line 539 of file variant.py.

    + +

    References Client.__closed, Provider.__closed, ProviderNode.__closed, SubscriptionAsync.__closed, SubscriptionSync.__closed, System.__closed, Variant.__closed, and Variant._variant.

    + +
    +
    + +

    ◆ set_datetime()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    Result set_datetime ( self,
    datetime dt 
    )
    +
    + +

    Set a timestamp value as datetime object.

    +
    Parameters
    + + +
    dtdatetime object
    +
    +
    +
    Returns
    +
    +Result status of function call
    + +

    Definition at line 676 of file variant.py.

    + +

    References NotifyInfoPublish.set_timestamp(), and Variant.set_timestamp().

    + +
    +
    + +

    ◆ set_flatbuffers()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    Result set_flatbuffers ( self,
    bytearray data 
    )
    +
    + +

    Set a flatbuffers.

    +
    Returns
    <Result>, status of function call
    + +

    Definition at line 648 of file variant.py.

    + +

    References Client.__closed, Provider.__closed, ProviderNode.__closed, SubscriptionAsync.__closed, SubscriptionSync.__closed, System.__closed, Variant.__closed, and Variant._variant.

    + +
    +
    + +

    ◆ set_float32()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    Result set_float32 ( self,
    float data 
    )
    +
    + +

    Set a float value.

    +
    Returns
    <Result>, status of function call
    + +

    Definition at line 620 of file variant.py.

    + +

    References Client.__closed, Provider.__closed, ProviderNode.__closed, SubscriptionAsync.__closed, SubscriptionSync.__closed, System.__closed, Variant.__closed, and Variant._variant.

    + +
    +
    + +

    ◆ set_float64()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    Result set_float64 ( self,
    float data 
    )
    +
    + +

    Set a double value.

    +
    Returns
    <Result>, status of function call
    + +

    Definition at line 629 of file variant.py.

    + +

    References Client.__closed, Provider.__closed, ProviderNode.__closed, SubscriptionAsync.__closed, SubscriptionSync.__closed, System.__closed, Variant.__closed, and Variant._variant.

    + +
    +
    + +

    ◆ set_int16()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    Result set_int16 ( self,
    int data 
    )
    +
    + +

    Set an int16 value.

    +
    Returns
    <Result>, status of function call
    + +

    Definition at line 566 of file variant.py.

    + +

    References Client.__closed, Provider.__closed, ProviderNode.__closed, SubscriptionAsync.__closed, SubscriptionSync.__closed, System.__closed, Variant.__closed, and Variant._variant.

    + +
    +
    + +

    ◆ set_int32()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    Result set_int32 ( self,
    int data 
    )
    +
    + +

    Set an int32 value.

    +
    Returns
    <Result>, status of function call
    + +

    Definition at line 584 of file variant.py.

    + +

    References Client.__closed, Provider.__closed, ProviderNode.__closed, SubscriptionAsync.__closed, SubscriptionSync.__closed, System.__closed, Variant.__closed, and Variant._variant.

    + +
    +
    + +

    ◆ set_int64()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    Result set_int64 ( self,
    int data 
    )
    +
    + +

    Set an int64 value.

    +
    Returns
    <Result>, status of function call
    + +

    Definition at line 602 of file variant.py.

    + +

    References Client.__closed, Provider.__closed, ProviderNode.__closed, SubscriptionAsync.__closed, SubscriptionSync.__closed, System.__closed, Variant.__closed, and Variant._variant.

    + +
    +
    + +

    ◆ set_int8()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    Result set_int8 ( self,
    int data 
    )
    +
    + +

    Set an int8 value.

    +
    Returns
    <Result>, status of function call
    + +

    Definition at line 548 of file variant.py.

    + +

    References Client.__closed, Provider.__closed, ProviderNode.__closed, SubscriptionAsync.__closed, SubscriptionSync.__closed, System.__closed, Variant.__closed, and Variant._variant.

    + +
    +
    + +

    ◆ set_string()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    Result set_string ( self,
    str data 
    )
    +
    + +

    Set a string.

    +
    Returns
    <Result>, status of function call
    + +

    Definition at line 638 of file variant.py.

    + +

    References Client.__closed, Provider.__closed, ProviderNode.__closed, SubscriptionAsync.__closed, SubscriptionSync.__closed, System.__closed, Variant.__closed, and Variant._variant.

    + +
    +
    + +

    ◆ set_uint16()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    Result set_uint16 ( self,
    int data 
    )
    +
    + +

    Set a uint16 value.

    +
    Returns
    <Result>, status of function call
    + +

    Definition at line 575 of file variant.py.

    + +

    References Client.__closed, Provider.__closed, ProviderNode.__closed, SubscriptionAsync.__closed, SubscriptionSync.__closed, System.__closed, Variant.__closed, and Variant._variant.

    + +
    +
    + +

    ◆ set_uint32()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    Result set_uint32 ( self,
    int data 
    )
    +
    + +

    Set a uint32 value.

    +
    Returns
    <Result>, status of function call
    + +

    Definition at line 593 of file variant.py.

    + +

    References Client.__closed, Provider.__closed, ProviderNode.__closed, SubscriptionAsync.__closed, SubscriptionSync.__closed, System.__closed, Variant.__closed, and Variant._variant.

    + +
    +
    + +

    ◆ set_uint64()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    Result set_uint64 ( self,
    int data 
    )
    +
    + +

    Set a uint64 value.

    +
    Returns
    <Result>, status of function call
    + +

    Definition at line 611 of file variant.py.

    + +

    References Client.__closed, Provider.__closed, ProviderNode.__closed, SubscriptionAsync.__closed, SubscriptionSync.__closed, System.__closed, Variant.__closed, and Variant._variant.

    + +
    +
    + +

    ◆ set_uint8()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    Result set_uint8 ( self,
    int data 
    )
    +
    + +

    Set a uint8 value.

    +
    Returns
    <Result>, status of function call
    + +

    Definition at line 557 of file variant.py.

    + +

    References Client.__closed, Provider.__closed, ProviderNode.__closed, SubscriptionAsync.__closed, SubscriptionSync.__closed, System.__closed, Variant.__closed, and Variant._variant.

    + +
    +
    + +

    ◆ to_filetime()

    + +
    +
    + + + + + +
    + + + + + + + + +
    int to_filetime (datetime dt)
    +
    +static
    +
    + +

    convert datetime to filetime

    +
    Parameters
    + + +
    dtdatetime to convert
    +
    +
    +
    Returns
    +
    +int (FILETIME) 64 bit 100ns since 1.1.1601 (UTC)
    + +

    Definition at line 702 of file variant.py.

    + +
    +
    +
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1variant_1_1Variant.js b/3.4.0/api/python/classctrlxdatalayer_1_1variant_1_1Variant.js new file mode 100644 index 000000000..f8e36f69e --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1variant_1_1Variant.js @@ -0,0 +1,74 @@ +var classctrlxdatalayer_1_1variant_1_1Variant = +[ + [ "__init__", "classctrlxdatalayer_1_1variant_1_1Variant.html#a588c4b45460deb6cd8859b1876f71704", null ], + [ "__del__", "classctrlxdatalayer_1_1variant_1_1Variant.html#a41a65d7030dd1006b177d0bc24e1a12b", null ], + [ "__enter__", "classctrlxdatalayer_1_1variant_1_1Variant.html#a404692262c90487a8013dbdd128cdd7f", null ], + [ "__exit__", "classctrlxdatalayer_1_1variant_1_1Variant.html#a1d4375d5b88ea11310dcd3bfb10ecb97", null ], + [ "check_convert", "classctrlxdatalayer_1_1variant_1_1Variant.html#a0e74886d07a11fa53083f1b8c8a6145b", null ], + [ "clone", "classctrlxdatalayer_1_1variant_1_1Variant.html#a02cc8dac2dc7516c8b0ca1aac4469e2f", null ], + [ "close", "classctrlxdatalayer_1_1variant_1_1Variant.html#a8639372c33e15084a7f7c4d9d87b7bfe", null ], + [ "copy", "classctrlxdatalayer_1_1variant_1_1Variant.html#a6f93d52d6ae542191a88e538bfb8799d", null ], + [ "from_filetime", "classctrlxdatalayer_1_1variant_1_1Variant.html#a802cbbb74a8bc790ac330ae1bf66936a", null ], + [ "get_array_bool8", "classctrlxdatalayer_1_1variant_1_1Variant.html#a924d3d7ab193da627b3da88c21ab4239", null ], + [ "get_array_datetime", "classctrlxdatalayer_1_1variant_1_1Variant.html#a66926a3aebdd5dddcba619152965ac5b", null ], + [ "get_array_float32", "classctrlxdatalayer_1_1variant_1_1Variant.html#a32ce63e69a91791699de056b78c2e4c9", null ], + [ "get_array_float64", "classctrlxdatalayer_1_1variant_1_1Variant.html#a80ac98bc49cbc4bf3440108d1f1694c0", null ], + [ "get_array_int16", "classctrlxdatalayer_1_1variant_1_1Variant.html#ae001741dc4a5b69a7bfa8f7ba31ed9f9", null ], + [ "get_array_int32", "classctrlxdatalayer_1_1variant_1_1Variant.html#a8fb2c05a5070e2ae2043e89d522b01df", null ], + [ "get_array_int64", "classctrlxdatalayer_1_1variant_1_1Variant.html#a706d421b1c52891772713e6e056b2de4", null ], + [ "get_array_int8", "classctrlxdatalayer_1_1variant_1_1Variant.html#a78c45c3c88697fba94f8a4393fc3f3dd", null ], + [ "get_array_string", "classctrlxdatalayer_1_1variant_1_1Variant.html#aec5b1f2393a4c04c85d432e8ca523750", null ], + [ "get_array_uint16", "classctrlxdatalayer_1_1variant_1_1Variant.html#a12f0c5dadbd0447e8d5795875651e825", null ], + [ "get_array_uint32", "classctrlxdatalayer_1_1variant_1_1Variant.html#a96c11c75d7e26cc94a9e19ab5bfab100", null ], + [ "get_array_uint64", "classctrlxdatalayer_1_1variant_1_1Variant.html#a9ec5153849c7a472fb89b3e0ecc11f1a", null ], + [ "get_array_uint8", "classctrlxdatalayer_1_1variant_1_1Variant.html#a7104788a9e6605a1cbbc04390e8a74f4", null ], + [ "get_bool8", "classctrlxdatalayer_1_1variant_1_1Variant.html#a75db07ad8f9aed6b1c5861694db4a51e", null ], + [ "get_count", "classctrlxdatalayer_1_1variant_1_1Variant.html#a660ab4b0ebefc092f2a0c86d5ce96c4c", null ], + [ "get_data", "classctrlxdatalayer_1_1variant_1_1Variant.html#aa81f372e6f191ad43da86f88202f4ff1", null ], + [ "get_datetime", "classctrlxdatalayer_1_1variant_1_1Variant.html#a84011aab6c79b9302277b0792c38e2de", null ], + [ "get_flatbuffers", "classctrlxdatalayer_1_1variant_1_1Variant.html#a65f10e9ff40c88a7f2ca2335dfaeb06e", null ], + [ "get_float32", "classctrlxdatalayer_1_1variant_1_1Variant.html#adb04b4ccd77e22ba0ba372d9b2238c9f", null ], + [ "get_float64", "classctrlxdatalayer_1_1variant_1_1Variant.html#a6efc48d57e3694739c63d81126545186", null ], + [ "get_handle", "classctrlxdatalayer_1_1variant_1_1Variant.html#aa0041e70f5a3139baac2676f0a1367bb", null ], + [ "get_int16", "classctrlxdatalayer_1_1variant_1_1Variant.html#a7ee1c0f452c6f9f498dccff958927e32", null ], + [ "get_int32", "classctrlxdatalayer_1_1variant_1_1Variant.html#a7a0c3b8fe3b7c23ff5c06955c1ec00ff", null ], + [ "get_int64", "classctrlxdatalayer_1_1variant_1_1Variant.html#a34c244b60e584affd781ed0640901cc9", null ], + [ "get_int8", "classctrlxdatalayer_1_1variant_1_1Variant.html#ac99fa55012a9e67cc66b443c3d6cb127", null ], + [ "get_size", "classctrlxdatalayer_1_1variant_1_1Variant.html#a58f0989d88c1568a544aa91043e25479", null ], + [ "get_string", "classctrlxdatalayer_1_1variant_1_1Variant.html#ac2d5928179dd1618da3468571fcb07c6", null ], + [ "get_type", "classctrlxdatalayer_1_1variant_1_1Variant.html#a46ac3f1804d179459220413607c5bf11", null ], + [ "get_uint16", "classctrlxdatalayer_1_1variant_1_1Variant.html#a588e3aac79d19668f8fa1a7cf6289133", null ], + [ "get_uint32", "classctrlxdatalayer_1_1variant_1_1Variant.html#aff7d110d7bb6eb02ee76f98ec2024204", null ], + [ "get_uint64", "classctrlxdatalayer_1_1variant_1_1Variant.html#a4babda83909e9fce66740907145d6422", null ], + [ "get_uint8", "classctrlxdatalayer_1_1variant_1_1Variant.html#a0acd19505aab6486030ae2528e68e4bb", null ], + [ "set_array_bool8", "classctrlxdatalayer_1_1variant_1_1Variant.html#abfe205a3679dd35b1fa85f01cf4c6866", null ], + [ "set_array_datetime", "classctrlxdatalayer_1_1variant_1_1Variant.html#a0134a60e0ab576362dd4f5bf80543ee9", null ], + [ "set_array_float32", "classctrlxdatalayer_1_1variant_1_1Variant.html#a738cc9935653c5657291c639b655814c", null ], + [ "set_array_float64", "classctrlxdatalayer_1_1variant_1_1Variant.html#a01f3b2bd5f5edc248f694e04ae85cf93", null ], + [ "set_array_int16", "classctrlxdatalayer_1_1variant_1_1Variant.html#a680b15bc1305f3c08266ab499dbac5f4", null ], + [ "set_array_int32", "classctrlxdatalayer_1_1variant_1_1Variant.html#a3fc216e15073521f82eacc4af123813c", null ], + [ "set_array_int64", "classctrlxdatalayer_1_1variant_1_1Variant.html#a2c7645222274d8d25e6ccc73e53c7ce0", null ], + [ "set_array_int8", "classctrlxdatalayer_1_1variant_1_1Variant.html#a51d671ca3eb41a7cf82d4da08be832c0", null ], + [ "set_array_string", "classctrlxdatalayer_1_1variant_1_1Variant.html#a5d85c6058eceba27e168167ab33b24d6", null ], + [ "set_array_timestamp", "classctrlxdatalayer_1_1variant_1_1Variant.html#ada8f88576b2484f006e6ec3e0d18585f", null ], + [ "set_array_uint16", "classctrlxdatalayer_1_1variant_1_1Variant.html#aad0844de8a450f2f4613a6a39a0f54f6", null ], + [ "set_array_uint32", "classctrlxdatalayer_1_1variant_1_1Variant.html#aa4d02885231cd7cc4344139d62db1d15", null ], + [ "set_array_uint64", "classctrlxdatalayer_1_1variant_1_1Variant.html#a68eef68e4420b3b0654b9c7000e8cfef", null ], + [ "set_array_uint8", "classctrlxdatalayer_1_1variant_1_1Variant.html#a28df413e7aa860dbdd38ac1e66e4887d", null ], + [ "set_bool8", "classctrlxdatalayer_1_1variant_1_1Variant.html#a6cf51a9b177f632356cf8999cb934fb8", null ], + [ "set_datetime", "classctrlxdatalayer_1_1variant_1_1Variant.html#aa7c6edc2d9499b2b1784384a370d92b8", null ], + [ "set_flatbuffers", "classctrlxdatalayer_1_1variant_1_1Variant.html#a829f7ac9170f88c78f01d54f33ecb3c3", null ], + [ "set_float32", "classctrlxdatalayer_1_1variant_1_1Variant.html#a5d8373a82c8c22b2f68f85acba508df1", null ], + [ "set_float64", "classctrlxdatalayer_1_1variant_1_1Variant.html#aad5c9a12eb884062bb54fd3234717af4", null ], + [ "set_int16", "classctrlxdatalayer_1_1variant_1_1Variant.html#a422ab080231fb657c32ef8ae53ec47a2", null ], + [ "set_int32", "classctrlxdatalayer_1_1variant_1_1Variant.html#a9f86f9a1e1e6417bfd90f00f8e30326e", null ], + [ "set_int64", "classctrlxdatalayer_1_1variant_1_1Variant.html#a8bbd8b4d8711b334bd3ab6bcc8c8716d", null ], + [ "set_int8", "classctrlxdatalayer_1_1variant_1_1Variant.html#aa8729837e73e891d5b8a9275c9f13109", null ], + [ "set_string", "classctrlxdatalayer_1_1variant_1_1Variant.html#afaae9bd4c27243d92f48627b1b23fc33", null ], + [ "set_timestamp", "classctrlxdatalayer_1_1variant_1_1Variant.html#a6e70cf0d9a4237732b011d23d518fef6", null ], + [ "set_uint16", "classctrlxdatalayer_1_1variant_1_1Variant.html#a27826bdaa11bb033a63ab24bbd473276", null ], + [ "set_uint32", "classctrlxdatalayer_1_1variant_1_1Variant.html#a8fcc18d9ee2c0e437dd1cc1f6d9f8285", null ], + [ "set_uint64", "classctrlxdatalayer_1_1variant_1_1Variant.html#a381ba8652d4042e741dfa06c16ba6156", null ], + [ "set_uint8", "classctrlxdatalayer_1_1variant_1_1Variant.html#ad6bb2919ae6d392e3d730398c856db53", null ], + [ "to_filetime", "classctrlxdatalayer_1_1variant_1_1Variant.html#a8d775b40b91309e733f064cc3d141d28", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1variant_1_1Variant.png b/3.4.0/api/python/classctrlxdatalayer_1_1variant_1_1Variant.png new file mode 100644 index 000000000..8fd6ce77b Binary files /dev/null and b/3.4.0/api/python/classctrlxdatalayer_1_1variant_1_1Variant.png differ diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1variant_1_1VariantRef-members.html b/3.4.0/api/python/classctrlxdatalayer_1_1variant_1_1VariantRef-members.html new file mode 100644 index 000000000..c0da3049d --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1variant_1_1VariantRef-members.html @@ -0,0 +1,174 @@ + + + + + + + +ctrlX Data Layer API for Python: Member List + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    VariantRef Member List
    +
    +
    + +

    This is the complete list of members for VariantRef, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    __del__(self)VariantRef
    __enter__(self)Variant
    __exit__(self, exc_type, exc_val, exc_tb)VariantRef
    __init__(self, C_DLR_VARIANT c_variant=None)VariantRef
    check_convert(self, VariantType datatype)Variant
    clone(self)Variant
    close(self)Variant
    copy(C_DLR_VARIANT c_variant)Variantstatic
    from_filetime(filetime)Variantstatic
    get_array_bool8(self)Variant
    get_array_datetime(self)Variant
    get_array_float32(self)Variant
    get_array_float64(self)Variant
    get_array_int16(self)Variant
    get_array_int32(self)Variant
    get_array_int64(self)Variant
    get_array_int8(self)Variant
    get_array_string(self)Variant
    get_array_uint16(self)Variant
    get_array_uint32(self)Variant
    get_array_uint64(self)Variant
    get_array_uint8(self)Variant
    get_bool8(self)Variant
    get_count(self)Variant
    get_data(self)Variant
    get_datetime(self)Variant
    get_flatbuffers(self)Variant
    get_float32(self)Variant
    get_float64(self)Variant
    get_handle(self)Variant
    get_int16(self)Variant
    get_int32(self)Variant
    get_int64(self)Variant
    get_int8(self)Variant
    get_size(self)Variant
    get_string(self)Variant
    get_type(self)Variant
    get_uint16(self)Variant
    get_uint32(self)Variant
    get_uint64(self)Variant
    get_uint8(self)Variant
    set_array_bool8(self, typing.List[bool] data)Variant
    set_array_datetime(self, typing.List[datetime.datetime] data)Variant
    set_array_float32(self, typing.List[float] data)Variant
    set_array_float64(self, typing.List[float] data)Variant
    set_array_int16(self, typing.List[int] data)Variant
    set_array_int32(self, typing.List[int] data)Variant
    set_array_int64(self, typing.List[int] data)Variant
    set_array_int8(self, typing.List[int] data)Variant
    set_array_string(self, typing.List[str] data)Variant
    set_array_timestamp(self, typing.List[int] data)Variant
    set_array_uint16(self, typing.List[int] data)Variant
    set_array_uint32(self, typing.List[int] data)Variant
    set_array_uint64(self, typing.List[int] data)Variant
    set_array_uint8(self, typing.List[int] data)Variant
    set_bool8(self, bool data)Variant
    set_datetime(self, datetime dt)Variant
    set_flatbuffers(self, bytearray data)Variant
    set_float32(self, float data)Variant
    set_float64(self, float data)Variant
    set_int16(self, int data)Variant
    set_int32(self, int data)Variant
    set_int64(self, int data)Variant
    set_int8(self, int data)Variant
    set_string(self, str data)Variant
    set_timestamp(self, int data) (defined in Variant)Variant
    set_uint16(self, int data)Variant
    set_uint32(self, int data)Variant
    set_uint64(self, int data)Variant
    set_uint8(self, int data)Variant
    to_filetime(datetime dt)Variantstatic
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1variant_1_1VariantRef.html b/3.4.0/api/python/classctrlxdatalayer_1_1variant_1_1VariantRef.html new file mode 100644 index 000000000..a97f1b84e --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1variant_1_1VariantRef.html @@ -0,0 +1,276 @@ + + + + + + + +ctrlX Data Layer API for Python: VariantRef Class Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    VariantRef Class Reference
    +
    +
    +
    + + Inheritance diagram for VariantRef:
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    +def __init__ (self, C_DLR_VARIANT c_variant=None)
     
    +def __del__ (self)
     
    +def __exit__ (self, exc_type, exc_val, exc_tb)
     
    - Public Member Functions inherited from Variant
    +def __enter__ (self)
     
    Result check_convert (self, VariantType datatype)
     
    def clone (self)
     
    +def close (self)
     
    typing.List[bool] get_array_bool8 (self)
     
    typing.List[datetime.datetime] get_array_datetime (self)
     
    typing.List[float] get_array_float32 (self)
     
    typing.List[float] get_array_float64 (self)
     
    typing.List[int] get_array_int16 (self)
     
    typing.List[int] get_array_int32 (self)
     
    typing.List[int] get_array_int64 (self)
     
    typing.List[int] get_array_int8 (self)
     
    typing.List[str] get_array_string (self)
     
    typing.List[int] get_array_uint16 (self)
     
    typing.List[int] get_array_uint32 (self)
     
    typing.List[int] get_array_uint64 (self)
     
    typing.List[int] get_array_uint8 (self)
     
    bool get_bool8 (self)
     
    int get_count (self)
     
    bytearray get_data (self)
     
    datetime.datetime get_datetime (self)
     
    bytearray get_flatbuffers (self)
     
    float get_float32 (self)
     
    float get_float64 (self)
     
    +def get_handle (self)
     
    int get_int16 (self)
     
    int get_int32 (self)
     
    int get_int64 (self)
     
    int get_int8 (self)
     
    int get_size (self)
     
    str get_string (self)
     
    VariantType get_type (self)
     
    int get_uint16 (self)
     
    int get_uint32 (self)
     
    int get_uint64 (self)
     
    int get_uint8 (self)
     
    Result set_array_bool8 (self, typing.List[bool] data)
     
    Result set_array_datetime (self, typing.List[datetime.datetime] data)
     
    Result set_array_float32 (self, typing.List[float] data)
     
    Result set_array_float64 (self, typing.List[float] data)
     
    Result set_array_int16 (self, typing.List[int] data)
     
    Result set_array_int32 (self, typing.List[int] data)
     
    Result set_array_int64 (self, typing.List[int] data)
     
    Result set_array_int8 (self, typing.List[int] data)
     
    Result set_array_string (self, typing.List[str] data)
     
    Result set_array_timestamp (self, typing.List[int] data)
     
    Result set_array_uint16 (self, typing.List[int] data)
     
    Result set_array_uint32 (self, typing.List[int] data)
     
    Result set_array_uint64 (self, typing.List[int] data)
     
    Result set_array_uint8 (self, typing.List[int] data)
     
    Result set_bool8 (self, bool data)
     
    Result set_datetime (self, datetime dt)
     
    Result set_flatbuffers (self, bytearray data)
     
    Result set_float32 (self, float data)
     
    Result set_float64 (self, float data)
     
    Result set_int16 (self, int data)
     
    Result set_int32 (self, int data)
     
    Result set_int64 (self, int data)
     
    Result set_int8 (self, int data)
     
    Result set_string (self, str data)
     
    +Result set_timestamp (self, int data)
     
    Result set_uint16 (self, int data)
     
    Result set_uint32 (self, int data)
     
    Result set_uint64 (self, int data)
     
    Result set_uint8 (self, int data)
     
    + + + + + + + + +

    +Additional Inherited Members

    - Static Public Member Functions inherited from Variant
    def copy (C_DLR_VARIANT c_variant)
     
    datetime from_filetime (filetime)
     
    int to_filetime (datetime dt)
     
    +

    Detailed Description

    +
    +

    Definition at line 902 of file variant.py.

    +
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1variant_1_1VariantRef.js b/3.4.0/api/python/classctrlxdatalayer_1_1variant_1_1VariantRef.js new file mode 100644 index 000000000..cff06067f --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1variant_1_1VariantRef.js @@ -0,0 +1,6 @@ +var classctrlxdatalayer_1_1variant_1_1VariantRef = +[ + [ "__init__", "classctrlxdatalayer_1_1variant_1_1VariantRef.html#a588c4b45460deb6cd8859b1876f71704", null ], + [ "__del__", "classctrlxdatalayer_1_1variant_1_1VariantRef.html#a41a65d7030dd1006b177d0bc24e1a12b", null ], + [ "__exit__", "classctrlxdatalayer_1_1variant_1_1VariantRef.html#a1d4375d5b88ea11310dcd3bfb10ecb97", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1variant_1_1VariantRef.png b/3.4.0/api/python/classctrlxdatalayer_1_1variant_1_1VariantRef.png new file mode 100644 index 000000000..efc271db7 Binary files /dev/null and b/3.4.0/api/python/classctrlxdatalayer_1_1variant_1_1VariantRef.png differ diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1variant_1_1VariantType-members.html b/3.4.0/api/python/classctrlxdatalayer_1_1variant_1_1VariantType-members.html new file mode 100644 index 000000000..1ffa687e5 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1variant_1_1VariantType-members.html @@ -0,0 +1,132 @@ + + + + + + + +ctrlX Data Layer API for Python: Member List + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    VariantType Member List
    +
    +
    + +

    This is the complete list of members for VariantType, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ARRAY_BOOL8 (defined in VariantType)VariantTypestatic
    ARRAY_FLOAT32 (defined in VariantType)VariantTypestatic
    ARRAY_FLOAT64 (defined in VariantType)VariantTypestatic
    ARRAY_INT16 (defined in VariantType)VariantTypestatic
    ARRAY_INT32 (defined in VariantType)VariantTypestatic
    ARRAY_INT64 (defined in VariantType)VariantTypestatic
    ARRAY_INT8 (defined in VariantType)VariantTypestatic
    ARRAY_OF_TIMESTAMP (defined in VariantType)VariantTypestatic
    ARRAY_STRING (defined in VariantType)VariantTypestatic
    ARRAY_UINT16 (defined in VariantType)VariantTypestatic
    ARRAY_UINT32 (defined in VariantType)VariantTypestatic
    ARRAY_UINT64 (defined in VariantType)VariantTypestatic
    ARRAY_UINT8 (defined in VariantType)VariantTypestatic
    BOOL8 (defined in VariantType)VariantTypestatic
    FLATBUFFERS (defined in VariantType)VariantTypestatic
    FLOAT32 (defined in VariantType)VariantTypestatic
    FLOAT64 (defined in VariantType)VariantTypestatic
    INT16 (defined in VariantType)VariantTypestatic
    INT32 (defined in VariantType)VariantTypestatic
    INT64 (defined in VariantType)VariantTypestatic
    INT8 (defined in VariantType)VariantTypestatic
    RAW (defined in VariantType)VariantTypestatic
    STRING (defined in VariantType)VariantTypestatic
    TIMESTAMP (defined in VariantType)VariantTypestatic
    UINT16 (defined in VariantType)VariantTypestatic
    UINT32 (defined in VariantType)VariantTypestatic
    UINT64 (defined in VariantType)VariantTypestatic
    UINT8 (defined in VariantType)VariantTypestatic
    UNKNON (defined in VariantType)VariantTypestatic
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1variant_1_1VariantType.html b/3.4.0/api/python/classctrlxdatalayer_1_1variant_1_1VariantType.html new file mode 100644 index 000000000..827d725a6 --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1variant_1_1VariantType.html @@ -0,0 +1,208 @@ + + + + + + + +ctrlX Data Layer API for Python: VariantType Class Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    VariantType Class Reference
    +
    +
    +
    + + Inheritance diagram for VariantType:
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Static Public Attributes

    +int ARRAY_BOOL8 = 13
     
    +int ARRAY_FLOAT32 = 22
     
    +int ARRAY_FLOAT64 = 23
     
    +int ARRAY_INT16 = 16
     
    +int ARRAY_INT32 = 18
     
    +int ARRAY_INT64 = 20
     
    +int ARRAY_INT8 = 14
     
    +int ARRAY_OF_TIMESTAMP = 28
     
    +int ARRAY_STRING = 24
     
    +int ARRAY_UINT16 = 17
     
    +int ARRAY_UINT32 = 19
     
    +int ARRAY_UINT64 = 21
     
    +int ARRAY_UINT8 = 15
     
    +int BOOL8 = 1
     
    +int FLATBUFFERS = 26
     
    +int FLOAT32 = 10
     
    +int FLOAT64 = 11
     
    +int INT16 = 4
     
    +int INT32 = 6
     
    +int INT64 = 8
     
    +int INT8 = 2
     
    +int RAW = 25
     
    +int STRING = 12
     
    +int TIMESTAMP = 27
     
    +int UINT16 = 5
     
    +int UINT32 = 7
     
    +int UINT64 = 9
     
    +int UINT8 = 3
     
    +int UNKNON = 0
     
    +

    Detailed Description

    +
    VariantType(Enum)
    +

    type of variant

    + +

    Definition at line 113 of file variant.py.

    +
    +
    + + + + diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1variant_1_1VariantType.js b/3.4.0/api/python/classctrlxdatalayer_1_1variant_1_1VariantType.js new file mode 100644 index 000000000..1e68d267f --- /dev/null +++ b/3.4.0/api/python/classctrlxdatalayer_1_1variant_1_1VariantType.js @@ -0,0 +1,32 @@ +var classctrlxdatalayer_1_1variant_1_1VariantType = +[ + [ "ARRAY_BOOL8", "classctrlxdatalayer_1_1variant_1_1VariantType.html#ae8e5d3fce3aec18e1f5cdc57e7f33670", null ], + [ "ARRAY_FLOAT32", "classctrlxdatalayer_1_1variant_1_1VariantType.html#af3375025729e5604004f64d721b19acb", null ], + [ "ARRAY_FLOAT64", "classctrlxdatalayer_1_1variant_1_1VariantType.html#aecd06017598c5f3cd86466d4b5745ade", null ], + [ "ARRAY_INT16", "classctrlxdatalayer_1_1variant_1_1VariantType.html#a9b808a272998c6aee57d775e8dd87997", null ], + [ "ARRAY_INT32", "classctrlxdatalayer_1_1variant_1_1VariantType.html#a6fbdbc31a4a9ed4e561123e86e2efeb1", null ], + [ "ARRAY_INT64", "classctrlxdatalayer_1_1variant_1_1VariantType.html#aa5ca02f2d7d5cc38140d83320d672e3b", null ], + [ "ARRAY_INT8", "classctrlxdatalayer_1_1variant_1_1VariantType.html#ab3fc137cb096429d8b61e05868d318dd", null ], + [ "ARRAY_OF_TIMESTAMP", "classctrlxdatalayer_1_1variant_1_1VariantType.html#a2faf6052118c3755cd078b54507201a6", null ], + [ "ARRAY_STRING", "classctrlxdatalayer_1_1variant_1_1VariantType.html#aa047521de81fcba44446b23338c4ddc4", null ], + [ "ARRAY_UINT16", "classctrlxdatalayer_1_1variant_1_1VariantType.html#a283110e6e601d527baa29c4175841d14", null ], + [ "ARRAY_UINT32", "classctrlxdatalayer_1_1variant_1_1VariantType.html#aa072997b4a0c6aaddcc9be03623586da", null ], + [ "ARRAY_UINT64", "classctrlxdatalayer_1_1variant_1_1VariantType.html#a92dbfe9a845e2a94a35aa6c9d9130120", null ], + [ "ARRAY_UINT8", "classctrlxdatalayer_1_1variant_1_1VariantType.html#a3777e13169250ae8f6d44e3282ea2c7f", null ], + [ "BOOL8", "classctrlxdatalayer_1_1variant_1_1VariantType.html#ae13cebe9deee95b0e63ded31600faf00", null ], + [ "FLATBUFFERS", "classctrlxdatalayer_1_1variant_1_1VariantType.html#a2aa042c90264c3bea7ed47668036996d", null ], + [ "FLOAT32", "classctrlxdatalayer_1_1variant_1_1VariantType.html#adb3a6afffd1a8448b5120ac461dd6e1d", null ], + [ "FLOAT64", "classctrlxdatalayer_1_1variant_1_1VariantType.html#afec3ff98f1f026015bdbcbca2a82a972", null ], + [ "INT16", "classctrlxdatalayer_1_1variant_1_1VariantType.html#a2d0ccd5143bc20cfbfd694454fdb723b", null ], + [ "INT32", "classctrlxdatalayer_1_1variant_1_1VariantType.html#a8dd0df86a3f2a49f9599b0228c8dd878", null ], + [ "INT64", "classctrlxdatalayer_1_1variant_1_1VariantType.html#a458ab947b98c764d9e195398437a6579", null ], + [ "INT8", "classctrlxdatalayer_1_1variant_1_1VariantType.html#af2151c9d8e3118a6d2850422b2f664d5", null ], + [ "RAW", "classctrlxdatalayer_1_1variant_1_1VariantType.html#af5117eb58b0bc41c94e33036c7258d0d", null ], + [ "STRING", "classctrlxdatalayer_1_1variant_1_1VariantType.html#a78d79c8d949efacb4fa04bad797b7c59", null ], + [ "TIMESTAMP", "classctrlxdatalayer_1_1variant_1_1VariantType.html#aa72928a1c9ef85a5bf02c5c86660c488", null ], + [ "UINT16", "classctrlxdatalayer_1_1variant_1_1VariantType.html#a6bee3c1bb3740ba12759b7105ee3cb47", null ], + [ "UINT32", "classctrlxdatalayer_1_1variant_1_1VariantType.html#a4a430e84f137c0642b57960f9736f2c0", null ], + [ "UINT64", "classctrlxdatalayer_1_1variant_1_1VariantType.html#a97805322c0acd9ce2f9a545b7d649269", null ], + [ "UINT8", "classctrlxdatalayer_1_1variant_1_1VariantType.html#a65b1a807a968a5210fe5411a84e111b9", null ], + [ "UNKNON", "classctrlxdatalayer_1_1variant_1_1VariantType.html#ab39775d11816da89f65ff8a3ad894efb", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/python/classctrlxdatalayer_1_1variant_1_1VariantType.png b/3.4.0/api/python/classctrlxdatalayer_1_1variant_1_1VariantType.png new file mode 100644 index 000000000..4b7cb48af Binary files /dev/null and b/3.4.0/api/python/classctrlxdatalayer_1_1variant_1_1VariantType.png differ diff --git a/3.4.0/api/python/classes.html b/3.4.0/api/python/classes.html new file mode 100644 index 000000000..a5493152e --- /dev/null +++ b/3.4.0/api/python/classes.html @@ -0,0 +1,139 @@ + + + + + + + +ctrlX Data Layer API for Python: Class Index + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    Class Index
    +
    +
    +
    A | B | C | F | M | N | P | R | S | T | V | _
    +
    +
    +
    A
    +
    AllowedOperation (ctrlxdatalayer.metadata_utils)
    +
    +
    B
    +
    Bulk (ctrlxdatalayer.bulk)
    BulkCreateRequest (ctrlxdatalayer.bulk)
    BulkReadRequest (ctrlxdatalayer.bulk)
    BulkWriteRequest (ctrlxdatalayer.bulk)
    +
    +
    C
    +
    C_DLR_SCHEMA (ctrlxdatalayer.converter)
    Client (ctrlxdatalayer.client)
    Converter (ctrlxdatalayer.converter)
    +
    +
    F
    +
    Factory (ctrlxdatalayer.factory)
    +
    +
    M
    +
    MetadataBuilder (ctrlxdatalayer.metadata_utils)
    +
    +
    N
    +
    NotifyInfoPublish (ctrlxdatalayer.provider_subscription)
    NotifyItem (ctrlxdatalayer.subscription)
    NotifyItemPublish (ctrlxdatalayer.provider_subscription)
    NotifyType (ctrlxdatalayer.subscription)
    NotifyTypePublish (ctrlxdatalayer.provider_subscription)
    +
    +
    P
    +
    Provider (ctrlxdatalayer.provider)
    ProviderNode (ctrlxdatalayer.provider_node)
    ProviderNodeCallbacks (ctrlxdatalayer.provider_node)
    ProviderSubscription (ctrlxdatalayer.provider_subscription)
    +
    +
    R
    +
    ReferenceType (ctrlxdatalayer.metadata_utils)
    Response (ctrlxdatalayer.bulk)
    Result (ctrlxdatalayer.variant)
    +
    +
    S
    +
    Subscription (ctrlxdatalayer.subscription)
    SubscriptionAsync (ctrlxdatalayer.subscription_async)
    SubscriptionPropertiesBuilder (ctrlxdatalayer.subscription_properties_builder)
    SubscriptionSync (ctrlxdatalayer.subscription_sync)
    System (ctrlxdatalayer.system)
    +
    +
    T
    +
    TimeoutSetting (ctrlxdatalayer.client)
    +
    +
    V
    +
    Variant (ctrlxdatalayer.variant)
    VariantRef (ctrlxdatalayer.variant)
    VariantType (ctrlxdatalayer.variant)
    +
    +
    _
    +
    _AsyncCreator (ctrlxdatalayer.bulk_util)
    _BulkCreator (ctrlxdatalayer.bulk_util)
    _CallbackPtr (ctrlxdatalayer.client)
    _CallbackPtr (ctrlxdatalayer.provider_node)
    _Request (ctrlxdatalayer.bulk_util)
    _ResponseAsynMgr (ctrlxdatalayer.bulk)
    _ResponseBulkMgr (ctrlxdatalayer.bulk)
    _ResponseMgr (ctrlxdatalayer.bulk)
    +
    +
    +
    + + + + diff --git a/3.4.0/api/python/clib_8py_source.html b/3.4.0/api/python/clib_8py_source.html new file mode 100644 index 000000000..fec5aac56 --- /dev/null +++ b/3.4.0/api/python/clib_8py_source.html @@ -0,0 +1,121 @@ + + + + + + + +ctrlX Data Layer API for Python: /var/jenkins/workspace/script.python.datalayer/ctrlxdatalayer/clib.py Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    clib.py
    +
    +
    +
    1 import ctypes
    +
    2 import platform
    +
    3 
    +
    4 # check architecture
    +
    5 arch = platform.machine()
    +
    6 print("System architecture: ", arch)
    +
    7 
    +
    8 # load libraries
    +
    9 ctypes.CDLL("libsystemd.so.0", mode=ctypes.RTLD_GLOBAL)
    +
    10 
    +
    11 libcomm_datalayer = None
    +
    12 libcomm_datalayer = ctypes.CDLL("libcomm_datalayer.so")
    +
    13 # typedef enum DLR_RESULT
    +
    14 C_DLR_RESULT = ctypes.c_int32
    +
    15 
    +
    16 # typedef void *DLR_CONVERTER;
    +
    17 C_DLR_CONVERTER = ctypes.c_void_p
    +
    18 
    +
    19 userData_c_void_p = ctypes.c_void_p
    +
    20 address_c_char_p = ctypes.c_char_p
    +
    +
    + + + + diff --git a/3.4.0/api/python/client_8py_source.html b/3.4.0/api/python/client_8py_source.html new file mode 100644 index 000000000..a97f2f8cb --- /dev/null +++ b/3.4.0/api/python/client_8py_source.html @@ -0,0 +1,657 @@ + + + + + + + +ctrlX Data Layer API for Python: /var/jenkins/workspace/script.python.datalayer/ctrlxdatalayer/client.py Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    client.py
    +
    +
    +
    1 """
    +
    2 class Client
    +
    3 """
    +
    4 import ctypes
    +
    5 import typing
    +
    6 from enum import Enum
    +
    7 
    +
    8 import ctrlxdatalayer
    + + +
    11 from ctrlxdatalayer.clib import userData_c_void_p
    +
    12 from ctrlxdatalayer.clib_client import C_DLR_CLIENT, C_DLR_CLIENT_RESPONSE
    +
    13 from ctrlxdatalayer.converter import Converter
    +
    14 from ctrlxdatalayer.variant import Result, Variant, VariantRef
    +
    15 
    +
    16 ResponseCallback = typing.Callable[[
    +
    17  Result, typing.Optional[Variant], ctrlxdatalayer.clib.userData_c_void_p], None]
    +
    18 
    +
    19 
    +
    20 class _CallbackPtr:
    +
    21  """
    +
    22  Callback wrapper
    +
    23  """
    +
    24  __slots__ = ['_ptr']
    +
    25 
    +
    26  def __init__(self):
    +
    27  """
    +
    28  init _CallbackPtr
    +
    29  """
    +
    30  self._ptr_ptr: typing.Optional[ctypes._CFuncPtr] = None
    +
    31 
    +
    32  def set_ptr(self, ptr):
    +
    33  """
    +
    34  setter CallbackPtr
    +
    35  """
    +
    36  self._ptr_ptr = ptr
    +
    37 
    +
    38  def get_ptr(self):
    +
    39  """
    +
    40  getter CallbackPtr
    +
    41  """
    +
    42  return self._ptr_ptr
    +
    43 
    +
    44 
    +
    45 class TimeoutSetting(Enum):
    +
    46  """
    +
    47  Settings of different timeout values
    +
    48  """
    +
    49  IDLE = 0
    +
    50  PING = 1
    +
    51  Reconnect = 2
    +
    52 
    +
    53 
    +
    54 class Client:
    +
    55  """
    +
    56  Client interface for accessing data from the system
    +
    57 
    +
    58  Hint: see python context manager for instance handling
    +
    59  """
    +
    60  # problem with weakref.ref
    +
    61  #__slots__ = ['__closed', '__client', '__token', '__ptrs', '__subs']
    +
    62 
    +
    63  def __init__(self, c_client: C_DLR_CLIENT):
    +
    64  """
    +
    65  @param[in] client Reference to the client
    +
    66  """
    +
    67  self.__closed__closed = False
    +
    68  self.__client: C_DLR_CLIENT = c_client
    +
    69  self.__token__token = None
    +
    70  self.__ptrs: typing.List[_CallbackPtr] = []
    +
    71  self.__subs: typing.List[ctrlxdatalayer.subscription.Subscription] = [
    +
    72  ]
    +
    73 
    +
    74  def __enter__(self):
    +
    75  """
    +
    76  use the python context manager
    +
    77  """
    +
    78  return self
    +
    79 
    +
    80  def __exit__(self, exc_type, exc_val, exc_tb):
    +
    81  """
    +
    82  use the python context manager
    +
    83  """
    +
    84  self.closeclose()
    +
    85 
    +
    86  def close(self):
    +
    87  """
    +
    88  closes the client instance
    +
    89  """
    +
    90  if self.__closed__closed:
    +
    91  return
    +
    92  self.__closed__closed = True
    +
    93  self.__close_all_subs__close_all_subs()
    +
    94  self.__subs.clear()
    +
    95 
    +
    96  ctrlxdatalayer.clib.libcomm_datalayer.DLR_clientDelete(self.__client)
    +
    97  self.__ptrs.clear()
    +
    98  del self.__subs
    +
    99  del self.__ptrs
    +
    100  self.__token__token = None
    +
    101 
    +
    102  def get_handle(self):
    +
    103  """
    +
    104  handle value of Client
    +
    105  """
    +
    106  return self.__client
    +
    107 
    +
    108  def get_token(self):
    +
    109  """
    +
    110  internal token
    +
    111  """
    +
    112  return self.__token__token
    +
    113 
    +
    114  def __create_callback(self, cb: ResponseCallback):
    +
    115  """
    +
    116  callback management
    +
    117  """
    +
    118  cb_ptr = _CallbackPtr()
    +
    119  self.__ptrs.append(cb_ptr)
    +
    120 
    +
    121  def _cb(c_result: ctrlxdatalayer.clib.C_DLR_RESULT,
    +
    122  c_data: ctypes.c_void_p, c_userdata: ctypes.c_void_p):
    +
    123  """
    +
    124  datalayer calls this function
    +
    125  """
    +
    126  if c_data is None:
    +
    127  cb(Result(c_result), None, c_userdata)
    +
    128  else:
    +
    129  data = VariantRef(c_data)
    +
    130  cb(Result(c_result), data, c_userdata)
    +
    131  cb_ptr.set_ptr(None) # remove cyclic dependency
    +
    132  self.__ptrs.remove(cb_ptr)
    +
    133 
    +
    134  cb_ptr.set_ptr(C_DLR_CLIENT_RESPONSE(_cb))
    +
    135  return cb_ptr.get_ptr()
    +
    136 
    +
    137  def _test_callback(self, cb: ResponseCallback):
    +
    138  """
    +
    139  internal use
    +
    140  """
    +
    141  return self.__create_callback__create_callback(cb)
    +
    142 
    +
    143  def set_timeout(self, timeout: TimeoutSetting, value: int) -> Result:
    +
    144  """
    +
    145  Set client timeout value
    +
    146  @param[in] timeout Timeout to set (see DLR_TIMEOUT_SETTING)
    +
    147  @param[in] value Value to set
    +
    148  @returns <Result>, status of function call
    +
    149  """
    +
    150  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_clientSetTimeout(
    +
    151  self.__client, timeout.value, value))
    +
    152 
    +
    153  def is_connected(self) -> bool:
    +
    154  """
    +
    155  returns whether provider is connected
    +
    156  @returns <bool> status of connection
    +
    157  """
    +
    158  return ctrlxdatalayer.clib.libcomm_datalayer.DLR_clientIsConnected(self.__client)
    +
    159 
    +
    160  def set_auth_token(self, token: str):
    +
    161  """
    +
    162  Set persistent security access token for authentication as JWT payload
    +
    163  @param[in] token Security access &token for authentication
    +
    164  """
    +
    165  if token is None:
    +
    166  raise TypeError('token is invalid')
    +
    167  self.__token__token = token.encode('utf-8')
    +
    168  ctrlxdatalayer.clib.libcomm_datalayer.DLR_clientSetAuthToken(
    +
    169  self.__client, self.__token__token)
    +
    170 
    +
    171  def get_auth_token(self) -> str:
    +
    172  """
    +
    173  returns persistent security access token for authentication
    +
    174  @returns <str> security access token for authentication
    +
    175  """
    +
    176  token = ctrlxdatalayer.clib.libcomm_datalayer.DLR_clientGetAuthToken(
    +
    177  self.__client)
    +
    178  self.__token__token = token
    +
    179  return token.decode('utf-8')
    +
    180 
    +
    181  def ping_sync(self) -> Result:
    +
    182  """
    +
    183  Ping the next hop. This function is synchronous: It will wait for the answer.
    +
    184  @returns <Result> status of function call
    +
    185  """
    +
    186  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_clientPingSync(self.__client))
    +
    187 
    +
    188  def create_sync(self, address: str, data: Variant):
    +
    189  """
    +
    190  Create an object. This function is synchronous: It will wait for the answer.
    +
    191  @param[in] address Address of the node to create object in
    +
    192  @param[in] variant Data of the object
    +
    193  @returns tuple (Result, Variant)
    +
    194  @return <Result>, status of function call
    +
    195  @return <Variant>, variant result of write
    +
    196  """
    +
    197  b_address = address.encode('utf-8')
    +
    198  result = Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_clientCreateSync(
    +
    199  self.__client, b_address, data.get_handle(), self.__token__token))
    +
    200  return result, data
    +
    201 
    +
    202  def remove_sync(self, address: str) -> Result:
    +
    203  """
    +
    204  Remove an object. This function is synchronous: It will wait for the answer.
    +
    205  @param[in] address Address of the node to remove
    +
    206  @returns <Result> status of function call
    +
    207  """
    +
    208  b_address = address.encode('utf-8')
    +
    209  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_clientRemoveSync(
    +
    210  self.__client, b_address, self.__token__token))
    +
    211 
    +
    212  def browse_sync(self, address: str):
    +
    213  """
    +
    214  Browse an object. This function is synchronous: It will wait for the answer.
    +
    215  @param[in] address Address of the node to browse
    +
    216  @returns tuple (Result, Variant)
    +
    217  @return <Result>, status of function call,
    +
    218  @return <Variant>, Children of the node. Data will be provided as Variant array of strings.
    +
    219  """
    +
    220  b_address = address.encode('utf-8')
    +
    221  data = Variant()
    +
    222  result = Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_clientBrowseSync(
    +
    223  self.__client, b_address, data.get_handle(), self.__token__token))
    +
    224  return result, data
    +
    225 
    +
    226  def read_sync(self, address: str):
    +
    227  """
    +
    228  Read an object. This function is synchronous: It will wait for the answer.
    +
    229  @param[in] address Address of the node to read
    +
    230  @returns tuple (Result, Variant)
    +
    231  @return <Result>, status of function call,
    +
    232  @return <Variant>, Data of the node
    +
    233  """
    +
    234  data = Variant()
    +
    235  return self.read_sync_argsread_sync_args(address, data)
    +
    236 
    +
    237  def read_sync_args(self, address: str, args: Variant):
    +
    238  """
    +
    239  Read an object. This function is synchronous: It will wait for the answer.
    +
    240  @param[in] address Address of the node to read
    +
    241  @param[in,out] args Read arguments data of the node
    +
    242  @returns tuple (Result, Variant)
    +
    243  @return <Result>, status of function call,
    +
    244  @return <Variant>, Data of the node
    +
    245  """
    +
    246  b_address = address.encode('utf-8')
    +
    247  result = Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_clientReadSync(
    +
    248  self.__client, b_address, args.get_handle(), self.__token__token))
    +
    249  return result, args
    +
    250 
    +
    251  def write_sync(self, address: str, data: Variant):
    +
    252  """
    +
    253  Write an object. This function is synchronous: It will wait for the answer.
    +
    254  @param[in] address Address of the node to write
    +
    255  @param[in] variant New data of the node
    +
    256  @returns tuple (Result, Variant)
    +
    257  @return <Result>, status of function call,
    +
    258  @return <Variant>, result of write
    +
    259  """
    +
    260  b_address = address.encode('utf-8')
    +
    261  result = Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_clientWriteSync(
    +
    262  self.__client, b_address, data.get_handle(), self.__token__token))
    +
    263  return result, data
    +
    264 
    +
    265  def metadata_sync(self, address: str):
    +
    266  """
    +
    267  Read metadata of an object. This function is synchronous: It will wait for the answer.
    +
    268  @param[in] address Address of the node to read metadata of
    +
    269  @returns tuple (Result, Variant)
    +
    270  @return <Result>, status of function call,
    +
    271  @return <Variant>, Metadata of the node. Data will be provided as Variant flatbuffers with metadata.fbs data type.
    +
    272  """
    +
    273  b_address = address.encode('utf-8')
    +
    274  data = Variant()
    +
    275  result = Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_clientMetadataSync(
    +
    276  self.__client, b_address, data.get_handle(), self.__token__token))
    +
    277  return result, data
    +
    278 
    +
    279  def ping_async(self, cb: ResponseCallback, userdata: userData_c_void_p = None) -> Result:
    +
    280  """
    +
    281  Ping the next hop. This function is asynchronous. It will return immediately. Callback will be called if function call is finished.
    +
    282  @param[in] callback Callback to call when function is finished
    +
    283  @param[in] userdata User data - will be returned in callback as userdata. You can use this userdata to identify your request
    +
    284  @returns <Result> status of function call
    +
    285  """
    +
    286  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_clientPingASync(
    +
    287  self.__client, self.__create_callback__create_callback(cb), userdata))
    +
    288 
    +
    289  def create_async(self, address: str, data: Variant,
    +
    290  cb: ResponseCallback, userdata: userData_c_void_p = None) -> Result:
    +
    291  """
    +
    292  Create an object. This function is asynchronous. It will return immediately. Callback will be called if function call is finished. Result data may be provided in callback function.
    +
    293  @param[in] address Address of the node to create object in
    +
    294  @param[in] data Data of the object
    +
    295  @param[in] callback Callback to call when function is finished
    +
    296  @param[in] userdata User data - will be returned in callback as userdata. You can use this userdata to identify your request
    +
    297  @returns <Result> status of function call
    +
    298  """
    +
    299  b_address = address.encode('utf-8')
    +
    300  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_clientCreateASync(
    +
    301  self.__client, b_address, data.get_handle(),
    +
    302  self.__token__token, self.__create_callback__create_callback(cb), userdata))
    +
    303 
    +
    304  def remove_async(self, address: str,
    +
    305  cb: ResponseCallback,
    +
    306  userdata: userData_c_void_p = None) -> Result:
    +
    307  """
    +
    308  Remove an object. This function is asynchronous. It will return immediately. Callback will be called if function call is finished. Result data may be provided in callback function.
    +
    309  @param[in] address Address of the node to remove
    +
    310  @param[in] callback Callback to call when function is finished
    +
    311  @param[in] userdata User data - will be returned in callback as userdata. You can use this userdata to identify your request
    +
    312  @returns <Result> status of function call
    +
    313  """
    +
    314  b_address = address.encode('utf-8')
    +
    315  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_clientRemoveASync(self.__client,
    +
    316  b_address,
    +
    317  self.__token__token,
    +
    318  self.__create_callback__create_callback(
    +
    319  cb),
    +
    320  userdata))
    +
    321 
    +
    322  def browse_async(self, address: str,
    +
    323  cb: ResponseCallback,
    +
    324  userdata: userData_c_void_p = None) -> Result:
    +
    325  """
    +
    326  Browse an object. This function is asynchronous. It will return immediately. Callback will be called if function call is finished. Result data may be provided in callback function.
    +
    327  @param[in] address Address of the node to browse
    +
    328  @param[in] callback Callback to call when function is finished
    +
    329  @param[in] userdata User data - will be returned in callback as userdata. You can use this userdata to identify your request
    +
    330  @returns <Result> status of function call
    +
    331  """
    +
    332  b_address = address.encode('utf-8')
    +
    333  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_clientBrowseASync(
    +
    334  self.__client, b_address, self.__token__token, self.__create_callback__create_callback(cb), userdata))
    +
    335 
    +
    336  def read_async(self, address: str,
    +
    337  cb: ResponseCallback, userdata: userData_c_void_p = None) -> Result:
    +
    338  """
    +
    339  Read an object. This function is asynchronous. It will return immediately. Callback will be called if function call is finished. Result data may be provided in callback function.
    +
    340  @param[in] address Address of the node to read
    +
    341  @param[in] callback Callback to call when function is finished
    +
    342  @param[in] userdata User data - will be returned in callback as userdata. You can use this userdata to identify your request
    +
    343  @returns <Result>, status of function call
    +
    344  """
    +
    345  with Variant() as args:
    +
    346  return self.read_async_argsread_async_args(address, args, cb, userdata)
    +
    347 
    +
    348  def read_async_args(self, address: str, args: Variant,
    +
    349  cb: ResponseCallback, userdata: userData_c_void_p = None) -> Result:
    +
    350  """
    +
    351  Read an object. This function is asynchronous. It will return immediately. Callback will be called if function call is finished. Result data may be provided in callback function.
    +
    352  @param[in] address Address of the node to read
    +
    353  @param[in] args Read arguments data of the node
    +
    354  @param[in] callback Callback to call when function is finished
    +
    355  @param[in] userdata User data - will be returned in callback as userdata. You can use this userdata to identify your request
    +
    356  @returns <Result>, status of function call
    +
    357  """
    +
    358  b_address = address.encode('utf-8')
    +
    359  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_clientReadASync(self.__client,
    +
    360  b_address,
    +
    361  args.get_handle(),
    +
    362  self.__token__token,
    +
    363  self.__create_callback__create_callback(
    +
    364  cb),
    +
    365  userdata))
    +
    366 
    +
    367  def write_async(self, address: str,
    +
    368  data: Variant, cb: ResponseCallback,
    +
    369  userdata: userData_c_void_p = None) -> Result:
    +
    370  """
    +
    371  Write an object. This function is synchronous: It will wait for the answer.
    +
    372  @param[in] address Address of the node to read metadata
    +
    373  @param[in] data Data of the object
    +
    374  @param[in] callback Callback to call when function is finished
    +
    375  @param[in] userdata User data - will be returned in callback as userdata. You can use this userdata to identify your request
    +
    376  @returns <Result>, status of function call
    +
    377  """
    +
    378  b_address = address.encode('utf-8')
    +
    379  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_clientWriteASync(self.__client,
    +
    380  b_address,
    +
    381  data.get_handle(),
    +
    382  self.__token__token,
    +
    383  self.__create_callback__create_callback(
    +
    384  cb),
    +
    385  userdata))
    +
    386 
    +
    387  def metadata_async(self, address: str,
    +
    388  cb: ResponseCallback, userdata: userData_c_void_p = None) -> Result:
    +
    389  """
    +
    390  Read metadata of an object. This function is asynchronous. It will return immediately. Callback will be called if function call is finished. Result data may be provided in callback function.
    +
    391  @param[in] address Address of the node to read metadata
    +
    392  @param[in] callback Callback to call when function is finished
    +
    393  @param[in] userdata User data - will be returned in callback as userdata. You can use this userdata to identify your request
    +
    394  @returns <Result>, status of function call
    +
    395  """
    +
    396  b_address = address.encode('utf-8')
    +
    397  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_clientMetadataASync(self.__client,
    +
    398  b_address,
    +
    399  self.__token__token,
    +
    400  self.__create_callback__create_callback(
    +
    401  cb),
    +
    402  userdata))
    +
    403 
    +
    404  def _unregister_sync(self, sub: ctrlxdatalayer.subscription.Subscription):
    +
    405  """ _unregister_sync """
    +
    406  if sub in self.__subs:
    +
    407  self.__subs.remove(sub)
    +
    408 
    +
    409  def create_subscription_sync(self, prop: Variant,
    +
    410  cnb: ctrlxdatalayer.subscription.ResponseNotifyCallback,
    +
    411  userdata: userData_c_void_p = None):
    +
    412  """
    +
    413  Set up a subscription
    +
    414  @param[in] ruleset Variant that describe ruleset of subscription as subscription.fbs
    +
    415  @param[in] publishCallback Callback to call when new data is available
    +
    416  @param[in] userdata User data - will be returned in publishCallback as userdata. You can use this userdata to identify your subscription
    +
    417  @result <Result>, status of function cal
    +
    418  """
    + +
    420  r = sub._create(prop, cnb, userdata)
    +
    421  if r == Result.OK:
    +
    422  self.__subs.append(sub)
    +
    423  return r, sub
    +
    424 
    +
    425  def create_subscription_async(self,
    +
    426  prop: Variant,
    +
    427  cnb: ctrlxdatalayer.subscription.ResponseNotifyCallback,
    +
    428  cb: ResponseCallback,
    +
    429  userdata: userData_c_void_p = None):
    +
    430  """
    +
    431  Set up a subscription
    +
    432  @param[in] ruleset Variant that describe ruleset of subscription as subscription.fbs
    +
    433  @param[in] publishCallback Callback to call when new data is available
    +
    434  @param[in] userdata User data - will be returned in publishCallback as userdata. You can use this userdata to identify your subscription
    +
    435  @result <Result>, status of function cal
    +
    436  """
    + +
    438  r = sub._create(prop, cnb, cb, userdata)
    +
    439  if r == Result.OK:
    +
    440  self.__subs.append(sub)
    +
    441  return r, sub
    +
    442 
    +
    443  def __close_all_subs(self):
    +
    444  """ __close_all_subs """
    +
    445  subs = self.__subs.copy()
    +
    446  self.__subs.clear()
    +
    447  for x in subs:
    +
    448  x.on_close()
    +
    449 
    +
    450  def read_json_sync(self,
    +
    451  conv: Converter,
    +
    452  address: str,
    +
    453  indent: int,
    +
    454  data: Variant = None):
    +
    455  """
    +
    456  This function reads a values as a JSON string
    +
    457  @param[in] converter Reference to the converter (see System json_converter())
    +
    458  @param[in] address Address of the node to read
    +
    459  @param[in] indentStep Indentation length for json string
    +
    460  @param[in] json Generated JSON as Variant (string)
    +
    461  @returns tuple (Result, Variant)
    +
    462  @return <Result>, status of function call,
    +
    463  @return <Variant>, Generated JSON as Variant (string)
    +
    464  """
    +
    465  b_address = address.encode('utf-8')
    +
    466  if data is None:
    +
    467  data = Variant()
    +
    468 
    +
    469  result = Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_clientReadJsonSync(
    +
    470  self.__client, conv.get_handle(), b_address, data.get_handle(), indent, self.__token__token))
    +
    471  return result, data
    +
    472 
    +
    473  def write_json_sync(self,
    +
    474  conv: Converter,
    +
    475  address: str,
    +
    476  json: str):
    +
    477  """
    +
    478  This function writes a JSON value
    +
    479  @param[in] converter Reference to the converter (see System json_converter())
    +
    480  @param[in] address Address of the node to write
    +
    481  @param[in] json JSON value to write
    +
    482  @param[in,out] error Error of conversion as variant string
    +
    483  @return result status of the function
    +
    484  @returns tuple (Result, Variant)
    +
    485  @return <Result>, status of function call,
    +
    486  @return <Variant>, Error of conversion as variant string
    +
    487  """
    +
    488  b_address = address.encode('utf-8')
    +
    489  b_json = json.encode('utf-8')
    +
    490  error = Variant()
    +
    491  result = Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_clientWriteJsonSync(
    +
    492  self.__client, conv.get_handle(), b_address, b_json, error.get_handle(), self.__token__token))
    +
    493  return result, error
    +
    494 
    +
    495  def create_bulk(self):
    +
    496  """
    +
    497  Setup a bulk object
    +
    498 
    +
    499  Returns:
    +
    500  Bulk: Bulk object
    +
    501  """
    +
    502  bulk = ctrlxdatalayer.bulk.Bulk(self)
    +
    503  return bulk
    + +
    Client interface for accessing data from the system.
    Definition: client.py:61
    +
    Result read_async_args(self, str address, Variant args, ResponseCallback cb, userData_c_void_p userdata=None)
    Read an object.
    Definition: client.py:365
    +
    def read_sync_args(self, str address, Variant args)
    Read an object.
    Definition: client.py:253
    +
    def __exit__(self, exc_type, exc_val, exc_tb)
    use the python context manager
    Definition: client.py:85
    +
    Result create_async(self, str address, Variant data, ResponseCallback cb, userData_c_void_p userdata=None)
    Create an object.
    Definition: client.py:306
    +
    Result browse_async(self, str address, ResponseCallback cb, userData_c_void_p userdata=None)
    Browse an object.
    Definition: client.py:339
    + +
    def __enter__(self)
    use the python context manager
    Definition: client.py:79
    + +
    Result remove_async(self, str address, ResponseCallback cb, userData_c_void_p userdata=None)
    Remove an object.
    Definition: client.py:321
    + +
    Result set_timeout(self, TimeoutSetting timeout, int value)
    Set client timeout value.
    Definition: client.py:157
    +
    def get_token(self)
    internal token
    Definition: client.py:113
    +
    def __init__(self, C_DLR_CLIENT c_client)
    Definition: client.py:68
    +
    def create_sync(self, str address, Variant data)
    Create an object.
    Definition: client.py:204
    +
    def create_subscription_async(self, Variant prop, ctrlxdatalayer.subscription.ResponseNotifyCallback cnb, ResponseCallback cb, userData_c_void_p userdata=None)
    Set up a subscription.
    Definition: client.py:446
    +
    Result ping_async(self, ResponseCallback cb, userData_c_void_p userdata=None)
    Ping the next hop.
    Definition: client.py:293
    +
    def read_sync(self, str address)
    Read an object.
    Definition: client.py:241
    +
    def close(self)
    closes the client instance
    Definition: client.py:91
    +
    def write_sync(self, str address, Variant data)
    Write an object.
    Definition: client.py:267
    +
    Result ping_sync(self)
    Ping the next hop.
    Definition: client.py:193
    +
    def get_handle(self)
    handle value of Client
    Definition: client.py:107
    +
    def read_json_sync(self, Converter conv, str address, int indent, Variant data=None)
    This function reads a values as a JSON string.
    Definition: client.py:476
    +
    def create_bulk(self)
    Setup a bulk object.
    Definition: client.py:513
    +
    str get_auth_token(self)
    returns persistent security access token for authentication
    Definition: client.py:183
    +
    def set_auth_token(self, str token)
    Set persistent security access token for authentication as JWT payload.
    Definition: client.py:172
    +
    bool is_connected(self)
    returns whether provider is connected
    Definition: client.py:165
    +
    def write_json_sync(self, Converter conv, str address, str json)
    This function writes a JSON value.
    Definition: client.py:499
    +
    Result metadata_async(self, str address, ResponseCallback cb, userData_c_void_p userdata=None)
    Read metadata of an object.
    Definition: client.py:403
    +
    def metadata_sync(self, str address)
    Read metadata of an object.
    Definition: client.py:280
    +
    Result write_async(self, str address, Variant data, ResponseCallback cb, userData_c_void_p userdata=None)
    Write an object.
    Definition: client.py:385
    +
    def create_subscription_sync(self, Variant prop, ctrlxdatalayer.subscription.ResponseNotifyCallback cnb, userData_c_void_p userdata=None)
    Set up a subscription.
    Definition: client.py:428
    +
    def __create_callback(self, ResponseCallback cb)
    Definition: client.py:121
    +
    Result read_async(self, str address, ResponseCallback cb, userData_c_void_p userdata=None)
    Read an object.
    Definition: client.py:352
    +
    Result remove_sync(self, str address)
    Remove an object.
    Definition: client.py:215
    +
    def browse_sync(self, str address)
    Browse an object.
    Definition: client.py:227
    +
    Settings of different timeout values.
    Definition: client.py:50
    + +
    def set_ptr(self, ptr)
    setter CallbackPtr
    Definition: client.py:37
    + +
    def get_ptr(self)
    getter CallbackPtr
    Definition: client.py:43
    +
    def __init__(self)
    init _CallbackPtr
    Definition: client.py:31
    + + + + + +
    Variant is a container for a many types of data.
    Definition: variant.py:150
    + + + + +
    +
    + + + + diff --git a/3.4.0/api/python/closed.png b/3.4.0/api/python/closed.png new file mode 100644 index 000000000..98cc2c909 Binary files /dev/null and b/3.4.0/api/python/closed.png differ diff --git a/3.4.0/api/python/converter_8py_source.html b/3.4.0/api/python/converter_8py_source.html new file mode 100644 index 000000000..671e08834 --- /dev/null +++ b/3.4.0/api/python/converter_8py_source.html @@ -0,0 +1,233 @@ + + + + + + + +ctrlX Data Layer API for Python: /var/jenkins/workspace/script.python.datalayer/ctrlxdatalayer/converter.py Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    converter.py
    +
    +
    +
    1 """
    +
    2 Class Converter
    +
    3 """
    +
    4 import ctypes
    +
    5 from enum import Enum
    +
    6 
    +
    7 import ctrlxdatalayer
    +
    8 import ctrlxdatalayer.clib_converter
    +
    9 from ctrlxdatalayer.variant import Result, Variant
    +
    10 
    +
    11 C_DLR_CONVERTER = ctypes.c_void_p
    +
    12 
    +
    13 
    +
    14 class C_DLR_SCHEMA(Enum):
    +
    15  """
    +
    16  Type of Converter
    +
    17  """
    +
    18  METADATA = 0
    +
    19  REFLECTION = 1
    +
    20  MEMORY = 2
    +
    21  MEMORY_MAP = 3
    +
    22  TOKEN = 4
    +
    23  PROBLEM = 5
    +
    24  DIAGNOSIS = 6
    +
    25 
    +
    26 
    +
    27 class Converter:
    +
    28  """
    +
    29  Converter interface
    +
    30  """
    +
    31  __slots__ = ['__converter']
    +
    32 
    +
    33  def __init__(self, c_converter: C_DLR_CONVERTER):
    +
    34  """
    +
    35  generate converter
    +
    36  """
    +
    37  self.__converter__converter = c_converter
    +
    38 
    +
    39  def get_handle(self):
    +
    40  """
    +
    41  handle value of Converter:
    +
    42 
    +
    43  """
    +
    44  return self.__converter__converter
    +
    45 
    +
    46  def converter_generate_json_simple(self, data: Variant, indent_step: int):
    +
    47  """
    +
    48  This function generate a JSON string out of a Variant witch have a simple data type
    +
    49  @param[in] data Variant which contains data with simple data type
    +
    50  @param[in] indentStep Indentation length for json string
    +
    51  @returns tuple (Result, Variant)
    +
    52  @return <Result>, status of function call,
    +
    53  @return <Variant>, Generated JSON as Variant (string)
    +
    54  """
    +
    55  json = Variant()
    +
    56  result = Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_converterGenerateJsonSimple(
    +
    57  self.__converter__converter, data.get_handle(), json.get_handle(), indent_step))
    +
    58  return result, json
    +
    59 
    +
    60  def converter_generate_json_complex(self, data: Variant, ty: Variant, indent_step: int):
    +
    61  """
    +
    62  This function generate a JSON string out of a Variant with complex type (flatbuffers) and the metadata of this data
    +
    63  @param[in] data Variant which contains data of complex data type (flatbuffers) if data is empty (VariantType::UNKNOWN) type is converted to json schema
    +
    64  @param[in] type Variant which contains type of data (Variant with flatbuffers BFBS)
    +
    65  @param[in] indentStep Indentation length for json string
    +
    66  @returns tuple (Result, Variant)
    +
    67  @return <Result>, status of function call,
    +
    68  @return <Variant>, Generated JSON as Variant (string)
    +
    69  """
    +
    70  json = Variant()
    +
    71  result = Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_converterGenerateJsonComplex(
    +
    72  self.__converter__converter, data.get_handle(), ty.get_handle(), json.get_handle(), indent_step))
    +
    73  return result, json
    +
    74 
    +
    75  def parse_json_simple(self, json: str):
    +
    76  """
    +
    77  This function generates a Variant out of a JSON string containing the (simple) data
    +
    78  @param[in] json Data of the Variant as a json string
    +
    79  @returns tuple (Result, Variant, Variant)
    +
    80  @return <Result>, status of function call,
    +
    81  @return <Variant>, Variant which contains the data
    +
    82  @return <Variant>, Error as Variant (string)
    +
    83  """
    +
    84  b_json = json.encode('utf-8')
    +
    85  data = Variant()
    +
    86  err = Variant()
    +
    87  result = Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_converterParseJsonSimple(
    +
    88  self.__converter__converter, b_json, data.get_handle(), err.get_handle()))
    +
    89  return result, data, err
    +
    90 
    +
    91  def parse_json_complex(self, json: str, ty: Variant):
    +
    92  """
    +
    93  This function generates a Variant out of a JSON string containing the (complex) data
    +
    94  @param[in] json Data of the Variant as a json string
    +
    95  @param[in] type Variant which contains type of data (Variant with bfbs flatbuffer content)
    +
    96  @returns tuple (Result, Variant, Variant)
    +
    97  @return <Result>, status of function call,
    +
    98  @return <Variant>, Variant which contains the data
    +
    99  @return <Variant>, Error as Variant (string)
    +
    100  """
    +
    101  b_json = json.encode('utf-8')
    +
    102  data = Variant()
    +
    103  err = Variant()
    +
    104  result = Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_converterParseJsonComplex(
    +
    105  self.__converter__converter, b_json, ty.get_handle(), data.get_handle(), err.get_handle()))
    +
    106  return result, data, err
    +
    107 
    +
    108  def get_schema(self, schema: C_DLR_SCHEMA):
    +
    109  """
    +
    110  This function returns the type (schema)
    +
    111  @param[in] schema Requested schema
    +
    112  @returns tuple (Result, Variant)
    +
    113  @return <Result>, status of function call,
    +
    114  @return <Variant>, Variant which contains the type (schema)
    +
    115  """
    +
    116  data = Variant()
    +
    117  result = Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_converterGetSchema(
    +
    118  self.__converter__converter, schema.value, data.get_handle()))
    +
    119  return result, data
    + + + +
    def converter_generate_json_simple(self, Variant data, int indent_step)
    This function generate a JSON string out of a Variant witch have a simple data type.
    Definition: converter.py:54
    +
    def converter_generate_json_complex(self, Variant data, Variant ty, int indent_step)
    This function generate a JSON string out of a Variant with complex type (flatbuffers) and the metadat...
    Definition: converter.py:69
    +
    def __init__(self, C_DLR_CONVERTER c_converter)
    generate converter
    Definition: converter.py:36
    +
    def parse_json_simple(self, str json)
    This function generates a Variant out of a JSON string containing the (simple) data.
    Definition: converter.py:83
    +
    def get_handle(self)
    handle value of Converter:
    Definition: converter.py:43
    +
    def get_schema(self, C_DLR_SCHEMA schema)
    This function returns the type (schema)
    Definition: converter.py:115
    +
    def parse_json_complex(self, str json, Variant ty)
    This function generates a Variant out of a JSON string containing the (complex) data.
    Definition: converter.py:100
    + +
    Variant is a container for a many types of data.
    Definition: variant.py:150
    + +
    +
    + + + + diff --git a/3.4.0/api/python/ctrlXlogo_128.jpg b/3.4.0/api/python/ctrlXlogo_128.jpg new file mode 100644 index 000000000..b311dd626 Binary files /dev/null and b/3.4.0/api/python/ctrlXlogo_128.jpg differ diff --git a/3.4.0/api/python/dir_9b5f05eada8ff20312cfc367528cfd50.html b/3.4.0/api/python/dir_9b5f05eada8ff20312cfc367528cfd50.html new file mode 100644 index 000000000..435330d06 --- /dev/null +++ b/3.4.0/api/python/dir_9b5f05eada8ff20312cfc367528cfd50.html @@ -0,0 +1,101 @@ + + + + + + + +ctrlX Data Layer API for Python: /var/jenkins/workspace/script.python.datalayer/private/doc Directory Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    doc Directory Reference
    +
    +
    +
    +
    + + + + diff --git a/3.4.0/api/python/dir_d8d0b822c7fc5df04378da618c4cb8e0.html b/3.4.0/api/python/dir_d8d0b822c7fc5df04378da618c4cb8e0.html new file mode 100644 index 000000000..e3505b0f0 --- /dev/null +++ b/3.4.0/api/python/dir_d8d0b822c7fc5df04378da618c4cb8e0.html @@ -0,0 +1,101 @@ + + + + + + + +ctrlX Data Layer API for Python: /var/jenkins/workspace/script.python.datalayer/ctrlxdatalayer Directory Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    ctrlxdatalayer Directory Reference
    +
    +
    +
    +
    + + + + diff --git a/3.4.0/api/python/dir_d8d0b822c7fc5df04378da618c4cb8e0.js b/3.4.0/api/python/dir_d8d0b822c7fc5df04378da618c4cb8e0.js new file mode 100644 index 000000000..0f5c10280 --- /dev/null +++ b/3.4.0/api/python/dir_d8d0b822c7fc5df04378da618c4cb8e0.js @@ -0,0 +1,21 @@ +var dir_d8d0b822c7fc5df04378da618c4cb8e0 = +[ + [ "__init__.py", "____init_____8py_source.html", null ], + [ "_version.py", "__version_8py_source.html", null ], + [ "bulk.py", "bulk_8py_source.html", null ], + [ "bulk_util.py", "bulk__util_8py_source.html", null ], + [ "clib.py", "clib_8py_source.html", null ], + [ "client.py", "client_8py_source.html", null ], + [ "converter.py", "converter_8py_source.html", null ], + [ "factory.py", "factory_8py_source.html", null ], + [ "metadata_utils.py", "metadata__utils_8py_source.html", null ], + [ "provider.py", "provider_8py_source.html", null ], + [ "provider_node.py", "provider__node_8py_source.html", null ], + [ "provider_subscription.py", "provider__subscription_8py_source.html", null ], + [ "subscription.py", "subscription_8py_source.html", null ], + [ "subscription_async.py", "subscription__async_8py_source.html", null ], + [ "subscription_properties_builder.py", "subscription__properties__builder_8py_source.html", null ], + [ "subscription_sync.py", "subscription__sync_8py_source.html", null ], + [ "system.py", "system_8py_source.html", null ], + [ "variant.py", "variant_8py_source.html", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/python/dir_f947c5070b746a1eceecc7bf9cb07146.html b/3.4.0/api/python/dir_f947c5070b746a1eceecc7bf9cb07146.html new file mode 100644 index 000000000..cb1955471 --- /dev/null +++ b/3.4.0/api/python/dir_f947c5070b746a1eceecc7bf9cb07146.html @@ -0,0 +1,101 @@ + + + + + + + +ctrlX Data Layer API for Python: /var/jenkins/workspace/script.python.datalayer/private/doc/doxygen Directory Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    doxygen Directory Reference
    +
    +
    +
    +
    + + + + diff --git a/3.4.0/api/python/doc.png b/3.4.0/api/python/doc.png new file mode 100644 index 000000000..17edabff9 Binary files /dev/null and b/3.4.0/api/python/doc.png differ diff --git a/3.4.0/api/python/doxygen.css b/3.4.0/api/python/doxygen.css new file mode 100644 index 000000000..dfdca7374 --- /dev/null +++ b/3.4.0/api/python/doxygen.css @@ -0,0 +1,1793 @@ +/* The standard CSS for doxygen 1.9.1 */ + +body, table, div, p, dl { + font: 400 14px/22px Roboto,sans-serif; +} + +p.reference, p.definition { + font: 400 14px/22px Roboto,sans-serif; +} + +/* @group Heading Levels */ + +h1.groupheader { + font-size: 150%; +} + +.title { + font: 400 14px/28px Roboto,sans-serif; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h2.groupheader { + border-bottom: 1px solid #879ECB; + color: #354C7B; + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px cyan; +} + +dt { + font-weight: bold; +} + +ul.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; + column-count: 3; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +th p.starttd, th p.intertd, th p.endtd { + font-size: 100%; + font-weight: 700; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +p.interli { +} + +p.interdd { +} + +p.intertd { +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.navtab { + border-right: 1px solid #A3B4D7; + padding-right: 15px; + text-align: right; + line-height: 110%; +} + +div.navtab table { + border-spacing: 0; +} + +td.navtab { + padding-right: 6px; + padding-left: 6px; +} +td.navtabHL { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL a, td.navtabHL a:visited { + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} + +a.navtab { + font-weight: bold; +} + +div.qindex{ + text-align: center; + width: 100%; + line-height: 140%; + font-size: 130%; + color: #A0A0A0; +} + +dt.alphachar{ + font-size: 180%; + font-weight: bold; +} + +.alphachar a{ + color: black; +} + +.alphachar a:hover, .alphachar a:visited{ + text-decoration: none; +} + +.classindex dl { + padding: 25px; + column-count:1 +} + +.classindex dd { + display:inline-block; + margin-left: 50px; + width: 90%; + line-height: 1.15em; +} + +.classindex dl.odd { + background-color: #F8F9FC; +} + +@media(min-width: 1120px) { + .classindex dl { + column-count:2 + } +} + +@media(min-width: 1320px) { + .classindex dl { + column-count:3 + } +} + + +/* @group Link Styling */ + +a { + color: #3D578C; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #4665A2; +} + +a:hover { + text-decoration: underline; +} + +.contents a.qindexHL:visited { + color: #FFFFFF; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: #4665A2; +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: #4665A2; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +ul { + overflow: hidden; /*Fixed: list item bullets overlap floating elements*/ +} + +#side-nav ul { + overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ +} + +#main-nav ul { + overflow: visible; /* reset ul rule for the navigation bar drop down lists */ +} + +.fragment { + text-align: left; + direction: ltr; + overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ + overflow-y: hidden; +} + +pre.fragment { + border: 1px solid #C4CFE5; + background-color: #FBFCFD; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: monospace, fixed; + font-size: 105%; +} + +div.fragment { + padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ + margin: 4px 8px 4px 2px; + background-color: #FBFCFD; + border: 1px solid #C4CFE5; +} + +div.line { + font-family: monospace, fixed; + font-size: 13px; + min-height: 13px; + line-height: 1.0; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line:after { + content:"\000A"; + white-space: pre; +} + +div.line.glow { + background-color: cyan; + box-shadow: 0 0 10px cyan; +} + + +span.lineno { + padding-right: 4px; + text-align: right; + border-right: 2px solid #0F0; + background-color: #E8E8E8; + white-space: pre; +} +span.lineno a { + background-color: #D8D8D8; +} + +span.lineno a:hover { + background-color: #C8C8C8; +} + +.lineno { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +div.ah, span.ah { + background-color: black; + font-weight: bold; + color: #FFFFFF; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%); +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + background-color: white; + color: black; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +td.indexkey { + background-color: #EBEFF6; + font-weight: bold; + border: 1px solid #C4CFE5; + margin: 2px 0px 2px 0; + padding: 2px 10px; + white-space: nowrap; + vertical-align: top; +} + +td.indexvalue { + background-color: #EBEFF6; + border: 1px solid #C4CFE5; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #EEF1F7; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl, img.inline { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +blockquote { + background-color: #F7F8FB; + border-left: 2px solid #9CAFD4; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +blockquote.DocNodeRTL { + border-left: 0; + border-right: 2px solid #9CAFD4; + margin: 0 4px 0 24px; + padding: 0 16px 0 12px; +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #A3B4D7; +} + +th.dirtab { + background: #EBEFF6; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #4A6AAA; +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: cyan; + box-shadow: 0 0 15px cyan; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #F9FAFC; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memSeparator { + border-bottom: 1px solid #DEE4F0; + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight, .memTemplItemRight { + width: 100%; +} + +.memTemplParams { + color: #4665A2; + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtitle { + padding: 8px; + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + border-top-right-radius: 4px; + border-top-left-radius: 4px; + margin-bottom: -1px; + background-image: url('nav_f.png'); + background-repeat: repeat-x; + background-color: #E2E8F2; + line-height: 1.25; + font-weight: 300; + float:left; +} + +.permalink +{ + font-size: 65%; + display: inline-block; + vertical-align: middle; +} + +.memtemplate { + font-size: 80%; + color: #4665A2; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px cyan; +} + +.memname { + font-weight: 400; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 0px 6px 0px; + color: #253555; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + background-color: #DFE5F1; + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 4px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 4px; + +} + +.overload { + font-family: "courier new",courier,monospace; + font-size: 65%; +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 10px 2px 10px; + background-color: #FBFCFD; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: #FFFFFF; + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} +.paramname code { + line-height: 14px; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype, .tparams .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir, .tparams .paramdir { + font-family: "courier new",courier,monospace; + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: #728DC1; + border-top:1px solid #5373B4; + border-left:1px solid #5373B4; + border-right:1px solid #C4CFE5; + border-bottom:1px solid #C4CFE5; + text-shadow: none; + color: white; + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid #9CAFD4; + border-bottom: 1px solid #9CAFD4; + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.even { + padding-left: 6px; + background-color: #F7F8FB; +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: #3D578C; +} + +.arrow { + color: #9CAFD4; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; +} + +.icon { + font-family: Arial, Helvetica; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: #728DC1; + color: white; + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderopen.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderclosed.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('doc.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +table.directory { + font: 400 14px Roboto,sans-serif; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: #2A3D61; +} + +table.doxtable caption { + caption-side: top; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + /*width: 100%;*/ + margin-bottom: 10px; + border: 1px solid #A8B8D9; + border-spacing: 0px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid #A8B8D9; + border-bottom: 1px solid #A8B8D9; + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #A8B8D9; + /*width: 100%;*/ +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + font-size: 90%; + color: #253555; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + font-weight: 400; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #A8B8D9; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:#8AA0CC; + border:solid 1px #C2CDE4; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#364D7C; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: #283A5D; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color:#6884BD; +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color:#364D7C; + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +table.classindex +{ + margin: 10px; + white-space: nowrap; + margin-left: 3%; + margin-right: 3%; + width: 94%; + border: 0; + border-spacing: 0; + padding: 0; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + margin: 0px; + border-bottom: 1px solid #C4CFE5; +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +.PageDocRTL-title div.headertitle { + text-align: right; + direction: rtl; +} + +dl { + padding: 0 0 0 0; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ +dl.section { + margin-left: 0px; + padding-left: 0px; +} + +dl.section.DocNodeRTL { + margin-right: 0px; + padding-right: 0px; +} + +dl.note { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #D0C000; +} + +dl.note.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #FF0000; +} + +dl.warning.DocNodeRTL, dl.attention.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00D000; +} + +dl.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #00D000; +} + +dl.deprecated { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #505050; +} + +dl.deprecated.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #505050; +} + +dl.todo { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00C0E0; +} + +dl.todo.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #00C0E0; +} + +dl.test { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #3030E0; +} + +dl.test.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #3030E0; +} + +dl.bug { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #C08050; +} + +dl.bug.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; +} + +#projectname +{ + font: 300% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font: 120% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #5373B4; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.plantumlgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +div.zoom +{ + border: 1px solid #90A5CE; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#334975; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; + text-align:right; + width:52px; +} + +dl.citelist dd { + margin:2px 0 2px 72px; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: #F4F6FA; + border: 1px solid #D8DFEE; + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 8px 10px 10px; + width: 200px; +} + +.PageDocRTL-title div.toc { + float: left !important; + text-align: right; +} + +div.toc li { + background: url("bdwn.png") no-repeat scroll 0 5px transparent; + font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +.PageDocRTL-title div.toc li { + background-position-x: right !important; + padding-left: 0 !important; + padding-right: 10px; +} + +div.toc h3 { + font: bold 12px/1.2 Arial,FreeSans,sans-serif; + color: #4665A2; + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 30px; +} + +div.toc li.level4 { + margin-left: 45px; +} + +span.emoji { + /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html + * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort; + */ +} + +.PageDocRTL-title div.toc li.level1 { + margin-left: 0 !important; + margin-right: 0; +} + +.PageDocRTL-title div.toc li.level2 { + margin-left: 0 !important; + margin-right: 15px; +} + +.PageDocRTL-title div.toc li.level3 { + margin-left: 0 !important; + margin-right: 30px; +} + +.PageDocRTL-title div.toc li.level4 { + margin-left: 0 !important; + margin-right: 45px; +} + +.inherit_header { + font-weight: bold; + color: gray; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + white-space: nowrap; + background-color: white; + border: 1px solid gray; + border-radius: 4px 4px 4px 4px; + box-shadow: 1px 1px 7px gray; + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: grey; + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: #006318; +} + +#powerTip div { + margin: 0px; + padding: 0px; + font: 12px/16px Roboto,sans-serif; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: #FFFFFF; + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before { + border-top-color: #808080; + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: #FFFFFF; + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: #808080; + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: #FFFFFF; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: #FFFFFF; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + +/* @group Markdown */ + +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.markdownTable tr { +} + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft, td.markdownTableBodyLeft { + text-align: left +} + +th.markdownTableHeadRight, td.markdownTableBodyRight { + text-align: right +} + +th.markdownTableHeadCenter, td.markdownTableBodyCenter { + text-align: center +} + +.DocNodeRTL { + text-align: right; + direction: rtl; +} + +.DocNodeLTR { + text-align: left; + direction: ltr; +} + +table.DocNodeRTL { + width: auto; + margin-right: 0; + margin-left: auto; +} + +table.DocNodeLTR { + width: auto; + margin-right: auto; + margin-left: 0; +} + +tt, code, kbd, samp +{ + display: inline-block; + direction:ltr; +} +/* @end */ + +u { + text-decoration: underline; +} + diff --git a/3.4.0/api/python/doxygen.svg b/3.4.0/api/python/doxygen.svg new file mode 100644 index 000000000..dd6694eee --- /dev/null +++ b/3.4.0/api/python/doxygen.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/3.4.0/api/python/dynsections.js b/3.4.0/api/python/dynsections.js new file mode 100644 index 000000000..d2fe12ef0 --- /dev/null +++ b/3.4.0/api/python/dynsections.js @@ -0,0 +1,128 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); +} + +function toggleLevel(level) +{ + $('table.directory tr').each(function() { + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (l + + + + + + +ctrlX Data Layer API for Python: /var/jenkins/workspace/script.python.datalayer/ctrlxdatalayer/factory.py Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    factory.py
    +
    +
    +
    1 """
    +
    2  Factory class
    +
    3 """
    +
    4 import ctrlxdatalayer
    +
    5 from ctrlxdatalayer.clib_factory import C_DLR_FACTORY
    +
    6 from ctrlxdatalayer.client import Client
    +
    7 from ctrlxdatalayer.provider import Provider
    +
    8 
    +
    9 
    +
    10 class Factory:
    +
    11  """ Factory class """
    +
    12 
    +
    13  __slots__ = ['__factory']
    +
    14 
    +
    15  def __init__(self, c_factory: C_DLR_FACTORY):
    +
    16  """
    +
    17  generate Factory
    +
    18  """
    +
    19  self.__factory__factory = c_factory
    +
    20 
    +
    21  def get_handle(self):
    +
    22  """
    +
    23  handle value of Factory
    +
    24  """
    +
    25  return self.__factory__factory
    +
    26 
    +
    27  def create_client(self, remote: str) -> Client:
    +
    28  """
    +
    29  Creates a client for accessing data of the system
    +
    30  @param[in] remote Remote address of the data layer
    +
    31  @returns <Client>
    +
    32  """
    +
    33  b_remote = remote.encode('utf-8')
    +
    34  c_client = ctrlxdatalayer.clib.libcomm_datalayer.DLR_factoryCreateClient(
    +
    35  self.__factory__factory, b_remote)
    +
    36  return Client(c_client)
    +
    37 
    +
    38  def create_provider(self, remote: str) -> Provider:
    +
    39  """
    +
    40  Creates a provider to provide data to the datalayer
    +
    41  @param[in] remote Remote address of the data layer
    +
    42  @returns <Provider>
    +
    43  """
    +
    44  b_remote = remote.encode('utf-8')
    +
    45  c_provider = ctrlxdatalayer.clib.libcomm_datalayer.DLR_factoryCreateProvider(
    +
    46  self.__factory__factory, b_remote)
    +
    47  return Provider(c_provider)
    +
    Client interface for accessing data from the system.
    Definition: client.py:61
    + + +
    def __init__(self, C_DLR_FACTORY c_factory)
    generate Factory
    Definition: factory.py:18
    +
    Provider create_provider(self, str remote)
    Creates a provider to provide data to the datalayer.
    Definition: factory.py:43
    +
    def get_handle(self)
    handle value of Factory
    Definition: factory.py:24
    +
    Client create_client(self, str remote)
    Creates a client for accessing data of the system.
    Definition: factory.py:32
    + + + +
    +
    + + + + diff --git a/3.4.0/api/python/files.html b/3.4.0/api/python/files.html new file mode 100644 index 000000000..8d9c67719 --- /dev/null +++ b/3.4.0/api/python/files.html @@ -0,0 +1,123 @@ + + + + + + + +ctrlX Data Layer API for Python: File List + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    File List
    +
    +
    +
    Here is a list of all documented files with brief descriptions:
    +
    [detail level 12]
    + + + + + + + + + + + + + + + + + + + +
      ctrlxdatalayer
     __init__.py
     _version.py
     bulk.py
     bulk_util.py
     clib.py
     client.py
     converter.py
     factory.py
     metadata_utils.py
     provider.py
     provider_node.py
     provider_subscription.py
     subscription.py
     subscription_async.py
     subscription_properties_builder.py
     subscription_sync.py
     system.py
     variant.py
    +
    +
    +
    + + + + diff --git a/3.4.0/api/python/files_dup.js b/3.4.0/api/python/files_dup.js new file mode 100644 index 000000000..9a338a74d --- /dev/null +++ b/3.4.0/api/python/files_dup.js @@ -0,0 +1,4 @@ +var files_dup = +[ + [ "ctrlxdatalayer", "dir_d8d0b822c7fc5df04378da618c4cb8e0.html", "dir_d8d0b822c7fc5df04378da618c4cb8e0" ] +]; \ No newline at end of file diff --git a/3.4.0/api/python/folderclosed.png b/3.4.0/api/python/folderclosed.png new file mode 100644 index 000000000..bb8ab35ed Binary files /dev/null and b/3.4.0/api/python/folderclosed.png differ diff --git a/3.4.0/api/python/folderopen.png b/3.4.0/api/python/folderopen.png new file mode 100644 index 000000000..d6c7f676a Binary files /dev/null and b/3.4.0/api/python/folderopen.png differ diff --git a/3.4.0/api/python/functions.html b/3.4.0/api/python/functions.html new file mode 100644 index 000000000..243a2a695 --- /dev/null +++ b/3.4.0/api/python/functions.html @@ -0,0 +1,175 @@ + + + + + + + +ctrlX Data Layer API for Python: Class Members + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + + + + + + diff --git a/3.4.0/api/python/functions_a.html b/3.4.0/api/python/functions_a.html new file mode 100644 index 000000000..295ce3852 --- /dev/null +++ b/3.4.0/api/python/functions_a.html @@ -0,0 +1,130 @@ + + + + + + + +ctrlX Data Layer API for Python: Class Members + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all documented class members with links to the class documentation for each member:
    + +

    - a -

    +
    +
    + + + + diff --git a/3.4.0/api/python/functions_b.html b/3.4.0/api/python/functions_b.html new file mode 100644 index 000000000..80cff1936 --- /dev/null +++ b/3.4.0/api/python/functions_b.html @@ -0,0 +1,113 @@ + + + + + + + +ctrlX Data Layer API for Python: Class Members + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all documented class members with links to the class documentation for each member:
    + +

    - b -

    +
    +
    + + + + diff --git a/3.4.0/api/python/functions_c.html b/3.4.0/api/python/functions_c.html new file mode 100644 index 000000000..597d6fa28 --- /dev/null +++ b/3.4.0/api/python/functions_c.html @@ -0,0 +1,157 @@ + + + + + + + +ctrlX Data Layer API for Python: Class Members + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all documented class members with links to the class documentation for each member:
    + +

    - c -

    +
    +
    + + + + diff --git a/3.4.0/api/python/functions_d.html b/3.4.0/api/python/functions_d.html new file mode 100644 index 000000000..42e511a9a --- /dev/null +++ b/3.4.0/api/python/functions_d.html @@ -0,0 +1,103 @@ + + + + + + + +ctrlX Data Layer API for Python: Class Members + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all documented class members with links to the class documentation for each member:
    + +

    - d -

      +
    • delete() +: Bulk +
    • +
    +
    +
    + + + + diff --git a/3.4.0/api/python/functions_dup.js b/3.4.0/api/python/functions_dup.js new file mode 100644 index 000000000..e733dd126 --- /dev/null +++ b/3.4.0/api/python/functions_dup.js @@ -0,0 +1,20 @@ +var functions_dup = +[ + [ "_", "functions.html", null ], + [ "a", "functions_a.html", null ], + [ "b", "functions_b.html", null ], + [ "c", "functions_c.html", null ], + [ "d", "functions_d.html", null ], + [ "f", "functions_f.html", null ], + [ "g", "functions_g.html", null ], + [ "i", "functions_i.html", null ], + [ "j", "functions_j.html", null ], + [ "m", "functions_m.html", null ], + [ "o", "functions_o.html", null ], + [ "p", "functions_p.html", null ], + [ "r", "functions_r.html", null ], + [ "s", "functions_s.html", null ], + [ "t", "functions_t.html", null ], + [ "u", "functions_u.html", null ], + [ "w", "functions_w.html", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/python/functions_f.html b/3.4.0/api/python/functions_f.html new file mode 100644 index 000000000..7dd9a02ca --- /dev/null +++ b/3.4.0/api/python/functions_f.html @@ -0,0 +1,106 @@ + + + + + + + +ctrlX Data Layer API for Python: Class Members + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all documented class members with links to the class documentation for each member:
    + +

    - f -

    +
    +
    + + + + diff --git a/3.4.0/api/python/functions_func.html b/3.4.0/api/python/functions_func.html new file mode 100644 index 000000000..e6ac1cf8c --- /dev/null +++ b/3.4.0/api/python/functions_func.html @@ -0,0 +1,175 @@ + + + + + + + +ctrlX Data Layer API for Python: Class Members - Functions + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + + + + + + diff --git a/3.4.0/api/python/functions_func.js b/3.4.0/api/python/functions_func.js new file mode 100644 index 000000000..b33f8a0ed --- /dev/null +++ b/3.4.0/api/python/functions_func.js @@ -0,0 +1,20 @@ +var functions_func = +[ + [ "_", "functions_func.html", null ], + [ "a", "functions_func_a.html", null ], + [ "b", "functions_func_b.html", null ], + [ "c", "functions_func_c.html", null ], + [ "d", "functions_func_d.html", null ], + [ "f", "functions_func_f.html", null ], + [ "g", "functions_func_g.html", null ], + [ "i", "functions_func_i.html", null ], + [ "j", "functions_func_j.html", null ], + [ "m", "functions_func_m.html", null ], + [ "o", "functions_func_o.html", null ], + [ "p", "functions_func_p.html", null ], + [ "r", "functions_func_r.html", null ], + [ "s", "functions_func_s.html", null ], + [ "t", "functions_func_t.html", null ], + [ "u", "functions_func_u.html", null ], + [ "w", "functions_func_w.html", null ] +]; \ No newline at end of file diff --git a/3.4.0/api/python/functions_func_a.html b/3.4.0/api/python/functions_func_a.html new file mode 100644 index 000000000..728c77981 --- /dev/null +++ b/3.4.0/api/python/functions_func_a.html @@ -0,0 +1,130 @@ + + + + + + + +ctrlX Data Layer API for Python: Class Members - Functions + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - a -

    +
    +
    + + + + diff --git a/3.4.0/api/python/functions_func_b.html b/3.4.0/api/python/functions_func_b.html new file mode 100644 index 000000000..dec784879 --- /dev/null +++ b/3.4.0/api/python/functions_func_b.html @@ -0,0 +1,113 @@ + + + + + + + +ctrlX Data Layer API for Python: Class Members - Functions + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - b -

    +
    +
    + + + + diff --git a/3.4.0/api/python/functions_func_c.html b/3.4.0/api/python/functions_func_c.html new file mode 100644 index 000000000..472c8ddea --- /dev/null +++ b/3.4.0/api/python/functions_func_c.html @@ -0,0 +1,157 @@ + + + + + + + +ctrlX Data Layer API for Python: Class Members - Functions + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - c -

    +
    +
    + + + + diff --git a/3.4.0/api/python/functions_func_d.html b/3.4.0/api/python/functions_func_d.html new file mode 100644 index 000000000..beb8d6409 --- /dev/null +++ b/3.4.0/api/python/functions_func_d.html @@ -0,0 +1,103 @@ + + + + + + + +ctrlX Data Layer API for Python: Class Members - Functions + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - d -

      +
    • delete() +: Bulk +
    • +
    +
    +
    + + + + diff --git a/3.4.0/api/python/functions_func_f.html b/3.4.0/api/python/functions_func_f.html new file mode 100644 index 000000000..7bb09db0d --- /dev/null +++ b/3.4.0/api/python/functions_func_f.html @@ -0,0 +1,106 @@ + + + + + + + +ctrlX Data Layer API for Python: Class Members - Functions + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - f -

    +
    +
    + + + + diff --git a/3.4.0/api/python/functions_func_g.html b/3.4.0/api/python/functions_func_g.html new file mode 100644 index 000000000..1c15fca98 --- /dev/null +++ b/3.4.0/api/python/functions_func_g.html @@ -0,0 +1,270 @@ + + + + + + + +ctrlX Data Layer API for Python: Class Members - Functions + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - g -

    +
    +
    + + + + diff --git a/3.4.0/api/python/functions_func_i.html b/3.4.0/api/python/functions_func_i.html new file mode 100644 index 000000000..b2a9ec1b6 --- /dev/null +++ b/3.4.0/api/python/functions_func_i.html @@ -0,0 +1,109 @@ + + + + + + + +ctrlX Data Layer API for Python: Class Members - Functions + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - i -

    +
    +
    + + + + diff --git a/3.4.0/api/python/functions_func_j.html b/3.4.0/api/python/functions_func_j.html new file mode 100644 index 000000000..dc9e58255 --- /dev/null +++ b/3.4.0/api/python/functions_func_j.html @@ -0,0 +1,103 @@ + + + + + + + +ctrlX Data Layer API for Python: Class Members - Functions + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - j -

      +
    • json_converter() +: System +
    • +
    +
    +
    + + + + diff --git a/3.4.0/api/python/functions_func_m.html b/3.4.0/api/python/functions_func_m.html new file mode 100644 index 000000000..b98ff4e0d --- /dev/null +++ b/3.4.0/api/python/functions_func_m.html @@ -0,0 +1,109 @@ + + + + + + + +ctrlX Data Layer API for Python: Class Members - Functions + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - m -

      +
    • metadata() +: Bulk +
    • +
    • metadata_async() +: Client +
    • +
    • metadata_sync() +: Client +
    • +
    +
    +
    + + + + diff --git a/3.4.0/api/python/functions_func_o.html b/3.4.0/api/python/functions_func_o.html new file mode 100644 index 000000000..d3d2f0435 --- /dev/null +++ b/3.4.0/api/python/functions_func_o.html @@ -0,0 +1,105 @@ + + + + + + + +ctrlX Data Layer API for Python: Class Members - Functions + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - o -

    +
    +
    + + + + diff --git a/3.4.0/api/python/functions_func_p.html b/3.4.0/api/python/functions_func_p.html new file mode 100644 index 000000000..3b541c5a4 --- /dev/null +++ b/3.4.0/api/python/functions_func_p.html @@ -0,0 +1,115 @@ + + + + + + + +ctrlX Data Layer API for Python: Class Members - Functions + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - p -

    +
    +
    + + + + diff --git a/3.4.0/api/python/functions_func_r.html b/3.4.0/api/python/functions_func_r.html new file mode 100644 index 000000000..9bdcb769c --- /dev/null +++ b/3.4.0/api/python/functions_func_r.html @@ -0,0 +1,140 @@ + + + + + + + +ctrlX Data Layer API for Python: Class Members - Functions + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - r -

    +
    +
    + + + + diff --git a/3.4.0/api/python/functions_func_s.html b/3.4.0/api/python/functions_func_s.html new file mode 100644 index 000000000..100550a64 --- /dev/null +++ b/3.4.0/api/python/functions_func_s.html @@ -0,0 +1,257 @@ + + + + + + + +ctrlX Data Layer API for Python: Class Members - Functions + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - s -

    +
    +
    + + + + diff --git a/3.4.0/api/python/functions_func_t.html b/3.4.0/api/python/functions_func_t.html new file mode 100644 index 000000000..b3552c312 --- /dev/null +++ b/3.4.0/api/python/functions_func_t.html @@ -0,0 +1,103 @@ + + + + + + + +ctrlX Data Layer API for Python: Class Members - Functions + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - t -

    +
    +
    + + + + diff --git a/3.4.0/api/python/functions_func_u.html b/3.4.0/api/python/functions_func_u.html new file mode 100644 index 000000000..8c727c0cd --- /dev/null +++ b/3.4.0/api/python/functions_func_u.html @@ -0,0 +1,121 @@ + + + + + + + +ctrlX Data Layer API for Python: Class Members - Functions + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - u -

    +
    +
    + + + + diff --git a/3.4.0/api/python/functions_func_w.html b/3.4.0/api/python/functions_func_w.html new file mode 100644 index 000000000..676fb0ebd --- /dev/null +++ b/3.4.0/api/python/functions_func_w.html @@ -0,0 +1,122 @@ + + + + + + + +ctrlX Data Layer API for Python: Class Members - Functions + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - w -

    +
    +
    + + + + diff --git a/3.4.0/api/python/functions_g.html b/3.4.0/api/python/functions_g.html new file mode 100644 index 000000000..3e2a236a5 --- /dev/null +++ b/3.4.0/api/python/functions_g.html @@ -0,0 +1,270 @@ + + + + + + + +ctrlX Data Layer API for Python: Class Members + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all documented class members with links to the class documentation for each member:
    + +

    - g -

    +
    +
    + + + + diff --git a/3.4.0/api/python/functions_i.html b/3.4.0/api/python/functions_i.html new file mode 100644 index 000000000..167dfd5a7 --- /dev/null +++ b/3.4.0/api/python/functions_i.html @@ -0,0 +1,109 @@ + + + + + + + +ctrlX Data Layer API for Python: Class Members + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all documented class members with links to the class documentation for each member:
    + +

    - i -

    +
    +
    + + + + diff --git a/3.4.0/api/python/functions_j.html b/3.4.0/api/python/functions_j.html new file mode 100644 index 000000000..0e2bfaff1 --- /dev/null +++ b/3.4.0/api/python/functions_j.html @@ -0,0 +1,103 @@ + + + + + + + +ctrlX Data Layer API for Python: Class Members + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all documented class members with links to the class documentation for each member:
    + +

    - j -

      +
    • json_converter() +: System +
    • +
    +
    +
    + + + + diff --git a/3.4.0/api/python/functions_m.html b/3.4.0/api/python/functions_m.html new file mode 100644 index 000000000..d9c16f7b6 --- /dev/null +++ b/3.4.0/api/python/functions_m.html @@ -0,0 +1,109 @@ + + + + + + + +ctrlX Data Layer API for Python: Class Members + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all documented class members with links to the class documentation for each member:
    + +

    - m -

      +
    • metadata() +: Bulk +
    • +
    • metadata_async() +: Client +
    • +
    • metadata_sync() +: Client +
    • +
    +
    +
    + + + + diff --git a/3.4.0/api/python/functions_o.html b/3.4.0/api/python/functions_o.html new file mode 100644 index 000000000..723f45f28 --- /dev/null +++ b/3.4.0/api/python/functions_o.html @@ -0,0 +1,105 @@ + + + + + + + +ctrlX Data Layer API for Python: Class Members + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all documented class members with links to the class documentation for each member:
    + +

    - o -

    +
    +
    + + + + diff --git a/3.4.0/api/python/functions_p.html b/3.4.0/api/python/functions_p.html new file mode 100644 index 000000000..ceef31a12 --- /dev/null +++ b/3.4.0/api/python/functions_p.html @@ -0,0 +1,115 @@ + + + + + + + +ctrlX Data Layer API for Python: Class Members + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all documented class members with links to the class documentation for each member:
    + +

    - p -

    +
    +
    + + + + diff --git a/3.4.0/api/python/functions_r.html b/3.4.0/api/python/functions_r.html new file mode 100644 index 000000000..1f50b57ac --- /dev/null +++ b/3.4.0/api/python/functions_r.html @@ -0,0 +1,140 @@ + + + + + + + +ctrlX Data Layer API for Python: Class Members + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all documented class members with links to the class documentation for each member:
    + +

    - r -

    +
    +
    + + + + diff --git a/3.4.0/api/python/functions_s.html b/3.4.0/api/python/functions_s.html new file mode 100644 index 000000000..b3e4ff406 --- /dev/null +++ b/3.4.0/api/python/functions_s.html @@ -0,0 +1,257 @@ + + + + + + + +ctrlX Data Layer API for Python: Class Members + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all documented class members with links to the class documentation for each member:
    + +

    - s -

    +
    +
    + + + + diff --git a/3.4.0/api/python/functions_t.html b/3.4.0/api/python/functions_t.html new file mode 100644 index 000000000..83e816996 --- /dev/null +++ b/3.4.0/api/python/functions_t.html @@ -0,0 +1,103 @@ + + + + + + + +ctrlX Data Layer API for Python: Class Members + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all documented class members with links to the class documentation for each member:
    + +

    - t -

    +
    +
    + + + + diff --git a/3.4.0/api/python/functions_u.html b/3.4.0/api/python/functions_u.html new file mode 100644 index 000000000..9129cffba --- /dev/null +++ b/3.4.0/api/python/functions_u.html @@ -0,0 +1,121 @@ + + + + + + + +ctrlX Data Layer API for Python: Class Members + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all documented class members with links to the class documentation for each member:
    + +

    - u -

    +
    +
    + + + + diff --git a/3.4.0/api/python/functions_w.html b/3.4.0/api/python/functions_w.html new file mode 100644 index 000000000..d3335a8d5 --- /dev/null +++ b/3.4.0/api/python/functions_w.html @@ -0,0 +1,122 @@ + + + + + + + +ctrlX Data Layer API for Python: Class Members + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all documented class members with links to the class documentation for each member:
    + +

    - w -

    +
    +
    + + + + diff --git a/3.4.0/api/python/hierarchy.html b/3.4.0/api/python/hierarchy.html new file mode 100644 index 000000000..4c625aa83 --- /dev/null +++ b/3.4.0/api/python/hierarchy.html @@ -0,0 +1,146 @@ + + + + + + + +ctrlX Data Layer API for Python: Class Hierarchy + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    Class Hierarchy
    +
    +
    +
    This inheritance list is sorted roughly, but not completely, alphabetically:
    +
    [detail level 12]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     C_AsyncCreatorClass _AsyncCreator
     C_BulkCreatorClass _BulkCreator
     C_CallbackPtrCallback wrapper
     C_CallbackPtr_CallbackPtr helper
     C_RequestClass Bulk _Request
     C_ResponseMgrClass _ResponseMgr
     C_ResponseAsynMgrClass _ResponseAsynMgr
     C_ResponseBulkMgrClass _ResponseBulkMgr
     CBulkClass Bulk
     CBulkCreateRequestStruct for BulkCreateRequest Address for the request Write data of the request
     CBulkReadRequestStruct for BulkReadRequest Address for the request Read argument of the request
     CBulkWriteRequestStruct for BulkWriteRequest Address for the request Write data of the request
     CClientClient interface for accessing data from the system
     CConverterConverter interface
     CEnum
     CNotifyTypeNotifyType
     CFactoryFactory class
     CMetadataBuilderBuilds a flatbuffer provided with the metadata information for a Data Layer node
     CNotifyInfoPublishNotifyInfoPublish
     CNotifyItemNotifyItem
     CNotifyItemPublishClass NotifyItemPublish:
     CProvider
     CProviderNodeProvider node interface for providing data to the system
     CProviderNodeCallbacksProvider Node callbacks interface
     CProviderSubscriptionProviderSubscription helper class
     CReferenceTypeList of reference types as strings
     CResponseClass Bulk Response
     CSubscriptionSubscription
     CSubscriptionAsyncSubscriptionAsync
     CSubscriptionSyncSubscriptionSync
     CSubscriptionPropertiesBuilderSubscriptionPropertiesBuilder
     CSystemDatalayer System Instance
     CVariantVariant is a container for a many types of data
     CVariantRef
     CEnum
     CTimeoutSettingSettings of different timeout values
     CC_DLR_SCHEMAType of Converter
     CNotifyTypePublishNotifyTypePublish
     CResult
     CVariantType
     CIntEnum
     CAllowedOperationAllowed Operation Flags
    +
    +
    +
    + + + + diff --git a/3.4.0/api/python/hierarchy.js b/3.4.0/api/python/hierarchy.js new file mode 100644 index 000000000..007c8955e --- /dev/null +++ b/3.4.0/api/python/hierarchy.js @@ -0,0 +1,51 @@ +var hierarchy = +[ + [ "_AsyncCreator", "classctrlxdatalayer_1_1bulk__util_1_1__AsyncCreator.html", null ], + [ "_BulkCreator", "classctrlxdatalayer_1_1bulk__util_1_1__BulkCreator.html", null ], + [ "_CallbackPtr", "classctrlxdatalayer_1_1client_1_1__CallbackPtr.html", null ], + [ "_CallbackPtr", "classctrlxdatalayer_1_1provider__node_1_1__CallbackPtr.html", null ], + [ "_Request", "classctrlxdatalayer_1_1bulk__util_1_1__Request.html", null ], + [ "_ResponseMgr", "classctrlxdatalayer_1_1bulk_1_1__ResponseMgr.html", [ + [ "_ResponseAsynMgr", "classctrlxdatalayer_1_1bulk_1_1__ResponseAsynMgr.html", null ], + [ "_ResponseBulkMgr", "classctrlxdatalayer_1_1bulk_1_1__ResponseBulkMgr.html", null ] + ] ], + [ "Bulk", "classctrlxdatalayer_1_1bulk_1_1Bulk.html", null ], + [ "BulkCreateRequest", "classctrlxdatalayer_1_1bulk_1_1BulkCreateRequest.html", null ], + [ "BulkReadRequest", "classctrlxdatalayer_1_1bulk_1_1BulkReadRequest.html", null ], + [ "BulkWriteRequest", "classctrlxdatalayer_1_1bulk_1_1BulkWriteRequest.html", null ], + [ "Client", "classctrlxdatalayer_1_1client_1_1Client.html", null ], + [ "Converter", "classctrlxdatalayer_1_1converter_1_1Converter.html", null ], + [ "Enum", null, [ + [ "NotifyType", "classctrlxdatalayer_1_1subscription_1_1NotifyType.html", null ] + ] ], + [ "Factory", "classctrlxdatalayer_1_1factory_1_1Factory.html", null ], + [ "MetadataBuilder", "classctrlxdatalayer_1_1metadata__utils_1_1MetadataBuilder.html", null ], + [ "NotifyInfoPublish", "classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish.html", null ], + [ "NotifyItem", "classctrlxdatalayer_1_1subscription_1_1NotifyItem.html", null ], + [ "NotifyItemPublish", "classctrlxdatalayer_1_1provider__subscription_1_1NotifyItemPublish.html", null ], + [ "Provider", "classctrlxdatalayer_1_1provider_1_1Provider.html", null ], + [ "ProviderNode", "classctrlxdatalayer_1_1provider__node_1_1ProviderNode.html", null ], + [ "ProviderNodeCallbacks", "classctrlxdatalayer_1_1provider__node_1_1ProviderNodeCallbacks.html", null ], + [ "ProviderSubscription", "classctrlxdatalayer_1_1provider__subscription_1_1ProviderSubscription.html", null ], + [ "ReferenceType", "classctrlxdatalayer_1_1metadata__utils_1_1ReferenceType.html", null ], + [ "Response", "classctrlxdatalayer_1_1bulk_1_1Response.html", null ], + [ "Subscription", "classctrlxdatalayer_1_1subscription_1_1Subscription.html", [ + [ "SubscriptionAsync", "classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync.html", null ], + [ "SubscriptionSync", "classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync.html", null ] + ] ], + [ "SubscriptionPropertiesBuilder", "classctrlxdatalayer_1_1subscription__properties__builder_1_1SubscriptionPropertiesBuilder.html", null ], + [ "System", "classctrlxdatalayer_1_1system_1_1System.html", null ], + [ "Variant", "classctrlxdatalayer_1_1variant_1_1Variant.html", [ + [ "VariantRef", "classctrlxdatalayer_1_1variant_1_1VariantRef.html", null ] + ] ], + [ "Enum", null, [ + [ "TimeoutSetting", "classctrlxdatalayer_1_1client_1_1TimeoutSetting.html", null ], + [ "C_DLR_SCHEMA", "classctrlxdatalayer_1_1converter_1_1C__DLR__SCHEMA.html", null ], + [ "NotifyTypePublish", "classctrlxdatalayer_1_1provider__subscription_1_1NotifyTypePublish.html", null ], + [ "Result", "classctrlxdatalayer_1_1variant_1_1Result.html", null ], + [ "VariantType", "classctrlxdatalayer_1_1variant_1_1VariantType.html", null ] + ] ], + [ "IntEnum", null, [ + [ "AllowedOperation", "classctrlxdatalayer_1_1metadata__utils_1_1AllowedOperation.html", null ] + ] ] +]; \ No newline at end of file diff --git a/3.4.0/api/python/icon.png b/3.4.0/api/python/icon.png new file mode 100644 index 000000000..675a7bb61 Binary files /dev/null and b/3.4.0/api/python/icon.png differ diff --git a/3.4.0/api/python/index.html b/3.4.0/api/python/index.html new file mode 100644 index 000000000..60605081e --- /dev/null +++ b/3.4.0/api/python/index.html @@ -0,0 +1,106 @@ + + + + + + + +ctrlX Data Layer API for Python: Main Page + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    Main Page
    +
    +
    +

    Welcome to the documentation for the ctrlX Data Layer API!

    +

    +
    + +
    +
    +
    +
    + + + + diff --git a/3.4.0/api/python/jquery.js b/3.4.0/api/python/jquery.js new file mode 100644 index 000000000..1ef9e3afc --- /dev/null +++ b/3.4.0/api/python/jquery.js @@ -0,0 +1,35 @@ +/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="
    ",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0a;a++)for(i in o[a])n=o[a][i],o[a].hasOwnProperty(i)&&void 0!==n&&(e[i]=t.isPlainObject(n)?t.isPlainObject(e[i])?t.widget.extend({},e[i],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,i){var n=i.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=s.call(arguments,1),h=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(h=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):h=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new i(o,this))})),h}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
    ",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("
    "),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.widthi?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,m=-2*e.offset[1];0>c?(s=t.top+p+f+m+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+m)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+m-h,(i>0||u>a(i))&&(t.top+=p+f+m))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var n=!1;t(document).on("mouseup",function(){n=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!n){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,o="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),n=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,n=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("
    ").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("
    "),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidtht.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("
    "),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element +},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),m&&(p-=l),g&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable});/** + * Copyright (c) 2007 Ariel Flesler - aflesler ○ gmail • com | https://github.com/flesler + * Licensed under MIT + * @author Ariel Flesler + * @version 2.1.2 + */ +;(function(f){"use strict";"function"===typeof define&&define.amd?define(["jquery"],f):"undefined"!==typeof module&&module.exports?module.exports=f(require("jquery")):f(jQuery)})(function($){"use strict";function n(a){return!a.nodeName||-1!==$.inArray(a.nodeName.toLowerCase(),["iframe","#document","html","body"])}function h(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}var p=$.scrollTo=function(a,d,b){return $(window).scrollTo(a,d,b)};p.defaults={axis:"xy",duration:0,limit:!0};$.fn.scrollTo=function(a,d,b){"object"=== typeof d&&(b=d,d=0);"function"===typeof b&&(b={onAfter:b});"max"===a&&(a=9E9);b=$.extend({},p.defaults,b);d=d||b.duration;var u=b.queue&&1=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 + * http://www.smartmenus.org/ + * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
    ').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file diff --git a/3.4.0/api/python/menu.js b/3.4.0/api/python/menu.js new file mode 100644 index 000000000..744c7a014 --- /dev/null +++ b/3.4.0/api/python/menu.js @@ -0,0 +1,51 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { + function makeTree(data,relPath) { + var result=''; + if ('children' in data) { + result+=''; + } + return result; + } + + $('#main-nav').append(makeTree(menudata,relPath)); + $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); + if (searchEnabled) { + if (serverSide) { + $('#main-menu').append('
  • '); + } else { + $('#main-menu').append('
  • '); + } + } + $('#main-menu').smartmenus(); +} +/* @license-end */ diff --git a/3.4.0/api/python/menudata.js b/3.4.0/api/python/menudata.js new file mode 100644 index 000000000..5980b0671 --- /dev/null +++ b/3.4.0/api/python/menudata.js @@ -0,0 +1,69 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file +*/ +var menudata={children:[ +{text:"Main Page",url:"index.html"}, +{text:"Classes",url:"annotated.html",children:[ +{text:"Class List",url:"annotated.html"}, +{text:"Class Index",url:"classes.html"}, +{text:"Class Hierarchy",url:"hierarchy.html"}, +{text:"Class Members",url:"functions.html",children:[ +{text:"All",url:"functions.html",children:[ +{text:"_",url:"functions.html#index__5F"}, +{text:"a",url:"functions_a.html#index_a"}, +{text:"b",url:"functions_b.html#index_b"}, +{text:"c",url:"functions_c.html#index_c"}, +{text:"d",url:"functions_d.html#index_d"}, +{text:"f",url:"functions_f.html#index_f"}, +{text:"g",url:"functions_g.html#index_g"}, +{text:"i",url:"functions_i.html#index_i"}, +{text:"j",url:"functions_j.html#index_j"}, +{text:"m",url:"functions_m.html#index_m"}, +{text:"o",url:"functions_o.html#index_o"}, +{text:"p",url:"functions_p.html#index_p"}, +{text:"r",url:"functions_r.html#index_r"}, +{text:"s",url:"functions_s.html#index_s"}, +{text:"t",url:"functions_t.html#index_t"}, +{text:"u",url:"functions_u.html#index_u"}, +{text:"w",url:"functions_w.html#index_w"}]}, +{text:"Functions",url:"functions_func.html",children:[ +{text:"_",url:"functions_func.html#index__5F"}, +{text:"a",url:"functions_func_a.html#index_a"}, +{text:"b",url:"functions_func_b.html#index_b"}, +{text:"c",url:"functions_func_c.html#index_c"}, +{text:"d",url:"functions_func_d.html#index_d"}, +{text:"f",url:"functions_func_f.html#index_f"}, +{text:"g",url:"functions_func_g.html#index_g"}, +{text:"i",url:"functions_func_i.html#index_i"}, +{text:"j",url:"functions_func_j.html#index_j"}, +{text:"m",url:"functions_func_m.html#index_m"}, +{text:"o",url:"functions_func_o.html#index_o"}, +{text:"p",url:"functions_func_p.html#index_p"}, +{text:"r",url:"functions_func_r.html#index_r"}, +{text:"s",url:"functions_func_s.html#index_s"}, +{text:"t",url:"functions_func_t.html#index_t"}, +{text:"u",url:"functions_func_u.html#index_u"}, +{text:"w",url:"functions_func_w.html#index_w"}]}]}]}, +{text:"Files",url:"files.html",children:[ +{text:"File List",url:"files.html"}]}]} diff --git a/3.4.0/api/python/metadata__utils_8py_source.html b/3.4.0/api/python/metadata__utils_8py_source.html new file mode 100644 index 000000000..26487caa3 --- /dev/null +++ b/3.4.0/api/python/metadata__utils_8py_source.html @@ -0,0 +1,458 @@ + + + + + + + +ctrlX Data Layer API for Python: /var/jenkins/workspace/script.python.datalayer/ctrlxdatalayer/metadata_utils.py Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    metadata_utils.py
    +
    +
    +
    1 """
    +
    2  This module provides helper classes to deal with metadata flatbuffers.
    +
    3 """
    +
    4 from enum import IntEnum
    +
    5 
    +
    6 import flatbuffers
    +
    7 from comm.datalayer import (AllowedOperations, DisplayFormat, Extension, Metadata, NodeClass, Reference, LocaleText)
    +
    8 
    +
    9 from ctrlxdatalayer.variant import Variant
    +
    10 
    +
    11 
    +
    12 class ReferenceType:
    +
    13  """ List of reference types as strings. """
    +
    14 
    +
    15  @classmethod
    +
    16  def read(cls):
    +
    17  """ Type when reading a value (absolute node address). """
    +
    18  return "readType"
    +
    19 
    +
    20  @classmethod
    +
    21  def read_in(cls):
    +
    22  """ Input type when reading a value. """
    +
    23  return "readInType"
    +
    24 
    +
    25  @classmethod
    +
    26  def read_out(cls):
    +
    27  """ Output type when reading a value. """
    +
    28  return "readOutType"
    +
    29 
    +
    30  @classmethod
    +
    31  def write(cls):
    +
    32  """ Type when writing a value (absolute node address). Input/Output type are the same. """
    +
    33  return "writeType"
    +
    34 
    +
    35  @classmethod
    +
    36  def write_in(cls):
    +
    37  """ Input type when writing a value. """
    +
    38  return "writeInType"
    +
    39 
    +
    40  @classmethod
    +
    41  def write_out(cls):
    +
    42  """ Output type when writing a value. """
    +
    43  return "writeOutType"
    +
    44 
    +
    45  @classmethod
    +
    46  def create(cls):
    +
    47  """ Type when creating a value (absolute node address). """
    +
    48  return "createType"
    +
    49 
    +
    50  @classmethod
    +
    51  def uses(cls):
    +
    52  """ Referenced (list of) absolute node addresses. """
    +
    53  return "uses"
    +
    54 
    +
    55  @classmethod
    +
    56  def has_save(cls):
    +
    57  """
    +
    58  Reference to a save node address which needs to be called after
    +
    59  node change to persist the new value (must be <technology>/admin/cfg/save).
    +
    60  """
    +
    61  return "hasSave"
    +
    62 
    +
    63 
    +
    64 class AllowedOperation(IntEnum):
    +
    65  """
    +
    66  Allowed Operation Flags
    +
    67  """
    +
    68  NONE = 0x00000
    +
    69  READ = 0x00001
    +
    70  WRITE = 0x00010
    +
    71  CREATE = 0x00100
    +
    72  DELETE = 0x01000
    +
    73  BROWSE = 0x10000
    +
    74  ALL = READ | WRITE | CREATE | DELETE | BROWSE
    +
    75 
    +
    76 
    +
    77 class MetadataBuilder:
    +
    78  """ Builds a flatbuffer provided with the metadata information for a Data Layer node. """
    +
    79 
    +
    80  @staticmethod
    +
    81  def create_metadata(name: str, description: str, unit: str, description_url: str, node_class: NodeClass,
    +
    82  read_allowed: bool, write_allowed: bool, create_allowed: bool, delete_allowed: bool,
    +
    83  browse_allowed: bool, type_path: str, references: dict = None) -> Variant:
    +
    84  """
    +
    85  Creates a metadata Variant object from the given arguments.
    +
    86  `type_path` is used in conjunction with the allowed operations of the object.
    +
    87  `references` allow the user to set own references in the metadata object. Set `type_path` to ""
    +
    88  for full control over references.
    +
    89 
    +
    90  Returns:
    +
    91  Variant: Metadata
    +
    92  """
    +
    93  if references is None:
    +
    94  references = {}
    +
    95  builder = MetadataBuilder(allowed=AllowedOperation.NONE, description=description,
    +
    96  description_url=description_url)
    +
    97  allowed = AllowedOperation.NONE
    +
    98  if read_allowed:
    +
    99  allowed = allowed | AllowedOperation.READ
    +
    100  if len(type_path) != 0:
    +
    101  builder.add_reference(ReferenceType.read(), type_path)
    +
    102  if write_allowed:
    +
    103  allowed = allowed | AllowedOperation.WRITE
    +
    104  if len(type_path) != 0:
    +
    105  builder.add_reference(ReferenceType.write(), type_path)
    +
    106  if create_allowed:
    +
    107  allowed = allowed | AllowedOperation.CREATE
    +
    108  if len(type_path) != 0:
    +
    109  builder.add_reference(ReferenceType.create(), type_path)
    +
    110  if delete_allowed:
    +
    111  allowed = allowed | AllowedOperation.DELETE
    +
    112  if browse_allowed:
    +
    113  allowed = allowed | AllowedOperation.BROWSE
    +
    114 
    +
    115  builder.set_operations(allowed)
    +
    116  builder.set_display_name(name)
    +
    117  builder.set_node_class(node_class)
    +
    118  builder.set_unit(unit)
    +
    119 
    +
    120  # Add the custom references
    +
    121  for key, val in references.items():
    +
    122  builder.add_reference(key, val)
    +
    123 
    +
    124  return builder.build()
    +
    125 
    +
    126  def __init__(self, allowed: AllowedOperation = AllowedOperation.BROWSE, description: str = "",
    +
    127  description_url: str = ""):
    +
    128  """
    +
    129  generate MetadataBuilder
    +
    130  """
    +
    131  self.__name__name = ""
    +
    132  self.__description__description = description
    +
    133  self.__description_url__description_url = description_url
    +
    134  self.__unit__unit = ""
    +
    135  self.__node_class__node_class = NodeClass.NodeClass.Node
    +
    136  self.__allowed__allowed = AllowedOperation.ALL
    +
    137  self.__displayformat__displayformat = DisplayFormat.DisplayFormat.Auto
    +
    138  self.set_operationsset_operations(allowed)
    +
    139  self.__references__references = dict([])
    +
    140  self.__extensions__extensions = dict([])
    +
    141  self.__descriptions__descriptions = dict([])
    +
    142  self.__displaynames__displaynames = dict([])
    +
    143 
    +
    144  def build(self) -> Variant:
    +
    145  """Build Metadata as Variant
    +
    146 
    +
    147  Returns:
    +
    148  Variant: Metadata
    +
    149  """
    +
    150  # print(version("flatbuffers"))
    +
    151  return self.__buildV2__buildV2()
    +
    152 
    +
    153  def __buildV2(self) -> Variant:
    +
    154  """
    +
    155  build function flatbuffers 2.x
    +
    156  """
    +
    157  builder = flatbuffers.Builder(1024)
    +
    158 
    +
    159  # Serialize AllowedOperations data
    +
    160  operations = self.__build_operations__build_operations()
    +
    161 
    +
    162  references = self.__build_references__build_references()
    +
    163 
    +
    164  extensions = self.__build_extensions__build_extensions()
    +
    165 
    +
    166  descriptions = self.__build_descriptions__build_descriptions()
    +
    167 
    +
    168  displaynames = self.__build_display_names__build_display_names()
    +
    169 
    +
    170  meta = Metadata.MetadataT()
    +
    171  meta.description = self.__description__description
    +
    172  meta.descriptionUrl = self.__description_url__description_url
    +
    173  meta.displayName = self.__name__name
    +
    174  meta.unit = self.__unit__unit
    +
    175  meta.displayFormat = self.__displayformat__displayformat
    +
    176 
    +
    177  meta.nodeClass = self.__node_class__node_class
    +
    178  meta.operations = operations
    +
    179  meta.references = references
    +
    180  meta.extensions = extensions
    +
    181  meta.descriptions = descriptions
    +
    182  meta.displayNames = displaynames
    +
    183  # Prepare strings
    +
    184 
    +
    185  metadata_internal = meta.Pack(builder)
    +
    186 
    +
    187  # Closing operation
    +
    188  builder.Finish(metadata_internal)
    +
    189 
    +
    190  metadata = Variant()
    +
    191  metadata.set_flatbuffers(builder.Output())
    +
    192  return metadata
    +
    193 
    +
    194  def set_unit(self, unit: str):
    +
    195  """
    +
    196  set the unit
    +
    197  """
    +
    198  self.__unit__unit = unit
    +
    199  return self
    +
    200 
    +
    201  def set_display_name(self, name: str):
    +
    202  """
    +
    203  set the display name
    +
    204  """
    +
    205  self.__name__name = name
    +
    206  return self
    +
    207 
    +
    208  def set_node_class(self, node_class: NodeClass):
    +
    209  """
    +
    210  set the node class
    +
    211  """
    +
    212  self.__node_class__node_class = node_class
    +
    213  return self
    +
    214 
    +
    215  def set_operations(self, allowed: AllowedOperation = AllowedOperation.NONE):
    +
    216  """
    +
    217  set allowed operations
    +
    218  """
    +
    219  self.__allowed__allowed = allowed
    +
    220  return self
    +
    221 
    +
    222  def set_display_format(self, f: DisplayFormat.DisplayFormat.Auto):
    +
    223  """
    +
    224  set display format
    +
    225  """
    +
    226  self.__displayformat__displayformat = f
    +
    227  return self
    +
    228 
    +
    229  def add_reference(self, t: ReferenceType, addr: str):
    +
    230  """
    +
    231  add reference
    +
    232  """
    +
    233  self.__references__references[t] = addr
    +
    234 
    +
    235  def add_extensions(self, key: str, val: str):
    +
    236  """
    +
    237  add extension
    +
    238  """
    +
    239  self.__extensions__extensions[key] = val
    +
    240 
    +
    241  def add_localization_description(self, ident: str, txt: str):
    +
    242  """
    +
    243  add localization of descriptions
    +
    244  """
    +
    245  self.__descriptions__descriptions[ident] = txt
    +
    246 
    +
    247  def add_localization_display_name(self, ident: str, txt: str):
    +
    248  """
    +
    249  add localization of display names
    +
    250  """
    +
    251  self.__displaynames__displaynames[ident] = txt
    +
    252 
    +
    253  def __is_allowed(self, allowed: AllowedOperation) -> bool:
    +
    254  return (self.__allowed__allowed & allowed) == allowed
    +
    255 
    +
    256  def __build_operations(self):
    +
    257  op = AllowedOperations.AllowedOperationsT()
    +
    258  op.read = self.__is_allowed__is_allowed(AllowedOperation.READ)
    +
    259  op.write = self.__is_allowed__is_allowed(AllowedOperation.WRITE)
    +
    260  op.create = self.__is_allowed__is_allowed(AllowedOperation.CREATE)
    +
    261  op.delete = self.__is_allowed__is_allowed(AllowedOperation.DELETE)
    +
    262  op.browse = self.__is_allowed__is_allowed(AllowedOperation.BROWSE)
    +
    263  return op
    +
    264 
    +
    265  def __add_reference(self, t: ReferenceType, addr: str):
    +
    266  ref = Reference.ReferenceT()
    +
    267  ref.type = t
    +
    268  ref.targetAddress = addr
    +
    269  return ref
    +
    270 
    +
    271  def __build_references(self):
    +
    272  refs = []
    +
    273  for key in sorted(self.__references__references):
    +
    274  addr = self.__references__references[key]
    +
    275  ref = self.__add_reference__add_reference(key, addr)
    +
    276  refs.append(ref)
    +
    277  return refs
    +
    278 
    +
    279  def __add_extension(self, key: str, val: str):
    +
    280  ex = Extension.ExtensionT()
    +
    281  ex.key = key
    +
    282  ex.value = val
    +
    283  return ex
    +
    284 
    +
    285  def __build_extensions(self):
    +
    286  exts = []
    +
    287  for key in sorted(self.__extensions__extensions):
    +
    288  val = self.__extensions__extensions[key]
    +
    289  ex = self.__add_extension__add_extension(key, val)
    +
    290  exts.append(ex)
    +
    291  return exts
    +
    292 
    +
    293  def __add_local_text(self, ident: str, txt: str):
    +
    294  lt = LocaleText.LocaleTextT()
    +
    295  lt.id = ident
    +
    296  lt.text = txt
    +
    297  return lt
    +
    298 
    +
    299  def __build_local_texts(self, lst):
    +
    300  descs = []
    +
    301  for i in sorted(lst):
    +
    302  text = lst[i]
    +
    303  ex = self.__add_local_text__add_local_text(i, text)
    +
    304  descs.append(ex)
    +
    305  return descs
    +
    306 
    +
    307  def __build_descriptions(self):
    +
    308  return self.__build_local_texts__build_local_texts(self.__descriptions__descriptions)
    +
    309 
    +
    310  def __build_display_names(self):
    +
    311  return self.__build_local_texts__build_local_texts(self.__displaynames__displaynames)
    + +
    Builds a flatbuffer provided with the metadata information for a Data Layer node.
    + +
    def set_unit(self, str unit)
    set the unit
    + + + +
    def set_display_format(self, DisplayFormat.DisplayFormat.Auto f)
    set display format
    + +
    def set_display_name(self, str name)
    set the display name
    + +
    def __add_reference(self, ReferenceType t, str addr)
    +
    def set_node_class(self, NodeClass node_class)
    set the node class
    + +
    def __add_local_text(self, str ident, str txt)
    + + +
    def add_extensions(self, str key, str val)
    add extension
    +
    Variant build(self)
    Build Metadata as Variant.
    + + +
    def __init__(self, AllowedOperation allowed=AllowedOperation.BROWSE, str description="", str description_url="")
    generate MetadataBuilder
    + + +
    def __add_extension(self, str key, str val)
    +
    def add_localization_display_name(self, str ident, str txt)
    add localization of display names
    +
    def set_operations(self, AllowedOperation allowed=AllowedOperation.NONE)
    set allowed operations
    +
    bool __is_allowed(self, AllowedOperation allowed)
    + +
    def add_reference(self, ReferenceType t, str addr)
    add reference
    +
    def add_localization_description(self, str ident, str txt)
    add localization of descriptions
    + + + + +
    List of reference types as strings.
    +
    def write_out(cls)
    Output type when writing a value.
    +
    def read(cls)
    Type when reading a value (absolute node address).
    +
    def read_out(cls)
    Output type when reading a value.
    +
    def read_in(cls)
    Input type when reading a value.
    +
    def write(cls)
    Type when writing a value (absolute node address).
    +
    def uses(cls)
    Referenced (list of) absolute node addresses.
    +
    def create(cls)
    Type when creating a value (absolute node address).
    +
    def write_in(cls)
    Input type when writing a value.
    +
    Variant is a container for a many types of data.
    Definition: variant.py:150
    + +
    +
    + + + + diff --git a/3.4.0/api/python/nav_f.png b/3.4.0/api/python/nav_f.png new file mode 100644 index 000000000..72a58a529 Binary files /dev/null and b/3.4.0/api/python/nav_f.png differ diff --git a/3.4.0/api/python/nav_g.png b/3.4.0/api/python/nav_g.png new file mode 100644 index 000000000..2093a237a Binary files /dev/null and b/3.4.0/api/python/nav_g.png differ diff --git a/3.4.0/api/python/nav_h.png b/3.4.0/api/python/nav_h.png new file mode 100644 index 000000000..33389b101 Binary files /dev/null and b/3.4.0/api/python/nav_h.png differ diff --git a/3.4.0/api/python/navtree.css b/3.4.0/api/python/navtree.css new file mode 100644 index 000000000..a2fc50dc4 --- /dev/null +++ b/3.4.0/api/python/navtree.css @@ -0,0 +1,146 @@ +#nav-tree .children_ul { + margin:0; + padding:4px; +} + +#nav-tree ul { + list-style:none outside none; + margin:0px; + padding:0px; +} + +#nav-tree li { + white-space:nowrap; + margin:0px; + padding:0px; +} + +#nav-tree .plus { + margin:0px; +} + +#nav-tree .selected { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} + +#nav-tree img { + margin:0px; + padding:0px; + border:0px; + vertical-align: middle; +} + +#nav-tree a { + text-decoration:none; + padding:0px; + margin:0px; + outline:none; +} + +#nav-tree .label { + margin:0px; + padding:0px; + font: 12px 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +} + +#nav-tree .label a { + padding:2px; +} + +#nav-tree .selected a { + text-decoration:none; + color:#fff; +} + +#nav-tree .children_ul { + margin:0px; + padding:0px; +} + +#nav-tree .item { + margin:0px; + padding:0px; +} + +#nav-tree { + padding: 0px 0px; + background-color: #FAFAFF; + font-size:14px; + overflow:auto; +} + +#doc-content { + overflow:auto; + display:block; + padding:0px; + margin:0px; + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +#side-nav { + padding:0 6px 0 0; + margin: 0px; + display:block; + position: absolute; + left: 0px; + width: 250px; +} + +.ui-resizable .ui-resizable-handle { + display:block; +} + +.ui-resizable-e { + background-image:url("splitbar.png"); + background-size:100%; + background-repeat:repeat-y; + background-attachment: scroll; + cursor:ew-resize; + height:100%; + right:0; + top:0; + width:6px; +} + +.ui-resizable-handle { + display:none; + font-size:0.1px; + position:absolute; + z-index:1; +} + +#nav-tree-contents { + margin: 6px 0px 0px 0px; +} + +#nav-tree { + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +#nav-sync { + position:absolute; + top:5px; + right:24px; + z-index:0; +} + +#nav-sync img { + opacity:0.3; +} + +#nav-sync img:hover { + opacity:0.9; +} + +@media print +{ + #nav-tree { display: none; } + div.ui-resizable-handle { display: none; position: relative; } +} + diff --git a/3.4.0/api/python/navtree.js b/3.4.0/api/python/navtree.js new file mode 100644 index 000000000..8783b2dbf --- /dev/null +++ b/3.4.0/api/python/navtree.js @@ -0,0 +1,546 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +var navTreeSubIndices = new Array(); +var arrowDown = '▼'; +var arrowRight = '►'; + +function getData(varName) +{ + var i = varName.lastIndexOf('/'); + var n = i>=0 ? varName.substring(i+1) : varName; + return eval(n.replace(/\-/g,'_')); +} + +function stripPath(uri) +{ + return uri.substring(uri.lastIndexOf('/')+1); +} + +function stripPath2(uri) +{ + var i = uri.lastIndexOf('/'); + var s = uri.substring(i+1); + var m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/); + return m ? uri.substring(i-6) : s; +} + +function hashValue() +{ + return $(location).attr('hash').substring(1).replace(/[^\w\-]/g,''); +} + +function hashUrl() +{ + return '#'+hashValue(); +} + +function pathName() +{ + return $(location).attr('pathname').replace(/[^-A-Za-z0-9+&@#/%?=~_|!:,.;\(\)]/g, ''); +} + +function localStorageSupported() +{ + try { + return 'localStorage' in window && window['localStorage'] !== null && window.localStorage.getItem; + } + catch(e) { + return false; + } +} + +function storeLink(link) +{ + if (!$("#nav-sync").hasClass('sync') && localStorageSupported()) { + window.localStorage.setItem('navpath',link); + } +} + +function deleteLink() +{ + if (localStorageSupported()) { + window.localStorage.setItem('navpath',''); + } +} + +function cachedLink() +{ + if (localStorageSupported()) { + return window.localStorage.getItem('navpath'); + } else { + return ''; + } +} + +function getScript(scriptName,func,show) +{ + var head = document.getElementsByTagName("head")[0]; + var script = document.createElement('script'); + script.id = scriptName; + script.type = 'text/javascript'; + script.onload = func; + script.src = scriptName+'.js'; + head.appendChild(script); +} + +function createIndent(o,domNode,node,level) +{ + var level=-1; + var n = node; + while (n.parentNode) { level++; n=n.parentNode; } + if (node.childrenData) { + var imgNode = document.createElement("span"); + imgNode.className = 'arrow'; + imgNode.style.paddingLeft=(16*level).toString()+'px'; + imgNode.innerHTML=arrowRight; + node.plus_img = imgNode; + node.expandToggle = document.createElement("a"); + node.expandToggle.href = "javascript:void(0)"; + node.expandToggle.onclick = function() { + if (node.expanded) { + $(node.getChildrenUL()).slideUp("fast"); + node.plus_img.innerHTML=arrowRight; + node.expanded = false; + } else { + expandNode(o, node, false, false); + } + } + node.expandToggle.appendChild(imgNode); + domNode.appendChild(node.expandToggle); + } else { + var span = document.createElement("span"); + span.className = 'arrow'; + span.style.width = 16*(level+1)+'px'; + span.innerHTML = ' '; + domNode.appendChild(span); + } +} + +var animationInProgress = false; + +function gotoAnchor(anchor,aname,updateLocation) +{ + var pos, docContent = $('#doc-content'); + var ancParent = $(anchor.parent()); + if (ancParent.hasClass('memItemLeft') || + ancParent.hasClass('memtitle') || + ancParent.hasClass('fieldname') || + ancParent.hasClass('fieldtype') || + ancParent.is(':header')) + { + pos = ancParent.position().top; + } else if (anchor.position()) { + pos = anchor.position().top; + } + if (pos) { + var dist = Math.abs(Math.min( + pos-docContent.offset().top, + docContent[0].scrollHeight- + docContent.height()-docContent.scrollTop())); + animationInProgress=true; + docContent.animate({ + scrollTop: pos + docContent.scrollTop() - docContent.offset().top + },Math.max(50,Math.min(500,dist)),function(){ + if (updateLocation) window.location.href=aname; + animationInProgress=false; + }); + } +} + +function newNode(o, po, text, link, childrenData, lastNode) +{ + var node = new Object(); + node.children = Array(); + node.childrenData = childrenData; + node.depth = po.depth + 1; + node.relpath = po.relpath; + node.isLast = lastNode; + + node.li = document.createElement("li"); + po.getChildrenUL().appendChild(node.li); + node.parentNode = po; + + node.itemDiv = document.createElement("div"); + node.itemDiv.className = "item"; + + node.labelSpan = document.createElement("span"); + node.labelSpan.className = "label"; + + createIndent(o,node.itemDiv,node,0); + node.itemDiv.appendChild(node.labelSpan); + node.li.appendChild(node.itemDiv); + + var a = document.createElement("a"); + node.labelSpan.appendChild(a); + node.label = document.createTextNode(text); + node.expanded = false; + a.appendChild(node.label); + if (link) { + var url; + if (link.substring(0,1)=='^') { + url = link.substring(1); + link = url; + } else { + url = node.relpath+link; + } + a.className = stripPath(link.replace('#',':')); + if (link.indexOf('#')!=-1) { + var aname = '#'+link.split('#')[1]; + var srcPage = stripPath(pathName()); + var targetPage = stripPath(link.split('#')[0]); + a.href = srcPage!=targetPage ? url : "javascript:void(0)"; + a.onclick = function(){ + storeLink(link); + if (!$(a).parent().parent().hasClass('selected')) + { + $('.item').removeClass('selected'); + $('.item').removeAttr('id'); + $(a).parent().parent().addClass('selected'); + $(a).parent().parent().attr('id','selected'); + } + var anchor = $(aname); + gotoAnchor(anchor,aname,true); + }; + } else { + a.href = url; + a.onclick = function() { storeLink(link); } + } + } else { + if (childrenData != null) + { + a.className = "nolink"; + a.href = "javascript:void(0)"; + a.onclick = node.expandToggle.onclick; + } + } + + node.childrenUL = null; + node.getChildrenUL = function() { + if (!node.childrenUL) { + node.childrenUL = document.createElement("ul"); + node.childrenUL.className = "children_ul"; + node.childrenUL.style.display = "none"; + node.li.appendChild(node.childrenUL); + } + return node.childrenUL; + }; + + return node; +} + +function showRoot() +{ + var headerHeight = $("#top").height(); + var footerHeight = $("#nav-path").height(); + var windowHeight = $(window).height() - headerHeight - footerHeight; + (function (){ // retry until we can scroll to the selected item + try { + var navtree=$('#nav-tree'); + navtree.scrollTo('#selected',100,{offset:-windowHeight/2}); + } catch (err) { + setTimeout(arguments.callee, 0); + } + })(); +} + +function expandNode(o, node, imm, showRoot) +{ + if (node.childrenData && !node.expanded) { + if (typeof(node.childrenData)==='string') { + var varName = node.childrenData; + getScript(node.relpath+varName,function(){ + node.childrenData = getData(varName); + expandNode(o, node, imm, showRoot); + }, showRoot); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } + $(node.getChildrenUL()).slideDown("fast"); + node.plus_img.innerHTML = arrowDown; + node.expanded = true; + } + } +} + +function glowEffect(n,duration) +{ + n.addClass('glow').delay(duration).queue(function(next){ + $(this).removeClass('glow');next(); + }); +} + +function highlightAnchor() +{ + var aname = hashUrl(); + var anchor = $(aname); + if (anchor.parent().attr('class')=='memItemLeft'){ + var rows = $('.memberdecls tr[class$="'+hashValue()+'"]'); + glowEffect(rows.children(),300); // member without details + } else if (anchor.parent().attr('class')=='fieldname'){ + glowEffect(anchor.parent().parent(),1000); // enum value + } else if (anchor.parent().attr('class')=='fieldtype'){ + glowEffect(anchor.parent().parent(),1000); // struct field + } else if (anchor.parent().is(":header")) { + glowEffect(anchor.parent(),1000); // section header + } else { + glowEffect(anchor.next(),1000); // normal member + } +} + +function selectAndHighlight(hash,n) +{ + var a; + if (hash) { + var link=stripPath(pathName())+':'+hash.substring(1); + a=$('.item a[class$="'+link+'"]'); + } + if (a && a.length) { + a.parent().parent().addClass('selected'); + a.parent().parent().attr('id','selected'); + highlightAnchor(); + } else if (n) { + $(n.itemDiv).addClass('selected'); + $(n.itemDiv).attr('id','selected'); + } + if ($('#nav-tree-contents .item:first').hasClass('selected')) { + $('#nav-sync').css('top','30px'); + } else { + $('#nav-sync').css('top','5px'); + } + showRoot(); +} + +function showNode(o, node, index, hash) +{ + if (node && node.childrenData) { + if (typeof(node.childrenData)==='string') { + var varName = node.childrenData; + getScript(node.relpath+varName,function(){ + node.childrenData = getData(varName); + showNode(o,node,index,hash); + },true); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } + $(node.getChildrenUL()).css({'display':'block'}); + node.plus_img.innerHTML = arrowDown; + node.expanded = true; + var n = node.children[o.breadcrumbs[index]]; + if (index+11) hash = '#'+parts[1].replace(/[^\w\-]/g,''); + else hash=''; + } + if (hash.match(/^#l\d+$/)) { + var anchor=$('a[name='+hash.substring(1)+']'); + glowEffect(anchor.parent(),1000); // line number + hash=''; // strip line number anchors + } + var url=root+hash; + var i=-1; + while (NAVTREEINDEX[i+1]<=url) i++; + if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath) + } else { + getScript(relpath+'navtreeindex'+i,function(){ + navTreeSubIndices[i] = eval('NAVTREEINDEX'+i); + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath); + } + },true); + } +} + +function showSyncOff(n,relpath) +{ + n.html(''); +} + +function showSyncOn(n,relpath) +{ + n.html(''); +} + +function toggleSyncButton(relpath) +{ + var navSync = $('#nav-sync'); + if (navSync.hasClass('sync')) { + navSync.removeClass('sync'); + showSyncOff(navSync,relpath); + storeLink(stripPath2(pathName())+hashUrl()); + } else { + navSync.addClass('sync'); + showSyncOn(navSync,relpath); + deleteLink(); + } +} + +var loadTriggered = false; +var readyTriggered = false; +var loadObject,loadToRoot,loadUrl,loadRelPath; + +$(window).on('load',function(){ + if (readyTriggered) { // ready first + navTo(loadObject,loadToRoot,loadUrl,loadRelPath); + showRoot(); + } + loadTriggered=true; +}); + +function initNavTree(toroot,relpath) +{ + var o = new Object(); + o.toroot = toroot; + o.node = new Object(); + o.node.li = document.getElementById("nav-tree-contents"); + o.node.childrenData = NAVTREE; + o.node.children = new Array(); + o.node.childrenUL = document.createElement("ul"); + o.node.getChildrenUL = function() { return o.node.childrenUL; }; + o.node.li.appendChild(o.node.childrenUL); + o.node.depth = 0; + o.node.relpath = relpath; + o.node.expanded = false; + o.node.isLast = true; + o.node.plus_img = document.createElement("span"); + o.node.plus_img.className = 'arrow'; + o.node.plus_img.innerHTML = arrowRight; + + if (localStorageSupported()) { + var navSync = $('#nav-sync'); + if (cachedLink()) { + showSyncOff(navSync,relpath); + navSync.removeClass('sync'); + } else { + showSyncOn(navSync,relpath); + } + navSync.click(function(){ toggleSyncButton(relpath); }); + } + + if (loadTriggered) { // load before ready + navTo(o,toroot,hashUrl(),relpath); + showRoot(); + } else { // ready before load + loadObject = o; + loadToRoot = toroot; + loadUrl = hashUrl(); + loadRelPath = relpath; + readyTriggered=true; + } + + $(window).bind('hashchange', function(){ + if (window.location.hash && window.location.hash.length>1){ + var a; + if ($(location).attr('hash')){ + var clslink=stripPath(pathName())+':'+hashValue(); + a=$('.item a[class$="'+clslink.replace(/ + + + + + + +ctrlX Data Layer API for Python: /var/jenkins/workspace/script.python.datalayer/ctrlxdatalayer/provider.py Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    provider.py
    +
    +
    +
    1 """
    +
    2 Class Provider
    +
    3 """
    +
    4 import ctrlxdatalayer
    +
    5 from ctrlxdatalayer.clib_provider import C_DLR_PROVIDER
    +
    6 from ctrlxdatalayer.provider_node import ProviderNode
    +
    7 from ctrlxdatalayer.variant import Result, Variant
    +
    8 
    +
    9 
    +
    10 class Provider:
    +
    11  """
    +
    12  Provider interface to manage provider nodes
    +
    13  Hint: see python context manager for instance handling
    +
    14  """
    +
    15 
    +
    16  __slots__ = ['__provider', '__closed']
    +
    17 
    +
    18  def __init__(self, c_provider: C_DLR_PROVIDER):
    +
    19  """
    +
    20  generate Provider
    +
    21  """
    +
    22  self.__provider: C_DLR_PROVIDER = c_provider
    +
    23  self.__closed__closed = False
    +
    24 
    +
    25  def __enter__(self):
    +
    26  """
    +
    27  use the python context manager
    +
    28  """
    +
    29  return self
    +
    30 
    +
    31  def __exit__(self, exc_type, exc_val, exc_tb):
    +
    32  """
    +
    33  use the python context manager
    +
    34  """
    +
    35  self.closeclose()
    +
    36 
    +
    37  def close(self):
    +
    38  """
    +
    39  closes the provider instance
    +
    40  """
    +
    41  if self.__closed__closed:
    +
    42  return
    +
    43  self.__closed__closed = True
    +
    44  ctrlxdatalayer.clib.libcomm_datalayer.DLR_providerStop(self.__provider)
    +
    45  ctrlxdatalayer.clib.libcomm_datalayer.DLR_providerDelete(
    +
    46  self.__provider)
    +
    47 
    +
    48  def register_type(self, address: str, pathname: str) -> Result:
    +
    49  """
    +
    50  Register a type to the datalayer
    +
    51  @param[in] address Address of the node to register (no wildcards allowed)
    +
    52  @param[in] pathname Path to flatbuffer bfbs
    +
    53  @returns <Result>, status of function call
    +
    54  """
    +
    55  b_address = address.encode('utf-8')
    +
    56  b_pathname = pathname.encode('utf-8')
    +
    57  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_providerRegisterType(self.__provider, b_address, b_pathname))
    +
    58 
    +
    59  def unregister_type(self, address: str) -> Result:
    +
    60  """
    +
    61  Unregister a type from the datalayer
    +
    62  @param[in] address Address of the node to register (wildcards allowed)
    +
    63  @returns <Result>, status of function call
    +
    64  """
    +
    65  b_address = address.encode('utf-8')
    +
    66  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_providerUnregisterType(self.__provider, b_address))
    +
    67 
    +
    68  def register_node(self, address: str, node: ProviderNode) -> Result:
    +
    69  """
    +
    70  Register a node to the datalayer
    +
    71  @param[in] address Address of the node to register (wildcards allowed)
    +
    72  @param[in] node Node to register
    +
    73  @returns <Result>, status of function call
    +
    74  """
    +
    75  b_address = address.encode('utf-8')
    +
    76  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_providerRegisterNode(self.__provider, b_address, node.get_handle()))
    +
    77 
    +
    78  def unregister_node(self, address: str) -> Result:
    +
    79  """
    +
    80  Unregister a node from the datalayer
    +
    81  @param[in] address Address of the node to register (wildcards allowed)
    +
    82  @returns <Result>, status of function call
    +
    83  """
    +
    84  b_address = address.encode('utf-8')
    +
    85  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_providerUnregisterNode(self.__provider, b_address))
    +
    86 
    +
    87  def set_timeout_node(self, node: ProviderNode, timeout_ms: int) -> Result:
    +
    88  """
    +
    89  Set timeout for a node for asynchron requests (default value is 1000ms)
    +
    90  @param[in] node Node to set timeout for
    +
    91  @param[in] timeoutMS Timeout in milliseconds for this node
    +
    92  @returns <Result>, status of function call
    +
    93  """
    +
    94  if node is None:
    +
    95  return Result.FAILED
    +
    96  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_providerSetTimeoutNode(self.__provider, node.get_handle(), timeout_ms))
    +
    97 
    +
    98  def start(self) -> Result:
    +
    99  """
    +
    100  Start the provider
    +
    101  @returns <Result>, status of function call
    +
    102  """
    +
    103  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_providerStart(self.__provider))
    +
    104 
    +
    105  def stop(self) -> Result:
    +
    106  """
    +
    107  Stop the provider
    +
    108  @returns <Result>, status of function call
    +
    109  """
    +
    110  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_providerStop(self.__provider))
    +
    111 
    +
    112  def is_connected(self) -> bool:
    +
    113  """
    +
    114  returns whether provider is connected
    +
    115  @returns status of connection
    +
    116  """
    +
    117  return ctrlxdatalayer.clib.libcomm_datalayer.DLR_providerIsConnected(self.__provider)
    +
    118 
    +
    119  def get_token(self) -> Variant:
    +
    120  """
    +
    121  return the current token of the current request.You can call this function during your onRead, onWrite, ... methods of your ProviderNodes. If there is no current request the method return an empty token
    +
    122  @returns <Variant> current token
    +
    123  """
    +
    124  return Variant(ctrlxdatalayer.clib.libcomm_datalayer.DLR_providerGetToken(self.__provider))
    +
    125 
    +
    126  def register_type_variant(self, address: str, data: Variant) -> Result:
    +
    127  """
    +
    128  Register a type to the datalayer
    +
    129  @param[in] address Address of the node to register (no wildcards allowed)
    +
    130  @param[in] data Variant with flatbuffer type
    +
    131  @returns <Result>, status of function call
    +
    132  """
    +
    133  b_address = address.encode('utf-8')
    +
    134  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_providerRegisterTypeVariant(self.__provider, b_address, data.get_handle()))
    + +
    Variant get_token(self)
    return the current token of the current request.You can call this function during your onRead,...
    Definition: provider.py:123
    +
    Result stop(self)
    Stop the provider.
    Definition: provider.py:109
    +
    Result register_type_variant(self, str address, Variant data)
    Register a type to the datalayer.
    Definition: provider.py:132
    +
    def __exit__(self, exc_type, exc_val, exc_tb)
    use the python context manager
    Definition: provider.py:34
    +
    Result register_type(self, str address, str pathname)
    Register a type to the datalayer.
    Definition: provider.py:54
    +
    def __enter__(self)
    use the python context manager
    Definition: provider.py:28
    +
    Result unregister_node(self, str address)
    Unregister a node from the datalayer.
    Definition: provider.py:83
    + +
    Result start(self)
    Start the provider.
    Definition: provider.py:102
    +
    def close(self)
    closes the provider instance
    Definition: provider.py:40
    +
    def __init__(self, C_DLR_PROVIDER c_provider)
    generate Provider
    Definition: provider.py:21
    +
    bool is_connected(self)
    returns whether provider is connected
    Definition: provider.py:116
    +
    Result unregister_type(self, str address)
    Unregister a type from the datalayer.
    Definition: provider.py:64
    +
    Result register_node(self, str address, ProviderNode node)
    Register a node to the datalayer.
    Definition: provider.py:74
    +
    Result set_timeout_node(self, ProviderNode node, int timeout_ms)
    Set timeout for a node for asynchron requests (default value is 1000ms)
    Definition: provider.py:93
    + +
    Variant is a container for a many types of data.
    Definition: variant.py:150
    + + +
    +
    + + + + diff --git a/3.4.0/api/python/provider__node_8py_source.html b/3.4.0/api/python/provider__node_8py_source.html new file mode 100644 index 000000000..e53ce2bb3 --- /dev/null +++ b/3.4.0/api/python/provider__node_8py_source.html @@ -0,0 +1,383 @@ + + + + + + + +ctrlX Data Layer API for Python: /var/jenkins/workspace/script.python.datalayer/ctrlxdatalayer/provider_node.py Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    provider_node.py
    +
    +
    +
    1 """
    +
    2 Class Provider Node
    +
    3 """
    +
    4 import ctypes
    +
    5 import typing
    +
    6 
    +
    7 import ctrlxdatalayer
    +
    8 from ctrlxdatalayer.clib import C_DLR_RESULT
    +
    9 from ctrlxdatalayer.clib_provider_node import (
    +
    10  C_DLR_PROVIDER_NODE_CALLBACK, C_DLR_PROVIDER_NODE_CALLBACKDATA,
    +
    11  C_DLR_PROVIDER_NODE_CALLBACKS, C_DLR_PROVIDER_NODE_FUNCTION,
    +
    12  C_DLR_PROVIDER_NODE_FUNCTION_DATA, C_DLR_PROVIDER_SUBSCRIPTION_FUNCTION,
    +
    13  C_DLR_SUBSCRIPTION, C_DLR_VARIANT, address_c_char_p, userData_c_void_p)
    +
    14 from ctrlxdatalayer.provider_subscription import ProviderSubscription
    +
    15 from ctrlxdatalayer.variant import Result, Variant, VariantRef
    +
    16 
    +
    17 NodeCallback = typing.Callable[[Result, typing.Optional[Variant]], None]
    +
    18 NodeFunction = typing.Callable[[userData_c_void_p, str, NodeCallback], None]
    +
    19 NodeFunctionData = typing.Callable[[
    +
    20  userData_c_void_p, str, Variant, NodeCallback], None]
    +
    21 NodeFunctionSubscription = typing.Callable[[
    +
    22  userData_c_void_p, ProviderSubscription, str], None]
    +
    23 
    +
    24 class _CallbackPtr:
    +
    25  """
    +
    26  _CallbackPtr helper
    +
    27  """
    +
    28 
    +
    29  __slots__ = ['_ptr']
    +
    30 
    +
    31  def __init__(self):
    +
    32  """
    +
    33  init _CallbackPtr
    +
    34  """
    +
    35  self._ptr_ptr: typing.Optional[ctypes._CFuncPtr] = None
    +
    36 
    +
    37  def set_ptr(self, ptr):
    +
    38  """
    +
    39  setter _CallbackPtr
    +
    40  """
    +
    41  self._ptr_ptr = ptr
    +
    42 
    +
    43  def get_ptr(self):
    +
    44  """
    +
    45  getter _CallbackPtr
    +
    46  """
    +
    47  return self._ptr_ptr
    +
    48 
    +
    49 
    + +
    51  """
    +
    52  Provider Node callbacks interface
    +
    53  """
    +
    54  __slots__ = ['on_create', 'on_remove', 'on_browse',
    +
    55  'on_read', 'on_write', 'on_metadata',
    +
    56  'on_subscribe', 'on_unsubscribe']
    +
    57 
    +
    58  def __init__(self,
    +
    59  on_create: NodeFunctionData,
    +
    60  on_remove: NodeFunction,
    +
    61  on_browse: NodeFunction,
    +
    62  on_read: NodeFunctionData,
    +
    63  on_write: NodeFunctionData,
    +
    64  on_metadata: NodeFunction,
    +
    65  on_subscribe: NodeFunctionSubscription = None,
    +
    66  on_unsubscribe: NodeFunctionSubscription = None):
    +
    67  """
    +
    68  init ProviderNodeCallbacks
    +
    69  """
    +
    70  self.on_createon_create = on_create
    +
    71  self.on_removeon_remove = on_remove
    +
    72  self.on_browseon_browse = on_browse
    +
    73  self.on_readon_read = on_read
    +
    74  self.on_writeon_write = on_write
    +
    75  self.on_metadataon_metadata = on_metadata
    +
    76  self.on_subscribeon_subscribe = on_subscribe
    +
    77  self.on_unsubscribeon_unsubscribe = on_unsubscribe
    +
    78 
    +
    79 
    +
    80 class ProviderNode:
    +
    81  """
    +
    82  Provider node interface for providing data to the system
    +
    83 
    +
    84  Hint: see python context manager for instance handling
    +
    85  """
    +
    86  __slots__ = ['__ptrs', '__c_cbs', '__closed', '__provider_node']
    +
    87 
    +
    88  def __init__(self, cbs: ProviderNodeCallbacks, userdata: userData_c_void_p = None):
    +
    89  """
    +
    90  init ProviderNode
    +
    91  """
    +
    92  self.__ptrs: typing.List[_CallbackPtr] = []
    +
    93  if cbs.on_subscribe is None:
    +
    94  self.__c_cbs__c_cbs = C_DLR_PROVIDER_NODE_CALLBACKS(
    +
    95  userdata,
    +
    96  self.__create_function_data__create_function_data(cbs.on_create),
    +
    97  self.__create_function__create_function(cbs.on_remove),
    +
    98  self.__create_function__create_function(cbs.on_browse),
    +
    99  self.__create_function_data__create_function_data(cbs.on_read),
    +
    100  self.__create_function_data__create_function_data(cbs.on_write),
    +
    101  self.__create_function__create_function(cbs.on_metadata),
    +
    102  )
    +
    103  else:
    +
    104  self.__c_cbs__c_cbs = C_DLR_PROVIDER_NODE_CALLBACKS(
    +
    105  userdata,
    +
    106  self.__create_function_data__create_function_data(cbs.on_create),
    +
    107  self.__create_function__create_function(cbs.on_remove),
    +
    108  self.__create_function__create_function(cbs.on_browse),
    +
    109  self.__create_function_data__create_function_data(cbs.on_read),
    +
    110  self.__create_function_data__create_function_data(cbs.on_write),
    +
    111  self.__create_function__create_function(cbs.on_metadata),
    +
    112  self.__create_function_subscribe__create_function_subscribe(cbs.on_subscribe),
    +
    113  self.__create_function_subscribe__create_function_subscribe(cbs.on_unsubscribe)
    +
    114  )
    +
    115 
    +
    116  self.__closed__closed = False
    +
    117  self.__provider_node__provider_node = ctrlxdatalayer.clib.libcomm_datalayer.DLR_providerNodeCreate(
    +
    118  self.__c_cbs__c_cbs)
    +
    119 
    +
    120  def __enter__(self):
    +
    121  """
    +
    122  use the python context manager
    +
    123  """
    +
    124  return self
    +
    125 
    +
    126  def __exit__(self, exc_type, exc_val, exc_tb):
    +
    127  """
    +
    128  use the python context manager
    +
    129  """
    +
    130  self.closeclose()
    +
    131 
    +
    132  def __del__(self):
    +
    133  """
    +
    134  __del__
    +
    135  """
    +
    136  self.closeclose()
    +
    137 
    +
    138  def close(self):
    +
    139  """
    +
    140  closes the node instance
    +
    141  """
    +
    142  if self.__closed__closed:
    +
    143  return
    +
    144  self.__closed__closed = True
    +
    145  ctrlxdatalayer.clib.libcomm_datalayer.DLR_providerNodeDelete(
    +
    146  self.__provider_node__provider_node)
    +
    147  self.__ptrs.clear()
    +
    148  self.__c_cbs__c_cbs = None
    +
    149 
    +
    150  def get_handle(self):
    +
    151  """
    +
    152  handle value of ProviderNode
    +
    153  """
    +
    154  return self.__provider_node__provider_node
    +
    155 
    +
    156  def __create_callback(self,
    +
    157  c_cb: C_DLR_PROVIDER_NODE_CALLBACK,
    +
    158  c_cbdata: C_DLR_PROVIDER_NODE_CALLBACKDATA) -> NodeCallback:
    +
    159  """
    +
    160  create callback
    +
    161  """
    +
    162  def cb(result: Result, data: typing.Optional[Variant]):
    +
    163  """ cb """
    +
    164  if data is None:
    +
    165  c_cb(c_cbdata, result.value, None)
    +
    166  else:
    +
    167  c_cb(c_cbdata, result.value, data.get_handle())
    +
    168  return cb
    +
    169 
    +
    170  def __create_function(self, func: NodeFunction):
    +
    171  """
    +
    172  create callback management
    +
    173  """
    +
    174  cb_ptr = _CallbackPtr()
    +
    175  self.__ptrs.append(cb_ptr)
    +
    176 
    +
    177  def _func(c_userdata: userData_c_void_p,
    +
    178  c_address: address_c_char_p,
    +
    179  c_cb: C_DLR_PROVIDER_NODE_CALLBACK,
    +
    180  c_cbdata: C_DLR_PROVIDER_NODE_CALLBACKDATA) -> C_DLR_RESULT:
    +
    181  """
    +
    182  datalayer calls this function
    +
    183  """
    +
    184  address = c_address.decode('utf-8')
    +
    185  cb = self.__create_callback__create_callback(c_cb, c_cbdata)
    +
    186  func(c_userdata, address, cb)
    +
    187  return Result.OK.value
    +
    188  cb_ptr.set_ptr(C_DLR_PROVIDER_NODE_FUNCTION(_func))
    +
    189  return cb_ptr.get_ptr()
    +
    190 
    +
    191  def __create_function_data(self, func: NodeFunctionData):
    +
    192  """
    +
    193  create callback management
    +
    194  """
    +
    195  cb_ptr = _CallbackPtr()
    +
    196  self.__ptrs.append(cb_ptr)
    +
    197 
    +
    198  def _func(c_userdata: userData_c_void_p,
    +
    199  c_address: address_c_char_p,
    +
    200  c_data: C_DLR_VARIANT,
    +
    201  c_cb: C_DLR_PROVIDER_NODE_CALLBACK,
    +
    202  c_cbdata: C_DLR_PROVIDER_NODE_CALLBACKDATA) -> C_DLR_RESULT:
    +
    203  """
    +
    204  datalayer calls this function
    +
    205  """
    +
    206  address = c_address.decode('utf-8')
    +
    207  data = VariantRef(c_data)
    +
    208  cb = self.__create_callback__create_callback(c_cb, c_cbdata)
    +
    209  func(c_userdata, address, data, cb)
    +
    210  return Result.OK.value
    +
    211  cb_ptr.set_ptr(C_DLR_PROVIDER_NODE_FUNCTION_DATA(_func))
    +
    212  return cb_ptr.get_ptr()
    +
    213 
    +
    214  def __create_function_subscribe(self, func: NodeFunctionSubscription):
    +
    215  """
    +
    216  create callback managment
    +
    217  """
    +
    218  cb_ptr = _CallbackPtr()
    +
    219  self.__ptrs.append(cb_ptr)
    +
    220 
    +
    221  def _func(c_userdata: userData_c_void_p,
    +
    222  c_subscribe: C_DLR_SUBSCRIPTION,
    +
    223  c_address: address_c_char_p) -> C_DLR_RESULT:
    +
    224  """
    +
    225  datalayer calls this function
    +
    226  """
    +
    227  if c_address is None:
    +
    228  return Result.OK.value
    +
    229  if func is None:
    +
    230  return Result.OK.value
    +
    231  address = c_address.decode('utf-8')
    +
    232  sub = ProviderSubscription(c_subscribe)
    +
    233  func(c_userdata, sub, address)
    +
    234  return Result.OK.value
    +
    235  cb_ptr.set_ptr(C_DLR_PROVIDER_SUBSCRIPTION_FUNCTION(_func))
    +
    236  return cb_ptr.get_ptr()
    +
    237 
    +
    238  def _test_function(self, func: NodeFunction):
    +
    239  """
    +
    240  internal use
    +
    241  """
    +
    242  return self.__create_function__create_function(func)
    +
    243 
    +
    244  def _test_function_data(self, func: NodeFunctionData):
    +
    245  """
    +
    246  internal use
    +
    247  """
    +
    248  return self.__create_function_data__create_function_data(func)
    +
    Provider Node callbacks interface.
    +
    def __init__(self, NodeFunctionData on_create, NodeFunction on_remove, NodeFunction on_browse, NodeFunctionData on_read, NodeFunctionData on_write, NodeFunction on_metadata, NodeFunctionSubscription on_subscribe=None, NodeFunctionSubscription on_unsubscribe=None)
    init ProviderNodeCallbacks
    + + + + + + + + +
    Provider node interface for providing data to the system.
    +
    def __exit__(self, exc_type, exc_val, exc_tb)
    use the python context manager
    +
    def __create_function_subscribe(self, NodeFunctionSubscription func)
    +
    def __enter__(self)
    use the python context manager
    + + + + +
    def __create_function_data(self, NodeFunctionData func)
    +
    def close(self)
    closes the node instance
    +
    def get_handle(self)
    handle value of ProviderNode
    +
    def __create_function(self, NodeFunction func)
    +
    NodeCallback __create_callback(self, C_DLR_PROVIDER_NODE_CALLBACK c_cb, C_DLR_PROVIDER_NODE_CALLBACKDATA c_cbdata)
    +
    def __init__(self, ProviderNodeCallbacks cbs, userData_c_void_p userdata=None)
    init ProviderNode
    + +
    def set_ptr(self, ptr)
    setter _CallbackPtr
    + +
    def get_ptr(self)
    getter _CallbackPtr
    +
    def __init__(self)
    init _CallbackPtr
    + + + + + +
    +
    + + + + diff --git a/3.4.0/api/python/provider__subscription_8py_source.html b/3.4.0/api/python/provider__subscription_8py_source.html new file mode 100644 index 000000000..03c6b67d7 --- /dev/null +++ b/3.4.0/api/python/provider__subscription_8py_source.html @@ -0,0 +1,490 @@ + + + + + + + +ctrlX Data Layer API for Python: /var/jenkins/workspace/script.python.datalayer/ctrlxdatalayer/provider_subscription.py Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    provider_subscription.py
    +
    +
    +
    1 
    +
    2 
    +
    3 import ctypes
    +
    4 import datetime
    +
    5 from enum import Enum
    +
    6 import typing
    +
    7 
    +
    8 import comm.datalayer.SubscriptionProperties
    +
    9 import flatbuffers
    +
    10 from comm.datalayer import NotifyInfo
    +
    11 
    +
    12 import ctrlxdatalayer
    +
    13 import ctrlxdatalayer.clib_provider_node
    +
    14 from ctrlxdatalayer.clib_provider_node import C_DLR_SUBSCRIPTION
    +
    15 from ctrlxdatalayer.variant import Result, Variant, VariantRef
    +
    16 
    +
    17 
    +
    18 def _subscription_get_timestamp(sub: C_DLR_SUBSCRIPTION) -> ctypes.c_uint64:
    +
    19  """_subscription_get_timestamp
    +
    20 
    +
    21  Args:
    +
    22  sub (C_DLR_SUBSCRIPTION): Reference to the subscription
    +
    23 
    +
    24  Returns:
    +
    25  c_uint64: timestamp
    +
    26  """
    +
    27  return ctrlxdatalayer.clib.libcomm_datalayer.DLR_SubscriptionGetTimestamp(sub)
    +
    28 
    +
    29 
    +
    30 def _subscription_get_props(sub: C_DLR_SUBSCRIPTION) -> VariantRef:
    +
    31  """_subscription_get_props
    +
    32 
    +
    33  Args:
    +
    34  sub (C_DLR_SUBSCRIPTION): Reference to the subscription
    +
    35 
    +
    36  Returns:
    +
    37  VariantRef: Properties of Subscription in a Variant (see sub_properties.fbs)
    +
    38  """
    +
    39  return VariantRef(ctrlxdatalayer.clib.libcomm_datalayer.DLR_SubscriptionGetProps(sub))
    +
    40 
    +
    41 
    +
    42 def _subscription_get_nodes(sub: C_DLR_SUBSCRIPTION) -> Variant:
    +
    43  """_subscription_get_nodes
    +
    44 
    +
    45  Args:
    +
    46  sub (C_DLR_SUBSCRIPTION): Reference to the subscription
    +
    47 
    +
    48  Returns:
    +
    49  Variant: Subscribed nodes as array of strings
    +
    50  """
    +
    51  v = Variant()
    +
    52  ctrlxdatalayer.clib.libcomm_datalayer.DLR_SubscriptionGetNodes(
    +
    53  sub, v.get_handle())
    +
    54  return v
    +
    55 
    +
    56 class NotifyTypePublish(Enum):
    +
    57  """NotifyTypePublish
    +
    58  """
    +
    59  DATA = 0
    +
    60  BROWSE = 1
    +
    61  METADATA = 2
    +
    62  KEEPALIVE = 3
    +
    63  TYPE = 4
    +
    64  EVENT = 5
    +
    65 
    +
    66 class NotifyInfoPublish:
    +
    67  """NotifyInfoPublish
    +
    68 
    +
    69  containing notify_info.fbs (address, timestamp, type, ...)
    +
    70  """
    +
    71 
    +
    72  __slots__ = ['__node', '__timestamp', '__notify_type', \
    +
    73  '__event_type', '__sequence_number', '__source_name']
    +
    74 
    +
    75  def __init__(self, node_address: str):
    +
    76  """__init__
    +
    77 
    +
    78  Args:
    +
    79  node_address (str):
    +
    80  """
    +
    81  self.__node__node = node_address
    +
    82  self.__timestamp__timestamp = datetime.datetime.now()
    +
    83  self.__notify_type__notify_type = NotifyTypePublish.DATA
    +
    84  self.__event_type__event_type = None
    +
    85  self.__sequence_number__sequence_number = 0
    +
    86  self.__source_name__source_name = None
    +
    87 
    +
    88  def get_node(self) -> str:
    +
    89  """get_node
    +
    90 
    +
    91  Returns:
    +
    92  str: node address
    +
    93  """
    +
    94  return self.__node__node
    +
    95 
    +
    96  def set_timestamp(self, dt: datetime.datetime):
    +
    97  """set_timestamp
    +
    98 
    +
    99  Args:
    +
    100  dt (datetime.datetime):
    +
    101  """
    +
    102  self.__timestamp__timestamp = dt
    +
    103  return self
    +
    104 
    +
    105  def get_timestamp(self):
    +
    106  """get_timestamp
    +
    107 
    +
    108  Returns:
    +
    109  datetime.datetime:
    +
    110  """
    +
    111  return self.__timestamp__timestamp
    +
    112 
    +
    113  def set_notify_type(self, nt: NotifyTypePublish):
    +
    114  """set_notify_type
    +
    115 
    +
    116  Args:
    +
    117  nt (NotifyTypePublish):
    +
    118  """
    +
    119  self.__notify_type__notify_type = nt
    +
    120  return self
    +
    121 
    +
    122  def get_notify_type(self) -> NotifyTypePublish:
    +
    123  """get_notify_type
    +
    124 
    +
    125  Returns:
    +
    126  NotifyTypePublish:
    +
    127  """
    +
    128  return self.__notify_type__notify_type
    +
    129 
    +
    130  def set_event_type(self, et: str):
    +
    131  """set_event_type
    +
    132  In case of an event, this string contains the information
    +
    133  what EventType has been fired.
    +
    134  E.g.: "types/events/ExampleEvent"
    +
    135  Args:
    +
    136  et (str):
    +
    137  """
    +
    138  self.__event_type__event_type = et
    +
    139  return self
    +
    140 
    +
    141  def get_event_type(self) -> str:
    +
    142  """get_event_type
    +
    143 
    +
    144  Returns:
    +
    145  str:
    +
    146  """
    +
    147  return self.__event_type__event_type
    +
    148 
    +
    149  def set_sequence_number(self, sn: int):
    +
    150  """set_sequence_number
    +
    151  sequence number of an event
    +
    152  Args:
    +
    153  sn (int): 0 default
    +
    154  """
    +
    155  self.__sequence_number__sequence_number = sn
    +
    156  return self
    +
    157 
    +
    158  def get_sequence_number(self) -> int:
    +
    159  """get_sequence_number
    +
    160 
    +
    161  Returns:
    +
    162  int:
    +
    163  """
    +
    164  return self.__sequence_number__sequence_number
    +
    165 
    +
    166  def set_source_name(self, source: str):
    +
    167  """set_source_name
    +
    168  description of the source of an event
    +
    169 
    +
    170  Args:
    +
    171  source (str):
    +
    172  """
    +
    173  self.__source_name__source_name = source
    +
    174  return self
    +
    175 
    +
    176  def get_source_name(self) -> str:
    +
    177  """get_source_name
    +
    178 
    +
    179  Returns:
    +
    180  str:
    +
    181  """
    +
    182  return self.__source_name__source_name
    +
    183 
    +
    184 class NotifyItemPublish:
    +
    185  """
    +
    186  class NotifyItemPublish:
    +
    187 
    +
    188  """
    +
    189  __slots__ = ['__data', '__info', '__notify_info']
    +
    190 
    +
    191  def __init__(self, node_address: str):
    +
    192  """
    +
    193  __init__
    +
    194  """
    +
    195  self.__data__data = Variant()
    +
    196  self.__info__info = Variant()
    +
    197  self.__notify_info__notify_info = NotifyInfoPublish(node_address)
    +
    198 
    +
    199  def __enter__(self):
    +
    200  """
    +
    201  use the python context manager
    +
    202  """
    +
    203  return self
    +
    204 
    +
    205  def __exit__(self, exc_type, exc_val, exc_tb):
    +
    206  """
    +
    207  use the python context manager
    +
    208  """
    +
    209  self.closeclose()
    +
    210 
    +
    211  def __del__(self):
    +
    212  """
    +
    213  __del__
    +
    214  """
    +
    215  self.closeclose()
    +
    216 
    +
    217  def close(self):
    +
    218  """
    +
    219  closes the instance
    +
    220  """
    +
    221  self.__data__data.close()
    +
    222  self.__info__info.close()
    +
    223 
    +
    224  def get_data(self) -> Variant:
    +
    225  """get_data
    +
    226 
    +
    227  Returns:
    +
    228  Variant: data of the notify item
    +
    229  """
    +
    230  return self.__data__data
    +
    231 
    +
    232  def get_notify_info(self) -> NotifyInfoPublish:
    +
    233  """get_notify_info
    +
    234 
    +
    235  Returns:
    +
    236  get_notify_info:
    +
    237  """
    +
    238  return self.__notify_info__notify_info
    +
    239 
    +
    240  def get_info(self) -> Variant:
    +
    241  """internal use
    +
    242 
    +
    243  Returns:
    +
    244  Variant: containing notify_info.fbs (address, timestamp, type, ...)
    +
    245  """
    +
    246  builder = flatbuffers.Builder(1024)
    +
    247 
    +
    248  ni = NotifyInfo.NotifyInfoT()
    +
    249  ni.node = self.__notify_info__notify_info.get_node()
    +
    250  ni.timestamp = Variant.to_filetime(self.__notify_info__notify_info.get_timestamp())
    +
    251  ni.notifyType = self.__notify_info__notify_info.get_notify_type().value
    +
    252  ni.eventType = self.__notify_info__notify_info.get_event_type()
    +
    253  ni.sequenceNumber = self.__notify_info__notify_info.get_sequence_number()
    +
    254  ni.sourceName = self.__notify_info__notify_info.get_source_name()
    +
    255 
    +
    256  ni_int = ni.Pack(builder)
    +
    257  builder.Finish(ni_int)
    +
    258 
    +
    259  self.__info__info.set_flatbuffers(builder.Output())
    +
    260  return self.__info__info
    +
    261 
    +
    262 
    +
    263 def _subscription_publish(sub: C_DLR_SUBSCRIPTION, status: Result, items: typing.List[NotifyItemPublish]) -> Result:
    +
    264  """_subscription_publish
    +
    265 
    +
    266  Args:
    +
    267  sub (C_DLR_SUBSCRIPTION): Reference to the subscription
    +
    268  status (Result): Status of notification. On failure subscription is canceled for all items.
    +
    269  items (typing.List[NotifyItemPublish]): Notification items
    +
    270 
    +
    271  Returns:
    +
    272  Result:
    +
    273  """
    +
    274  elems = (ctrlxdatalayer.clib_provider_node.C_DLR_NOTIFY_ITEM * len(items))()
    +
    275  #for i in range(len(items)):
    +
    276  for i, item in enumerate(items):
    +
    277  elems[i].data = item.get_data().get_handle()
    +
    278  elems[i].info = item.get_info().get_handle()
    +
    279 
    +
    280  notify_items = ctypes.cast(elems, ctypes.POINTER(
    +
    281  ctrlxdatalayer.clib_provider_node.C_DLR_NOTIFY_ITEM))
    +
    282  len_item = ctypes.c_size_t(len(items))
    +
    283  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_SubscriptionPublish(sub, status.value, notify_items, len_item))
    +
    284 
    +
    285 
    + +
    287  """
    +
    288  ProviderSubscription helper class
    +
    289  """
    +
    290  __slots__ = ['__subscription', '__id']
    +
    291 
    +
    292  def __init__(self, sub: C_DLR_SUBSCRIPTION):
    +
    293  """
    +
    294  init ProviderSubscription
    +
    295  """
    +
    296  self.__subscription = sub
    +
    297  self.__id__id = None
    +
    298 
    +
    299  def get_id(self) -> str:
    +
    300  """get_id
    +
    301 
    +
    302  Returns:
    +
    303  str: subscription id
    +
    304  """
    +
    305  if self.__id__id is None:
    +
    306  self.__id__id = self.get_propsget_props().Id().decode('utf-8')
    +
    307 
    +
    308  return self.__id__id
    +
    309 
    +
    310  def get_props(self) -> comm.datalayer.SubscriptionProperties:
    +
    311  """get_props
    +
    312 
    +
    313  Returns:
    +
    314  comm.datalayer.SubscriptionProperties: subscription properties
    +
    315  """
    +
    316  v = _subscription_get_props(self.__subscription__subscription)
    +
    317  return comm.datalayer.SubscriptionProperties.SubscriptionProperties.GetRootAsSubscriptionProperties(v.get_flatbuffers(), 0)
    +
    318 
    +
    319  def get_timestamp(self) -> datetime.datetime:
    +
    320  """timestamp
    +
    321 
    +
    322  Returns:
    +
    323  datetime.datetime: timestamp
    +
    324  """
    +
    325  val = _subscription_get_timestamp(self.__subscription__subscription)
    +
    326  return Variant.from_filetime(val)
    +
    327 
    +
    328  def get_notes(self) -> typing.List[str]:
    +
    329  """get_notes
    +
    330 
    +
    331  Returns:
    +
    332  typing.List[str]: Subscribed nodes as array of strings
    +
    333  """
    +
    334  val = _subscription_get_nodes(self.__subscription__subscription)
    +
    335  with val:
    +
    336  return val.get_array_string()
    +
    337 
    +
    338  def publish(self, status: Result, items: typing.List[NotifyItemPublish]) -> Result:
    +
    339  """publish
    +
    340 
    +
    341  Args:
    +
    342  status (Result): Status of notification. On failure subscription is canceled for all items.
    +
    343  items (typing.List[NotifyItemPublish]): Notification items
    +
    344  """
    +
    345  return _subscription_publish(self.__subscription__subscription, status, items)
    + + + +
    def set_event_type(self, str et)
    set_event_type In case of an event, this string contains the information what EventType has been fire...
    +
    def set_notify_type(self, NotifyTypePublish nt)
    set_notify_type
    + + + + + +
    NotifyTypePublish get_notify_type(self)
    get_notify_type
    +
    def set_timestamp(self, datetime.datetime dt)
    set_timestamp
    + +
    def set_sequence_number(self, int sn)
    set_sequence_number sequence number of an event
    +
    def set_source_name(self, str source)
    set_source_name description of the source of an event
    + + + + + +
    NotifyInfoPublish get_notify_info(self)
    get_notify_info
    +
    def __exit__(self, exc_type, exc_val, exc_tb)
    use the python context manager
    + + + + + + + + + + + + + + + +
    Result publish(self, Result status, typing.List[NotifyItemPublish] items)
    publish
    + +
    comm.datalayer.SubscriptionProperties get_props(self)
    get_props
    + + +
    Variant is a container for a many types of data.
    Definition: variant.py:150
    + +
    +
    + + + + diff --git a/3.4.0/api/python/resize.js b/3.4.0/api/python/resize.js new file mode 100644 index 000000000..3a98b2626 --- /dev/null +++ b/3.4.0/api/python/resize.js @@ -0,0 +1,140 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function initResizable() +{ + var cookie_namespace = 'doxygen'; + var sidenav,navtree,content,header,collapsed,collapsedWidth=0,barWidth=6,desktop_vp=768,titleHeight; + + function readCookie(cookie) + { + var myCookie = cookie_namespace+"_"+cookie+"="; + if (document.cookie) { + var index = document.cookie.indexOf(myCookie); + if (index != -1) { + var valStart = index + myCookie.length; + var valEnd = document.cookie.indexOf(";", valStart); + if (valEnd == -1) { + valEnd = document.cookie.length; + } + var val = document.cookie.substring(valStart, valEnd); + return val; + } + } + return 0; + } + + function writeCookie(cookie, val, expiration) + { + if (val==undefined) return; + if (expiration == null) { + var date = new Date(); + date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week + expiration = date.toGMTString(); + } + document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; expires=" + expiration+"; path=/"; + } + + function resizeWidth() + { + var windowWidth = $(window).width() + "px"; + var sidenavWidth = $(sidenav).outerWidth(); + content.css({marginLeft:parseInt(sidenavWidth)+"px"}); + writeCookie('width',sidenavWidth-barWidth, null); + } + + function restoreWidth(navWidth) + { + var windowWidth = $(window).width() + "px"; + content.css({marginLeft:parseInt(navWidth)+barWidth+"px"}); + sidenav.css({width:navWidth + "px"}); + } + + function resizeHeight() + { + var headerHeight = header.outerHeight(); + var footerHeight = footer.outerHeight(); + var windowHeight = $(window).height() - headerHeight - footerHeight; + content.css({height:windowHeight + "px"}); + navtree.css({height:windowHeight + "px"}); + sidenav.css({height:windowHeight + "px"}); + var width=$(window).width(); + if (width!=collapsedWidth) { + if (width=desktop_vp) { + if (!collapsed) { + collapseExpand(); + } + } else if (width>desktop_vp && collapsedWidth0) { + restoreWidth(0); + collapsed=true; + } + else { + var width = readCookie('width'); + if (width>200 && width<$(window).width()) { restoreWidth(width); } else { restoreWidth(200); } + collapsed=false; + } + } + + header = $("#top"); + sidenav = $("#side-nav"); + content = $("#doc-content"); + navtree = $("#nav-tree"); + footer = $("#nav-path"); + $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } }); + $(sidenav).resizable({ minWidth: 0 }); + $(window).resize(function() { resizeHeight(); }); + var device = navigator.userAgent.toLowerCase(); + var touch_device = device.match(/(iphone|ipod|ipad|android)/); + if (touch_device) { /* wider split bar for touch only devices */ + $(sidenav).css({ paddingRight:'20px' }); + $('.ui-resizable-e').css({ width:'20px' }); + $('#nav-sync').css({ right:'34px' }); + barWidth=20; + } + var width = readCookie('width'); + if (width) { restoreWidth(width); } else { resizeWidth(); } + resizeHeight(); + var url = location.href; + var i=url.indexOf("#"); + if (i>=0) window.location.hash=url.substr(i); + var _preventDefault = function(evt) { evt.preventDefault(); }; + $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault); + $(".ui-resizable-handle").dblclick(collapseExpand); + $(window).on('load',resizeHeight); +} +/* @license-end */ diff --git a/3.4.0/api/python/rexrothlogo_80.jpg b/3.4.0/api/python/rexrothlogo_80.jpg new file mode 100644 index 000000000..a2953c10d Binary files /dev/null and b/3.4.0/api/python/rexrothlogo_80.jpg differ diff --git a/3.4.0/api/python/search/all_0.html b/3.4.0/api/python/search/all_0.html new file mode 100644 index 000000000..5fc9096ad --- /dev/null +++ b/3.4.0/api/python/search/all_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/3.4.0/api/python/search/all_0.js b/3.4.0/api/python/search/all_0.js new file mode 100644 index 000000000..d15f35017 --- /dev/null +++ b/3.4.0/api/python/search/all_0.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['_5f_5fdel_5f_5f_0',['__del__',['../classctrlxdatalayer_1_1provider__node_1_1ProviderNode.html#a41a65d7030dd1006b177d0bc24e1a12b',1,'ctrlxdatalayer.provider_node.ProviderNode.__del__()'],['../classctrlxdatalayer_1_1provider__subscription_1_1NotifyItemPublish.html#a41a65d7030dd1006b177d0bc24e1a12b',1,'ctrlxdatalayer.provider_subscription.NotifyItemPublish.__del__()'],['../classctrlxdatalayer_1_1variant_1_1Variant.html#a41a65d7030dd1006b177d0bc24e1a12b',1,'ctrlxdatalayer.variant.Variant.__del__()'],['../classctrlxdatalayer_1_1variant_1_1VariantRef.html#a41a65d7030dd1006b177d0bc24e1a12b',1,'ctrlxdatalayer.variant.VariantRef.__del__()']]], + ['_5f_5fenter_5f_5f_1',['__enter__',['../classctrlxdatalayer_1_1provider__node_1_1ProviderNode.html#a404692262c90487a8013dbdd128cdd7f',1,'ctrlxdatalayer.provider_node.ProviderNode.__enter__()'],['../classctrlxdatalayer_1_1provider_1_1Provider.html#a404692262c90487a8013dbdd128cdd7f',1,'ctrlxdatalayer.provider.Provider.__enter__()'],['../classctrlxdatalayer_1_1client_1_1Client.html#a404692262c90487a8013dbdd128cdd7f',1,'ctrlxdatalayer.client.Client.__enter__()'],['../classctrlxdatalayer_1_1bulk__util_1_1__AsyncCreator.html#a404692262c90487a8013dbdd128cdd7f',1,'ctrlxdatalayer.bulk_util._AsyncCreator.__enter__()'],['../classctrlxdatalayer_1_1bulk__util_1_1__BulkCreator.html#a404692262c90487a8013dbdd128cdd7f',1,'ctrlxdatalayer.bulk_util._BulkCreator.__enter__()'],['../classctrlxdatalayer_1_1bulk__util_1_1__Request.html#a404692262c90487a8013dbdd128cdd7f',1,'ctrlxdatalayer.bulk_util._Request.__enter__()'],['../classctrlxdatalayer_1_1bulk_1_1Bulk.html#a404692262c90487a8013dbdd128cdd7f',1,'ctrlxdatalayer.bulk.Bulk.__enter__()'],['../classctrlxdatalayer_1_1bulk_1_1__ResponseAsynMgr.html#a404692262c90487a8013dbdd128cdd7f',1,'ctrlxdatalayer.bulk._ResponseAsynMgr.__enter__()'],['../classctrlxdatalayer_1_1bulk_1_1__ResponseBulkMgr.html#a404692262c90487a8013dbdd128cdd7f',1,'ctrlxdatalayer.bulk._ResponseBulkMgr.__enter__()'],['../classctrlxdatalayer_1_1bulk_1_1__ResponseMgr.html#a404692262c90487a8013dbdd128cdd7f',1,'ctrlxdatalayer.bulk._ResponseMgr.__enter__()'],['../classctrlxdatalayer_1_1bulk_1_1Response.html#a404692262c90487a8013dbdd128cdd7f',1,'ctrlxdatalayer.bulk.Response.__enter__()'],['../classctrlxdatalayer_1_1provider__subscription_1_1NotifyItemPublish.html#a404692262c90487a8013dbdd128cdd7f',1,'ctrlxdatalayer.provider_subscription.NotifyItemPublish.__enter__()'],['../classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync.html#a404692262c90487a8013dbdd128cdd7f',1,'ctrlxdatalayer.subscription_async.SubscriptionAsync.__enter__()'],['../classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync.html#a404692262c90487a8013dbdd128cdd7f',1,'ctrlxdatalayer.subscription_sync.SubscriptionSync.__enter__()'],['../classctrlxdatalayer_1_1system_1_1System.html#a404692262c90487a8013dbdd128cdd7f',1,'ctrlxdatalayer.system.System.__enter__()'],['../classctrlxdatalayer_1_1variant_1_1Variant.html#a404692262c90487a8013dbdd128cdd7f',1,'ctrlxdatalayer.variant.Variant.__enter__()']]], + ['_5f_5fexit_5f_5f_2',['__exit__',['../classctrlxdatalayer_1_1bulk_1_1__ResponseAsynMgr.html#a1d4375d5b88ea11310dcd3bfb10ecb97',1,'ctrlxdatalayer.bulk._ResponseAsynMgr.__exit__()'],['../classctrlxdatalayer_1_1provider__subscription_1_1NotifyItemPublish.html#a1d4375d5b88ea11310dcd3bfb10ecb97',1,'ctrlxdatalayer.provider_subscription.NotifyItemPublish.__exit__()'],['../classctrlxdatalayer_1_1bulk_1_1__ResponseBulkMgr.html#a1d4375d5b88ea11310dcd3bfb10ecb97',1,'ctrlxdatalayer.bulk._ResponseBulkMgr.__exit__()'],['../classctrlxdatalayer_1_1bulk_1_1Bulk.html#a1d4375d5b88ea11310dcd3bfb10ecb97',1,'ctrlxdatalayer.bulk.Bulk.__exit__()'],['../classctrlxdatalayer_1_1bulk__util_1_1__Request.html#a1d4375d5b88ea11310dcd3bfb10ecb97',1,'ctrlxdatalayer.bulk_util._Request.__exit__()'],['../classctrlxdatalayer_1_1bulk__util_1_1__BulkCreator.html#a1d4375d5b88ea11310dcd3bfb10ecb97',1,'ctrlxdatalayer.bulk_util._BulkCreator.__exit__()'],['../classctrlxdatalayer_1_1bulk__util_1_1__AsyncCreator.html#a1d4375d5b88ea11310dcd3bfb10ecb97',1,'ctrlxdatalayer.bulk_util._AsyncCreator.__exit__()'],['../classctrlxdatalayer_1_1client_1_1Client.html#a1d4375d5b88ea11310dcd3bfb10ecb97',1,'ctrlxdatalayer.client.Client.__exit__()'],['../classctrlxdatalayer_1_1provider_1_1Provider.html#a1d4375d5b88ea11310dcd3bfb10ecb97',1,'ctrlxdatalayer.provider.Provider.__exit__()'],['../classctrlxdatalayer_1_1provider__node_1_1ProviderNode.html#a1d4375d5b88ea11310dcd3bfb10ecb97',1,'ctrlxdatalayer.provider_node.ProviderNode.__exit__()'],['../classctrlxdatalayer_1_1bulk_1_1__ResponseMgr.html#a1d4375d5b88ea11310dcd3bfb10ecb97',1,'ctrlxdatalayer.bulk._ResponseMgr.__exit__()'],['../classctrlxdatalayer_1_1bulk_1_1Response.html#a1d4375d5b88ea11310dcd3bfb10ecb97',1,'ctrlxdatalayer.bulk.Response.__exit__()'],['../classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync.html#a1d4375d5b88ea11310dcd3bfb10ecb97',1,'ctrlxdatalayer.subscription_async.SubscriptionAsync.__exit__()'],['../classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync.html#a1d4375d5b88ea11310dcd3bfb10ecb97',1,'ctrlxdatalayer.subscription_sync.SubscriptionSync.__exit__()'],['../classctrlxdatalayer_1_1system_1_1System.html#a1d4375d5b88ea11310dcd3bfb10ecb97',1,'ctrlxdatalayer.system.System.__exit__()'],['../classctrlxdatalayer_1_1variant_1_1Variant.html#a1d4375d5b88ea11310dcd3bfb10ecb97',1,'ctrlxdatalayer.variant.Variant.__exit__()'],['../classctrlxdatalayer_1_1variant_1_1VariantRef.html#a1d4375d5b88ea11310dcd3bfb10ecb97',1,'ctrlxdatalayer.variant.VariantRef.__exit__()']]], + ['_5f_5finit_5f_5f_3',['__init__',['../classctrlxdatalayer_1_1provider__node_1_1ProviderNodeCallbacks.html#a194ad510b8413868e4fa2293369f9358',1,'ctrlxdatalayer.provider_node.ProviderNodeCallbacks.__init__()'],['../classctrlxdatalayer_1_1client_1_1__CallbackPtr.html#ae64f0875afe3067b97ba370b354b9213',1,'ctrlxdatalayer.client._CallbackPtr.__init__()'],['../classctrlxdatalayer_1_1provider__node_1_1ProviderNode.html#ad46014d2cd90ce7aeba19dbbed380a74',1,'ctrlxdatalayer.provider_node.ProviderNode.__init__()'],['../classctrlxdatalayer_1_1provider__node_1_1__CallbackPtr.html#ae64f0875afe3067b97ba370b354b9213',1,'ctrlxdatalayer.provider_node._CallbackPtr.__init__()'],['../classctrlxdatalayer_1_1provider_1_1Provider.html#a9124c75ffef4d7c89c7f389515ea5c54',1,'ctrlxdatalayer.provider.Provider.__init__()'],['../classctrlxdatalayer_1_1metadata__utils_1_1MetadataBuilder.html#a9f5d291e1cf6a7d897bea182759e543a',1,'ctrlxdatalayer.metadata_utils.MetadataBuilder.__init__()'],['../classctrlxdatalayer_1_1factory_1_1Factory.html#a2fc5414186d67b965f04bbef9cbcddf6',1,'ctrlxdatalayer.factory.Factory.__init__()'],['../classctrlxdatalayer_1_1converter_1_1Converter.html#a3bd786a63e4fb3b6f41c630a454d2814',1,'ctrlxdatalayer.converter.Converter.__init__()'],['../classctrlxdatalayer_1_1client_1_1Client.html#a59e19ccd3e870535695c362c97b839ac',1,'ctrlxdatalayer.client.Client.__init__()'],['../classctrlxdatalayer_1_1variant_1_1VariantRef.html#a588c4b45460deb6cd8859b1876f71704',1,'ctrlxdatalayer.variant.VariantRef.__init__()'],['../classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish.html#a21cd8ad87da0ec28b2d018bf11d40827',1,'ctrlxdatalayer.provider_subscription.NotifyInfoPublish.__init__()'],['../classctrlxdatalayer_1_1provider__subscription_1_1NotifyItemPublish.html#a21cd8ad87da0ec28b2d018bf11d40827',1,'ctrlxdatalayer.provider_subscription.NotifyItemPublish.__init__()'],['../classctrlxdatalayer_1_1provider__subscription_1_1ProviderSubscription.html#addc0c99aa3c0319b7c5855836e500ece',1,'ctrlxdatalayer.provider_subscription.ProviderSubscription.__init__()'],['../classctrlxdatalayer_1_1subscription_1_1NotifyItem.html#aa55af3047b40476b66ac223c6e2e97f9',1,'ctrlxdatalayer.subscription.NotifyItem.__init__()'],['../classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync.html#a81fad585830e0fcd87d27b3a8f7653e6',1,'ctrlxdatalayer.subscription_async.SubscriptionAsync.__init__()'],['../classctrlxdatalayer_1_1subscription__properties__builder_1_1SubscriptionPropertiesBuilder.html#a945c5108a22ccbc5b391f61e7979db73',1,'ctrlxdatalayer.subscription_properties_builder.SubscriptionPropertiesBuilder.__init__()'],['../classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync.html#a81fad585830e0fcd87d27b3a8f7653e6',1,'ctrlxdatalayer.subscription_sync.SubscriptionSync.__init__()'],['../classctrlxdatalayer_1_1system_1_1System.html#af22afd382b95e54de8c30f6e0f8b1766',1,'ctrlxdatalayer.system.System.__init__()'],['../classctrlxdatalayer_1_1variant_1_1Variant.html#a588c4b45460deb6cd8859b1876f71704',1,'ctrlxdatalayer.variant.Variant.__init__()'],['../classctrlxdatalayer_1_1bulk__util_1_1__BulkCreator.html#a3e78654ce73af801d64e389d6bb40c46',1,'ctrlxdatalayer.bulk_util._BulkCreator.__init__()'],['../classctrlxdatalayer_1_1bulk_1_1Response.html#a407a62ac4d6cbe6307badf553961efa5',1,'ctrlxdatalayer.bulk.Response.__init__()'],['../classctrlxdatalayer_1_1bulk_1_1__ResponseMgr.html#ae64f0875afe3067b97ba370b354b9213',1,'ctrlxdatalayer.bulk._ResponseMgr.__init__()'],['../classctrlxdatalayer_1_1bulk_1_1__ResponseBulkMgr.html#aa52be931985624f18ac85b3f6fc801e2',1,'ctrlxdatalayer.bulk._ResponseBulkMgr.__init__()'],['../classctrlxdatalayer_1_1bulk_1_1__ResponseAsynMgr.html#a8b9b0623fa419354cf6e3778fe6e3f9b',1,'ctrlxdatalayer.bulk._ResponseAsynMgr.__init__()'],['../classctrlxdatalayer_1_1bulk_1_1BulkReadRequest.html#a01278ebd1178bd7ee028e30ebf19f7f6',1,'ctrlxdatalayer.bulk.BulkReadRequest.__init__()'],['../classctrlxdatalayer_1_1bulk_1_1BulkWriteRequest.html#a1d3639228672c53153653832e183dbfd',1,'ctrlxdatalayer.bulk.BulkWriteRequest.__init__()'],['../classctrlxdatalayer_1_1bulk_1_1BulkCreateRequest.html#a01278ebd1178bd7ee028e30ebf19f7f6',1,'ctrlxdatalayer.bulk.BulkCreateRequest.__init__()'],['../classctrlxdatalayer_1_1bulk_1_1Bulk.html#a01ad4c2b877b990eb9b6c9bc973fa749',1,'ctrlxdatalayer.bulk.Bulk.__init__()'],['../classctrlxdatalayer_1_1bulk__util_1_1__Request.html#a29d80f48606a09d55c47958832ab5aa5',1,'ctrlxdatalayer.bulk_util._Request.__init__()'],['../classctrlxdatalayer_1_1bulk__util_1_1__AsyncCreator.html#a3e78654ce73af801d64e389d6bb40c46',1,'ctrlxdatalayer.bulk_util._AsyncCreator.__init__()']]], + ['_5fasynccreator_4',['_AsyncCreator',['../classctrlxdatalayer_1_1bulk__util_1_1__AsyncCreator.html',1,'ctrlxdatalayer::bulk_util']]], + ['_5fbulkcreator_5',['_BulkCreator',['../classctrlxdatalayer_1_1bulk__util_1_1__BulkCreator.html',1,'ctrlxdatalayer::bulk_util']]], + ['_5fcallbackptr_6',['_CallbackPtr',['../classctrlxdatalayer_1_1client_1_1__CallbackPtr.html',1,'_CallbackPtr'],['../classctrlxdatalayer_1_1provider__node_1_1__CallbackPtr.html',1,'_CallbackPtr']]], + ['_5frequest_7',['_Request',['../classctrlxdatalayer_1_1bulk__util_1_1__Request.html',1,'ctrlxdatalayer::bulk_util']]], + ['_5fresponseasynmgr_8',['_ResponseAsynMgr',['../classctrlxdatalayer_1_1bulk_1_1__ResponseAsynMgr.html',1,'ctrlxdatalayer::bulk']]], + ['_5fresponsebulkmgr_9',['_ResponseBulkMgr',['../classctrlxdatalayer_1_1bulk_1_1__ResponseBulkMgr.html',1,'ctrlxdatalayer::bulk']]], + ['_5fresponsemgr_10',['_ResponseMgr',['../classctrlxdatalayer_1_1bulk_1_1__ResponseMgr.html',1,'ctrlxdatalayer::bulk']]] +]; diff --git a/3.4.0/api/python/search/all_1.html b/3.4.0/api/python/search/all_1.html new file mode 100644 index 000000000..e9dee60a8 --- /dev/null +++ b/3.4.0/api/python/search/all_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/3.4.0/api/python/search/all_1.js b/3.4.0/api/python/search/all_1.js new file mode 100644 index 000000000..6df9fb8e8 --- /dev/null +++ b/3.4.0/api/python/search/all_1.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['add_5fextensions_11',['add_extensions',['../classctrlxdatalayer_1_1metadata__utils_1_1MetadataBuilder.html#a89cedeb8a15e5862343a39815b129fae',1,'ctrlxdatalayer::metadata_utils::MetadataBuilder']]], + ['add_5flocalization_5fdescription_12',['add_localization_description',['../classctrlxdatalayer_1_1metadata__utils_1_1MetadataBuilder.html#af15420cfd5214f4cccead48732709e52',1,'ctrlxdatalayer::metadata_utils::MetadataBuilder']]], + ['add_5flocalization_5fdisplay_5fname_13',['add_localization_display_name',['../classctrlxdatalayer_1_1metadata__utils_1_1MetadataBuilder.html#ac855536d363277c3b3d9691d63b56557',1,'ctrlxdatalayer::metadata_utils::MetadataBuilder']]], + ['add_5freference_14',['add_reference',['../classctrlxdatalayer_1_1metadata__utils_1_1MetadataBuilder.html#ad93702ffc7422e56d588e32d7c3c473d',1,'ctrlxdatalayer::metadata_utils::MetadataBuilder']]], + ['add_5frule_5fchangeevents_15',['add_rule_changeevents',['../classctrlxdatalayer_1_1subscription__properties__builder_1_1SubscriptionPropertiesBuilder.html#a3a247667665491e77c9115ed17536373',1,'ctrlxdatalayer::subscription_properties_builder::SubscriptionPropertiesBuilder']]], + ['add_5frule_5fcounting_16',['add_rule_counting',['../classctrlxdatalayer_1_1subscription__properties__builder_1_1SubscriptionPropertiesBuilder.html#a0fca6a36ee83d736c179d60dc4088916',1,'ctrlxdatalayer::subscription_properties_builder::SubscriptionPropertiesBuilder']]], + ['add_5frule_5fdatachangefilter_17',['add_rule_datachangefilter',['../classctrlxdatalayer_1_1subscription__properties__builder_1_1SubscriptionPropertiesBuilder.html#a2bbd42efca40e43bffb491799e2c9a12',1,'ctrlxdatalayer::subscription_properties_builder::SubscriptionPropertiesBuilder']]], + ['add_5frule_5flosslessratelimit_18',['add_rule_losslessratelimit',['../classctrlxdatalayer_1_1subscription__properties__builder_1_1SubscriptionPropertiesBuilder.html#ac295149faa197ba17b1099d5abbf7541',1,'ctrlxdatalayer::subscription_properties_builder::SubscriptionPropertiesBuilder']]], + ['add_5frule_5fqueueing_19',['add_rule_queueing',['../classctrlxdatalayer_1_1subscription__properties__builder_1_1SubscriptionPropertiesBuilder.html#a155e08d359f57d0d7b14b26d0abeba94',1,'ctrlxdatalayer::subscription_properties_builder::SubscriptionPropertiesBuilder']]], + ['add_5frule_5fsampling_20',['add_rule_sampling',['../classctrlxdatalayer_1_1subscription__properties__builder_1_1SubscriptionPropertiesBuilder.html#a320ba39526d732049fca11f6b0af1412',1,'ctrlxdatalayer::subscription_properties_builder::SubscriptionPropertiesBuilder']]], + ['allowedoperation_21',['AllowedOperation',['../classctrlxdatalayer_1_1metadata__utils_1_1AllowedOperation.html',1,'ctrlxdatalayer::metadata_utils']]] +]; diff --git a/3.4.0/api/python/search/all_10.html b/3.4.0/api/python/search/all_10.html new file mode 100644 index 000000000..04059bd35 --- /dev/null +++ b/3.4.0/api/python/search/all_10.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/3.4.0/api/python/search/all_10.js b/3.4.0/api/python/search/all_10.js new file mode 100644 index 000000000..d1ce34f9b --- /dev/null +++ b/3.4.0/api/python/search/all_10.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['unregister_5fnode_199',['unregister_node',['../classctrlxdatalayer_1_1provider_1_1Provider.html#a40c3a4318a6ed2a50e06b38d315178be',1,'ctrlxdatalayer::provider::Provider']]], + ['unregister_5ftype_200',['unregister_type',['../classctrlxdatalayer_1_1provider_1_1Provider.html#ac472816492feb2c946bba3fa93ebffdc',1,'ctrlxdatalayer::provider::Provider']]], + ['unsubscribe_201',['unsubscribe',['../classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync.html#a3f04a7c817c357d161827d59e4888587',1,'ctrlxdatalayer.subscription_async.SubscriptionAsync.unsubscribe()'],['../classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync.html#a0b34dabb343b27b4b09dd28259780294',1,'ctrlxdatalayer.subscription_sync.SubscriptionSync.unsubscribe()']]], + ['unsubscribe_5fall_202',['unsubscribe_all',['../classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync.html#ac7fabd459529db06a4efb77057b81785',1,'ctrlxdatalayer.subscription_async.SubscriptionAsync.unsubscribe_all()'],['../classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync.html#a252cb59cde7dd64a460f4b219d93518f',1,'ctrlxdatalayer.subscription_sync.SubscriptionSync.unsubscribe_all()']]], + ['unsubscribe_5fmulti_203',['unsubscribe_multi',['../classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync.html#a08861b5e3d144c0c490d060596d7f1f5',1,'ctrlxdatalayer.subscription_async.SubscriptionAsync.unsubscribe_multi()'],['../classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync.html#a7baf1c8d15b03ebef99c495b61ba5a15',1,'ctrlxdatalayer.subscription_sync.SubscriptionSync.unsubscribe_multi()']]], + ['uses_204',['uses',['../classctrlxdatalayer_1_1metadata__utils_1_1ReferenceType.html#a9d679ac2fd5bade9fdda9a89ef5247cb',1,'ctrlxdatalayer::metadata_utils::ReferenceType']]] +]; diff --git a/3.4.0/api/python/search/all_11.html b/3.4.0/api/python/search/all_11.html new file mode 100644 index 000000000..71988db83 --- /dev/null +++ b/3.4.0/api/python/search/all_11.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/3.4.0/api/python/search/all_11.js b/3.4.0/api/python/search/all_11.js new file mode 100644 index 000000000..50da4fcd8 --- /dev/null +++ b/3.4.0/api/python/search/all_11.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['variant_205',['Variant',['../classctrlxdatalayer_1_1variant_1_1Variant.html',1,'ctrlxdatalayer::variant']]], + ['variantref_206',['VariantRef',['../classctrlxdatalayer_1_1variant_1_1VariantRef.html',1,'ctrlxdatalayer::variant']]], + ['varianttype_207',['VariantType',['../classctrlxdatalayer_1_1variant_1_1VariantType.html',1,'ctrlxdatalayer::variant']]] +]; diff --git a/3.4.0/api/python/search/all_12.html b/3.4.0/api/python/search/all_12.html new file mode 100644 index 000000000..c27f24cbd --- /dev/null +++ b/3.4.0/api/python/search/all_12.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/3.4.0/api/python/search/all_12.js b/3.4.0/api/python/search/all_12.js new file mode 100644 index 000000000..2f36a8353 --- /dev/null +++ b/3.4.0/api/python/search/all_12.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['wait_5fon_5fresponse_5fcb_208',['wait_on_response_cb',['../classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync.html#a13f3ccd5cb5081d6c2cd5d12a916eb69',1,'ctrlxdatalayer::subscription_async::SubscriptionAsync']]], + ['write_209',['write',['../classctrlxdatalayer_1_1bulk_1_1Bulk.html#a1952b6905816ea9de9cafe94a28561a9',1,'ctrlxdatalayer.bulk.Bulk.write()'],['../classctrlxdatalayer_1_1metadata__utils_1_1ReferenceType.html#a874d67aa2c1f6369a696bfc71a5a84cb',1,'ctrlxdatalayer.metadata_utils.ReferenceType.write()']]], + ['write_5fasync_210',['write_async',['../classctrlxdatalayer_1_1client_1_1Client.html#ad1a0a9d48d8f6b80ee0bbd37033c94dc',1,'ctrlxdatalayer::client::Client']]], + ['write_5fin_211',['write_in',['../classctrlxdatalayer_1_1metadata__utils_1_1ReferenceType.html#af68893200c74c860fb075ead9c43349b',1,'ctrlxdatalayer::metadata_utils::ReferenceType']]], + ['write_5fjson_5fsync_212',['write_json_sync',['../classctrlxdatalayer_1_1client_1_1Client.html#ac3e70cdfa24ba53b78cc2c8abed8f4cb',1,'ctrlxdatalayer::client::Client']]], + ['write_5fout_213',['write_out',['../classctrlxdatalayer_1_1metadata__utils_1_1ReferenceType.html#a18ce3f79d2e006c17ed760533dd92e2c',1,'ctrlxdatalayer::metadata_utils::ReferenceType']]], + ['write_5fsync_214',['write_sync',['../classctrlxdatalayer_1_1client_1_1Client.html#a92d14c48a7e8966b4675e23292240162',1,'ctrlxdatalayer::client::Client']]] +]; diff --git a/3.4.0/api/python/search/all_2.html b/3.4.0/api/python/search/all_2.html new file mode 100644 index 000000000..8d33e092d --- /dev/null +++ b/3.4.0/api/python/search/all_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/3.4.0/api/python/search/all_2.js b/3.4.0/api/python/search/all_2.js new file mode 100644 index 000000000..844eed6b0 --- /dev/null +++ b/3.4.0/api/python/search/all_2.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['browse_22',['browse',['../classctrlxdatalayer_1_1bulk_1_1Bulk.html#a67d6caf627c2d3b657b9cc622a9c9608',1,'ctrlxdatalayer::bulk::Bulk']]], + ['browse_5fasync_23',['browse_async',['../classctrlxdatalayer_1_1client_1_1Client.html#a2d33323152a7b0947c56c06fc685465c',1,'ctrlxdatalayer::client::Client']]], + ['browse_5fsync_24',['browse_sync',['../classctrlxdatalayer_1_1client_1_1Client.html#af92fddc1c4f24cad1059def5d7973f1f',1,'ctrlxdatalayer::client::Client']]], + ['build_25',['build',['../classctrlxdatalayer_1_1metadata__utils_1_1MetadataBuilder.html#a8c9808276b6848b2a1b39b748ab61a70',1,'ctrlxdatalayer.metadata_utils.MetadataBuilder.build()'],['../classctrlxdatalayer_1_1subscription__properties__builder_1_1SubscriptionPropertiesBuilder.html#a8c9808276b6848b2a1b39b748ab61a70',1,'ctrlxdatalayer.subscription_properties_builder.SubscriptionPropertiesBuilder.build()']]], + ['bulk_26',['Bulk',['../classctrlxdatalayer_1_1bulk_1_1Bulk.html',1,'ctrlxdatalayer::bulk']]], + ['bulkcreaterequest_27',['BulkCreateRequest',['../classctrlxdatalayer_1_1bulk_1_1BulkCreateRequest.html',1,'ctrlxdatalayer::bulk']]], + ['bulkreadrequest_28',['BulkReadRequest',['../classctrlxdatalayer_1_1bulk_1_1BulkReadRequest.html',1,'ctrlxdatalayer::bulk']]], + ['bulkwriterequest_29',['BulkWriteRequest',['../classctrlxdatalayer_1_1bulk_1_1BulkWriteRequest.html',1,'ctrlxdatalayer::bulk']]] +]; diff --git a/3.4.0/api/python/search/all_3.html b/3.4.0/api/python/search/all_3.html new file mode 100644 index 000000000..4a84cf239 --- /dev/null +++ b/3.4.0/api/python/search/all_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/3.4.0/api/python/search/all_3.js b/3.4.0/api/python/search/all_3.js new file mode 100644 index 000000000..0df2d9c6a --- /dev/null +++ b/3.4.0/api/python/search/all_3.js @@ -0,0 +1,20 @@ +var searchData= +[ + ['c_5fdlr_5fschema_30',['C_DLR_SCHEMA',['../classctrlxdatalayer_1_1converter_1_1C__DLR__SCHEMA.html',1,'ctrlxdatalayer::converter']]], + ['check_5fconvert_31',['check_convert',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a0e74886d07a11fa53083f1b8c8a6145b',1,'ctrlxdatalayer::variant::Variant']]], + ['client_32',['Client',['../classctrlxdatalayer_1_1client_1_1Client.html',1,'ctrlxdatalayer::client']]], + ['clone_33',['clone',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a02cc8dac2dc7516c8b0ca1aac4469e2f',1,'ctrlxdatalayer::variant::Variant']]], + ['close_34',['close',['../classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync.html#a8639372c33e15084a7f7c4d9d87b7bfe',1,'ctrlxdatalayer.subscription_async.SubscriptionAsync.close()'],['../classctrlxdatalayer_1_1variant_1_1Variant.html#a8639372c33e15084a7f7c4d9d87b7bfe',1,'ctrlxdatalayer.variant.Variant.close()'],['../classctrlxdatalayer_1_1system_1_1System.html#a8639372c33e15084a7f7c4d9d87b7bfe',1,'ctrlxdatalayer.system.System.close()'],['../classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync.html#a8639372c33e15084a7f7c4d9d87b7bfe',1,'ctrlxdatalayer.subscription_sync.SubscriptionSync.close()'],['../classctrlxdatalayer_1_1provider__subscription_1_1NotifyItemPublish.html#a8639372c33e15084a7f7c4d9d87b7bfe',1,'ctrlxdatalayer.provider_subscription.NotifyItemPublish.close()'],['../classctrlxdatalayer_1_1provider__node_1_1ProviderNode.html#a8639372c33e15084a7f7c4d9d87b7bfe',1,'ctrlxdatalayer.provider_node.ProviderNode.close()'],['../classctrlxdatalayer_1_1provider_1_1Provider.html#a8639372c33e15084a7f7c4d9d87b7bfe',1,'ctrlxdatalayer.provider.Provider.close()'],['../classctrlxdatalayer_1_1client_1_1Client.html#a8639372c33e15084a7f7c4d9d87b7bfe',1,'ctrlxdatalayer.client.Client.close()'],['../classctrlxdatalayer_1_1bulk__util_1_1__BulkCreator.html#a8639372c33e15084a7f7c4d9d87b7bfe',1,'ctrlxdatalayer.bulk_util._BulkCreator.close()'],['../classctrlxdatalayer_1_1bulk__util_1_1__Request.html#a8639372c33e15084a7f7c4d9d87b7bfe',1,'ctrlxdatalayer.bulk_util._Request.close()'],['../classctrlxdatalayer_1_1bulk_1_1Bulk.html#a8639372c33e15084a7f7c4d9d87b7bfe',1,'ctrlxdatalayer.bulk.Bulk.close()'],['../classctrlxdatalayer_1_1bulk_1_1__ResponseAsynMgr.html#a8639372c33e15084a7f7c4d9d87b7bfe',1,'ctrlxdatalayer.bulk._ResponseAsynMgr.close()'],['../classctrlxdatalayer_1_1bulk_1_1__ResponseMgr.html#a8639372c33e15084a7f7c4d9d87b7bfe',1,'ctrlxdatalayer.bulk._ResponseMgr.close()'],['../classctrlxdatalayer_1_1bulk_1_1Response.html#a8639372c33e15084a7f7c4d9d87b7bfe',1,'ctrlxdatalayer.bulk.Response.close()'],['../classctrlxdatalayer_1_1bulk__util_1_1__AsyncCreator.html#a8639372c33e15084a7f7c4d9d87b7bfe',1,'ctrlxdatalayer.bulk_util._AsyncCreator.close()']]], + ['converter_35',['Converter',['../classctrlxdatalayer_1_1converter_1_1Converter.html',1,'ctrlxdatalayer::converter']]], + ['converter_5fgenerate_5fjson_5fcomplex_36',['converter_generate_json_complex',['../classctrlxdatalayer_1_1converter_1_1Converter.html#a30abdd62206a5a872b874a9d24db1d98',1,'ctrlxdatalayer::converter::Converter']]], + ['converter_5fgenerate_5fjson_5fsimple_37',['converter_generate_json_simple',['../classctrlxdatalayer_1_1converter_1_1Converter.html#a2e5e1f24ba0c9ef47c1f1a9eec9be019',1,'ctrlxdatalayer::converter::Converter']]], + ['copy_38',['copy',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a6f93d52d6ae542191a88e538bfb8799d',1,'ctrlxdatalayer::variant::Variant']]], + ['create_39',['create',['../classctrlxdatalayer_1_1bulk_1_1Bulk.html#a68b570345086320f449d9b6e25382508',1,'ctrlxdatalayer.bulk.Bulk.create()'],['../classctrlxdatalayer_1_1metadata__utils_1_1ReferenceType.html#aeadffb9df4df6d3f2862c20c41876841',1,'ctrlxdatalayer.metadata_utils.ReferenceType.create()']]], + ['create_5fasync_40',['create_async',['../classctrlxdatalayer_1_1client_1_1Client.html#a267723d6d0a39d08d8d14c330803dc43',1,'ctrlxdatalayer::client::Client']]], + ['create_5fbulk_41',['create_bulk',['../classctrlxdatalayer_1_1client_1_1Client.html#abbacaa1907d5b10876475c2a83658a39',1,'ctrlxdatalayer::client::Client']]], + ['create_5fclient_42',['create_client',['../classctrlxdatalayer_1_1factory_1_1Factory.html#ac1e11e43644987a9d766014d192a3eac',1,'ctrlxdatalayer::factory::Factory']]], + ['create_5fprovider_43',['create_provider',['../classctrlxdatalayer_1_1factory_1_1Factory.html#a70593e62040d99948079f6f6328420f0',1,'ctrlxdatalayer::factory::Factory']]], + ['create_5fsubscription_5fasync_44',['create_subscription_async',['../classctrlxdatalayer_1_1client_1_1Client.html#a6f8575c365dfbb20acc2ba9cac44cbb3',1,'ctrlxdatalayer::client::Client']]], + ['create_5fsubscription_5fsync_45',['create_subscription_sync',['../classctrlxdatalayer_1_1client_1_1Client.html#aeb7a9d17ccd6fa6935b8e800f74c129c',1,'ctrlxdatalayer::client::Client']]], + ['create_5fsync_46',['create_sync',['../classctrlxdatalayer_1_1client_1_1Client.html#a68d2c78acb14dfd4e474cf83fa255ed9',1,'ctrlxdatalayer::client::Client']]] +]; diff --git a/3.4.0/api/python/search/all_4.html b/3.4.0/api/python/search/all_4.html new file mode 100644 index 000000000..fbac866f6 --- /dev/null +++ b/3.4.0/api/python/search/all_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/3.4.0/api/python/search/all_4.js b/3.4.0/api/python/search/all_4.js new file mode 100644 index 000000000..4e95017c1 --- /dev/null +++ b/3.4.0/api/python/search/all_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['delete_47',['delete',['../classctrlxdatalayer_1_1bulk_1_1Bulk.html#a9aaab0b04160f55559e1e4cea136a821',1,'ctrlxdatalayer::bulk::Bulk']]] +]; diff --git a/3.4.0/api/python/search/all_5.html b/3.4.0/api/python/search/all_5.html new file mode 100644 index 000000000..878df2ccd --- /dev/null +++ b/3.4.0/api/python/search/all_5.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/3.4.0/api/python/search/all_5.js b/3.4.0/api/python/search/all_5.js new file mode 100644 index 000000000..272e6a879 --- /dev/null +++ b/3.4.0/api/python/search/all_5.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['factory_48',['Factory',['../classctrlxdatalayer_1_1factory_1_1Factory.html',1,'ctrlxdatalayer::factory']]], + ['factory_49',['factory',['../classctrlxdatalayer_1_1system_1_1System.html#a3479cf570ce19a1c8bd04b7d2ed77a16',1,'ctrlxdatalayer::system::System']]], + ['from_5ffiletime_50',['from_filetime',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a802cbbb74a8bc790ac330ae1bf66936a',1,'ctrlxdatalayer::variant::Variant']]] +]; diff --git a/3.4.0/api/python/search/all_6.html b/3.4.0/api/python/search/all_6.html new file mode 100644 index 000000000..55794cdf0 --- /dev/null +++ b/3.4.0/api/python/search/all_6.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/3.4.0/api/python/search/all_6.js b/3.4.0/api/python/search/all_6.js new file mode 100644 index 000000000..9979d4ead --- /dev/null +++ b/3.4.0/api/python/search/all_6.js @@ -0,0 +1,54 @@ +var searchData= +[ + ['get_5faddress_51',['get_address',['../classctrlxdatalayer_1_1bulk__util_1_1__Request.html#ab1d98a53d4dcc8457427964c3669fc43',1,'ctrlxdatalayer.bulk_util._Request.get_address()'],['../classctrlxdatalayer_1_1bulk_1_1Response.html#a5c11c7b63803746d10dc05f9e6d0f477',1,'ctrlxdatalayer.bulk.Response.get_address()'],['../classctrlxdatalayer_1_1subscription_1_1NotifyItem.html#a5c11c7b63803746d10dc05f9e6d0f477',1,'ctrlxdatalayer.subscription.NotifyItem.get_address()']]], + ['get_5farray_5fbool8_52',['get_array_bool8',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a924d3d7ab193da627b3da88c21ab4239',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5farray_5fdatetime_53',['get_array_datetime',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a66926a3aebdd5dddcba619152965ac5b',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5farray_5ffloat32_54',['get_array_float32',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a32ce63e69a91791699de056b78c2e4c9',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5farray_5ffloat64_55',['get_array_float64',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a80ac98bc49cbc4bf3440108d1f1694c0',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5farray_5fint16_56',['get_array_int16',['../classctrlxdatalayer_1_1variant_1_1Variant.html#ae001741dc4a5b69a7bfa8f7ba31ed9f9',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5farray_5fint32_57',['get_array_int32',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a8fb2c05a5070e2ae2043e89d522b01df',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5farray_5fint64_58',['get_array_int64',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a706d421b1c52891772713e6e056b2de4',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5farray_5fint8_59',['get_array_int8',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a78c45c3c88697fba94f8a4393fc3f3dd',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5farray_5fstring_60',['get_array_string',['../classctrlxdatalayer_1_1variant_1_1Variant.html#aec5b1f2393a4c04c85d432e8ca523750',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5farray_5fuint16_61',['get_array_uint16',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a12f0c5dadbd0447e8d5795875651e825',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5farray_5fuint32_62',['get_array_uint32',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a96c11c75d7e26cc94a9e19ab5bfab100',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5farray_5fuint64_63',['get_array_uint64',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a9ec5153849c7a472fb89b3e0ecc11f1a',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5farray_5fuint8_64',['get_array_uint8',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a7104788a9e6605a1cbbc04390e8a74f4',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5fauth_5ftoken_65',['get_auth_token',['../classctrlxdatalayer_1_1client_1_1Client.html#abd8f0167039751e5a366dcb6cdb7adde',1,'ctrlxdatalayer::client::Client']]], + ['get_5fbool8_66',['get_bool8',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a75db07ad8f9aed6b1c5861694db4a51e',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5fbulk_5frequest_67',['get_bulk_request',['../classctrlxdatalayer_1_1bulk__util_1_1__AsyncCreator.html#af35d103c09730fcabfca4c80fd54cea7',1,'ctrlxdatalayer::bulk_util::_AsyncCreator']]], + ['get_5fcount_68',['get_count',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a660ab4b0ebefc092f2a0c86d5ce96c4c',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5fdata_69',['get_data',['../classctrlxdatalayer_1_1bulk_1_1Response.html#afc01672756c355231e72eb572e8816cb',1,'ctrlxdatalayer.bulk.Response.get_data()'],['../classctrlxdatalayer_1_1bulk__util_1_1__Request.html#ada947705a81f7acad95740579376eaf1',1,'ctrlxdatalayer.bulk_util._Request.get_data()'],['../classctrlxdatalayer_1_1provider__subscription_1_1NotifyItemPublish.html#afc01672756c355231e72eb572e8816cb',1,'ctrlxdatalayer.provider_subscription.NotifyItemPublish.get_data()'],['../classctrlxdatalayer_1_1subscription_1_1NotifyItem.html#afc01672756c355231e72eb572e8816cb',1,'ctrlxdatalayer.subscription.NotifyItem.get_data()'],['../classctrlxdatalayer_1_1variant_1_1Variant.html#aa81f372e6f191ad43da86f88202f4ff1',1,'ctrlxdatalayer.variant.Variant.get_data()']]], + ['get_5fdatetime_70',['get_datetime',['../classctrlxdatalayer_1_1bulk_1_1Response.html#a84011aab6c79b9302277b0792c38e2de',1,'ctrlxdatalayer.bulk.Response.get_datetime()'],['../classctrlxdatalayer_1_1variant_1_1Variant.html#a84011aab6c79b9302277b0792c38e2de',1,'ctrlxdatalayer.variant.Variant.get_datetime()']]], + ['get_5fevent_5ftype_71',['get_event_type',['../classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish.html#a751d88e98de02bd623f527508ced5f33',1,'ctrlxdatalayer::provider_subscription::NotifyInfoPublish']]], + ['get_5fflatbuffers_72',['get_flatbuffers',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a65f10e9ff40c88a7f2ca2335dfaeb06e',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5ffloat32_73',['get_float32',['../classctrlxdatalayer_1_1variant_1_1Variant.html#adb04b4ccd77e22ba0ba372d9b2238c9f',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5ffloat64_74',['get_float64',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a6efc48d57e3694739c63d81126545186',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5fhandle_75',['get_handle',['../classctrlxdatalayer_1_1variant_1_1Variant.html#aa0041e70f5a3139baac2676f0a1367bb',1,'ctrlxdatalayer.variant.Variant.get_handle()'],['../classctrlxdatalayer_1_1system_1_1System.html#aa0041e70f5a3139baac2676f0a1367bb',1,'ctrlxdatalayer.system.System.get_handle()'],['../classctrlxdatalayer_1_1provider__node_1_1ProviderNode.html#aa0041e70f5a3139baac2676f0a1367bb',1,'ctrlxdatalayer.provider_node.ProviderNode.get_handle()'],['../classctrlxdatalayer_1_1factory_1_1Factory.html#aa0041e70f5a3139baac2676f0a1367bb',1,'ctrlxdatalayer.factory.Factory.get_handle()'],['../classctrlxdatalayer_1_1client_1_1Client.html#aa0041e70f5a3139baac2676f0a1367bb',1,'ctrlxdatalayer.client.Client.get_handle()'],['../classctrlxdatalayer_1_1converter_1_1Converter.html#aa0041e70f5a3139baac2676f0a1367bb',1,'ctrlxdatalayer.converter.Converter.get_handle()'],['../classctrlxdatalayer_1_1bulk__util_1_1__BulkCreator.html#acc12f2877df6c527e5ea11c25f0fa2f3',1,'ctrlxdatalayer.bulk_util._BulkCreator.get_handle()']]], + ['get_5fid_76',['get_id',['../classctrlxdatalayer_1_1provider__subscription_1_1ProviderSubscription.html#a554bd0d14273b89e8f9b662ddfbfc7dd',1,'ctrlxdatalayer::provider_subscription::ProviderSubscription']]], + ['get_5finfo_77',['get_info',['../classctrlxdatalayer_1_1provider__subscription_1_1NotifyItemPublish.html#a7d8f727dd8e6922458fc69753615c7f3',1,'ctrlxdatalayer::provider_subscription::NotifyItemPublish']]], + ['get_5fint16_78',['get_int16',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a7ee1c0f452c6f9f498dccff958927e32',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5fint32_79',['get_int32',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a7a0c3b8fe3b7c23ff5c06955c1ec00ff',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5fint64_80',['get_int64',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a34c244b60e584affd781ed0640901cc9',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5fint8_81',['get_int8',['../classctrlxdatalayer_1_1variant_1_1Variant.html#ac99fa55012a9e67cc66b443c3d6cb127',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5fnode_82',['get_node',['../classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish.html#ad9194b2e43ababe2e3ae64e69773db51',1,'ctrlxdatalayer::provider_subscription::NotifyInfoPublish']]], + ['get_5fnotes_83',['get_notes',['../classctrlxdatalayer_1_1provider__subscription_1_1ProviderSubscription.html#a0bb75e2c61e2795f17c65872ca2d9030',1,'ctrlxdatalayer::provider_subscription::ProviderSubscription']]], + ['get_5fnotify_5finfo_84',['get_notify_info',['../classctrlxdatalayer_1_1provider__subscription_1_1NotifyItemPublish.html#a133a89175644a835b1da1f1692bffffb',1,'ctrlxdatalayer::provider_subscription::NotifyItemPublish']]], + ['get_5fnotify_5ftype_85',['get_notify_type',['../classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish.html#a88f45ae28206cc34aab3e4c2111c5148',1,'ctrlxdatalayer::provider_subscription::NotifyInfoPublish']]], + ['get_5fprops_86',['get_props',['../classctrlxdatalayer_1_1provider__subscription_1_1ProviderSubscription.html#afc5177bdb6b5a4c38fab6ef286de972f',1,'ctrlxdatalayer::provider_subscription::ProviderSubscription']]], + ['get_5fptr_87',['get_ptr',['../classctrlxdatalayer_1_1client_1_1__CallbackPtr.html#a76edc2d231bb616d48fc4c62eb08dc11',1,'ctrlxdatalayer.client._CallbackPtr.get_ptr()'],['../classctrlxdatalayer_1_1provider__node_1_1__CallbackPtr.html#a76edc2d231bb616d48fc4c62eb08dc11',1,'ctrlxdatalayer.provider_node._CallbackPtr.get_ptr()']]], + ['get_5fresponse_88',['get_response',['../classctrlxdatalayer_1_1bulk_1_1Bulk.html#a5c6716a7af505ad22c0b5bbef1b2f868',1,'ctrlxdatalayer.bulk.Bulk.get_response()'],['../classctrlxdatalayer_1_1bulk_1_1__ResponseMgr.html#a5c6716a7af505ad22c0b5bbef1b2f868',1,'ctrlxdatalayer.bulk._ResponseMgr.get_response()']]], + ['get_5fresult_89',['get_result',['../classctrlxdatalayer_1_1bulk_1_1Response.html#af6dbafa5e6230c546fe9d430b05aa161',1,'ctrlxdatalayer::bulk::Response']]], + ['get_5fschema_90',['get_schema',['../classctrlxdatalayer_1_1converter_1_1Converter.html#ad183b9029660db6bb4bb69433724e296',1,'ctrlxdatalayer::converter::Converter']]], + ['get_5fsequence_5fnumber_91',['get_sequence_number',['../classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish.html#a7a438516b796cc54c24eb08f4fdf7a2e',1,'ctrlxdatalayer::provider_subscription::NotifyInfoPublish']]], + ['get_5fsize_92',['get_size',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a58f0989d88c1568a544aa91043e25479',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5fsource_5fname_93',['get_source_name',['../classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish.html#a6854b89f7fd6993dfb9dfb963ea4c3ee',1,'ctrlxdatalayer::provider_subscription::NotifyInfoPublish']]], + ['get_5fstring_94',['get_string',['../classctrlxdatalayer_1_1variant_1_1Variant.html#ac2d5928179dd1618da3468571fcb07c6',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5ftimestamp_95',['get_timestamp',['../classctrlxdatalayer_1_1provider__subscription_1_1ProviderSubscription.html#a3764a06e12be83a591b503c2187aaa91',1,'ctrlxdatalayer.provider_subscription.ProviderSubscription.get_timestamp()'],['../classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish.html#a74bf9a26aefa0f7c5a2a1aba45bad87e',1,'ctrlxdatalayer.provider_subscription.NotifyInfoPublish.get_timestamp()']]], + ['get_5ftoken_96',['get_token',['../classctrlxdatalayer_1_1client_1_1Client.html#a51d3f96e76304c8b09e2fa013e367ac0',1,'ctrlxdatalayer.client.Client.get_token()'],['../classctrlxdatalayer_1_1provider_1_1Provider.html#a063c3d4b65698a948694d0d2253a4ebf',1,'ctrlxdatalayer.provider.Provider.get_token()']]], + ['get_5ftype_97',['get_type',['../classctrlxdatalayer_1_1subscription_1_1NotifyItem.html#a9b06f22c2a8042372c2147d73138b8c9',1,'ctrlxdatalayer.subscription.NotifyItem.get_type()'],['../classctrlxdatalayer_1_1variant_1_1Variant.html#a46ac3f1804d179459220413607c5bf11',1,'ctrlxdatalayer.variant.Variant.get_type(self)']]], + ['get_5fuint16_98',['get_uint16',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a588e3aac79d19668f8fa1a7cf6289133',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5fuint32_99',['get_uint32',['../classctrlxdatalayer_1_1variant_1_1Variant.html#aff7d110d7bb6eb02ee76f98ec2024204',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5fuint64_100',['get_uint64',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a4babda83909e9fce66740907145d6422',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5fuint8_101',['get_uint8',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a0acd19505aab6486030ae2528e68e4bb',1,'ctrlxdatalayer::variant::Variant']]] +]; diff --git a/3.4.0/api/python/search/all_7.html b/3.4.0/api/python/search/all_7.html new file mode 100644 index 000000000..523643d62 --- /dev/null +++ b/3.4.0/api/python/search/all_7.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/3.4.0/api/python/search/all_7.js b/3.4.0/api/python/search/all_7.js new file mode 100644 index 000000000..e2215a884 --- /dev/null +++ b/3.4.0/api/python/search/all_7.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['id_102',['id',['../classctrlxdatalayer_1_1subscription_1_1Subscription.html#a2e9c2ba39c6a3dbdcede2e442af296b4',1,'ctrlxdatalayer.subscription.Subscription.id()'],['../classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync.html#a2e9c2ba39c6a3dbdcede2e442af296b4',1,'ctrlxdatalayer.subscription_async.SubscriptionAsync.id()'],['../classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync.html#a2e9c2ba39c6a3dbdcede2e442af296b4',1,'ctrlxdatalayer.subscription_sync.SubscriptionSync.id()']]], + ['is_5fconnected_103',['is_connected',['../classctrlxdatalayer_1_1client_1_1Client.html#ac32346ebf625109187290cca9dd0c936',1,'ctrlxdatalayer.client.Client.is_connected()'],['../classctrlxdatalayer_1_1provider_1_1Provider.html#ac32346ebf625109187290cca9dd0c936',1,'ctrlxdatalayer.provider.Provider.is_connected()']]] +]; diff --git a/3.4.0/api/python/search/all_8.html b/3.4.0/api/python/search/all_8.html new file mode 100644 index 000000000..774d27ab8 --- /dev/null +++ b/3.4.0/api/python/search/all_8.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/3.4.0/api/python/search/all_8.js b/3.4.0/api/python/search/all_8.js new file mode 100644 index 000000000..1a01d4aaf --- /dev/null +++ b/3.4.0/api/python/search/all_8.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['json_5fconverter_104',['json_converter',['../classctrlxdatalayer_1_1system_1_1System.html#ae6d78ceb96f08364a282efafc23c378a',1,'ctrlxdatalayer::system::System']]] +]; diff --git a/3.4.0/api/python/search/all_9.html b/3.4.0/api/python/search/all_9.html new file mode 100644 index 000000000..48b710e50 --- /dev/null +++ b/3.4.0/api/python/search/all_9.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/3.4.0/api/python/search/all_9.js b/3.4.0/api/python/search/all_9.js new file mode 100644 index 000000000..a3c0b8379 --- /dev/null +++ b/3.4.0/api/python/search/all_9.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['main_20page_105',['Main Page',['../index.html',1,'']]], + ['metadata_106',['metadata',['../classctrlxdatalayer_1_1bulk_1_1Bulk.html#a85de33ea82d0b5f03c9202f143613c6e',1,'ctrlxdatalayer::bulk::Bulk']]], + ['metadata_5fasync_107',['metadata_async',['../classctrlxdatalayer_1_1client_1_1Client.html#acd2a9e71f05e665be6a3154503437c4d',1,'ctrlxdatalayer::client::Client']]], + ['metadata_5fsync_108',['metadata_sync',['../classctrlxdatalayer_1_1client_1_1Client.html#ad0f79c6d663be73664640772f78ff928',1,'ctrlxdatalayer::client::Client']]], + ['metadatabuilder_109',['MetadataBuilder',['../classctrlxdatalayer_1_1metadata__utils_1_1MetadataBuilder.html',1,'ctrlxdatalayer::metadata_utils']]] +]; diff --git a/3.4.0/api/python/search/all_a.html b/3.4.0/api/python/search/all_a.html new file mode 100644 index 000000000..6a1336937 --- /dev/null +++ b/3.4.0/api/python/search/all_a.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/3.4.0/api/python/search/all_a.js b/3.4.0/api/python/search/all_a.js new file mode 100644 index 000000000..ebe5a4076 --- /dev/null +++ b/3.4.0/api/python/search/all_a.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['notifyinfopublish_110',['NotifyInfoPublish',['../classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish.html',1,'ctrlxdatalayer::provider_subscription']]], + ['notifyitem_111',['NotifyItem',['../classctrlxdatalayer_1_1subscription_1_1NotifyItem.html',1,'ctrlxdatalayer::subscription']]], + ['notifyitempublish_112',['NotifyItemPublish',['../classctrlxdatalayer_1_1provider__subscription_1_1NotifyItemPublish.html',1,'ctrlxdatalayer::provider_subscription']]], + ['notifytype_113',['NotifyType',['../classctrlxdatalayer_1_1subscription_1_1NotifyType.html',1,'ctrlxdatalayer::subscription']]], + ['notifytypepublish_114',['NotifyTypePublish',['../classctrlxdatalayer_1_1provider__subscription_1_1NotifyTypePublish.html',1,'ctrlxdatalayer::provider_subscription']]] +]; diff --git a/3.4.0/api/python/search/all_b.html b/3.4.0/api/python/search/all_b.html new file mode 100644 index 000000000..028c811de --- /dev/null +++ b/3.4.0/api/python/search/all_b.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/3.4.0/api/python/search/all_b.js b/3.4.0/api/python/search/all_b.js new file mode 100644 index 000000000..e73292100 --- /dev/null +++ b/3.4.0/api/python/search/all_b.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['on_5fclose_115',['on_close',['../classctrlxdatalayer_1_1subscription_1_1Subscription.html#a7e20a417210b832ce9e307ce5dc0f2a8',1,'ctrlxdatalayer.subscription.Subscription.on_close()'],['../classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync.html#a7e20a417210b832ce9e307ce5dc0f2a8',1,'ctrlxdatalayer.subscription_async.SubscriptionAsync.on_close()'],['../classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync.html#a7e20a417210b832ce9e307ce5dc0f2a8',1,'ctrlxdatalayer.subscription_sync.SubscriptionSync.on_close()']]] +]; diff --git a/3.4.0/api/python/search/all_c.html b/3.4.0/api/python/search/all_c.html new file mode 100644 index 000000000..634958f36 --- /dev/null +++ b/3.4.0/api/python/search/all_c.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/3.4.0/api/python/search/all_c.js b/3.4.0/api/python/search/all_c.js new file mode 100644 index 000000000..be8b5c537 --- /dev/null +++ b/3.4.0/api/python/search/all_c.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['parse_5fjson_5fcomplex_116',['parse_json_complex',['../classctrlxdatalayer_1_1converter_1_1Converter.html#ad4a041c00ab8eb15be81937553bcc2b0',1,'ctrlxdatalayer::converter::Converter']]], + ['parse_5fjson_5fsimple_117',['parse_json_simple',['../classctrlxdatalayer_1_1converter_1_1Converter.html#a9424dc33f2ba517cabb366f00d73a676',1,'ctrlxdatalayer::converter::Converter']]], + ['ping_5fasync_118',['ping_async',['../classctrlxdatalayer_1_1client_1_1Client.html#a7ee7a6f91b4e621ad70450fc03eb1bfc',1,'ctrlxdatalayer::client::Client']]], + ['ping_5fsync_119',['ping_sync',['../classctrlxdatalayer_1_1client_1_1Client.html#a9bb75215a97faa9d58983bdd5c6dffcb',1,'ctrlxdatalayer::client::Client']]], + ['provider_120',['Provider',['../classctrlxdatalayer_1_1provider_1_1Provider.html',1,'ctrlxdatalayer::provider']]], + ['providernode_121',['ProviderNode',['../classctrlxdatalayer_1_1provider__node_1_1ProviderNode.html',1,'ctrlxdatalayer::provider_node']]], + ['providernodecallbacks_122',['ProviderNodeCallbacks',['../classctrlxdatalayer_1_1provider__node_1_1ProviderNodeCallbacks.html',1,'ctrlxdatalayer::provider_node']]], + ['providersubscription_123',['ProviderSubscription',['../classctrlxdatalayer_1_1provider__subscription_1_1ProviderSubscription.html',1,'ctrlxdatalayer::provider_subscription']]], + ['publish_124',['publish',['../classctrlxdatalayer_1_1provider__subscription_1_1ProviderSubscription.html#a90a5676117808684b01329a31f3a9061',1,'ctrlxdatalayer::provider_subscription::ProviderSubscription']]] +]; diff --git a/3.4.0/api/python/search/all_d.html b/3.4.0/api/python/search/all_d.html new file mode 100644 index 000000000..45439ba9a --- /dev/null +++ b/3.4.0/api/python/search/all_d.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/3.4.0/api/python/search/all_d.js b/3.4.0/api/python/search/all_d.js new file mode 100644 index 000000000..bc9000fed --- /dev/null +++ b/3.4.0/api/python/search/all_d.js @@ -0,0 +1,19 @@ +var searchData= +[ + ['read_125',['read',['../classctrlxdatalayer_1_1bulk_1_1Bulk.html#a2069c5a977cebb1d92c684b03852391c',1,'ctrlxdatalayer.bulk.Bulk.read()'],['../classctrlxdatalayer_1_1metadata__utils_1_1ReferenceType.html#a3163bff827604da27b61fec6c17e2bac',1,'ctrlxdatalayer.metadata_utils.ReferenceType.read()']]], + ['read_5fasync_126',['read_async',['../classctrlxdatalayer_1_1client_1_1Client.html#af3f62e6a492fc3fab7dae517aad4dc1b',1,'ctrlxdatalayer::client::Client']]], + ['read_5fasync_5fargs_127',['read_async_args',['../classctrlxdatalayer_1_1client_1_1Client.html#a016e2bf7378827cade38b386fbfe8b9a',1,'ctrlxdatalayer::client::Client']]], + ['read_5fin_128',['read_in',['../classctrlxdatalayer_1_1metadata__utils_1_1ReferenceType.html#a77753b931fc152ec17f95bb8512bf60e',1,'ctrlxdatalayer::metadata_utils::ReferenceType']]], + ['read_5fjson_5fsync_129',['read_json_sync',['../classctrlxdatalayer_1_1client_1_1Client.html#aa6dc479dcc9115696b36bb94f07bd9f7',1,'ctrlxdatalayer::client::Client']]], + ['read_5fout_130',['read_out',['../classctrlxdatalayer_1_1metadata__utils_1_1ReferenceType.html#a3fc13f331391b2937258262f5f2e2ddd',1,'ctrlxdatalayer::metadata_utils::ReferenceType']]], + ['read_5fsync_131',['read_sync',['../classctrlxdatalayer_1_1client_1_1Client.html#a83db3e6fc133f4add01b9607abc9da41',1,'ctrlxdatalayer::client::Client']]], + ['read_5fsync_5fargs_132',['read_sync_args',['../classctrlxdatalayer_1_1client_1_1Client.html#a02e7b65adf36bea6b910ab1aa3e50eec',1,'ctrlxdatalayer::client::Client']]], + ['referencetype_133',['ReferenceType',['../classctrlxdatalayer_1_1metadata__utils_1_1ReferenceType.html',1,'ctrlxdatalayer::metadata_utils']]], + ['register_5fnode_134',['register_node',['../classctrlxdatalayer_1_1provider_1_1Provider.html#aee4f015e58fc712f5cee4268020b92e0',1,'ctrlxdatalayer::provider::Provider']]], + ['register_5ftype_135',['register_type',['../classctrlxdatalayer_1_1provider_1_1Provider.html#a34d8a422403f116cae869ae57301fa7b',1,'ctrlxdatalayer::provider::Provider']]], + ['register_5ftype_5fvariant_136',['register_type_variant',['../classctrlxdatalayer_1_1provider_1_1Provider.html#a1a75a4d35dff57fe7c351c7df640ea73',1,'ctrlxdatalayer::provider::Provider']]], + ['remove_5fasync_137',['remove_async',['../classctrlxdatalayer_1_1client_1_1Client.html#a44edb6a2c554663cb248e44584f75e2e',1,'ctrlxdatalayer::client::Client']]], + ['remove_5fsync_138',['remove_sync',['../classctrlxdatalayer_1_1client_1_1Client.html#af8b49ba365916fad17d5af01542ebde2',1,'ctrlxdatalayer::client::Client']]], + ['response_139',['Response',['../classctrlxdatalayer_1_1bulk_1_1Response.html',1,'ctrlxdatalayer::bulk']]], + ['result_140',['Result',['../classctrlxdatalayer_1_1variant_1_1Result.html',1,'ctrlxdatalayer::variant']]] +]; diff --git a/3.4.0/api/python/search/all_e.html b/3.4.0/api/python/search/all_e.html new file mode 100644 index 000000000..e0e208b3f --- /dev/null +++ b/3.4.0/api/python/search/all_e.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/3.4.0/api/python/search/all_e.js b/3.4.0/api/python/search/all_e.js new file mode 100644 index 000000000..d39fbec4e --- /dev/null +++ b/3.4.0/api/python/search/all_e.js @@ -0,0 +1,59 @@ +var searchData= +[ + ['set_5farray_5fbool8_141',['set_array_bool8',['../classctrlxdatalayer_1_1variant_1_1Variant.html#abfe205a3679dd35b1fa85f01cf4c6866',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5farray_5fdatetime_142',['set_array_datetime',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a0134a60e0ab576362dd4f5bf80543ee9',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5farray_5ffloat32_143',['set_array_float32',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a738cc9935653c5657291c639b655814c',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5farray_5ffloat64_144',['set_array_float64',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a01f3b2bd5f5edc248f694e04ae85cf93',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5farray_5fint16_145',['set_array_int16',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a680b15bc1305f3c08266ab499dbac5f4',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5farray_5fint32_146',['set_array_int32',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a3fc216e15073521f82eacc4af123813c',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5farray_5fint64_147',['set_array_int64',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a2c7645222274d8d25e6ccc73e53c7ce0',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5farray_5fint8_148',['set_array_int8',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a51d671ca3eb41a7cf82d4da08be832c0',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5farray_5fstring_149',['set_array_string',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a5d85c6058eceba27e168167ab33b24d6',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5farray_5ftimestamp_150',['set_array_timestamp',['../classctrlxdatalayer_1_1variant_1_1Variant.html#ada8f88576b2484f006e6ec3e0d18585f',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5farray_5fuint16_151',['set_array_uint16',['../classctrlxdatalayer_1_1variant_1_1Variant.html#aad0844de8a450f2f4613a6a39a0f54f6',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5farray_5fuint32_152',['set_array_uint32',['../classctrlxdatalayer_1_1variant_1_1Variant.html#aa4d02885231cd7cc4344139d62db1d15',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5farray_5fuint64_153',['set_array_uint64',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a68eef68e4420b3b0654b9c7000e8cfef',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5farray_5fuint8_154',['set_array_uint8',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a28df413e7aa860dbdd38ac1e66e4887d',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5fauth_5ftoken_155',['set_auth_token',['../classctrlxdatalayer_1_1client_1_1Client.html#abff547e12e4e35837bd436f956ff9996',1,'ctrlxdatalayer::client::Client']]], + ['set_5fbfbs_5fpath_156',['set_bfbs_path',['../classctrlxdatalayer_1_1system_1_1System.html#a02ddb48ce95bbb2e5baac72f98727f54',1,'ctrlxdatalayer::system::System']]], + ['set_5fbool8_157',['set_bool8',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a6cf51a9b177f632356cf8999cb934fb8',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5fdatetime_158',['set_datetime',['../classctrlxdatalayer_1_1variant_1_1Variant.html#aa7c6edc2d9499b2b1784384a370d92b8',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5fdisplay_5fformat_159',['set_display_format',['../classctrlxdatalayer_1_1metadata__utils_1_1MetadataBuilder.html#a2cf382265dc4c1c970c358e25404d862',1,'ctrlxdatalayer::metadata_utils::MetadataBuilder']]], + ['set_5fdisplay_5fname_160',['set_display_name',['../classctrlxdatalayer_1_1metadata__utils_1_1MetadataBuilder.html#a4b144a088ac76f44a1dbeb7be69772ae',1,'ctrlxdatalayer::metadata_utils::MetadataBuilder']]], + ['set_5ferror_5finterval_161',['set_error_interval',['../classctrlxdatalayer_1_1subscription__properties__builder_1_1SubscriptionPropertiesBuilder.html#abea6673abcd60543fc8f35c4433851e2',1,'ctrlxdatalayer::subscription_properties_builder::SubscriptionPropertiesBuilder']]], + ['set_5fevent_5ftype_162',['set_event_type',['../classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish.html#a36a063ff85260f7e1b9a6014cc697f42',1,'ctrlxdatalayer::provider_subscription::NotifyInfoPublish']]], + ['set_5fflatbuffers_163',['set_flatbuffers',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a829f7ac9170f88c78f01d54f33ecb3c3',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5ffloat32_164',['set_float32',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a5d8373a82c8c22b2f68f85acba508df1',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5ffloat64_165',['set_float64',['../classctrlxdatalayer_1_1variant_1_1Variant.html#aad5c9a12eb884062bb54fd3234717af4',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5fint16_166',['set_int16',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a422ab080231fb657c32ef8ae53ec47a2',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5fint32_167',['set_int32',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a9f86f9a1e1e6417bfd90f00f8e30326e',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5fint64_168',['set_int64',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a8bbd8b4d8711b334bd3ab6bcc8c8716d',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5fint8_169',['set_int8',['../classctrlxdatalayer_1_1variant_1_1Variant.html#aa8729837e73e891d5b8a9275c9f13109',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5fkeepalive_5finterval_170',['set_keepalive_interval',['../classctrlxdatalayer_1_1subscription__properties__builder_1_1SubscriptionPropertiesBuilder.html#a53aa6fa4bd0bfea0a991b339e797afdb',1,'ctrlxdatalayer::subscription_properties_builder::SubscriptionPropertiesBuilder']]], + ['set_5fnode_5fclass_171',['set_node_class',['../classctrlxdatalayer_1_1metadata__utils_1_1MetadataBuilder.html#a760ef5e9db2d57aad5cd92cd2e6b8837',1,'ctrlxdatalayer::metadata_utils::MetadataBuilder']]], + ['set_5fnotify_5ftype_172',['set_notify_type',['../classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish.html#a4d5257c2d39fb1820618c9010b174cdd',1,'ctrlxdatalayer::provider_subscription::NotifyInfoPublish']]], + ['set_5foperations_173',['set_operations',['../classctrlxdatalayer_1_1metadata__utils_1_1MetadataBuilder.html#acf3c195c61a938bd77461eb29bbd86ab',1,'ctrlxdatalayer::metadata_utils::MetadataBuilder']]], + ['set_5fptr_174',['set_ptr',['../classctrlxdatalayer_1_1client_1_1__CallbackPtr.html#a37eebd24129a6e95c21c59d45f365cf5',1,'ctrlxdatalayer.client._CallbackPtr.set_ptr()'],['../classctrlxdatalayer_1_1provider__node_1_1__CallbackPtr.html#a37eebd24129a6e95c21c59d45f365cf5',1,'ctrlxdatalayer.provider_node._CallbackPtr.set_ptr()']]], + ['set_5fpublish_5finterval_175',['set_publish_interval',['../classctrlxdatalayer_1_1subscription__properties__builder_1_1SubscriptionPropertiesBuilder.html#a992aa6fccd6801faee9dabb71ddc8a91',1,'ctrlxdatalayer::subscription_properties_builder::SubscriptionPropertiesBuilder']]], + ['set_5fresponses_176',['set_responses',['../classctrlxdatalayer_1_1bulk_1_1__ResponseAsynMgr.html#afa59d16d0f675600ade61c54b28e78a8',1,'ctrlxdatalayer::bulk::_ResponseAsynMgr']]], + ['set_5fsequence_5fnumber_177',['set_sequence_number',['../classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish.html#abd219f05f00188b322577213f1ab67dd',1,'ctrlxdatalayer::provider_subscription::NotifyInfoPublish']]], + ['set_5fsource_5fname_178',['set_source_name',['../classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish.html#abe66cc2811b8a32147af24a06f2a51d5',1,'ctrlxdatalayer::provider_subscription::NotifyInfoPublish']]], + ['set_5fstring_179',['set_string',['../classctrlxdatalayer_1_1variant_1_1Variant.html#afaae9bd4c27243d92f48627b1b23fc33',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5ftimeout_180',['set_timeout',['../classctrlxdatalayer_1_1client_1_1Client.html#a50cde33dfad02fb5b16245ff0e967b8e',1,'ctrlxdatalayer::client::Client']]], + ['set_5ftimeout_5fnode_181',['set_timeout_node',['../classctrlxdatalayer_1_1provider_1_1Provider.html#af68383acc4596ef6ff108200e8f6b031',1,'ctrlxdatalayer::provider::Provider']]], + ['set_5ftimestamp_182',['set_timestamp',['../classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish.html#a9760f5d9c86ad591cf935711948e064a',1,'ctrlxdatalayer::provider_subscription::NotifyInfoPublish']]], + ['set_5fuint16_183',['set_uint16',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a27826bdaa11bb033a63ab24bbd473276',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5fuint32_184',['set_uint32',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a8fcc18d9ee2c0e437dd1cc1f6d9f8285',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5fuint64_185',['set_uint64',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a381ba8652d4042e741dfa06c16ba6156',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5fuint8_186',['set_uint8',['../classctrlxdatalayer_1_1variant_1_1Variant.html#ad6bb2919ae6d392e3d730398c856db53',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5funit_187',['set_unit',['../classctrlxdatalayer_1_1metadata__utils_1_1MetadataBuilder.html#a0c7585e90d8eab7426cbabcdd1ce848d',1,'ctrlxdatalayer::metadata_utils::MetadataBuilder']]], + ['start_188',['start',['../classctrlxdatalayer_1_1provider_1_1Provider.html#a764c2f88608a6720e368d45781820547',1,'ctrlxdatalayer.provider.Provider.start()'],['../classctrlxdatalayer_1_1system_1_1System.html#a491f5dd818499e13abb39b8720660961',1,'ctrlxdatalayer.system.System.start()']]], + ['stop_189',['stop',['../classctrlxdatalayer_1_1provider_1_1Provider.html#a0930c5af691b4c2e5f9b650d5a47e908',1,'ctrlxdatalayer.provider.Provider.stop()'],['../classctrlxdatalayer_1_1system_1_1System.html#ad20f78fa941d9474c641babacff5e109',1,'ctrlxdatalayer.system.System.stop()']]], + ['subscribe_190',['subscribe',['../classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync.html#a821e0f9f914647f2058a771a3e8be078',1,'ctrlxdatalayer.subscription_async.SubscriptionAsync.subscribe()'],['../classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync.html#afe11d9803c614a1546aaf7181a7cfbd4',1,'ctrlxdatalayer.subscription_sync.SubscriptionSync.subscribe()']]], + ['subscribe_5fmulti_191',['subscribe_multi',['../classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync.html#a2f33cdc9ef14837b31d01f59c3b80886',1,'ctrlxdatalayer.subscription_async.SubscriptionAsync.subscribe_multi()'],['../classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync.html#a7edb60061768545658e3e9c276d1c4ee',1,'ctrlxdatalayer.subscription_sync.SubscriptionSync.subscribe_multi()']]], + ['subscription_192',['Subscription',['../classctrlxdatalayer_1_1subscription_1_1Subscription.html',1,'ctrlxdatalayer::subscription']]], + ['subscriptionasync_193',['SubscriptionAsync',['../classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync.html',1,'ctrlxdatalayer::subscription_async']]], + ['subscriptionpropertiesbuilder_194',['SubscriptionPropertiesBuilder',['../classctrlxdatalayer_1_1subscription__properties__builder_1_1SubscriptionPropertiesBuilder.html',1,'ctrlxdatalayer::subscription_properties_builder']]], + ['subscriptionsync_195',['SubscriptionSync',['../classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync.html',1,'ctrlxdatalayer::subscription_sync']]], + ['system_196',['System',['../classctrlxdatalayer_1_1system_1_1System.html',1,'ctrlxdatalayer::system']]] +]; diff --git a/3.4.0/api/python/search/all_f.html b/3.4.0/api/python/search/all_f.html new file mode 100644 index 000000000..9aec422c6 --- /dev/null +++ b/3.4.0/api/python/search/all_f.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/3.4.0/api/python/search/all_f.js b/3.4.0/api/python/search/all_f.js new file mode 100644 index 000000000..34aec1ad2 --- /dev/null +++ b/3.4.0/api/python/search/all_f.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['timeoutsetting_197',['TimeoutSetting',['../classctrlxdatalayer_1_1client_1_1TimeoutSetting.html',1,'ctrlxdatalayer::client']]], + ['to_5ffiletime_198',['to_filetime',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a8d775b40b91309e733f064cc3d141d28',1,'ctrlxdatalayer::variant::Variant']]] +]; diff --git a/3.4.0/api/python/search/classes_0.html b/3.4.0/api/python/search/classes_0.html new file mode 100644 index 000000000..aa2943d6f --- /dev/null +++ b/3.4.0/api/python/search/classes_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/3.4.0/api/python/search/classes_0.js b/3.4.0/api/python/search/classes_0.js new file mode 100644 index 000000000..74d779440 --- /dev/null +++ b/3.4.0/api/python/search/classes_0.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['_5fasynccreator_215',['_AsyncCreator',['../classctrlxdatalayer_1_1bulk__util_1_1__AsyncCreator.html',1,'ctrlxdatalayer::bulk_util']]], + ['_5fbulkcreator_216',['_BulkCreator',['../classctrlxdatalayer_1_1bulk__util_1_1__BulkCreator.html',1,'ctrlxdatalayer::bulk_util']]], + ['_5fcallbackptr_217',['_CallbackPtr',['../classctrlxdatalayer_1_1client_1_1__CallbackPtr.html',1,'_CallbackPtr'],['../classctrlxdatalayer_1_1provider__node_1_1__CallbackPtr.html',1,'_CallbackPtr']]], + ['_5frequest_218',['_Request',['../classctrlxdatalayer_1_1bulk__util_1_1__Request.html',1,'ctrlxdatalayer::bulk_util']]], + ['_5fresponseasynmgr_219',['_ResponseAsynMgr',['../classctrlxdatalayer_1_1bulk_1_1__ResponseAsynMgr.html',1,'ctrlxdatalayer::bulk']]], + ['_5fresponsebulkmgr_220',['_ResponseBulkMgr',['../classctrlxdatalayer_1_1bulk_1_1__ResponseBulkMgr.html',1,'ctrlxdatalayer::bulk']]], + ['_5fresponsemgr_221',['_ResponseMgr',['../classctrlxdatalayer_1_1bulk_1_1__ResponseMgr.html',1,'ctrlxdatalayer::bulk']]] +]; diff --git a/3.4.0/api/python/search/classes_1.html b/3.4.0/api/python/search/classes_1.html new file mode 100644 index 000000000..ecd0b8a10 --- /dev/null +++ b/3.4.0/api/python/search/classes_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/3.4.0/api/python/search/classes_1.js b/3.4.0/api/python/search/classes_1.js new file mode 100644 index 000000000..7b63301f4 --- /dev/null +++ b/3.4.0/api/python/search/classes_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['allowedoperation_222',['AllowedOperation',['../classctrlxdatalayer_1_1metadata__utils_1_1AllowedOperation.html',1,'ctrlxdatalayer::metadata_utils']]] +]; diff --git a/3.4.0/api/python/search/classes_2.html b/3.4.0/api/python/search/classes_2.html new file mode 100644 index 000000000..186177b34 --- /dev/null +++ b/3.4.0/api/python/search/classes_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/3.4.0/api/python/search/classes_2.js b/3.4.0/api/python/search/classes_2.js new file mode 100644 index 000000000..1659e5b39 --- /dev/null +++ b/3.4.0/api/python/search/classes_2.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['bulk_223',['Bulk',['../classctrlxdatalayer_1_1bulk_1_1Bulk.html',1,'ctrlxdatalayer::bulk']]], + ['bulkcreaterequest_224',['BulkCreateRequest',['../classctrlxdatalayer_1_1bulk_1_1BulkCreateRequest.html',1,'ctrlxdatalayer::bulk']]], + ['bulkreadrequest_225',['BulkReadRequest',['../classctrlxdatalayer_1_1bulk_1_1BulkReadRequest.html',1,'ctrlxdatalayer::bulk']]], + ['bulkwriterequest_226',['BulkWriteRequest',['../classctrlxdatalayer_1_1bulk_1_1BulkWriteRequest.html',1,'ctrlxdatalayer::bulk']]] +]; diff --git a/3.4.0/api/python/search/classes_3.html b/3.4.0/api/python/search/classes_3.html new file mode 100644 index 000000000..a8a7aaae6 --- /dev/null +++ b/3.4.0/api/python/search/classes_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/3.4.0/api/python/search/classes_3.js b/3.4.0/api/python/search/classes_3.js new file mode 100644 index 000000000..50df51422 --- /dev/null +++ b/3.4.0/api/python/search/classes_3.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['c_5fdlr_5fschema_227',['C_DLR_SCHEMA',['../classctrlxdatalayer_1_1converter_1_1C__DLR__SCHEMA.html',1,'ctrlxdatalayer::converter']]], + ['client_228',['Client',['../classctrlxdatalayer_1_1client_1_1Client.html',1,'ctrlxdatalayer::client']]], + ['converter_229',['Converter',['../classctrlxdatalayer_1_1converter_1_1Converter.html',1,'ctrlxdatalayer::converter']]] +]; diff --git a/3.4.0/api/python/search/classes_4.html b/3.4.0/api/python/search/classes_4.html new file mode 100644 index 000000000..e7174fe96 --- /dev/null +++ b/3.4.0/api/python/search/classes_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/3.4.0/api/python/search/classes_4.js b/3.4.0/api/python/search/classes_4.js new file mode 100644 index 000000000..06b8b6454 --- /dev/null +++ b/3.4.0/api/python/search/classes_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['factory_230',['Factory',['../classctrlxdatalayer_1_1factory_1_1Factory.html',1,'ctrlxdatalayer::factory']]] +]; diff --git a/3.4.0/api/python/search/classes_5.html b/3.4.0/api/python/search/classes_5.html new file mode 100644 index 000000000..c38adb12c --- /dev/null +++ b/3.4.0/api/python/search/classes_5.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/3.4.0/api/python/search/classes_5.js b/3.4.0/api/python/search/classes_5.js new file mode 100644 index 000000000..7bef5705a --- /dev/null +++ b/3.4.0/api/python/search/classes_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['metadatabuilder_231',['MetadataBuilder',['../classctrlxdatalayer_1_1metadata__utils_1_1MetadataBuilder.html',1,'ctrlxdatalayer::metadata_utils']]] +]; diff --git a/3.4.0/api/python/search/classes_6.html b/3.4.0/api/python/search/classes_6.html new file mode 100644 index 000000000..091322aad --- /dev/null +++ b/3.4.0/api/python/search/classes_6.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/3.4.0/api/python/search/classes_6.js b/3.4.0/api/python/search/classes_6.js new file mode 100644 index 000000000..8983fb091 --- /dev/null +++ b/3.4.0/api/python/search/classes_6.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['notifyinfopublish_232',['NotifyInfoPublish',['../classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish.html',1,'ctrlxdatalayer::provider_subscription']]], + ['notifyitem_233',['NotifyItem',['../classctrlxdatalayer_1_1subscription_1_1NotifyItem.html',1,'ctrlxdatalayer::subscription']]], + ['notifyitempublish_234',['NotifyItemPublish',['../classctrlxdatalayer_1_1provider__subscription_1_1NotifyItemPublish.html',1,'ctrlxdatalayer::provider_subscription']]], + ['notifytype_235',['NotifyType',['../classctrlxdatalayer_1_1subscription_1_1NotifyType.html',1,'ctrlxdatalayer::subscription']]], + ['notifytypepublish_236',['NotifyTypePublish',['../classctrlxdatalayer_1_1provider__subscription_1_1NotifyTypePublish.html',1,'ctrlxdatalayer::provider_subscription']]] +]; diff --git a/3.4.0/api/python/search/classes_7.html b/3.4.0/api/python/search/classes_7.html new file mode 100644 index 000000000..ca9154bd8 --- /dev/null +++ b/3.4.0/api/python/search/classes_7.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/3.4.0/api/python/search/classes_7.js b/3.4.0/api/python/search/classes_7.js new file mode 100644 index 000000000..0cc5ab896 --- /dev/null +++ b/3.4.0/api/python/search/classes_7.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['provider_237',['Provider',['../classctrlxdatalayer_1_1provider_1_1Provider.html',1,'ctrlxdatalayer::provider']]], + ['providernode_238',['ProviderNode',['../classctrlxdatalayer_1_1provider__node_1_1ProviderNode.html',1,'ctrlxdatalayer::provider_node']]], + ['providernodecallbacks_239',['ProviderNodeCallbacks',['../classctrlxdatalayer_1_1provider__node_1_1ProviderNodeCallbacks.html',1,'ctrlxdatalayer::provider_node']]], + ['providersubscription_240',['ProviderSubscription',['../classctrlxdatalayer_1_1provider__subscription_1_1ProviderSubscription.html',1,'ctrlxdatalayer::provider_subscription']]] +]; diff --git a/3.4.0/api/python/search/classes_8.html b/3.4.0/api/python/search/classes_8.html new file mode 100644 index 000000000..04c1aea73 --- /dev/null +++ b/3.4.0/api/python/search/classes_8.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/3.4.0/api/python/search/classes_8.js b/3.4.0/api/python/search/classes_8.js new file mode 100644 index 000000000..92be944eb --- /dev/null +++ b/3.4.0/api/python/search/classes_8.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['referencetype_241',['ReferenceType',['../classctrlxdatalayer_1_1metadata__utils_1_1ReferenceType.html',1,'ctrlxdatalayer::metadata_utils']]], + ['response_242',['Response',['../classctrlxdatalayer_1_1bulk_1_1Response.html',1,'ctrlxdatalayer::bulk']]], + ['result_243',['Result',['../classctrlxdatalayer_1_1variant_1_1Result.html',1,'ctrlxdatalayer::variant']]] +]; diff --git a/3.4.0/api/python/search/classes_9.html b/3.4.0/api/python/search/classes_9.html new file mode 100644 index 000000000..1fca9059e --- /dev/null +++ b/3.4.0/api/python/search/classes_9.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/3.4.0/api/python/search/classes_9.js b/3.4.0/api/python/search/classes_9.js new file mode 100644 index 000000000..a757a6fb2 --- /dev/null +++ b/3.4.0/api/python/search/classes_9.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['subscription_244',['Subscription',['../classctrlxdatalayer_1_1subscription_1_1Subscription.html',1,'ctrlxdatalayer::subscription']]], + ['subscriptionasync_245',['SubscriptionAsync',['../classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync.html',1,'ctrlxdatalayer::subscription_async']]], + ['subscriptionpropertiesbuilder_246',['SubscriptionPropertiesBuilder',['../classctrlxdatalayer_1_1subscription__properties__builder_1_1SubscriptionPropertiesBuilder.html',1,'ctrlxdatalayer::subscription_properties_builder']]], + ['subscriptionsync_247',['SubscriptionSync',['../classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync.html',1,'ctrlxdatalayer::subscription_sync']]], + ['system_248',['System',['../classctrlxdatalayer_1_1system_1_1System.html',1,'ctrlxdatalayer::system']]] +]; diff --git a/3.4.0/api/python/search/classes_a.html b/3.4.0/api/python/search/classes_a.html new file mode 100644 index 000000000..dfbd644d1 --- /dev/null +++ b/3.4.0/api/python/search/classes_a.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/3.4.0/api/python/search/classes_a.js b/3.4.0/api/python/search/classes_a.js new file mode 100644 index 000000000..c6205fa43 --- /dev/null +++ b/3.4.0/api/python/search/classes_a.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['timeoutsetting_249',['TimeoutSetting',['../classctrlxdatalayer_1_1client_1_1TimeoutSetting.html',1,'ctrlxdatalayer::client']]] +]; diff --git a/3.4.0/api/python/search/classes_b.html b/3.4.0/api/python/search/classes_b.html new file mode 100644 index 000000000..cfa758a53 --- /dev/null +++ b/3.4.0/api/python/search/classes_b.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/3.4.0/api/python/search/classes_b.js b/3.4.0/api/python/search/classes_b.js new file mode 100644 index 000000000..7c8c0821f --- /dev/null +++ b/3.4.0/api/python/search/classes_b.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['variant_250',['Variant',['../classctrlxdatalayer_1_1variant_1_1Variant.html',1,'ctrlxdatalayer::variant']]], + ['variantref_251',['VariantRef',['../classctrlxdatalayer_1_1variant_1_1VariantRef.html',1,'ctrlxdatalayer::variant']]], + ['varianttype_252',['VariantType',['../classctrlxdatalayer_1_1variant_1_1VariantType.html',1,'ctrlxdatalayer::variant']]] +]; diff --git a/3.4.0/api/python/search/close.svg b/3.4.0/api/python/search/close.svg new file mode 100644 index 000000000..90f365313 --- /dev/null +++ b/3.4.0/api/python/search/close.svg @@ -0,0 +1,31 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/3.4.0/api/python/search/functions_0.html b/3.4.0/api/python/search/functions_0.html new file mode 100644 index 000000000..5b66a7091 --- /dev/null +++ b/3.4.0/api/python/search/functions_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/3.4.0/api/python/search/functions_0.js b/3.4.0/api/python/search/functions_0.js new file mode 100644 index 000000000..2014725d7 --- /dev/null +++ b/3.4.0/api/python/search/functions_0.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['_5f_5fdel_5f_5f_253',['__del__',['../classctrlxdatalayer_1_1provider__subscription_1_1NotifyItemPublish.html#a41a65d7030dd1006b177d0bc24e1a12b',1,'ctrlxdatalayer.provider_subscription.NotifyItemPublish.__del__()'],['../classctrlxdatalayer_1_1variant_1_1Variant.html#a41a65d7030dd1006b177d0bc24e1a12b',1,'ctrlxdatalayer.variant.Variant.__del__()'],['../classctrlxdatalayer_1_1variant_1_1VariantRef.html#a41a65d7030dd1006b177d0bc24e1a12b',1,'ctrlxdatalayer.variant.VariantRef.__del__()'],['../classctrlxdatalayer_1_1provider__node_1_1ProviderNode.html#a41a65d7030dd1006b177d0bc24e1a12b',1,'ctrlxdatalayer.provider_node.ProviderNode.__del__(self)']]], + ['_5f_5fenter_5f_5f_254',['__enter__',['../classctrlxdatalayer_1_1provider__node_1_1ProviderNode.html#a404692262c90487a8013dbdd128cdd7f',1,'ctrlxdatalayer.provider_node.ProviderNode.__enter__()'],['../classctrlxdatalayer_1_1variant_1_1Variant.html#a404692262c90487a8013dbdd128cdd7f',1,'ctrlxdatalayer.variant.Variant.__enter__()'],['../classctrlxdatalayer_1_1system_1_1System.html#a404692262c90487a8013dbdd128cdd7f',1,'ctrlxdatalayer.system.System.__enter__()'],['../classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync.html#a404692262c90487a8013dbdd128cdd7f',1,'ctrlxdatalayer.subscription_sync.SubscriptionSync.__enter__()'],['../classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync.html#a404692262c90487a8013dbdd128cdd7f',1,'ctrlxdatalayer.subscription_async.SubscriptionAsync.__enter__()'],['../classctrlxdatalayer_1_1provider__subscription_1_1NotifyItemPublish.html#a404692262c90487a8013dbdd128cdd7f',1,'ctrlxdatalayer.provider_subscription.NotifyItemPublish.__enter__()'],['../classctrlxdatalayer_1_1provider_1_1Provider.html#a404692262c90487a8013dbdd128cdd7f',1,'ctrlxdatalayer.provider.Provider.__enter__()'],['../classctrlxdatalayer_1_1client_1_1Client.html#a404692262c90487a8013dbdd128cdd7f',1,'ctrlxdatalayer.client.Client.__enter__()'],['../classctrlxdatalayer_1_1bulk__util_1_1__AsyncCreator.html#a404692262c90487a8013dbdd128cdd7f',1,'ctrlxdatalayer.bulk_util._AsyncCreator.__enter__()'],['../classctrlxdatalayer_1_1bulk__util_1_1__BulkCreator.html#a404692262c90487a8013dbdd128cdd7f',1,'ctrlxdatalayer.bulk_util._BulkCreator.__enter__()'],['../classctrlxdatalayer_1_1bulk__util_1_1__Request.html#a404692262c90487a8013dbdd128cdd7f',1,'ctrlxdatalayer.bulk_util._Request.__enter__()'],['../classctrlxdatalayer_1_1bulk_1_1Bulk.html#a404692262c90487a8013dbdd128cdd7f',1,'ctrlxdatalayer.bulk.Bulk.__enter__()'],['../classctrlxdatalayer_1_1bulk_1_1__ResponseAsynMgr.html#a404692262c90487a8013dbdd128cdd7f',1,'ctrlxdatalayer.bulk._ResponseAsynMgr.__enter__()'],['../classctrlxdatalayer_1_1bulk_1_1__ResponseBulkMgr.html#a404692262c90487a8013dbdd128cdd7f',1,'ctrlxdatalayer.bulk._ResponseBulkMgr.__enter__()'],['../classctrlxdatalayer_1_1bulk_1_1__ResponseMgr.html#a404692262c90487a8013dbdd128cdd7f',1,'ctrlxdatalayer.bulk._ResponseMgr.__enter__()'],['../classctrlxdatalayer_1_1bulk_1_1Response.html#a404692262c90487a8013dbdd128cdd7f',1,'ctrlxdatalayer.bulk.Response.__enter__()']]], + ['_5f_5fexit_5f_5f_255',['__exit__',['../classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync.html#a1d4375d5b88ea11310dcd3bfb10ecb97',1,'ctrlxdatalayer.subscription_sync.SubscriptionSync.__exit__()'],['../classctrlxdatalayer_1_1variant_1_1VariantRef.html#a1d4375d5b88ea11310dcd3bfb10ecb97',1,'ctrlxdatalayer.variant.VariantRef.__exit__()'],['../classctrlxdatalayer_1_1variant_1_1Variant.html#a1d4375d5b88ea11310dcd3bfb10ecb97',1,'ctrlxdatalayer.variant.Variant.__exit__()'],['../classctrlxdatalayer_1_1system_1_1System.html#a1d4375d5b88ea11310dcd3bfb10ecb97',1,'ctrlxdatalayer.system.System.__exit__()'],['../classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync.html#a1d4375d5b88ea11310dcd3bfb10ecb97',1,'ctrlxdatalayer.subscription_async.SubscriptionAsync.__exit__()'],['../classctrlxdatalayer_1_1provider__subscription_1_1NotifyItemPublish.html#a1d4375d5b88ea11310dcd3bfb10ecb97',1,'ctrlxdatalayer.provider_subscription.NotifyItemPublish.__exit__()'],['../classctrlxdatalayer_1_1provider__node_1_1ProviderNode.html#a1d4375d5b88ea11310dcd3bfb10ecb97',1,'ctrlxdatalayer.provider_node.ProviderNode.__exit__()'],['../classctrlxdatalayer_1_1provider_1_1Provider.html#a1d4375d5b88ea11310dcd3bfb10ecb97',1,'ctrlxdatalayer.provider.Provider.__exit__()'],['../classctrlxdatalayer_1_1bulk__util_1_1__AsyncCreator.html#a1d4375d5b88ea11310dcd3bfb10ecb97',1,'ctrlxdatalayer.bulk_util._AsyncCreator.__exit__()'],['../classctrlxdatalayer_1_1client_1_1Client.html#a1d4375d5b88ea11310dcd3bfb10ecb97',1,'ctrlxdatalayer.client.Client.__exit__()'],['../classctrlxdatalayer_1_1bulk_1_1Response.html#a1d4375d5b88ea11310dcd3bfb10ecb97',1,'ctrlxdatalayer.bulk.Response.__exit__()'],['../classctrlxdatalayer_1_1bulk_1_1__ResponseMgr.html#a1d4375d5b88ea11310dcd3bfb10ecb97',1,'ctrlxdatalayer.bulk._ResponseMgr.__exit__()'],['../classctrlxdatalayer_1_1bulk_1_1__ResponseBulkMgr.html#a1d4375d5b88ea11310dcd3bfb10ecb97',1,'ctrlxdatalayer.bulk._ResponseBulkMgr.__exit__()'],['../classctrlxdatalayer_1_1bulk_1_1__ResponseAsynMgr.html#a1d4375d5b88ea11310dcd3bfb10ecb97',1,'ctrlxdatalayer.bulk._ResponseAsynMgr.__exit__()'],['../classctrlxdatalayer_1_1bulk_1_1Bulk.html#a1d4375d5b88ea11310dcd3bfb10ecb97',1,'ctrlxdatalayer.bulk.Bulk.__exit__()'],['../classctrlxdatalayer_1_1bulk__util_1_1__Request.html#a1d4375d5b88ea11310dcd3bfb10ecb97',1,'ctrlxdatalayer.bulk_util._Request.__exit__()'],['../classctrlxdatalayer_1_1bulk__util_1_1__BulkCreator.html#a1d4375d5b88ea11310dcd3bfb10ecb97',1,'ctrlxdatalayer.bulk_util._BulkCreator.__exit__()']]], + ['_5f_5finit_5f_5f_256',['__init__',['../classctrlxdatalayer_1_1metadata__utils_1_1MetadataBuilder.html#a9f5d291e1cf6a7d897bea182759e543a',1,'ctrlxdatalayer.metadata_utils.MetadataBuilder.__init__()'],['../classctrlxdatalayer_1_1variant_1_1VariantRef.html#a588c4b45460deb6cd8859b1876f71704',1,'ctrlxdatalayer.variant.VariantRef.__init__()'],['../classctrlxdatalayer_1_1provider_1_1Provider.html#a9124c75ffef4d7c89c7f389515ea5c54',1,'ctrlxdatalayer.provider.Provider.__init__()'],['../classctrlxdatalayer_1_1provider__node_1_1__CallbackPtr.html#ae64f0875afe3067b97ba370b354b9213',1,'ctrlxdatalayer.provider_node._CallbackPtr.__init__()'],['../classctrlxdatalayer_1_1provider__node_1_1ProviderNodeCallbacks.html#a194ad510b8413868e4fa2293369f9358',1,'ctrlxdatalayer.provider_node.ProviderNodeCallbacks.__init__()'],['../classctrlxdatalayer_1_1provider__node_1_1ProviderNode.html#ad46014d2cd90ce7aeba19dbbed380a74',1,'ctrlxdatalayer.provider_node.ProviderNode.__init__()'],['../classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish.html#a21cd8ad87da0ec28b2d018bf11d40827',1,'ctrlxdatalayer.provider_subscription.NotifyInfoPublish.__init__()'],['../classctrlxdatalayer_1_1provider__subscription_1_1NotifyItemPublish.html#a21cd8ad87da0ec28b2d018bf11d40827',1,'ctrlxdatalayer.provider_subscription.NotifyItemPublish.__init__()'],['../classctrlxdatalayer_1_1provider__subscription_1_1ProviderSubscription.html#addc0c99aa3c0319b7c5855836e500ece',1,'ctrlxdatalayer.provider_subscription.ProviderSubscription.__init__()'],['../classctrlxdatalayer_1_1subscription_1_1NotifyItem.html#aa55af3047b40476b66ac223c6e2e97f9',1,'ctrlxdatalayer.subscription.NotifyItem.__init__()'],['../classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync.html#a81fad585830e0fcd87d27b3a8f7653e6',1,'ctrlxdatalayer.subscription_async.SubscriptionAsync.__init__()'],['../classctrlxdatalayer_1_1subscription__properties__builder_1_1SubscriptionPropertiesBuilder.html#a945c5108a22ccbc5b391f61e7979db73',1,'ctrlxdatalayer.subscription_properties_builder.SubscriptionPropertiesBuilder.__init__()'],['../classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync.html#a81fad585830e0fcd87d27b3a8f7653e6',1,'ctrlxdatalayer.subscription_sync.SubscriptionSync.__init__()'],['../classctrlxdatalayer_1_1system_1_1System.html#af22afd382b95e54de8c30f6e0f8b1766',1,'ctrlxdatalayer.system.System.__init__()'],['../classctrlxdatalayer_1_1variant_1_1Variant.html#a588c4b45460deb6cd8859b1876f71704',1,'ctrlxdatalayer.variant.Variant.__init__()'],['../classctrlxdatalayer_1_1factory_1_1Factory.html#a2fc5414186d67b965f04bbef9cbcddf6',1,'ctrlxdatalayer.factory.Factory.__init__()'],['../classctrlxdatalayer_1_1converter_1_1Converter.html#a3bd786a63e4fb3b6f41c630a454d2814',1,'ctrlxdatalayer.converter.Converter.__init__()'],['../classctrlxdatalayer_1_1client_1_1Client.html#a59e19ccd3e870535695c362c97b839ac',1,'ctrlxdatalayer.client.Client.__init__()'],['../classctrlxdatalayer_1_1client_1_1__CallbackPtr.html#ae64f0875afe3067b97ba370b354b9213',1,'ctrlxdatalayer.client._CallbackPtr.__init__()'],['../classctrlxdatalayer_1_1bulk__util_1_1__AsyncCreator.html#a3e78654ce73af801d64e389d6bb40c46',1,'ctrlxdatalayer.bulk_util._AsyncCreator.__init__()'],['../classctrlxdatalayer_1_1bulk__util_1_1__BulkCreator.html#a3e78654ce73af801d64e389d6bb40c46',1,'ctrlxdatalayer.bulk_util._BulkCreator.__init__()'],['../classctrlxdatalayer_1_1bulk__util_1_1__Request.html#a29d80f48606a09d55c47958832ab5aa5',1,'ctrlxdatalayer.bulk_util._Request.__init__()'],['../classctrlxdatalayer_1_1bulk_1_1Bulk.html#a01ad4c2b877b990eb9b6c9bc973fa749',1,'ctrlxdatalayer.bulk.Bulk.__init__()'],['../classctrlxdatalayer_1_1bulk_1_1BulkCreateRequest.html#a01278ebd1178bd7ee028e30ebf19f7f6',1,'ctrlxdatalayer.bulk.BulkCreateRequest.__init__()'],['../classctrlxdatalayer_1_1bulk_1_1BulkWriteRequest.html#a1d3639228672c53153653832e183dbfd',1,'ctrlxdatalayer.bulk.BulkWriteRequest.__init__()'],['../classctrlxdatalayer_1_1bulk_1_1BulkReadRequest.html#a01278ebd1178bd7ee028e30ebf19f7f6',1,'ctrlxdatalayer.bulk.BulkReadRequest.__init__()'],['../classctrlxdatalayer_1_1bulk_1_1__ResponseAsynMgr.html#a8b9b0623fa419354cf6e3778fe6e3f9b',1,'ctrlxdatalayer.bulk._ResponseAsynMgr.__init__()'],['../classctrlxdatalayer_1_1bulk_1_1__ResponseBulkMgr.html#aa52be931985624f18ac85b3f6fc801e2',1,'ctrlxdatalayer.bulk._ResponseBulkMgr.__init__()'],['../classctrlxdatalayer_1_1bulk_1_1__ResponseMgr.html#ae64f0875afe3067b97ba370b354b9213',1,'ctrlxdatalayer.bulk._ResponseMgr.__init__()'],['../classctrlxdatalayer_1_1bulk_1_1Response.html#a407a62ac4d6cbe6307badf553961efa5',1,'ctrlxdatalayer.bulk.Response.__init__()']]] +]; diff --git a/3.4.0/api/python/search/functions_1.html b/3.4.0/api/python/search/functions_1.html new file mode 100644 index 000000000..264111e59 --- /dev/null +++ b/3.4.0/api/python/search/functions_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/3.4.0/api/python/search/functions_1.js b/3.4.0/api/python/search/functions_1.js new file mode 100644 index 000000000..541e87e81 --- /dev/null +++ b/3.4.0/api/python/search/functions_1.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['add_5fextensions_257',['add_extensions',['../classctrlxdatalayer_1_1metadata__utils_1_1MetadataBuilder.html#a89cedeb8a15e5862343a39815b129fae',1,'ctrlxdatalayer::metadata_utils::MetadataBuilder']]], + ['add_5flocalization_5fdescription_258',['add_localization_description',['../classctrlxdatalayer_1_1metadata__utils_1_1MetadataBuilder.html#af15420cfd5214f4cccead48732709e52',1,'ctrlxdatalayer::metadata_utils::MetadataBuilder']]], + ['add_5flocalization_5fdisplay_5fname_259',['add_localization_display_name',['../classctrlxdatalayer_1_1metadata__utils_1_1MetadataBuilder.html#ac855536d363277c3b3d9691d63b56557',1,'ctrlxdatalayer::metadata_utils::MetadataBuilder']]], + ['add_5freference_260',['add_reference',['../classctrlxdatalayer_1_1metadata__utils_1_1MetadataBuilder.html#ad93702ffc7422e56d588e32d7c3c473d',1,'ctrlxdatalayer::metadata_utils::MetadataBuilder']]], + ['add_5frule_5fchangeevents_261',['add_rule_changeevents',['../classctrlxdatalayer_1_1subscription__properties__builder_1_1SubscriptionPropertiesBuilder.html#a3a247667665491e77c9115ed17536373',1,'ctrlxdatalayer::subscription_properties_builder::SubscriptionPropertiesBuilder']]], + ['add_5frule_5fcounting_262',['add_rule_counting',['../classctrlxdatalayer_1_1subscription__properties__builder_1_1SubscriptionPropertiesBuilder.html#a0fca6a36ee83d736c179d60dc4088916',1,'ctrlxdatalayer::subscription_properties_builder::SubscriptionPropertiesBuilder']]], + ['add_5frule_5fdatachangefilter_263',['add_rule_datachangefilter',['../classctrlxdatalayer_1_1subscription__properties__builder_1_1SubscriptionPropertiesBuilder.html#a2bbd42efca40e43bffb491799e2c9a12',1,'ctrlxdatalayer::subscription_properties_builder::SubscriptionPropertiesBuilder']]], + ['add_5frule_5flosslessratelimit_264',['add_rule_losslessratelimit',['../classctrlxdatalayer_1_1subscription__properties__builder_1_1SubscriptionPropertiesBuilder.html#ac295149faa197ba17b1099d5abbf7541',1,'ctrlxdatalayer::subscription_properties_builder::SubscriptionPropertiesBuilder']]], + ['add_5frule_5fqueueing_265',['add_rule_queueing',['../classctrlxdatalayer_1_1subscription__properties__builder_1_1SubscriptionPropertiesBuilder.html#a155e08d359f57d0d7b14b26d0abeba94',1,'ctrlxdatalayer::subscription_properties_builder::SubscriptionPropertiesBuilder']]], + ['add_5frule_5fsampling_266',['add_rule_sampling',['../classctrlxdatalayer_1_1subscription__properties__builder_1_1SubscriptionPropertiesBuilder.html#a320ba39526d732049fca11f6b0af1412',1,'ctrlxdatalayer::subscription_properties_builder::SubscriptionPropertiesBuilder']]] +]; diff --git a/3.4.0/api/python/search/functions_10.html b/3.4.0/api/python/search/functions_10.html new file mode 100644 index 000000000..840116b8b --- /dev/null +++ b/3.4.0/api/python/search/functions_10.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/3.4.0/api/python/search/functions_10.js b/3.4.0/api/python/search/functions_10.js new file mode 100644 index 000000000..e7d30d16e --- /dev/null +++ b/3.4.0/api/python/search/functions_10.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['wait_5fon_5fresponse_5fcb_422',['wait_on_response_cb',['../classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync.html#a13f3ccd5cb5081d6c2cd5d12a916eb69',1,'ctrlxdatalayer::subscription_async::SubscriptionAsync']]], + ['write_423',['write',['../classctrlxdatalayer_1_1bulk_1_1Bulk.html#a1952b6905816ea9de9cafe94a28561a9',1,'ctrlxdatalayer.bulk.Bulk.write()'],['../classctrlxdatalayer_1_1metadata__utils_1_1ReferenceType.html#a874d67aa2c1f6369a696bfc71a5a84cb',1,'ctrlxdatalayer.metadata_utils.ReferenceType.write()']]], + ['write_5fasync_424',['write_async',['../classctrlxdatalayer_1_1client_1_1Client.html#ad1a0a9d48d8f6b80ee0bbd37033c94dc',1,'ctrlxdatalayer::client::Client']]], + ['write_5fin_425',['write_in',['../classctrlxdatalayer_1_1metadata__utils_1_1ReferenceType.html#af68893200c74c860fb075ead9c43349b',1,'ctrlxdatalayer::metadata_utils::ReferenceType']]], + ['write_5fjson_5fsync_426',['write_json_sync',['../classctrlxdatalayer_1_1client_1_1Client.html#ac3e70cdfa24ba53b78cc2c8abed8f4cb',1,'ctrlxdatalayer::client::Client']]], + ['write_5fout_427',['write_out',['../classctrlxdatalayer_1_1metadata__utils_1_1ReferenceType.html#a18ce3f79d2e006c17ed760533dd92e2c',1,'ctrlxdatalayer::metadata_utils::ReferenceType']]], + ['write_5fsync_428',['write_sync',['../classctrlxdatalayer_1_1client_1_1Client.html#a92d14c48a7e8966b4675e23292240162',1,'ctrlxdatalayer::client::Client']]] +]; diff --git a/3.4.0/api/python/search/functions_2.html b/3.4.0/api/python/search/functions_2.html new file mode 100644 index 000000000..368b8ddeb --- /dev/null +++ b/3.4.0/api/python/search/functions_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/3.4.0/api/python/search/functions_2.js b/3.4.0/api/python/search/functions_2.js new file mode 100644 index 000000000..c40941dde --- /dev/null +++ b/3.4.0/api/python/search/functions_2.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['browse_267',['browse',['../classctrlxdatalayer_1_1bulk_1_1Bulk.html#a67d6caf627c2d3b657b9cc622a9c9608',1,'ctrlxdatalayer::bulk::Bulk']]], + ['browse_5fasync_268',['browse_async',['../classctrlxdatalayer_1_1client_1_1Client.html#a2d33323152a7b0947c56c06fc685465c',1,'ctrlxdatalayer::client::Client']]], + ['browse_5fsync_269',['browse_sync',['../classctrlxdatalayer_1_1client_1_1Client.html#af92fddc1c4f24cad1059def5d7973f1f',1,'ctrlxdatalayer::client::Client']]], + ['build_270',['build',['../classctrlxdatalayer_1_1metadata__utils_1_1MetadataBuilder.html#a8c9808276b6848b2a1b39b748ab61a70',1,'ctrlxdatalayer.metadata_utils.MetadataBuilder.build()'],['../classctrlxdatalayer_1_1subscription__properties__builder_1_1SubscriptionPropertiesBuilder.html#a8c9808276b6848b2a1b39b748ab61a70',1,'ctrlxdatalayer.subscription_properties_builder.SubscriptionPropertiesBuilder.build()']]] +]; diff --git a/3.4.0/api/python/search/functions_3.html b/3.4.0/api/python/search/functions_3.html new file mode 100644 index 000000000..b93c081ba --- /dev/null +++ b/3.4.0/api/python/search/functions_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/3.4.0/api/python/search/functions_3.js b/3.4.0/api/python/search/functions_3.js new file mode 100644 index 000000000..72b4eedc5 --- /dev/null +++ b/3.4.0/api/python/search/functions_3.js @@ -0,0 +1,17 @@ +var searchData= +[ + ['check_5fconvert_271',['check_convert',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a0e74886d07a11fa53083f1b8c8a6145b',1,'ctrlxdatalayer::variant::Variant']]], + ['clone_272',['clone',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a02cc8dac2dc7516c8b0ca1aac4469e2f',1,'ctrlxdatalayer::variant::Variant']]], + ['close_273',['close',['../classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync.html#a8639372c33e15084a7f7c4d9d87b7bfe',1,'ctrlxdatalayer.subscription_sync.SubscriptionSync.close()'],['../classctrlxdatalayer_1_1variant_1_1Variant.html#a8639372c33e15084a7f7c4d9d87b7bfe',1,'ctrlxdatalayer.variant.Variant.close()'],['../classctrlxdatalayer_1_1system_1_1System.html#a8639372c33e15084a7f7c4d9d87b7bfe',1,'ctrlxdatalayer.system.System.close()'],['../classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync.html#a8639372c33e15084a7f7c4d9d87b7bfe',1,'ctrlxdatalayer.subscription_async.SubscriptionAsync.close()'],['../classctrlxdatalayer_1_1provider__subscription_1_1NotifyItemPublish.html#a8639372c33e15084a7f7c4d9d87b7bfe',1,'ctrlxdatalayer.provider_subscription.NotifyItemPublish.close()'],['../classctrlxdatalayer_1_1provider__node_1_1ProviderNode.html#a8639372c33e15084a7f7c4d9d87b7bfe',1,'ctrlxdatalayer.provider_node.ProviderNode.close()'],['../classctrlxdatalayer_1_1provider_1_1Provider.html#a8639372c33e15084a7f7c4d9d87b7bfe',1,'ctrlxdatalayer.provider.Provider.close()'],['../classctrlxdatalayer_1_1bulk__util_1_1__AsyncCreator.html#a8639372c33e15084a7f7c4d9d87b7bfe',1,'ctrlxdatalayer.bulk_util._AsyncCreator.close()'],['../classctrlxdatalayer_1_1bulk__util_1_1__BulkCreator.html#a8639372c33e15084a7f7c4d9d87b7bfe',1,'ctrlxdatalayer.bulk_util._BulkCreator.close()'],['../classctrlxdatalayer_1_1bulk__util_1_1__Request.html#a8639372c33e15084a7f7c4d9d87b7bfe',1,'ctrlxdatalayer.bulk_util._Request.close()'],['../classctrlxdatalayer_1_1bulk_1_1Bulk.html#a8639372c33e15084a7f7c4d9d87b7bfe',1,'ctrlxdatalayer.bulk.Bulk.close()'],['../classctrlxdatalayer_1_1bulk_1_1__ResponseAsynMgr.html#a8639372c33e15084a7f7c4d9d87b7bfe',1,'ctrlxdatalayer.bulk._ResponseAsynMgr.close()'],['../classctrlxdatalayer_1_1bulk_1_1__ResponseMgr.html#a8639372c33e15084a7f7c4d9d87b7bfe',1,'ctrlxdatalayer.bulk._ResponseMgr.close()'],['../classctrlxdatalayer_1_1bulk_1_1Response.html#a8639372c33e15084a7f7c4d9d87b7bfe',1,'ctrlxdatalayer.bulk.Response.close()'],['../classctrlxdatalayer_1_1client_1_1Client.html#a8639372c33e15084a7f7c4d9d87b7bfe',1,'ctrlxdatalayer.client.Client.close()']]], + ['converter_5fgenerate_5fjson_5fcomplex_274',['converter_generate_json_complex',['../classctrlxdatalayer_1_1converter_1_1Converter.html#a30abdd62206a5a872b874a9d24db1d98',1,'ctrlxdatalayer::converter::Converter']]], + ['converter_5fgenerate_5fjson_5fsimple_275',['converter_generate_json_simple',['../classctrlxdatalayer_1_1converter_1_1Converter.html#a2e5e1f24ba0c9ef47c1f1a9eec9be019',1,'ctrlxdatalayer::converter::Converter']]], + ['copy_276',['copy',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a6f93d52d6ae542191a88e538bfb8799d',1,'ctrlxdatalayer::variant::Variant']]], + ['create_277',['create',['../classctrlxdatalayer_1_1bulk_1_1Bulk.html#a68b570345086320f449d9b6e25382508',1,'ctrlxdatalayer.bulk.Bulk.create()'],['../classctrlxdatalayer_1_1metadata__utils_1_1ReferenceType.html#aeadffb9df4df6d3f2862c20c41876841',1,'ctrlxdatalayer.metadata_utils.ReferenceType.create()']]], + ['create_5fasync_278',['create_async',['../classctrlxdatalayer_1_1client_1_1Client.html#a267723d6d0a39d08d8d14c330803dc43',1,'ctrlxdatalayer::client::Client']]], + ['create_5fbulk_279',['create_bulk',['../classctrlxdatalayer_1_1client_1_1Client.html#abbacaa1907d5b10876475c2a83658a39',1,'ctrlxdatalayer::client::Client']]], + ['create_5fclient_280',['create_client',['../classctrlxdatalayer_1_1factory_1_1Factory.html#ac1e11e43644987a9d766014d192a3eac',1,'ctrlxdatalayer::factory::Factory']]], + ['create_5fprovider_281',['create_provider',['../classctrlxdatalayer_1_1factory_1_1Factory.html#a70593e62040d99948079f6f6328420f0',1,'ctrlxdatalayer::factory::Factory']]], + ['create_5fsubscription_5fasync_282',['create_subscription_async',['../classctrlxdatalayer_1_1client_1_1Client.html#a6f8575c365dfbb20acc2ba9cac44cbb3',1,'ctrlxdatalayer::client::Client']]], + ['create_5fsubscription_5fsync_283',['create_subscription_sync',['../classctrlxdatalayer_1_1client_1_1Client.html#aeb7a9d17ccd6fa6935b8e800f74c129c',1,'ctrlxdatalayer::client::Client']]], + ['create_5fsync_284',['create_sync',['../classctrlxdatalayer_1_1client_1_1Client.html#a68d2c78acb14dfd4e474cf83fa255ed9',1,'ctrlxdatalayer::client::Client']]] +]; diff --git a/3.4.0/api/python/search/functions_4.html b/3.4.0/api/python/search/functions_4.html new file mode 100644 index 000000000..c9fc3f7c8 --- /dev/null +++ b/3.4.0/api/python/search/functions_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/3.4.0/api/python/search/functions_4.js b/3.4.0/api/python/search/functions_4.js new file mode 100644 index 000000000..a0bbc8708 --- /dev/null +++ b/3.4.0/api/python/search/functions_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['delete_285',['delete',['../classctrlxdatalayer_1_1bulk_1_1Bulk.html#a9aaab0b04160f55559e1e4cea136a821',1,'ctrlxdatalayer::bulk::Bulk']]] +]; diff --git a/3.4.0/api/python/search/functions_5.html b/3.4.0/api/python/search/functions_5.html new file mode 100644 index 000000000..fb6bb093c --- /dev/null +++ b/3.4.0/api/python/search/functions_5.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/3.4.0/api/python/search/functions_5.js b/3.4.0/api/python/search/functions_5.js new file mode 100644 index 000000000..aeb752a53 --- /dev/null +++ b/3.4.0/api/python/search/functions_5.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['factory_286',['factory',['../classctrlxdatalayer_1_1system_1_1System.html#a3479cf570ce19a1c8bd04b7d2ed77a16',1,'ctrlxdatalayer::system::System']]], + ['from_5ffiletime_287',['from_filetime',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a802cbbb74a8bc790ac330ae1bf66936a',1,'ctrlxdatalayer::variant::Variant']]] +]; diff --git a/3.4.0/api/python/search/functions_6.html b/3.4.0/api/python/search/functions_6.html new file mode 100644 index 000000000..061417a39 --- /dev/null +++ b/3.4.0/api/python/search/functions_6.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/3.4.0/api/python/search/functions_6.js b/3.4.0/api/python/search/functions_6.js new file mode 100644 index 000000000..2d98ef116 --- /dev/null +++ b/3.4.0/api/python/search/functions_6.js @@ -0,0 +1,54 @@ +var searchData= +[ + ['get_5faddress_288',['get_address',['../classctrlxdatalayer_1_1bulk__util_1_1__Request.html#ab1d98a53d4dcc8457427964c3669fc43',1,'ctrlxdatalayer.bulk_util._Request.get_address()'],['../classctrlxdatalayer_1_1bulk_1_1Response.html#a5c11c7b63803746d10dc05f9e6d0f477',1,'ctrlxdatalayer.bulk.Response.get_address()'],['../classctrlxdatalayer_1_1subscription_1_1NotifyItem.html#a5c11c7b63803746d10dc05f9e6d0f477',1,'ctrlxdatalayer.subscription.NotifyItem.get_address()']]], + ['get_5farray_5fbool8_289',['get_array_bool8',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a924d3d7ab193da627b3da88c21ab4239',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5farray_5fdatetime_290',['get_array_datetime',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a66926a3aebdd5dddcba619152965ac5b',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5farray_5ffloat32_291',['get_array_float32',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a32ce63e69a91791699de056b78c2e4c9',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5farray_5ffloat64_292',['get_array_float64',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a80ac98bc49cbc4bf3440108d1f1694c0',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5farray_5fint16_293',['get_array_int16',['../classctrlxdatalayer_1_1variant_1_1Variant.html#ae001741dc4a5b69a7bfa8f7ba31ed9f9',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5farray_5fint32_294',['get_array_int32',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a8fb2c05a5070e2ae2043e89d522b01df',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5farray_5fint64_295',['get_array_int64',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a706d421b1c52891772713e6e056b2de4',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5farray_5fint8_296',['get_array_int8',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a78c45c3c88697fba94f8a4393fc3f3dd',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5farray_5fstring_297',['get_array_string',['../classctrlxdatalayer_1_1variant_1_1Variant.html#aec5b1f2393a4c04c85d432e8ca523750',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5farray_5fuint16_298',['get_array_uint16',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a12f0c5dadbd0447e8d5795875651e825',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5farray_5fuint32_299',['get_array_uint32',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a96c11c75d7e26cc94a9e19ab5bfab100',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5farray_5fuint64_300',['get_array_uint64',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a9ec5153849c7a472fb89b3e0ecc11f1a',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5farray_5fuint8_301',['get_array_uint8',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a7104788a9e6605a1cbbc04390e8a74f4',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5fauth_5ftoken_302',['get_auth_token',['../classctrlxdatalayer_1_1client_1_1Client.html#abd8f0167039751e5a366dcb6cdb7adde',1,'ctrlxdatalayer::client::Client']]], + ['get_5fbool8_303',['get_bool8',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a75db07ad8f9aed6b1c5861694db4a51e',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5fbulk_5frequest_304',['get_bulk_request',['../classctrlxdatalayer_1_1bulk__util_1_1__AsyncCreator.html#af35d103c09730fcabfca4c80fd54cea7',1,'ctrlxdatalayer::bulk_util::_AsyncCreator']]], + ['get_5fcount_305',['get_count',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a660ab4b0ebefc092f2a0c86d5ce96c4c',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5fdata_306',['get_data',['../classctrlxdatalayer_1_1bulk_1_1Response.html#afc01672756c355231e72eb572e8816cb',1,'ctrlxdatalayer.bulk.Response.get_data()'],['../classctrlxdatalayer_1_1bulk__util_1_1__Request.html#ada947705a81f7acad95740579376eaf1',1,'ctrlxdatalayer.bulk_util._Request.get_data()'],['../classctrlxdatalayer_1_1provider__subscription_1_1NotifyItemPublish.html#afc01672756c355231e72eb572e8816cb',1,'ctrlxdatalayer.provider_subscription.NotifyItemPublish.get_data()'],['../classctrlxdatalayer_1_1subscription_1_1NotifyItem.html#afc01672756c355231e72eb572e8816cb',1,'ctrlxdatalayer.subscription.NotifyItem.get_data()'],['../classctrlxdatalayer_1_1variant_1_1Variant.html#aa81f372e6f191ad43da86f88202f4ff1',1,'ctrlxdatalayer.variant.Variant.get_data()']]], + ['get_5fdatetime_307',['get_datetime',['../classctrlxdatalayer_1_1bulk_1_1Response.html#a84011aab6c79b9302277b0792c38e2de',1,'ctrlxdatalayer.bulk.Response.get_datetime()'],['../classctrlxdatalayer_1_1variant_1_1Variant.html#a84011aab6c79b9302277b0792c38e2de',1,'ctrlxdatalayer.variant.Variant.get_datetime()']]], + ['get_5fevent_5ftype_308',['get_event_type',['../classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish.html#a751d88e98de02bd623f527508ced5f33',1,'ctrlxdatalayer::provider_subscription::NotifyInfoPublish']]], + ['get_5fflatbuffers_309',['get_flatbuffers',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a65f10e9ff40c88a7f2ca2335dfaeb06e',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5ffloat32_310',['get_float32',['../classctrlxdatalayer_1_1variant_1_1Variant.html#adb04b4ccd77e22ba0ba372d9b2238c9f',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5ffloat64_311',['get_float64',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a6efc48d57e3694739c63d81126545186',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5fhandle_312',['get_handle',['../classctrlxdatalayer_1_1variant_1_1Variant.html#aa0041e70f5a3139baac2676f0a1367bb',1,'ctrlxdatalayer.variant.Variant.get_handle()'],['../classctrlxdatalayer_1_1system_1_1System.html#aa0041e70f5a3139baac2676f0a1367bb',1,'ctrlxdatalayer.system.System.get_handle()'],['../classctrlxdatalayer_1_1provider__node_1_1ProviderNode.html#aa0041e70f5a3139baac2676f0a1367bb',1,'ctrlxdatalayer.provider_node.ProviderNode.get_handle()'],['../classctrlxdatalayer_1_1factory_1_1Factory.html#aa0041e70f5a3139baac2676f0a1367bb',1,'ctrlxdatalayer.factory.Factory.get_handle()'],['../classctrlxdatalayer_1_1client_1_1Client.html#aa0041e70f5a3139baac2676f0a1367bb',1,'ctrlxdatalayer.client.Client.get_handle()'],['../classctrlxdatalayer_1_1converter_1_1Converter.html#aa0041e70f5a3139baac2676f0a1367bb',1,'ctrlxdatalayer.converter.Converter.get_handle()'],['../classctrlxdatalayer_1_1bulk__util_1_1__BulkCreator.html#acc12f2877df6c527e5ea11c25f0fa2f3',1,'ctrlxdatalayer.bulk_util._BulkCreator.get_handle()']]], + ['get_5fid_313',['get_id',['../classctrlxdatalayer_1_1provider__subscription_1_1ProviderSubscription.html#a554bd0d14273b89e8f9b662ddfbfc7dd',1,'ctrlxdatalayer::provider_subscription::ProviderSubscription']]], + ['get_5finfo_314',['get_info',['../classctrlxdatalayer_1_1provider__subscription_1_1NotifyItemPublish.html#a7d8f727dd8e6922458fc69753615c7f3',1,'ctrlxdatalayer::provider_subscription::NotifyItemPublish']]], + ['get_5fint16_315',['get_int16',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a7ee1c0f452c6f9f498dccff958927e32',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5fint32_316',['get_int32',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a7a0c3b8fe3b7c23ff5c06955c1ec00ff',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5fint64_317',['get_int64',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a34c244b60e584affd781ed0640901cc9',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5fint8_318',['get_int8',['../classctrlxdatalayer_1_1variant_1_1Variant.html#ac99fa55012a9e67cc66b443c3d6cb127',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5fnode_319',['get_node',['../classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish.html#ad9194b2e43ababe2e3ae64e69773db51',1,'ctrlxdatalayer::provider_subscription::NotifyInfoPublish']]], + ['get_5fnotes_320',['get_notes',['../classctrlxdatalayer_1_1provider__subscription_1_1ProviderSubscription.html#a0bb75e2c61e2795f17c65872ca2d9030',1,'ctrlxdatalayer::provider_subscription::ProviderSubscription']]], + ['get_5fnotify_5finfo_321',['get_notify_info',['../classctrlxdatalayer_1_1provider__subscription_1_1NotifyItemPublish.html#a133a89175644a835b1da1f1692bffffb',1,'ctrlxdatalayer::provider_subscription::NotifyItemPublish']]], + ['get_5fnotify_5ftype_322',['get_notify_type',['../classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish.html#a88f45ae28206cc34aab3e4c2111c5148',1,'ctrlxdatalayer::provider_subscription::NotifyInfoPublish']]], + ['get_5fprops_323',['get_props',['../classctrlxdatalayer_1_1provider__subscription_1_1ProviderSubscription.html#afc5177bdb6b5a4c38fab6ef286de972f',1,'ctrlxdatalayer::provider_subscription::ProviderSubscription']]], + ['get_5fptr_324',['get_ptr',['../classctrlxdatalayer_1_1client_1_1__CallbackPtr.html#a76edc2d231bb616d48fc4c62eb08dc11',1,'ctrlxdatalayer.client._CallbackPtr.get_ptr()'],['../classctrlxdatalayer_1_1provider__node_1_1__CallbackPtr.html#a76edc2d231bb616d48fc4c62eb08dc11',1,'ctrlxdatalayer.provider_node._CallbackPtr.get_ptr()']]], + ['get_5fresponse_325',['get_response',['../classctrlxdatalayer_1_1bulk_1_1Bulk.html#a5c6716a7af505ad22c0b5bbef1b2f868',1,'ctrlxdatalayer.bulk.Bulk.get_response()'],['../classctrlxdatalayer_1_1bulk_1_1__ResponseMgr.html#a5c6716a7af505ad22c0b5bbef1b2f868',1,'ctrlxdatalayer.bulk._ResponseMgr.get_response()']]], + ['get_5fresult_326',['get_result',['../classctrlxdatalayer_1_1bulk_1_1Response.html#af6dbafa5e6230c546fe9d430b05aa161',1,'ctrlxdatalayer::bulk::Response']]], + ['get_5fschema_327',['get_schema',['../classctrlxdatalayer_1_1converter_1_1Converter.html#ad183b9029660db6bb4bb69433724e296',1,'ctrlxdatalayer::converter::Converter']]], + ['get_5fsequence_5fnumber_328',['get_sequence_number',['../classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish.html#a7a438516b796cc54c24eb08f4fdf7a2e',1,'ctrlxdatalayer::provider_subscription::NotifyInfoPublish']]], + ['get_5fsize_329',['get_size',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a58f0989d88c1568a544aa91043e25479',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5fsource_5fname_330',['get_source_name',['../classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish.html#a6854b89f7fd6993dfb9dfb963ea4c3ee',1,'ctrlxdatalayer::provider_subscription::NotifyInfoPublish']]], + ['get_5fstring_331',['get_string',['../classctrlxdatalayer_1_1variant_1_1Variant.html#ac2d5928179dd1618da3468571fcb07c6',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5ftimestamp_332',['get_timestamp',['../classctrlxdatalayer_1_1provider__subscription_1_1ProviderSubscription.html#a3764a06e12be83a591b503c2187aaa91',1,'ctrlxdatalayer.provider_subscription.ProviderSubscription.get_timestamp()'],['../classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish.html#a74bf9a26aefa0f7c5a2a1aba45bad87e',1,'ctrlxdatalayer.provider_subscription.NotifyInfoPublish.get_timestamp()']]], + ['get_5ftoken_333',['get_token',['../classctrlxdatalayer_1_1client_1_1Client.html#a51d3f96e76304c8b09e2fa013e367ac0',1,'ctrlxdatalayer.client.Client.get_token()'],['../classctrlxdatalayer_1_1provider_1_1Provider.html#a063c3d4b65698a948694d0d2253a4ebf',1,'ctrlxdatalayer.provider.Provider.get_token()']]], + ['get_5ftype_334',['get_type',['../classctrlxdatalayer_1_1subscription_1_1NotifyItem.html#a9b06f22c2a8042372c2147d73138b8c9',1,'ctrlxdatalayer.subscription.NotifyItem.get_type()'],['../classctrlxdatalayer_1_1variant_1_1Variant.html#a46ac3f1804d179459220413607c5bf11',1,'ctrlxdatalayer.variant.Variant.get_type(self)']]], + ['get_5fuint16_335',['get_uint16',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a588e3aac79d19668f8fa1a7cf6289133',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5fuint32_336',['get_uint32',['../classctrlxdatalayer_1_1variant_1_1Variant.html#aff7d110d7bb6eb02ee76f98ec2024204',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5fuint64_337',['get_uint64',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a4babda83909e9fce66740907145d6422',1,'ctrlxdatalayer::variant::Variant']]], + ['get_5fuint8_338',['get_uint8',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a0acd19505aab6486030ae2528e68e4bb',1,'ctrlxdatalayer::variant::Variant']]] +]; diff --git a/3.4.0/api/python/search/functions_7.html b/3.4.0/api/python/search/functions_7.html new file mode 100644 index 000000000..8f48c604e --- /dev/null +++ b/3.4.0/api/python/search/functions_7.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/3.4.0/api/python/search/functions_7.js b/3.4.0/api/python/search/functions_7.js new file mode 100644 index 000000000..a24c129c9 --- /dev/null +++ b/3.4.0/api/python/search/functions_7.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['id_339',['id',['../classctrlxdatalayer_1_1subscription_1_1Subscription.html#a2e9c2ba39c6a3dbdcede2e442af296b4',1,'ctrlxdatalayer.subscription.Subscription.id()'],['../classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync.html#a2e9c2ba39c6a3dbdcede2e442af296b4',1,'ctrlxdatalayer.subscription_async.SubscriptionAsync.id()'],['../classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync.html#a2e9c2ba39c6a3dbdcede2e442af296b4',1,'ctrlxdatalayer.subscription_sync.SubscriptionSync.id()']]], + ['is_5fconnected_340',['is_connected',['../classctrlxdatalayer_1_1client_1_1Client.html#ac32346ebf625109187290cca9dd0c936',1,'ctrlxdatalayer.client.Client.is_connected()'],['../classctrlxdatalayer_1_1provider_1_1Provider.html#ac32346ebf625109187290cca9dd0c936',1,'ctrlxdatalayer.provider.Provider.is_connected()']]] +]; diff --git a/3.4.0/api/python/search/functions_8.html b/3.4.0/api/python/search/functions_8.html new file mode 100644 index 000000000..a05fc16f8 --- /dev/null +++ b/3.4.0/api/python/search/functions_8.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/3.4.0/api/python/search/functions_8.js b/3.4.0/api/python/search/functions_8.js new file mode 100644 index 000000000..5b03491ba --- /dev/null +++ b/3.4.0/api/python/search/functions_8.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['json_5fconverter_341',['json_converter',['../classctrlxdatalayer_1_1system_1_1System.html#ae6d78ceb96f08364a282efafc23c378a',1,'ctrlxdatalayer::system::System']]] +]; diff --git a/3.4.0/api/python/search/functions_9.html b/3.4.0/api/python/search/functions_9.html new file mode 100644 index 000000000..d784b6e47 --- /dev/null +++ b/3.4.0/api/python/search/functions_9.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/3.4.0/api/python/search/functions_9.js b/3.4.0/api/python/search/functions_9.js new file mode 100644 index 000000000..22e069a23 --- /dev/null +++ b/3.4.0/api/python/search/functions_9.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['metadata_342',['metadata',['../classctrlxdatalayer_1_1bulk_1_1Bulk.html#a85de33ea82d0b5f03c9202f143613c6e',1,'ctrlxdatalayer::bulk::Bulk']]], + ['metadata_5fasync_343',['metadata_async',['../classctrlxdatalayer_1_1client_1_1Client.html#acd2a9e71f05e665be6a3154503437c4d',1,'ctrlxdatalayer::client::Client']]], + ['metadata_5fsync_344',['metadata_sync',['../classctrlxdatalayer_1_1client_1_1Client.html#ad0f79c6d663be73664640772f78ff928',1,'ctrlxdatalayer::client::Client']]] +]; diff --git a/3.4.0/api/python/search/functions_a.html b/3.4.0/api/python/search/functions_a.html new file mode 100644 index 000000000..bf8a2d0c2 --- /dev/null +++ b/3.4.0/api/python/search/functions_a.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/3.4.0/api/python/search/functions_a.js b/3.4.0/api/python/search/functions_a.js new file mode 100644 index 000000000..8acaed8c9 --- /dev/null +++ b/3.4.0/api/python/search/functions_a.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['on_5fclose_345',['on_close',['../classctrlxdatalayer_1_1subscription_1_1Subscription.html#a7e20a417210b832ce9e307ce5dc0f2a8',1,'ctrlxdatalayer.subscription.Subscription.on_close()'],['../classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync.html#a7e20a417210b832ce9e307ce5dc0f2a8',1,'ctrlxdatalayer.subscription_async.SubscriptionAsync.on_close()'],['../classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync.html#a7e20a417210b832ce9e307ce5dc0f2a8',1,'ctrlxdatalayer.subscription_sync.SubscriptionSync.on_close()']]] +]; diff --git a/3.4.0/api/python/search/functions_b.html b/3.4.0/api/python/search/functions_b.html new file mode 100644 index 000000000..6b9537ab0 --- /dev/null +++ b/3.4.0/api/python/search/functions_b.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/3.4.0/api/python/search/functions_b.js b/3.4.0/api/python/search/functions_b.js new file mode 100644 index 000000000..294c696d5 --- /dev/null +++ b/3.4.0/api/python/search/functions_b.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['parse_5fjson_5fcomplex_346',['parse_json_complex',['../classctrlxdatalayer_1_1converter_1_1Converter.html#ad4a041c00ab8eb15be81937553bcc2b0',1,'ctrlxdatalayer::converter::Converter']]], + ['parse_5fjson_5fsimple_347',['parse_json_simple',['../classctrlxdatalayer_1_1converter_1_1Converter.html#a9424dc33f2ba517cabb366f00d73a676',1,'ctrlxdatalayer::converter::Converter']]], + ['ping_5fasync_348',['ping_async',['../classctrlxdatalayer_1_1client_1_1Client.html#a7ee7a6f91b4e621ad70450fc03eb1bfc',1,'ctrlxdatalayer::client::Client']]], + ['ping_5fsync_349',['ping_sync',['../classctrlxdatalayer_1_1client_1_1Client.html#a9bb75215a97faa9d58983bdd5c6dffcb',1,'ctrlxdatalayer::client::Client']]], + ['publish_350',['publish',['../classctrlxdatalayer_1_1provider__subscription_1_1ProviderSubscription.html#a90a5676117808684b01329a31f3a9061',1,'ctrlxdatalayer::provider_subscription::ProviderSubscription']]] +]; diff --git a/3.4.0/api/python/search/functions_c.html b/3.4.0/api/python/search/functions_c.html new file mode 100644 index 000000000..f03f91766 --- /dev/null +++ b/3.4.0/api/python/search/functions_c.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/3.4.0/api/python/search/functions_c.js b/3.4.0/api/python/search/functions_c.js new file mode 100644 index 000000000..e179b18bd --- /dev/null +++ b/3.4.0/api/python/search/functions_c.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['read_351',['read',['../classctrlxdatalayer_1_1bulk_1_1Bulk.html#a2069c5a977cebb1d92c684b03852391c',1,'ctrlxdatalayer.bulk.Bulk.read()'],['../classctrlxdatalayer_1_1metadata__utils_1_1ReferenceType.html#a3163bff827604da27b61fec6c17e2bac',1,'ctrlxdatalayer.metadata_utils.ReferenceType.read()']]], + ['read_5fasync_352',['read_async',['../classctrlxdatalayer_1_1client_1_1Client.html#af3f62e6a492fc3fab7dae517aad4dc1b',1,'ctrlxdatalayer::client::Client']]], + ['read_5fasync_5fargs_353',['read_async_args',['../classctrlxdatalayer_1_1client_1_1Client.html#a016e2bf7378827cade38b386fbfe8b9a',1,'ctrlxdatalayer::client::Client']]], + ['read_5fin_354',['read_in',['../classctrlxdatalayer_1_1metadata__utils_1_1ReferenceType.html#a77753b931fc152ec17f95bb8512bf60e',1,'ctrlxdatalayer::metadata_utils::ReferenceType']]], + ['read_5fjson_5fsync_355',['read_json_sync',['../classctrlxdatalayer_1_1client_1_1Client.html#aa6dc479dcc9115696b36bb94f07bd9f7',1,'ctrlxdatalayer::client::Client']]], + ['read_5fout_356',['read_out',['../classctrlxdatalayer_1_1metadata__utils_1_1ReferenceType.html#a3fc13f331391b2937258262f5f2e2ddd',1,'ctrlxdatalayer::metadata_utils::ReferenceType']]], + ['read_5fsync_357',['read_sync',['../classctrlxdatalayer_1_1client_1_1Client.html#a83db3e6fc133f4add01b9607abc9da41',1,'ctrlxdatalayer::client::Client']]], + ['read_5fsync_5fargs_358',['read_sync_args',['../classctrlxdatalayer_1_1client_1_1Client.html#a02e7b65adf36bea6b910ab1aa3e50eec',1,'ctrlxdatalayer::client::Client']]], + ['register_5fnode_359',['register_node',['../classctrlxdatalayer_1_1provider_1_1Provider.html#aee4f015e58fc712f5cee4268020b92e0',1,'ctrlxdatalayer::provider::Provider']]], + ['register_5ftype_360',['register_type',['../classctrlxdatalayer_1_1provider_1_1Provider.html#a34d8a422403f116cae869ae57301fa7b',1,'ctrlxdatalayer::provider::Provider']]], + ['register_5ftype_5fvariant_361',['register_type_variant',['../classctrlxdatalayer_1_1provider_1_1Provider.html#a1a75a4d35dff57fe7c351c7df640ea73',1,'ctrlxdatalayer::provider::Provider']]], + ['remove_5fasync_362',['remove_async',['../classctrlxdatalayer_1_1client_1_1Client.html#a44edb6a2c554663cb248e44584f75e2e',1,'ctrlxdatalayer::client::Client']]], + ['remove_5fsync_363',['remove_sync',['../classctrlxdatalayer_1_1client_1_1Client.html#af8b49ba365916fad17d5af01542ebde2',1,'ctrlxdatalayer::client::Client']]] +]; diff --git a/3.4.0/api/python/search/functions_d.html b/3.4.0/api/python/search/functions_d.html new file mode 100644 index 000000000..ef925ad26 --- /dev/null +++ b/3.4.0/api/python/search/functions_d.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/3.4.0/api/python/search/functions_d.js b/3.4.0/api/python/search/functions_d.js new file mode 100644 index 000000000..e62679375 --- /dev/null +++ b/3.4.0/api/python/search/functions_d.js @@ -0,0 +1,54 @@ +var searchData= +[ + ['set_5farray_5fbool8_364',['set_array_bool8',['../classctrlxdatalayer_1_1variant_1_1Variant.html#abfe205a3679dd35b1fa85f01cf4c6866',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5farray_5fdatetime_365',['set_array_datetime',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a0134a60e0ab576362dd4f5bf80543ee9',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5farray_5ffloat32_366',['set_array_float32',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a738cc9935653c5657291c639b655814c',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5farray_5ffloat64_367',['set_array_float64',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a01f3b2bd5f5edc248f694e04ae85cf93',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5farray_5fint16_368',['set_array_int16',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a680b15bc1305f3c08266ab499dbac5f4',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5farray_5fint32_369',['set_array_int32',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a3fc216e15073521f82eacc4af123813c',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5farray_5fint64_370',['set_array_int64',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a2c7645222274d8d25e6ccc73e53c7ce0',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5farray_5fint8_371',['set_array_int8',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a51d671ca3eb41a7cf82d4da08be832c0',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5farray_5fstring_372',['set_array_string',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a5d85c6058eceba27e168167ab33b24d6',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5farray_5ftimestamp_373',['set_array_timestamp',['../classctrlxdatalayer_1_1variant_1_1Variant.html#ada8f88576b2484f006e6ec3e0d18585f',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5farray_5fuint16_374',['set_array_uint16',['../classctrlxdatalayer_1_1variant_1_1Variant.html#aad0844de8a450f2f4613a6a39a0f54f6',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5farray_5fuint32_375',['set_array_uint32',['../classctrlxdatalayer_1_1variant_1_1Variant.html#aa4d02885231cd7cc4344139d62db1d15',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5farray_5fuint64_376',['set_array_uint64',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a68eef68e4420b3b0654b9c7000e8cfef',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5farray_5fuint8_377',['set_array_uint8',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a28df413e7aa860dbdd38ac1e66e4887d',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5fauth_5ftoken_378',['set_auth_token',['../classctrlxdatalayer_1_1client_1_1Client.html#abff547e12e4e35837bd436f956ff9996',1,'ctrlxdatalayer::client::Client']]], + ['set_5fbfbs_5fpath_379',['set_bfbs_path',['../classctrlxdatalayer_1_1system_1_1System.html#a02ddb48ce95bbb2e5baac72f98727f54',1,'ctrlxdatalayer::system::System']]], + ['set_5fbool8_380',['set_bool8',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a6cf51a9b177f632356cf8999cb934fb8',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5fdatetime_381',['set_datetime',['../classctrlxdatalayer_1_1variant_1_1Variant.html#aa7c6edc2d9499b2b1784384a370d92b8',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5fdisplay_5fformat_382',['set_display_format',['../classctrlxdatalayer_1_1metadata__utils_1_1MetadataBuilder.html#a2cf382265dc4c1c970c358e25404d862',1,'ctrlxdatalayer::metadata_utils::MetadataBuilder']]], + ['set_5fdisplay_5fname_383',['set_display_name',['../classctrlxdatalayer_1_1metadata__utils_1_1MetadataBuilder.html#a4b144a088ac76f44a1dbeb7be69772ae',1,'ctrlxdatalayer::metadata_utils::MetadataBuilder']]], + ['set_5ferror_5finterval_384',['set_error_interval',['../classctrlxdatalayer_1_1subscription__properties__builder_1_1SubscriptionPropertiesBuilder.html#abea6673abcd60543fc8f35c4433851e2',1,'ctrlxdatalayer::subscription_properties_builder::SubscriptionPropertiesBuilder']]], + ['set_5fevent_5ftype_385',['set_event_type',['../classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish.html#a36a063ff85260f7e1b9a6014cc697f42',1,'ctrlxdatalayer::provider_subscription::NotifyInfoPublish']]], + ['set_5fflatbuffers_386',['set_flatbuffers',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a829f7ac9170f88c78f01d54f33ecb3c3',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5ffloat32_387',['set_float32',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a5d8373a82c8c22b2f68f85acba508df1',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5ffloat64_388',['set_float64',['../classctrlxdatalayer_1_1variant_1_1Variant.html#aad5c9a12eb884062bb54fd3234717af4',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5fint16_389',['set_int16',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a422ab080231fb657c32ef8ae53ec47a2',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5fint32_390',['set_int32',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a9f86f9a1e1e6417bfd90f00f8e30326e',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5fint64_391',['set_int64',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a8bbd8b4d8711b334bd3ab6bcc8c8716d',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5fint8_392',['set_int8',['../classctrlxdatalayer_1_1variant_1_1Variant.html#aa8729837e73e891d5b8a9275c9f13109',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5fkeepalive_5finterval_393',['set_keepalive_interval',['../classctrlxdatalayer_1_1subscription__properties__builder_1_1SubscriptionPropertiesBuilder.html#a53aa6fa4bd0bfea0a991b339e797afdb',1,'ctrlxdatalayer::subscription_properties_builder::SubscriptionPropertiesBuilder']]], + ['set_5fnode_5fclass_394',['set_node_class',['../classctrlxdatalayer_1_1metadata__utils_1_1MetadataBuilder.html#a760ef5e9db2d57aad5cd92cd2e6b8837',1,'ctrlxdatalayer::metadata_utils::MetadataBuilder']]], + ['set_5fnotify_5ftype_395',['set_notify_type',['../classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish.html#a4d5257c2d39fb1820618c9010b174cdd',1,'ctrlxdatalayer::provider_subscription::NotifyInfoPublish']]], + ['set_5foperations_396',['set_operations',['../classctrlxdatalayer_1_1metadata__utils_1_1MetadataBuilder.html#acf3c195c61a938bd77461eb29bbd86ab',1,'ctrlxdatalayer::metadata_utils::MetadataBuilder']]], + ['set_5fptr_397',['set_ptr',['../classctrlxdatalayer_1_1client_1_1__CallbackPtr.html#a37eebd24129a6e95c21c59d45f365cf5',1,'ctrlxdatalayer.client._CallbackPtr.set_ptr()'],['../classctrlxdatalayer_1_1provider__node_1_1__CallbackPtr.html#a37eebd24129a6e95c21c59d45f365cf5',1,'ctrlxdatalayer.provider_node._CallbackPtr.set_ptr()']]], + ['set_5fpublish_5finterval_398',['set_publish_interval',['../classctrlxdatalayer_1_1subscription__properties__builder_1_1SubscriptionPropertiesBuilder.html#a992aa6fccd6801faee9dabb71ddc8a91',1,'ctrlxdatalayer::subscription_properties_builder::SubscriptionPropertiesBuilder']]], + ['set_5fresponses_399',['set_responses',['../classctrlxdatalayer_1_1bulk_1_1__ResponseAsynMgr.html#afa59d16d0f675600ade61c54b28e78a8',1,'ctrlxdatalayer::bulk::_ResponseAsynMgr']]], + ['set_5fsequence_5fnumber_400',['set_sequence_number',['../classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish.html#abd219f05f00188b322577213f1ab67dd',1,'ctrlxdatalayer::provider_subscription::NotifyInfoPublish']]], + ['set_5fsource_5fname_401',['set_source_name',['../classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish.html#abe66cc2811b8a32147af24a06f2a51d5',1,'ctrlxdatalayer::provider_subscription::NotifyInfoPublish']]], + ['set_5fstring_402',['set_string',['../classctrlxdatalayer_1_1variant_1_1Variant.html#afaae9bd4c27243d92f48627b1b23fc33',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5ftimeout_403',['set_timeout',['../classctrlxdatalayer_1_1client_1_1Client.html#a50cde33dfad02fb5b16245ff0e967b8e',1,'ctrlxdatalayer::client::Client']]], + ['set_5ftimeout_5fnode_404',['set_timeout_node',['../classctrlxdatalayer_1_1provider_1_1Provider.html#af68383acc4596ef6ff108200e8f6b031',1,'ctrlxdatalayer::provider::Provider']]], + ['set_5ftimestamp_405',['set_timestamp',['../classctrlxdatalayer_1_1provider__subscription_1_1NotifyInfoPublish.html#a9760f5d9c86ad591cf935711948e064a',1,'ctrlxdatalayer::provider_subscription::NotifyInfoPublish']]], + ['set_5fuint16_406',['set_uint16',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a27826bdaa11bb033a63ab24bbd473276',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5fuint32_407',['set_uint32',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a8fcc18d9ee2c0e437dd1cc1f6d9f8285',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5fuint64_408',['set_uint64',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a381ba8652d4042e741dfa06c16ba6156',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5fuint8_409',['set_uint8',['../classctrlxdatalayer_1_1variant_1_1Variant.html#ad6bb2919ae6d392e3d730398c856db53',1,'ctrlxdatalayer::variant::Variant']]], + ['set_5funit_410',['set_unit',['../classctrlxdatalayer_1_1metadata__utils_1_1MetadataBuilder.html#a0c7585e90d8eab7426cbabcdd1ce848d',1,'ctrlxdatalayer::metadata_utils::MetadataBuilder']]], + ['start_411',['start',['../classctrlxdatalayer_1_1provider_1_1Provider.html#a764c2f88608a6720e368d45781820547',1,'ctrlxdatalayer.provider.Provider.start()'],['../classctrlxdatalayer_1_1system_1_1System.html#a491f5dd818499e13abb39b8720660961',1,'ctrlxdatalayer.system.System.start()']]], + ['stop_412',['stop',['../classctrlxdatalayer_1_1provider_1_1Provider.html#a0930c5af691b4c2e5f9b650d5a47e908',1,'ctrlxdatalayer.provider.Provider.stop()'],['../classctrlxdatalayer_1_1system_1_1System.html#ad20f78fa941d9474c641babacff5e109',1,'ctrlxdatalayer.system.System.stop()']]], + ['subscribe_413',['subscribe',['../classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync.html#a821e0f9f914647f2058a771a3e8be078',1,'ctrlxdatalayer.subscription_async.SubscriptionAsync.subscribe()'],['../classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync.html#afe11d9803c614a1546aaf7181a7cfbd4',1,'ctrlxdatalayer.subscription_sync.SubscriptionSync.subscribe()']]], + ['subscribe_5fmulti_414',['subscribe_multi',['../classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync.html#a2f33cdc9ef14837b31d01f59c3b80886',1,'ctrlxdatalayer.subscription_async.SubscriptionAsync.subscribe_multi()'],['../classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync.html#a7edb60061768545658e3e9c276d1c4ee',1,'ctrlxdatalayer.subscription_sync.SubscriptionSync.subscribe_multi()']]] +]; diff --git a/3.4.0/api/python/search/functions_e.html b/3.4.0/api/python/search/functions_e.html new file mode 100644 index 000000000..adf87d2e2 --- /dev/null +++ b/3.4.0/api/python/search/functions_e.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/3.4.0/api/python/search/functions_e.js b/3.4.0/api/python/search/functions_e.js new file mode 100644 index 000000000..e81bcb4f1 --- /dev/null +++ b/3.4.0/api/python/search/functions_e.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['to_5ffiletime_415',['to_filetime',['../classctrlxdatalayer_1_1variant_1_1Variant.html#a8d775b40b91309e733f064cc3d141d28',1,'ctrlxdatalayer::variant::Variant']]] +]; diff --git a/3.4.0/api/python/search/functions_f.html b/3.4.0/api/python/search/functions_f.html new file mode 100644 index 000000000..313bc95c6 --- /dev/null +++ b/3.4.0/api/python/search/functions_f.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/3.4.0/api/python/search/functions_f.js b/3.4.0/api/python/search/functions_f.js new file mode 100644 index 000000000..efd66b810 --- /dev/null +++ b/3.4.0/api/python/search/functions_f.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['unregister_5fnode_416',['unregister_node',['../classctrlxdatalayer_1_1provider_1_1Provider.html#a40c3a4318a6ed2a50e06b38d315178be',1,'ctrlxdatalayer::provider::Provider']]], + ['unregister_5ftype_417',['unregister_type',['../classctrlxdatalayer_1_1provider_1_1Provider.html#ac472816492feb2c946bba3fa93ebffdc',1,'ctrlxdatalayer::provider::Provider']]], + ['unsubscribe_418',['unsubscribe',['../classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync.html#a3f04a7c817c357d161827d59e4888587',1,'ctrlxdatalayer.subscription_async.SubscriptionAsync.unsubscribe()'],['../classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync.html#a0b34dabb343b27b4b09dd28259780294',1,'ctrlxdatalayer.subscription_sync.SubscriptionSync.unsubscribe()']]], + ['unsubscribe_5fall_419',['unsubscribe_all',['../classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync.html#ac7fabd459529db06a4efb77057b81785',1,'ctrlxdatalayer.subscription_async.SubscriptionAsync.unsubscribe_all()'],['../classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync.html#a252cb59cde7dd64a460f4b219d93518f',1,'ctrlxdatalayer.subscription_sync.SubscriptionSync.unsubscribe_all()']]], + ['unsubscribe_5fmulti_420',['unsubscribe_multi',['../classctrlxdatalayer_1_1subscription__async_1_1SubscriptionAsync.html#a08861b5e3d144c0c490d060596d7f1f5',1,'ctrlxdatalayer.subscription_async.SubscriptionAsync.unsubscribe_multi()'],['../classctrlxdatalayer_1_1subscription__sync_1_1SubscriptionSync.html#a7baf1c8d15b03ebef99c495b61ba5a15',1,'ctrlxdatalayer.subscription_sync.SubscriptionSync.unsubscribe_multi()']]], + ['uses_421',['uses',['../classctrlxdatalayer_1_1metadata__utils_1_1ReferenceType.html#a9d679ac2fd5bade9fdda9a89ef5247cb',1,'ctrlxdatalayer::metadata_utils::ReferenceType']]] +]; diff --git a/3.4.0/api/python/search/mag_sel.svg b/3.4.0/api/python/search/mag_sel.svg new file mode 100644 index 000000000..5b63c118b --- /dev/null +++ b/3.4.0/api/python/search/mag_sel.svg @@ -0,0 +1,74 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/3.4.0/api/python/search/nomatches.html b/3.4.0/api/python/search/nomatches.html new file mode 100644 index 000000000..6825c9faa --- /dev/null +++ b/3.4.0/api/python/search/nomatches.html @@ -0,0 +1,13 @@ + + + + + + + + +
    +
    No Matches
    +
    + + diff --git a/3.4.0/api/python/search/pages_0.html b/3.4.0/api/python/search/pages_0.html new file mode 100644 index 000000000..713b6781d --- /dev/null +++ b/3.4.0/api/python/search/pages_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/3.4.0/api/python/search/pages_0.js b/3.4.0/api/python/search/pages_0.js new file mode 100644 index 000000000..c1c21b524 --- /dev/null +++ b/3.4.0/api/python/search/pages_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['main_20page_429',['Main Page',['../index.html',1,'']]] +]; diff --git a/3.4.0/api/python/search/search.css b/3.4.0/api/python/search/search.css new file mode 100644 index 000000000..f4a3fa9f8 --- /dev/null +++ b/3.4.0/api/python/search/search.css @@ -0,0 +1,257 @@ +/*---------------- Search Box */ + +#MSearchBox { + white-space : nowrap; + background: white; + border-radius: 0.65em; + box-shadow: inset 0.5px 0.5px 3px 0px #555; + z-index: 102; +} + +#MSearchBox .left { + display: inline-block; + vertical-align: middle; + height: 1.4em; +} + +#MSearchSelect { + display: inline-block; + vertical-align: middle; + height: 1.4em; + padding: 0 0 0 0.3em; + margin: 0; +} + +#MSearchField { + display: inline-block; + vertical-align: middle; + width: 7.5em; + height: 1.1em; + margin: 0 0.15em; + padding: 0; + line-height: 1em; + border:none; + color: #909090; + outline: none; + font-family: Arial, Verdana, sans-serif; + -webkit-border-radius: 0px; + border-radius: 0px; + background: none; +} + + +#MSearchBox .right { + display: inline-block; + vertical-align: middle; + width: 1.4em; + height: 1.4em; +} + +#MSearchClose { + display: none; + font-size: inherit; + background : none; + border: none; + margin: 0; + padding: 0; + outline: none; + +} + +#MSearchCloseImg { + height: 1.4em; + padding: 0.3em; + margin: 0; +} + +.MSearchBoxActive #MSearchField { + color: #000000; +} + +#main-menu > li:last-child { + /* This
  • object is the parent of the search bar */ + display: flex; + justify-content: center; + align-items: center; + height: 36px; + margin-right: 1em; +} + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #90A5CE; + background-color: #F9FAFC; + z-index: 10001; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt Arial, Verdana, sans-serif; + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: monospace; + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: #000000; + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: #000000; + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: #FFFFFF; + background-color: #3D578C; + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + width: 60ex; + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #000; + background-color: #EEF1F7; + z-index:10000; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; + padding-bottom: 15px; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +body.SRPage { + margin: 5px 2px; +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +span.SRScope { + padding-left: 4px; + font-family: Arial, Verdana, sans-serif; +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; + font-family: Arial, Verdana, sans-serif; +} + +.SRResult { + display: none; +} + +div.searchresults { + margin-left: 10px; + margin-right: 10px; +} + +/*---------------- External search page results */ + +.searchresult { + background-color: #F0F3F8; +} + +.pages b { + color: white; + padding: 5px 5px 3px 5px; + background-image: url("../tab_a.png"); + background-repeat: repeat-x; + text-shadow: 0 1px 1px #000000; +} + +.pages { + line-height: 17px; + margin-left: 4px; + text-decoration: none; +} + +.hl { + font-weight: bold; +} + +#searchresults { + margin-bottom: 20px; +} + +.searchpages { + margin-top: 10px; +} + diff --git a/3.4.0/api/python/search/search.js b/3.4.0/api/python/search/search.js new file mode 100644 index 000000000..215262ce3 --- /dev/null +++ b/3.4.0/api/python/search/search.js @@ -0,0 +1,816 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function convertToId(search) +{ + var result = ''; + for (i=0;i do a search + { + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) // Up + { + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } + else if (e.keyCode==13 || e.keyCode==27) + { + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() + { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() + { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() + { + this.keyTimeout = 0; + + // strip leading whitespace + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + var code = searchValue.toLowerCase().charCodeAt(0); + var idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair + { + idxChar = searchValue.substr(0, 2); + } + + var resultsPage; + var resultsPageWithSearch; + var hasResultsPage; + + var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) + { + var hexCode=idx.toString(16); + resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + this.extension; + resultsPageWithSearch = resultsPage+'?'+escape(searchValue); + hasResultsPage = true; + } + else // nothing available for this search term + { + resultsPage = this.resultsPath + '/nomatches' + this.extension; + resultsPageWithSearch = resultsPage; + hasResultsPage = false; + } + + window.frames.MSearchResults.location = resultsPageWithSearch; + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + + if (domPopupSearchResultsWindow.style.display!='block') + { + var domSearchBox = this.DOMSearchBox(); + this.DOMSearchClose().style.display = 'inline-block'; + if (this.insideFrame) + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + domPopupSearchResultsWindow.style.position = 'relative'; + domPopupSearchResultsWindow.style.display = 'block'; + var width = document.body.clientWidth - 8; // the -8 is for IE :-( + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResults.style.width = width + 'px'; + } + else + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth; + var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + } + } + + this.lastSearchValue = searchValue; + this.lastResultsPage = resultsPage; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) + { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) + { + this.DOMSearchBox().className = 'MSearchBoxActive'; + + var searchField = this.DOMSearchField(); + + if (searchField.value == this.searchLabel) // clear "Search" term upon entry + { + searchField.value = ''; + this.searchActive = true; + } + } + else if (!isActive) // directly remove the panel + { + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.DOMSearchField().value = this.searchLabel; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults(name) +{ + // The number of matches from the last run of . + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) + { + var parentElement = document.getElementById(id); + var element = parentElement.firstChild; + + while (element && element!=parentElement) + { + if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') + { + return element; + } + + if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes()) + { + element = element.firstChild; + } + else if (element.nextSibling) + { + element = element.nextSibling; + } + else + { + do + { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) + { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) + { + var element = this.FindChildElement(id); + if (element) + { + if (element.style.display == 'block') + { + element.style.display = 'none'; + } + else + { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) + { + if (!search) // get search word from URL + { + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) + { + row.style.display = 'block'; + matches++; + } + else + { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) // no results + { + document.getElementById("NoMatches").style.display='block'; + } + else // at least one result + { + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) + { + if (e.type == "keydown") + { + this.repeatOn = false; + this.lastKey = e.keyCode; + } + else if (e.type == "keypress") + { + if (!this.repeatOn) + { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } + else if (e.type == "keyup") + { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + var newIndex = itemIndex-1; + var focusItem = this.NavPrev(newIndex); + if (focusItem) + { + var child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') // children visible + { + var n=0; + var tmpElem; + while (1) // search for last child + { + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) + { + focusItem = tmpElem; + } + else // found it! + { + break; + } + n++; + } + } + } + if (focusItem) + { + focusItem.focus(); + } + else // return focus to search field + { + parent.document.getElementById("MSearchField").focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = itemIndex+1; + var focusItem; + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') // children visible + { + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } + else if (this.lastKey==39) // Right + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } + else if (this.lastKey==37) // Left + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + if (childIndex>0) + { + var newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } + else // already at first child, jump to parent + { + document.getElementById('Item'+itemIndex).focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = childIndex+1; + var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) // last child, jump to parent next parent + { + elem = this.NavNext(itemIndex+1); + } + if (elem) + { + elem.focus(); + } + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } +} + +function setKeyActions(elem,action) +{ + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); +} + +function setClassAttr(elem,attr) +{ + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); +} + +function createResults() +{ + var results = document.getElementById("SRResults"); + for (var e=0; e + + + + + + +ctrlX Data Layer API for Python: /var/jenkins/workspace/script.python.datalayer/ctrlxdatalayer/subscription.py Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    subscription.py
    +
    +
    +
    1 """
    +
    2 Class Subscription
    +
    3 """
    +
    4 import datetime
    +
    5 import enum
    +
    6 import typing
    +
    7 
    +
    8 import comm.datalayer.NotifyInfo
    +
    9 import comm.datalayer.SubscriptionProperties
    +
    10 import flatbuffers
    +
    11 
    +
    12 import ctrlxdatalayer
    +
    13 from ctrlxdatalayer.clib_variant import C_DLR_VARIANT
    +
    14 from ctrlxdatalayer.variant import Result, Variant, VariantRef, VariantType
    +
    15 
    +
    16 
    +
    17 class NotifyType(enum.Enum):
    +
    18  """
    +
    19  NotifyType
    +
    20 
    +
    21  """
    +
    22  DATA = 0
    +
    23  BROWSE = 1
    +
    24  METADATA = 2
    +
    25 
    +
    26 
    +
    27 class NotifyItem:
    +
    28  """
    +
    29  NotifyItem
    +
    30  """
    +
    31 
    +
    32  __slots__ = ['__data', '__info']
    +
    33 
    +
    34  def __init__(self, data: C_DLR_VARIANT, info: C_DLR_VARIANT):
    +
    35  """
    +
    36  @param[in] data of the notify item
    +
    37  @param[in] containing notify_info.fbs
    +
    38  """
    +
    39  self.__data__data = VariantRef(data)
    +
    40  i = VariantRef(info)
    +
    41  if i.get_type() != VariantType.FLATBUFFERS:
    +
    42  return
    +
    43  b = i.get_flatbuffers()
    +
    44  self.__info__info = comm.datalayer.NotifyInfo.NotifyInfo.GetRootAsNotifyInfo(
    +
    45  b, 0)
    +
    46 
    +
    47  def get_data(self) -> Variant:
    +
    48  """
    +
    49  data of the notify item
    +
    50 
    +
    51  @returns <Variant>
    +
    52  """
    +
    53  return self.__data__data
    +
    54 
    +
    55  def get_address(self) -> str:
    +
    56  """
    +
    57  Node address
    +
    58 
    +
    59  @returns <str>
    +
    60  """
    +
    61  return self.__info__info.Node().decode("utf-8")
    +
    62 
    +
    63  def get_type(self) -> NotifyType:
    +
    64  """
    +
    65  Notify type
    +
    66 
    +
    67  @returns <NotifyType>
    +
    68  """
    +
    69  return NotifyType(self.__info__info.NotifyType())
    +
    70 
    +
    71  def get_timestamp(self) -> int:
    +
    72  """
    +
    73  uint64; // Filetime: Contains a 64-bit value representing the number of
    +
    74  100-nanosecond intervals since January 1, 1601 (UTC).
    +
    75 
    +
    76  @returns <int>
    +
    77  """
    +
    78  return self.__info__info.Timestamp()
    +
    79 
    +
    80 
    +
    81 # http://support.microsoft.com/kb/167296
    +
    82 # How To Convert a UNIX time_t to a Win32 FILETIME or SYSTEMTIME
    +
    83 EPOCH_AS_FILETIME = 116444736000000000 # January 1, 1970, as MS file time
    +
    84 HUNDREDS_OF_NANOSECONDS = 10000000
    +
    85 
    +
    86 
    +
    87 def to_datetime(filetime: int) -> datetime.datetime:
    +
    88  """Converts a Microsoft filetime number to a Python datetime. The new
    +
    89  datetime object is time zone-naive but is equivalent to tzinfo=utc.
    +
    90  >>> filetime_to_dt(116444736000000000)
    +
    91  datetime.datetime(1970, 1, 1, 0, 0)
    +
    92  >>> filetime_to_dt(128930364000000000)
    +
    93  datetime.datetime(2009, 7, 25, 23, 0)
    +
    94  """
    +
    95  return datetime.datetime.fromtimestamp(
    +
    96  (filetime - EPOCH_AS_FILETIME) / HUNDREDS_OF_NANOSECONDS, tz=datetime.timezone.utc)
    +
    97 
    +
    98 
    +
    99 ResponseNotifyCallback = typing.Callable[[
    +
    100  Result, typing.List[NotifyItem], ctrlxdatalayer.clib.userData_c_void_p], None]
    +
    101 """
    +
    102  ResponseNotifyCallback
    +
    103  This callback delivers a vector with the updated nodes of a subscription.
    +
    104  It is usually called in the interval given by the publishInterval
    +
    105  which has been set by the creation of the subscription.
    +
    106  The callback may not contain all nodes of the subscription.I.e.when a node did not change.
    +
    107  The callback may contain a node multiple times.I.e.when the node did
    +
    108  change multiple times since the last callback.
    +
    109  The sorting order of the items in the vector is undefined.
    +
    110  @param[in] status Notify status
    +
    111  @param[in] items Notify data
    +
    112  @param[in] userdata Same userdata as in create subscription given
    +
    113  Result != OK the list of NotifyItem is None
    +
    114 """
    +
    115 
    +
    116 
    +
    117 class Subscription:
    +
    118  """
    +
    119  Subscription
    +
    120  """
    +
    121 
    +
    122  def id(self) -> str:
    +
    123  """
    +
    124  Subscription ID
    +
    125  """
    +
    126  pass
    +
    127 
    +
    128  def on_close(self):
    +
    129  """
    +
    130  notification of the close
    +
    131  """
    +
    132  pass
    +
    133 
    +
    134 
    +
    135 def create_properties(ident: str, publish_interval: int = 1000,
    +
    136  keepalive_interval: int = 60000, error_interval: int = 10000) -> Variant:
    +
    137  """
    +
    138  create_properties
    +
    139  @returns <Variant> Variant that describe ruleset of subscription
    +
    140  """
    +
    141  builder = flatbuffers.Builder(1024)
    +
    142  # Hint: CreateString must be done beforehand
    +
    143  idl = builder.CreateString(ident)
    +
    144  comm.datalayer.SubscriptionProperties.SubscriptionPropertiesStart(
    +
    145  builder)
    +
    146  comm.datalayer.SubscriptionProperties.SubscriptionPropertiesAddId(
    +
    147  builder, idl)
    +
    148  comm.datalayer.SubscriptionProperties.SubscriptionPropertiesAddPublishInterval(
    +
    149  builder, publish_interval)
    +
    150  comm.datalayer.SubscriptionProperties.SubscriptionPropertiesAddKeepaliveInterval(
    +
    151  builder, keepalive_interval)
    +
    152  comm.datalayer.SubscriptionProperties.SubscriptionPropertiesAddErrorInterval(
    +
    153  builder, error_interval)
    +
    154  prop = comm.datalayer.SubscriptionProperties.SubscriptionPropertiesEnd(
    +
    155  builder)
    +
    156  builder.Finish(prop)
    +
    157  v = Variant()
    +
    158  v.set_flatbuffers(builder.Output())
    +
    159  return v
    +
    160 
    +
    161 
    +
    162 def get_id(prop: Variant) -> str:
    +
    163  """ get_id """
    +
    164  if prop.get_type() != VariantType.FLATBUFFERS:
    +
    165  return ""
    +
    166  b = prop.get_flatbuffers()
    +
    167  p = comm.datalayer.SubscriptionProperties.SubscriptionProperties.GetRootAsSubscriptionProperties(
    +
    168  b, 0)
    +
    169  return p.Id().decode("utf-8")
    + +
    str get_address(self)
    Node address.
    Definition: subscription.py:60
    + +
    NotifyType get_type(self)
    Notify type.
    Definition: subscription.py:68
    +
    def __init__(self, C_DLR_VARIANT data, C_DLR_VARIANT info)
    Definition: subscription.py:38
    + +
    Variant get_data(self)
    data of the notify item
    Definition: subscription.py:52
    + + + +
    def on_close(self)
    notification of the close
    + + +
    +
    + + + + diff --git a/3.4.0/api/python/subscription__async_8py_source.html b/3.4.0/api/python/subscription__async_8py_source.html new file mode 100644 index 000000000..fb9a2cdf8 --- /dev/null +++ b/3.4.0/api/python/subscription__async_8py_source.html @@ -0,0 +1,397 @@ + + + + + + + +ctrlX Data Layer API for Python: /var/jenkins/workspace/script.python.datalayer/ctrlxdatalayer/subscription_async.py Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    subscription_async.py
    +
    +
    +
    1 """
    +
    2 Class Async Subscription
    +
    3 """
    +
    4 import ctypes
    +
    5 import time
    +
    6 import typing
    +
    7 import weakref
    +
    8 
    +
    9 import ctrlxdatalayer
    + +
    11 from ctrlxdatalayer.clib import C_DLR_RESULT, userData_c_void_p
    +
    12 from ctrlxdatalayer.clib_client import (C_DLR_CLIENT_NOTIFY_RESPONSE,
    +
    13  C_DLR_CLIENT_RESPONSE, C_NotifyItem)
    +
    14 from ctrlxdatalayer.clib_variant import C_DLR_VARIANT
    +
    15 from ctrlxdatalayer.variant import Result, Variant, VariantRef
    +
    16 
    +
    17 
    + +
    19  """
    +
    20  SubscriptionAsync
    +
    21  """
    +
    22  __slots__ = ['__ptr_notify', '__ptr_resp',
    +
    23  '__closed', '__client', '__id', '__on_cb']
    +
    24 
    +
    25  def __init__(self, client: ctrlxdatalayer.client.Client):
    +
    26  """
    +
    27  @param[in] client Reference to the client
    +
    28  """
    + + +
    31  self.__closed__closed = False
    +
    32  self.__client__client = weakref.ref(client)
    +
    33  self.__id__id = ""
    +
    34  self.__on_cb__on_cb = False
    +
    35 
    +
    36  def __enter__(self):
    +
    37  """
    +
    38  use the python context manager
    +
    39  """
    +
    40  return self
    +
    41 
    +
    42  def __exit__(self, exc_type, exc_val, exc_tb):
    +
    43  """
    +
    44  use the python context manager
    +
    45  """
    +
    46  self.closeclose()
    +
    47 
    +
    48  def on_close(self):
    +
    49  """ on_close """
    +
    50  self.closeclose()
    +
    51 
    +
    52  def id(self) -> str:
    +
    53  """
    +
    54  Subscription ID
    +
    55  """
    +
    56  return self.__id__id
    +
    57 
    +
    58  def close(self):
    +
    59  """
    +
    60  closes the client instance
    +
    61  """
    +
    62  if self.__closed__closed:
    +
    63  return
    +
    64  self.__closed__closed = True
    +
    65  self.__close_sub__close_sub()
    +
    66  self.__ptr_notify__ptr_notify = None
    +
    67  self.__ptr_resp__ptr_resp = None
    +
    68  self.__client__client = None
    +
    69 
    +
    70  def __close_sub(self):
    +
    71  print("close_sub:", self.__id__id)
    +
    72 
    +
    73  if self.__id__id is None or self.__id__id == "":
    +
    74  return
    +
    75 
    +
    76  def __cb_close(result: Result, data: typing.Optional[Variant], userdata: ctrlxdatalayer.clib.userData_c_void_p):
    +
    77  print("async close all: ", result, int(userdata))
    +
    78 
    +
    79  self.unsubscribe_allunsubscribe_all(__cb_close, 1879)
    +
    80  self.wait_on_response_cbwait_on_response_cb()
    +
    81 
    +
    82  def __create_sub_notify_callback(self, cb: ctrlxdatalayer.subscription.ResponseNotifyCallback):
    +
    83  """
    +
    84  callback management
    +
    85  """
    + +
    87  self.__ptr_notify__ptr_notify = cb_ptr
    +
    88 
    +
    89  def _cb(status: C_DLR_RESULT, items: ctypes.POINTER(C_NotifyItem), count: ctypes.c_uint32, userdata: ctypes.c_void_p):
    +
    90  """
    +
    91  datalayer calls this function
    +
    92  """
    +
    93  r = Result(status)
    +
    94  if r == Result.OK:
    +
    95  notify_items = []
    +
    96  for x in range(0, count):
    + +
    98  items[x].data, items[x].info)
    +
    99  notify_items.append(n)
    +
    100  cb(r, notify_items, userdata)
    +
    101  del notify_items
    +
    102  return
    +
    103  cb(r, [], userdata)
    +
    104 
    +
    105  cb_ptr.set_ptr(C_DLR_CLIENT_NOTIFY_RESPONSE(_cb))
    +
    106  return cb_ptr.get_ptr()
    +
    107 
    +
    108  def _test_notify_callback(self, cb: ctrlxdatalayer.subscription.ResponseNotifyCallback):
    +
    109  """
    +
    110  internal use
    +
    111  """
    +
    112  return self.__create_sub_notify_callback__create_sub_notify_callback(cb)
    +
    113 
    +
    114  def __create_response_callback(self, cb: ctrlxdatalayer.client.ResponseCallback):
    +
    115  """
    +
    116  callback management
    +
    117  """
    +
    118  self.__on_cb__on_cb = False
    + +
    120  self.__ptr_resp__ptr_resp = cb_ptr
    +
    121 
    +
    122  def _cb(status: C_DLR_RESULT, data: C_DLR_VARIANT, userdata: ctypes.c_void_p):
    +
    123  """
    +
    124  datalayer calls this function
    +
    125  """
    +
    126  r = Result(status)
    +
    127  if r == Result.OK:
    +
    128  v = VariantRef(data)
    +
    129  cb(r, v, userdata)
    +
    130  self.__on_cb__on_cb = True
    +
    131  return
    +
    132  cb(r, None, userdata)
    +
    133  self.__on_cb__on_cb = True
    +
    134 
    +
    135  cb_ptr.set_ptr(C_DLR_CLIENT_RESPONSE(_cb))
    +
    136  return cb_ptr.get_ptr()
    +
    137 
    +
    138  def _test_response_callback(self, cb: ctrlxdatalayer.client.ResponseCallback):
    +
    139  """
    +
    140  internal use
    +
    141  """
    +
    142  return self.__create_response_callback__create_response_callback(cb)
    +
    143 
    +
    144  def _create(self, prop: Variant, cnb: ctrlxdatalayer.subscription.ResponseNotifyCallback, cb: ctrlxdatalayer.client.ResponseCallback, userdata: userData_c_void_p = None) -> Result:
    +
    145  """
    +
    146  Set up a subscription
    +
    147  @param[in] ruleset Variant that describe ruleset of subscription as subscription.fbs
    +
    148  @param[in] publishCallback Callback to call when new data is available
    +
    149  @param[in] callback Callback to be called when subscription is created
    +
    150  @param[in] userdata User data - will be returned in callback as userdata. You can use this userdata to identify your request and subscription
    +
    151  @param[in] token Security access &token for authentication as JWT payload
    +
    152  @result <Result> status of function call
    +
    153  """
    +
    154  r = Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_clientCreateSubscriptionAsync(
    +
    155  self.__client__client().get_handle(),
    +
    156  prop.get_handle(),
    +
    157  self.__create_sub_notify_callback__create_sub_notify_callback(cnb),
    +
    158  self.__create_response_callback__create_response_callback(cb),
    +
    159  userdata,
    +
    160  self.__client__client().get_token()))
    +
    161  if r == Result.OK:
    + +
    163  return r
    +
    164 
    +
    165  def subscribe(self, address: str, cb: ctrlxdatalayer.client.ResponseCallback, userdata: userData_c_void_p = None) -> Result:
    +
    166  """
    +
    167  Set up a subscription to a node
    +
    168  @param[in] address Address of the node to add a subscription to
    +
    169  @param[in] callback Callback to called when data is subscribed
    +
    170  @param[in] userdata User data - will be returned in callback as userdata. You can use this userdata to identify your request
    +
    171  @result <Result> status of function call
    +
    172  """
    +
    173  b_id = self.ididid().encode('utf-8')
    +
    174  b_address = address.encode('utf-8')
    +
    175  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_clientSubscribeAsync(
    +
    176  self.__client__client().get_handle(),
    +
    177  b_id,
    +
    178  b_address,
    +
    179  self.__create_response_callback__create_response_callback(cb),
    +
    180  userdata))
    +
    181 
    +
    182  def unsubscribe(self, address: str, cb: ctrlxdatalayer.client.ResponseCallback, userdata: userData_c_void_p = None) -> Result:
    +
    183  """
    +
    184  Removes a node from a subscription id
    +
    185  @param[in] address Address of a node, that should be removed to the given subscription.
    +
    186  @param[in] callback Callback to called when data is subscribed
    +
    187  @param[in] userdata User data - will be returned in callback as userdata. You can use this userdata to identify your request
    +
    188  @result <Result> status of function call
    +
    189  """
    +
    190  b_id = self.ididid().encode('utf-8')
    +
    191  b_address = address.encode('utf-8')
    +
    192  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_clientUnsubscribeAsync(
    +
    193  self.__client__client().get_handle(),
    +
    194  b_id,
    +
    195  b_address,
    +
    196  self.__create_response_callback__create_response_callback(cb),
    +
    197  userdata))
    +
    198 
    +
    199  def subscribe_multi(self, address: typing.List[str], cb: ctrlxdatalayer.client.ResponseCallback, userdata: userData_c_void_p = None) -> Result:
    +
    200  """
    +
    201  Set up a subscription to multiple nodes
    +
    202  @param[in] address Set of addresses of nodes, that should be removed to the given subscription.
    +
    203  @param[in] count Count of addresses.
    +
    204  @param[in] callback Callback to called when data is subscribed
    +
    205  @param[in] userdata User data - will be returned in callback as userdata. You can use this userdata to identify your request
    +
    206  @result <Result> status of function call
    +
    207  """
    +
    208  b_id = self.ididid().encode('utf-8')
    +
    209  b_address = (ctypes.c_char_p * len(address))(*
    +
    210  [d.encode('utf-8') for d in address])
    +
    211  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_clientSubscribeMultiAsync(
    +
    212  self.__client__client().get_handle(),
    +
    213  b_id,
    +
    214  b_address,
    +
    215  len(address),
    +
    216  self.__create_response_callback__create_response_callback(cb),
    +
    217  userdata))
    +
    218 
    +
    219  def unsubscribe_multi(self, address: typing.List[str], cb: ctrlxdatalayer.client.ResponseCallback, userdata: userData_c_void_p = None) -> Result:
    +
    220  """
    +
    221  Removes a set of nodes from a subscription id
    +
    222  @param[in] address Address of a node, that should be removed to the given subscription.
    +
    223  @param[in] callback Callback to called when data is subscribed
    +
    224  @param[in] userdata User data - will be returned in callback as userdata. You can use this userdata to identify your request
    +
    225  @result <Result> status of function call
    +
    226  """
    +
    227  b_id = self.ididid().encode('utf-8')
    +
    228  b_address = (ctypes.c_char_p * len(address))(*
    +
    229  [d.encode('utf-8') for d in address])
    +
    230  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_clientUnsubscribeMultiAsync(
    +
    231  self.__client__client().get_handle(),
    +
    232  b_id,
    +
    233  b_address,
    +
    234  len(address),
    +
    235  self.__create_response_callback__create_response_callback(cb),
    +
    236  userdata))
    +
    237 
    +
    238  def unsubscribe_all(self, cb: ctrlxdatalayer.client.ResponseCallback, userdata: userData_c_void_p = None) -> Result:
    +
    239  """
    +
    240  Removes all subscriptions from a subscription id
    +
    241  @param[in] callback Callback to called when data is subscribed
    +
    242  @param[in] userdata User data - will be returned in callback as userdata. You can use this userdata to identify your request
    +
    243  @result <Result> status of function call
    +
    244  """
    +
    245  if self.__client__client is None:
    +
    246  return
    +
    247  self.__client__client()._unregister_sync(self)
    +
    248  b_id = self.ididid().encode('utf-8')
    +
    249  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_clientUnsubscribeAllAsync(
    +
    250  self.__client__client().get_handle(),
    +
    251  b_id,
    +
    252  self.__create_response_callback__create_response_callback(cb),
    +
    253  userdata))
    +
    254 
    +
    255  def wait_on_response_cb(self, wait: int = 5) -> bool:
    +
    256  """ wait_on_response_cb """
    +
    257  if wait <= 0:
    +
    258  wait = 5
    +
    259  n = 0
    +
    260  while not self.__on_cb__on_cb and n < wait:
    +
    261  n = n + 1
    +
    262  time.sleep(1)
    +
    263  return self.__on_cb__on_cb
    +
    Client interface for accessing data from the system.
    Definition: client.py:61
    + + + + + +
    Result unsubscribe_multi(self, typing.List[str] address, ctrlxdatalayer.client.ResponseCallback cb, userData_c_void_p userdata=None)
    Removes a set of nodes from a subscription id.
    +
    bool wait_on_response_cb(self, int wait=5)
    wait_on_response_cb
    +
    def __exit__(self, exc_type, exc_val, exc_tb)
    use the python context manager
    + +
    Result subscribe_multi(self, typing.List[str] address, ctrlxdatalayer.client.ResponseCallback cb, userData_c_void_p userdata=None)
    Set up a subscription to multiple nodes.
    +
    Result unsubscribe(self, str address, ctrlxdatalayer.client.ResponseCallback cb, userData_c_void_p userdata=None)
    Removes a node from a subscription id.
    +
    def __enter__(self)
    use the python context manager
    + +
    def __create_response_callback(self, ctrlxdatalayer.client.ResponseCallback cb)
    + +
    def __init__(self, ctrlxdatalayer.client.Client client)
    +
    Result subscribe(self, str address, ctrlxdatalayer.client.ResponseCallback cb, userData_c_void_p userdata=None)
    Set up a subscription to a node.
    + + + + +
    def __create_sub_notify_callback(self, ctrlxdatalayer.subscription.ResponseNotifyCallback cb)
    +
    Result unsubscribe_all(self, ctrlxdatalayer.client.ResponseCallback cb, userData_c_void_p userdata=None)
    Removes all subscriptions from a subscription id.
    + + + + + + + + +
    str get_id(Variant prop)
    +
    +
    + + + + diff --git a/3.4.0/api/python/subscription__properties__builder_8py_source.html b/3.4.0/api/python/subscription__properties__builder_8py_source.html new file mode 100644 index 000000000..c29bd5ef8 --- /dev/null +++ b/3.4.0/api/python/subscription__properties__builder_8py_source.html @@ -0,0 +1,272 @@ + + + + + + + +ctrlX Data Layer API for Python: /var/jenkins/workspace/script.python.datalayer/ctrlxdatalayer/subscription_properties_builder.py Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    subscription_properties_builder.py
    +
    +
    +
    1 """
    +
    2  This module provides helper classes to deal with subscription properties flatbuffers.
    +
    3 """
    +
    4 import flatbuffers
    +
    5 from comm.datalayer import (ChangeEvents, Counting, DataChangeFilter,
    +
    6  LosslessRateLimit, Properties, Property, Queueing,
    +
    7  Sampling, SubscriptionProperties)
    +
    8 
    +
    9 from ctrlxdatalayer.variant import Variant
    +
    10 
    +
    11 
    + +
    13  """SubscriptionPropertiesBuilder
    +
    14  """
    +
    15 
    +
    16  def __init__(self, id_val: str):
    +
    17  """_summary_
    +
    18 
    +
    19  Args:
    +
    20  id_val (str):
    +
    21  """
    +
    22  self.__id__id = id_val
    +
    23  self.__keepalive_interval__keepalive_interval = 60000
    +
    24  self.__publish_interval__publish_interval = 1000
    +
    25  self.__error_interval__error_interval = 10000
    +
    26  self.__rules__rules = []
    +
    27 
    +
    28  def build(self) -> Variant:
    +
    29  """Build Subscription Properties as Variant
    +
    30 
    +
    31  Returns:
    +
    32  Variant: Subscription Properties
    +
    33  """
    +
    34  builder = flatbuffers.Builder()
    +
    35  sub_prop = SubscriptionProperties.SubscriptionPropertiesT()
    +
    36  sub_prop.id = self.__id__id
    +
    37  sub_prop.keepaliveInterval = self.__keepalive_interval__keepalive_interval
    +
    38  sub_prop.publishInterval = self.__publish_interval__publish_interval
    +
    39  sub_prop.rules = None
    +
    40  if len(self.__rules__rules) != 0:
    +
    41  sub_prop.rules = self.__rules__rules
    +
    42  sub_prop.errorInterval = self.__error_interval__error_interval
    +
    43 
    +
    44 
    +
    45  sub_prop_internal = sub_prop.Pack(builder)
    +
    46 
    +
    47  # Closing operation
    +
    48  builder.Finish(sub_prop_internal)
    +
    49 
    +
    50  subprop = Variant()
    +
    51  subprop.set_flatbuffers(builder.Output())
    +
    52  return subprop
    +
    53 
    +
    54  def set_keepalive_interval(self, interval: int):
    +
    55  """set_keepalive_interval
    +
    56 
    +
    57  Args:
    +
    58  interval (int): keep alvive interval
    +
    59  """
    +
    60  self.__keepalive_interval__keepalive_interval = interval
    +
    61  return self
    +
    62 
    +
    63  def set_publish_interval(self, interval: int):
    +
    64  """set_publish_interval
    +
    65 
    +
    66  Args:
    +
    67  interval (int): publish interval
    +
    68  """
    +
    69  self.__publish_interval__publish_interval = interval
    +
    70  return self
    +
    71 
    +
    72  def set_error_interval(self, interval: int):
    +
    73  """set_error_interval
    +
    74 
    +
    75  Args:
    +
    76  interval (int): error interval
    +
    77  """
    +
    78  self.__error_interval__error_interval = interval
    +
    79  return self
    +
    80 
    +
    81  def add_rule_sampling(self, rule: Sampling.SamplingT):
    +
    82  """add_rule_sampling
    +
    83 
    +
    84  !!!Hint: 'samplingInterval = 0' only RT nodes, see "datalayer/nodesrt"
    +
    85  Args:
    +
    86  rule (Sampling.SamplingT):
    +
    87  """
    +
    88  prop = Property.PropertyT()
    +
    89  prop.ruleType = Properties.Properties().Sampling
    +
    90  prop.rule = rule
    +
    91  self.__rules__rules.append(prop)
    +
    92  return self
    +
    93 
    +
    94  def add_rule_queueing(self, rule: Queueing.QueueingT):
    +
    95  """add_rule_queueing
    +
    96 
    +
    97  Args:
    +
    98  rule (Queueing.QueueingT):
    +
    99  """
    +
    100  prop = Property.PropertyT()
    +
    101  prop.ruleType = Properties.Properties().Queueing
    +
    102  prop.rule = rule
    +
    103  self.__rules__rules.append(prop)
    +
    104  return self
    +
    105 
    +
    106  def add_rule_datachangefilter(self, rule: DataChangeFilter.DataChangeFilterT):
    +
    107  """add_rule_datachangefilter
    +
    108 
    +
    109  Args:
    +
    110  rule (DataChangeFilter.DataChangeFilterT):
    +
    111  """
    +
    112  prop = Property.PropertyT()
    +
    113  prop.ruleType = Properties.Properties().DataChangeFilter
    +
    114  prop.rule = rule
    +
    115  self.__rules__rules.append(prop)
    +
    116  return self
    +
    117 
    +
    118  def add_rule_changeevents(self, rule: ChangeEvents.ChangeEventsT):
    +
    119  """add_rule_changeevents
    +
    120 
    +
    121  Args:
    +
    122  rule (ChangeEvents.ChangeEventsT):
    +
    123  """
    +
    124  prop = Property.PropertyT()
    +
    125  prop.ruleType = Properties.Properties().ChangeEvents
    +
    126  prop.rule = rule
    +
    127  self.__rules__rules.append(prop)
    +
    128  return self
    +
    129 
    +
    130  def add_rule_counting(self, rule: Counting.CountingT):
    +
    131  """add_rule_counting
    +
    132 
    +
    133  Args:
    +
    134  rule (Counting.CountingT):
    +
    135  """
    +
    136  prop = Property.PropertyT()
    +
    137  prop.ruleType = Properties.Properties().Counting
    +
    138  prop.rule = rule
    +
    139  self.__rules__rules.append(prop)
    +
    140  return self
    +
    141 
    +
    142  def add_rule_losslessratelimit(self, rule: LosslessRateLimit.LosslessRateLimitT):
    +
    143  """add_rule_losslessratelimit
    +
    144 
    +
    145  Args:
    +
    146  rule (LosslessRateLimit.LosslessRateLimitT):
    +
    147  """
    +
    148  prop = Property.PropertyT()
    +
    149  prop.ruleType = Properties.Properties().LosslessRateLimit
    +
    150  prop.rule = rule
    +
    151  self.__rules__rules.append(prop)
    +
    152  return self
    + + + +
    def add_rule_datachangefilter(self, DataChangeFilter.DataChangeFilterT rule)
    add_rule_datachangefilter
    + +
    def add_rule_changeevents(self, ChangeEvents.ChangeEventsT rule)
    add_rule_changeevents
    + + + + + + + + + +
    def add_rule_losslessratelimit(self, LosslessRateLimit.LosslessRateLimitT rule)
    add_rule_losslessratelimit
    + +
    Variant is a container for a many types of data.
    Definition: variant.py:150
    + +
    +
    + + + + diff --git a/3.4.0/api/python/subscription__sync_8py_source.html b/3.4.0/api/python/subscription__sync_8py_source.html new file mode 100644 index 000000000..da6bddccf --- /dev/null +++ b/3.4.0/api/python/subscription__sync_8py_source.html @@ -0,0 +1,308 @@ + + + + + + + +ctrlX Data Layer API for Python: /var/jenkins/workspace/script.python.datalayer/ctrlxdatalayer/subscription_sync.py Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    subscription_sync.py
    +
    +
    +
    1 """
    +
    2 Class Sync Subscription
    +
    3 """
    +
    4 import ctypes
    +
    5 import typing
    +
    6 import weakref
    +
    7 
    +
    8 import ctrlxdatalayer
    + + +
    11 from ctrlxdatalayer.clib import userData_c_void_p
    +
    12 from ctrlxdatalayer.clib_client import (C_DLR_CLIENT_NOTIFY_RESPONSE,
    +
    13  C_NotifyItem)
    +
    14 from ctrlxdatalayer.variant import Result, Variant
    +
    15 
    +
    16 
    + +
    18  """
    +
    19  SubscriptionSync
    +
    20  """
    +
    21  __slots__ = ['__ptr_notify', '__closed', '__client', '__id', '__mock']
    +
    22 
    +
    23  def __init__(self, client: ctrlxdatalayer.client.Client):
    +
    24  """
    +
    25  @param [in] client Reference to the client
    +
    26  """
    + +
    28  self.__closed__closed = False
    +
    29  self.__client__client = weakref.ref(client)
    +
    30  self.__id__id = ""
    +
    31  self.__mock__mock = False
    +
    32 
    +
    33  def __enter__(self):
    +
    34  """
    +
    35  use the python context manager
    +
    36  """
    +
    37  return self
    +
    38 
    +
    39  def __exit__(self, exc_type, exc_val, exc_tb):
    +
    40  """
    +
    41  use the python context manager
    +
    42  """
    +
    43  self.closeclose()
    +
    44 
    +
    45  def on_close(self):
    +
    46  """
    +
    47  on_close
    +
    48  """
    +
    49  self.closeclose()
    +
    50 
    +
    51  def id(self) -> str:
    +
    52  """
    +
    53  Subscription ID
    +
    54 
    +
    55  @return <str> id
    +
    56  """
    +
    57  return self.__id__id
    +
    58 
    +
    59  def __create_sub_callback(self, cb: ctrlxdatalayer.subscription.ResponseNotifyCallback):
    +
    60  """
    +
    61  callback management
    +
    62  """
    + +
    64  self.__ptr_notify__ptr_notify = cb_ptr
    +
    65 
    +
    66  def _cb(status: ctrlxdatalayer.clib.C_DLR_RESULT, items: ctypes.POINTER(C_NotifyItem),
    +
    67  count: ctypes.c_uint32, userdata: ctypes.c_void_p):
    +
    68  """
    +
    69  datalayer calls this function
    +
    70  """
    +
    71  r = Result(status)
    +
    72  if r == Result.OK:
    +
    73  notify_items = []
    +
    74  for x in range(0, count):
    + +
    76  items[x].data, items[x].info)
    +
    77  if not self.__mock__mock and len(n.get_address()) == 0: #empty address???
    +
    78  continue
    +
    79  notify_items.append(n)
    +
    80  cb(r, notify_items, userdata)
    +
    81  del notify_items
    +
    82  return
    +
    83  cb(r, [], userdata)
    +
    84 
    +
    85  cb_ptr.set_ptr(C_DLR_CLIENT_NOTIFY_RESPONSE(_cb))
    +
    86  return cb_ptr.get_ptr()
    +
    87 
    +
    88  def _test_notify_callback(self, cb: ctrlxdatalayer.subscription.ResponseNotifyCallback):
    +
    89  """
    +
    90  internal use
    +
    91  """
    +
    92  self.__mock__mock = True
    +
    93  return self.__create_sub_callback__create_sub_callback(cb)
    +
    94 
    +
    95  def close(self):
    +
    96  """
    +
    97  closes the client instance
    +
    98  """
    +
    99  if self.__closed__closed:
    +
    100  return
    +
    101  self.__closed__closed = True
    +
    102  self.unsubscribe_allunsubscribe_all()
    +
    103  self.__ptr_notify__ptr_notify = None
    +
    104  self.__client__client = None
    +
    105 
    +
    106  def _create(self, prop: Variant, cnb: ctrlxdatalayer.subscription.ResponseNotifyCallback,
    +
    107  userdata: userData_c_void_p = None) -> Result:
    +
    108  """
    +
    109  Set up a subscription
    +
    110  @param[in] ruleset Variant that describe ruleset of subscription as subscription.fbs
    +
    111  @param[in] publishCallback Callback to call when new data is available
    +
    112  @param[in] userdata User data - will be returned in publishCallback as userdata. You can use this userdata to identify your subscription
    +
    113  @result <Result> status of function cal
    +
    114  """
    +
    115  r = Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_clientCreateSubscriptionSync(
    +
    116  self.__client__client().get_handle(), prop.get_handle(),
    +
    117  self.__create_sub_callback__create_sub_callback(cnb), userdata, self.__client__client().get_token()))
    +
    118  if r == Result.OK:
    + +
    120  return r
    +
    121 
    +
    122  def subscribe(self, address: str) -> Result:
    +
    123  """
    +
    124  Adds a node to a subscription id
    +
    125  @param[in] address Address of a node, that should be added to the given subscription.
    +
    126  @result <Result> status of function call
    +
    127  """
    +
    128  b_id = self.ididid().encode('utf-8')
    +
    129  b_address = address.encode('utf-8')
    +
    130  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_clientSubscribeSync(
    +
    131  self.__client__client().get_handle(), b_id, b_address))
    +
    132 
    +
    133  def unsubscribe(self, address: str) -> Result:
    +
    134  """
    +
    135  Removes a node from a subscription id
    +
    136  @param[in] address Address of a node, that should be removed to the given subscription.
    +
    137  @result <Result> status of function call
    +
    138  """
    +
    139  b_id = self.ididid().encode('utf-8')
    +
    140  b_address = address.encode('utf-8')
    +
    141  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_clientUnsubscribeSync(
    +
    142  self.__client__client().get_handle(), b_id, b_address))
    +
    143 
    +
    144  def subscribe_multi(self, address: typing.List[str]) -> Result:
    +
    145  """
    +
    146  Adds a list of nodes to a subscription id
    +
    147  @param[in] address List of Addresses of a node, that should be added to the given subscription.
    +
    148  @param[in] count Count of addresses.
    +
    149  @result <Result> status of function call
    +
    150  """
    +
    151  b_id = self.ididid().encode('utf-8')
    +
    152  b_address = (ctypes.c_char_p * len(address))(*
    +
    153  [d.encode('utf-8') for d in address])
    +
    154  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_clientSubscribeMultiSync(
    +
    155  self.__client__client().get_handle(), b_id, b_address, len(address)))
    +
    156 
    +
    157  def unsubscribe_multi(self, address: typing.List[str]) -> Result:
    +
    158  """
    +
    159  Removes a set of nodes from a subscription id
    +
    160  @param[in] address Set of addresses of nodes, that should be removed to the given subscription.
    +
    161  @result <Result> status of function call
    +
    162  """
    +
    163  b_id = self.ididid().encode('utf-8')
    +
    164  b_address = (ctypes.c_char_p * len(address))(*
    +
    165  [d.encode('utf-8') for d in address])
    +
    166  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_clientUnsubscribeMultiSync(
    +
    167  self.__client__client().get_handle(), b_id, b_address, len(address)))
    +
    168 
    +
    169  def unsubscribe_all(self) -> Result:
    +
    170  """
    +
    171  Removes subscription id completely
    +
    172  @result <Result> status of function call
    +
    173  """
    +
    174  if self.__client__client is None:
    +
    175  return
    +
    176  self.__client__client()._unregister_sync(self)
    +
    177  b_id = self.ididid().encode('utf-8')
    +
    178  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_clientUnsubscribeAllSync(
    +
    179  self.__client__client().get_handle(), b_id))
    +
    Client interface for accessing data from the system.
    Definition: client.py:61
    + + + + + +
    Result unsubscribe(self, str address)
    Removes a node from a subscription id.
    + +
    def __exit__(self, exc_type, exc_val, exc_tb)
    use the python context manager
    +
    Result unsubscribe_all(self)
    Removes subscription id completely.
    + +
    def __enter__(self)
    use the python context manager
    + +
    Result unsubscribe_multi(self, typing.List[str] address)
    Removes a set of nodes from a subscription id.
    + +
    Result subscribe_multi(self, typing.List[str] address)
    Adds a list of nodes to a subscription id.
    +
    def __init__(self, ctrlxdatalayer.client.Client client)
    +
    def close(self)
    closes the client instance
    +
    def __create_sub_callback(self, ctrlxdatalayer.subscription.ResponseNotifyCallback cb)
    + + + +
    Result subscribe(self, str address)
    Adds a node to a subscription id.
    + + + + +
    str get_id(Variant prop)
    +
    +
    + + + + diff --git a/3.4.0/api/python/sync_off.png b/3.4.0/api/python/sync_off.png new file mode 100644 index 000000000..3b443fc62 Binary files /dev/null and b/3.4.0/api/python/sync_off.png differ diff --git a/3.4.0/api/python/sync_on.png b/3.4.0/api/python/sync_on.png new file mode 100644 index 000000000..e08320fb6 Binary files /dev/null and b/3.4.0/api/python/sync_on.png differ diff --git a/3.4.0/api/python/system_8py_source.html b/3.4.0/api/python/system_8py_source.html new file mode 100644 index 000000000..1ee051203 --- /dev/null +++ b/3.4.0/api/python/system_8py_source.html @@ -0,0 +1,216 @@ + + + + + + + +ctrlX Data Layer API for Python: /var/jenkins/workspace/script.python.datalayer/ctrlxdatalayer/system.py Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    system.py
    +
    +
    +
    1 """
    +
    2  System class
    +
    3 """
    +
    4 import ctrlxdatalayer
    +
    5 import ctrlxdatalayer.clib_system
    +
    6 from ctrlxdatalayer.converter import Converter
    +
    7 from ctrlxdatalayer.factory import Factory
    +
    8 
    +
    9 
    +
    10 class System:
    +
    11  """
    +
    12  Datalayer System Instance
    +
    13 
    +
    14  Hint: see python context manager for instance handling
    +
    15  """
    +
    16  __slots__ = ['__system', '__closed']
    +
    17 
    +
    18  def __init__(self, ipc_path: str):
    +
    19  """
    +
    20  Creates a datalayer system
    +
    21  @param[in] ipc_path Path for interprocess communication - use null pointer for automatic detection
    +
    22  """
    +
    23  b_ipc_path = ipc_path.encode('utf-8')
    +
    24  self.__system__system = ctrlxdatalayer.clib.libcomm_datalayer.DLR_systemCreate(
    +
    25  b_ipc_path)
    +
    26  self.__closed__closed = False
    +
    27 
    +
    28  def __enter__(self):
    +
    29  """
    +
    30  use the python context manager
    +
    31  """
    +
    32  return self
    +
    33 
    +
    34  def __exit__(self, exc_type, exc_val, exc_tb):
    +
    35  """
    +
    36  use the python context manager
    +
    37  """
    +
    38  self.closeclose()
    +
    39 
    +
    40  def close(self):
    +
    41  """
    +
    42  closes the system instance
    +
    43  """
    +
    44  if self.__closed__closed:
    +
    45  return
    +
    46  self.__closed__closed = True
    +
    47  self.stopstop(True)
    +
    48  ctrlxdatalayer.clib.libcomm_datalayer.DLR_systemDelete(self.__system__system)
    +
    49 
    +
    50  def get_handle(self):
    +
    51  """
    +
    52  handle value of system
    +
    53  """
    +
    54  return self.__system__system
    +
    55 
    +
    56  def start(self, bo_start_broker: bool):
    +
    57  """
    +
    58  Starts a datalayer system
    +
    59  @param[in] bo_start_broker Use true to start a broker. If you are a user of the datalayer - call with false!
    +
    60  """
    +
    61  ctrlxdatalayer.clib.libcomm_datalayer.DLR_systemStart(
    +
    62  self.__system__system, bo_start_broker)
    +
    63 
    +
    64  def stop(self, bo_force_provider_stop: bool) -> bool:
    +
    65  """
    +
    66  Stops a datalayer system
    +
    67  @param[in] bo_force_provider_stop Force stop off all created providers for this datalayer system
    +
    68  @returns <bool> false if there is a client or provider active
    +
    69  """
    +
    70  return ctrlxdatalayer.clib.libcomm_datalayer.DLR_systemStop(
    +
    71  self.__system__system, bo_force_provider_stop)
    +
    72 
    +
    73  def factory(self) -> Factory:
    +
    74  """
    +
    75  Returns the factory to create clients and provider for the datalayer
    +
    76  @returns <Factory>
    +
    77  """
    +
    78  c_factory = ctrlxdatalayer.clib.libcomm_datalayer.DLR_systemFactory(
    +
    79  self.__system__system)
    +
    80  return Factory(c_factory)
    +
    81 
    +
    82  def json_converter(self) -> Converter:
    +
    83  """
    +
    84  Returns converter between JSON and Variant
    +
    85  @returns <Converter>
    +
    86  """
    +
    87  c_converter = ctrlxdatalayer.clib.libcomm_datalayer.DLR_systemJsonConverter(
    +
    88  self.__system__system)
    +
    89  return Converter(c_converter)
    +
    90 
    +
    91  def set_bfbs_path(self, path):
    +
    92  """
    +
    93  Sets the base path to bfbs files
    +
    94  @param[in] path Base path to bfbs files
    +
    95  """
    +
    96  b_path = path.encode('utf-8')
    +
    97  ctrlxdatalayer.clib.libcomm_datalayer.DLR_systemSetBfbsPath(
    +
    98  self.__system__system, b_path)
    + + +
    Datalayer System Instance.
    Definition: system.py:15
    +
    def set_bfbs_path(self, path)
    Sets the base path to bfbs files.
    Definition: system.py:95
    + +
    def __exit__(self, exc_type, exc_val, exc_tb)
    use the python context manager
    Definition: system.py:37
    +
    Factory factory(self)
    Returns the factory to create clients and provider for the datalayer.
    Definition: system.py:77
    +
    def __enter__(self)
    use the python context manager
    Definition: system.py:31
    +
    def start(self, bool bo_start_broker)
    Starts a datalayer system.
    Definition: system.py:60
    + +
    def close(self)
    closes the system instance
    Definition: system.py:43
    +
    def get_handle(self)
    handle value of system
    Definition: system.py:53
    +
    bool stop(self, bool bo_force_provider_stop)
    Stops a datalayer system.
    Definition: system.py:69
    +
    Converter json_converter(self)
    Returns converter between JSON and Variant.
    Definition: system.py:86
    +
    def __init__(self, str ipc_path)
    Creates a datalayer system.
    Definition: system.py:22
    + + +
    +
    + + + + diff --git a/3.4.0/api/python/tab_a.png b/3.4.0/api/python/tab_a.png new file mode 100644 index 000000000..3b725c41c Binary files /dev/null and b/3.4.0/api/python/tab_a.png differ diff --git a/3.4.0/api/python/tab_b.png b/3.4.0/api/python/tab_b.png new file mode 100644 index 000000000..e2b4a8638 Binary files /dev/null and b/3.4.0/api/python/tab_b.png differ diff --git a/3.4.0/api/python/tab_h.png b/3.4.0/api/python/tab_h.png new file mode 100644 index 000000000..fd5cb7054 Binary files /dev/null and b/3.4.0/api/python/tab_h.png differ diff --git a/3.4.0/api/python/tab_s.png b/3.4.0/api/python/tab_s.png new file mode 100644 index 000000000..ab478c95b Binary files /dev/null and b/3.4.0/api/python/tab_s.png differ diff --git a/3.4.0/api/python/tabs.css b/3.4.0/api/python/tabs.css new file mode 100644 index 000000000..fb303bee8 --- /dev/null +++ b/3.4.0/api/python/tabs.css @@ -0,0 +1 @@ +.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0px/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0px 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0px 1px 1px rgba(255,255,255,0.9);color:#283A5D;outline:none}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox a.current{color:#D23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media (min-width: 768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283A5D transparent transparent transparent;background:transparent;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0px 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;border-radius:0 !important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox a:hover span.sub-arrow{border-color:#fff transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;border-radius:5px !important;box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0 !important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent #fff}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #D23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#D23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} diff --git a/3.4.0/api/python/variant_8py_source.html b/3.4.0/api/python/variant_8py_source.html new file mode 100644 index 000000000..e2e4a3a11 --- /dev/null +++ b/3.4.0/api/python/variant_8py_source.html @@ -0,0 +1,1095 @@ + + + + + + + +ctrlX Data Layer API for Python: /var/jenkins/workspace/script.python.datalayer/ctrlxdatalayer/variant.py Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    ctrlX Data Layer API for Python +  3.3.0 +
    +
    The ctrlX Data Layer API allows access to the ctrlX Data Layer with Python
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    variant.py
    +
    +
    +
    1 """
    +
    2  Variant class
    +
    3 """
    +
    4 import ctypes
    +
    5 import datetime
    +
    6 import typing
    +
    7 from enum import Enum
    +
    8 
    +
    9 import ctrlxdatalayer
    +
    10 from ctrlxdatalayer.clib_variant import C_DLR_VARIANT
    +
    11 
    +
    12 FILE_TIME_EPOCH = datetime.datetime(1601, 1, 1)
    +
    13 # FILETIME counts 100 nanoseconds intervals = 0.1 microseconds, so 10 of those are 1 microsecond
    +
    14 FILE_TIME_MICROSECOND = 10
    +
    15 
    +
    16 
    +
    17 class Result(Enum):
    +
    18  """
    +
    19  Result(Enum)
    +
    20 
    +
    21  status of function call
    +
    22  """
    +
    23  OK = 0
    +
    24  OK_NO_CONTENT = 0x00000001
    +
    25  FAILED = 0x80000001
    +
    26  # application
    +
    27  INVALID_ADDRESS = 0x80010001
    +
    28  UNSUPPORTED = 0x80010002
    +
    29  OUT_OF_MEMORY = 0x80010003
    +
    30  LIMIT_MIN = 0x80010004
    +
    31  LIMIT_MAX = 0x80010005
    +
    32  TYPE_MISMATCH = 0x80010006
    +
    33  SIZE_MISMATCH = 0x80010007
    +
    34  INVALID_FLOATINGPOINT = 0x80010009
    +
    35  INVALID_HANDLE = 0x8001000A
    +
    36  INVALID_OPERATION_MODE = 0x8001000B
    +
    37  INVALID_CONFIGURATION = 0x8001000C
    +
    38  INVALID_VALUE = 0x8001000D
    +
    39  SUBMODULE_FAILURE = 0x8001000E
    +
    40  TIMEOUT = 0x8001000F
    +
    41  ALREADY_EXISTS = 0x80010010
    +
    42  CREATION_FAILED = 0x80010011
    +
    43  VERSION_MISMATCH = 0x80010012
    +
    44  DEPRECATED = 0x80010013
    +
    45  PERMISSION_DENIED = 0x80010014
    +
    46  NOT_INITIALIZED = 0x80010015
    +
    47  MISSING_ARGUMENT = 0x80010016
    +
    48  TOO_MANY_ARGUMENTS = 0x80010017
    +
    49  RESOURCE_UNAVAILABLE = 0x80010018
    +
    50  COMMUNICATION_ERROR = 0x80010019
    +
    51  TOO_MANY_OPERATIONS = 0x8001001A
    +
    52  WOULD_BLOCK = 0x8001001B
    +
    53 
    +
    54  # communication
    +
    55  COMM_PROTOCOL_ERROR = 0x80020001
    +
    56  COMM_INVALID_HEADER = 0x80020002
    +
    57  # client
    +
    58  CLIENT_NOT_CONNECTED = 0x80030001
    +
    59  # provider
    +
    60  # broker
    +
    61  # realtime related error codes
    +
    62  RT_NOT_OPEN = 0x80060001
    +
    63  RT_INVALID_OBJECT = 0x80060002
    +
    64  RT_WRONG_REVISION = 0x80060003
    +
    65  RT_NO_VALID_DATA = 0x80060004
    +
    66  RT_MEMORY_LOCKED = 0x80060005
    +
    67  RT_INVALID_MEMORY_MAP = 0x80060006
    +
    68  RT_INVALID_RETAIN = 0x80060007
    +
    69  RT_INVALID_ERROR = 0x80060008
    +
    70  RT_MALLOC_FAILED = 0x80060009
    +
    71 
    +
    72  # security
    +
    73  sec_noSEC_NO_TOKEN_token = 0x80070001
    +
    74  SEC_INVALID_SESSION = 0x80070002
    +
    75  SEC_INVALID_TOKEN_CONTENT = 0x80070003
    +
    76  SEC_UNAUTHORIZED = 0x80070004
    +
    77  SEC_PAYMENT_REQUIRED = 0x80070005
    +
    78 
    +
    79  @classmethod
    +
    80  def _missing_(cls, value):
    +
    81  """
    +
    82  _missing_ function
    +
    83  """
    +
    84  i = 0xFFFFFFFF & value
    +
    85  if i == 0x00000001:
    +
    86  return cls(i)
    +
    87  if i == 0x80000001:
    +
    88  return cls(i)
    +
    89  if (i >= 0x80010001) and (i <= Result.WOULD_BLOCK.value):
    +
    90  return cls(i)
    +
    91  if (i >= 0x80020001) and (i <= 0x80020002):
    +
    92  return cls(i)
    +
    93  if i == 0x80030001:
    +
    94  return cls(i)
    +
    95  if (i >= 0x80060001) and (i <= Result.RT_MALLOC_FAILED.value):
    +
    96  return cls(i)
    +
    97  if (i >= 0x80070001) and (i <= Result.SEC_PAYMENT_REQUIRED.value):
    +
    98  return cls(i)
    +
    99  return value
    +
    100 
    +
    101 
    +
    102 class VariantType(Enum):
    +
    103  """
    +
    104  VariantType(Enum)
    +
    105 
    +
    106  type of variant
    +
    107  """
    +
    108  UNKNON = 0
    +
    109  BOOL8 = 1
    +
    110  INT8 = 2
    +
    111  UINT8 = 3
    +
    112  INT16 = 4
    +
    113  UINT16 = 5
    +
    114  INT32 = 6
    +
    115  UINT32 = 7
    +
    116  INT64 = 8
    +
    117  UINT64 = 9
    +
    118  FLOAT32 = 10
    +
    119  FLOAT64 = 11
    +
    120  STRING = 12
    +
    121  ARRAY_BOOL8 = 13
    +
    122  ARRAY_INT8 = 14
    +
    123  ARRAY_UINT8 = 15
    +
    124  ARRAY_INT16 = 16
    +
    125  ARRAY_UINT16 = 17
    +
    126  ARRAY_INT32 = 18
    +
    127  ARRAY_UINT32 = 19
    +
    128  ARRAY_INT64 = 20
    +
    129  ARRAY_UINT64 = 21
    +
    130  ARRAY_FLOAT32 = 22
    +
    131  ARRAY_FLOAT64 = 23
    +
    132  ARRAY_STRING = 24
    +
    133  RAW = 25
    +
    134  FLATBUFFERS = 26
    +
    135  TIMESTAMP = 27
    +
    136  ARRAY_OF_TIMESTAMP = 28
    +
    137 
    +
    138 
    +
    139 class Variant:
    +
    140  """
    +
    141  Variant is a container for a many types of data.
    +
    142 
    +
    143  Hint: see python context manager for instance handling
    +
    144  """
    +
    145 
    +
    146  __slots__ = ['_variant', '__closed']
    +
    147 
    +
    148  def __init__(self, c_variant: C_DLR_VARIANT = None):
    +
    149  """
    +
    150  generate Variant
    +
    151  """
    +
    152  self.__closed__closed = False
    +
    153  if c_variant is None:
    +
    154  self._variant_variant = ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantCreate()
    +
    155  else:
    +
    156  self.__closed__closed = True
    +
    157  self._variant_variant = c_variant
    +
    158 
    +
    159  def __enter__(self):
    +
    160  """
    +
    161  use the python context manager
    +
    162  """
    +
    163  return self
    +
    164 
    +
    165  def __exit__(self, exc_type, exc_val, exc_tb):
    +
    166  """
    +
    167  use the python context manager
    +
    168  """
    +
    169  self.closeclose()
    +
    170 
    +
    171  def __del__(self):
    +
    172  """
    +
    173  __del__
    +
    174  """
    +
    175  self.closeclose()
    +
    176 
    +
    177  def close(self):
    +
    178  """
    +
    179  closes the variant instance
    +
    180  """
    +
    181  if self.__closed__closed:
    +
    182  return
    +
    183  self.__closed__closed = True
    +
    184  ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantDelete(self._variant_variant)
    +
    185 
    +
    186  def get_handle(self):
    +
    187  """
    +
    188  handle value of variant
    +
    189  """
    +
    190  return self._variant_variant
    +
    191 
    +
    192  def get_type(self) -> VariantType:
    +
    193  """
    +
    194  Returns the type of the variant
    +
    195  @returns <VariantType>
    +
    196  """
    +
    197  return VariantType(ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantGetType(self._variant_variant))
    +
    198 
    +
    199  def get_data(self) -> bytearray:
    +
    200  """
    +
    201  Returns the pointer to the data of the variant
    +
    202  @returns array of bytes
    +
    203  """
    +
    204  length = ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantGetSize(
    +
    205  self._variant_variant)
    +
    206  c_data = ctypes.string_at(
    +
    207  ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantGetData(self._variant_variant), length)
    +
    208  return bytearray(c_data)
    +
    209 
    +
    210  def get_size(self) -> int:
    +
    211  """
    +
    212  @returns size of the type in bytes
    +
    213  """
    +
    214  return ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantGetSize(self._variant_variant)
    +
    215 
    +
    216  def get_count(self) -> int:
    +
    217  """
    +
    218  Returns the count of elements in the variant (scalar data types = 1, array = count of elements in array)
    +
    219  @returns count of a type
    +
    220  """
    +
    221  return ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantGetCount(self._variant_variant)
    +
    222 
    +
    223  def check_convert(self, datatype: VariantType) -> Result:
    +
    224  """
    +
    225  Checks whether the variant can be converted to another type
    +
    226  @returns <Result>, status of function call
    +
    227  """
    +
    228  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantCheckConvert(
    +
    229  self._variant_variant, datatype.value))
    +
    230 
    +
    231  @staticmethod
    +
    232  def copy(c_variant: C_DLR_VARIANT):
    +
    233  """
    +
    234  copies the content of a variant to another variant
    +
    235  @returns tuple (Result, Variant)
    +
    236  @return <Result>, status of function call,
    +
    237  @return <Variant>, copy of variant
    +
    238  """
    +
    239  dest = Variant()
    +
    240  result = Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantCopy(
    +
    241  dest._variant, c_variant))
    +
    242  return result, dest
    +
    243 
    +
    244  def clone(self):
    +
    245  """
    +
    246  clones the content of a variant to another variant
    +
    247  @returns tuple (Result, Variant)
    +
    248  @return <Result>, status of function call,
    +
    249  @return <Variant>, clones of variant
    +
    250  """
    +
    251  return Variant.copy(self._variant_variant)
    +
    252 
    +
    253  def get_bool8(self) -> bool:
    +
    254  """
    +
    255  Returns the value of the variant as a bool (auto convert if possible) otherwise 0
    +
    256  @returns [True, False]
    +
    257  """
    +
    258  return ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantGetBOOL8(self._variant_variant)
    +
    259 
    +
    260  def get_int8(self) -> int:
    +
    261  """
    +
    262  Returns the value of the variant as an int8 (auto convert if possible) otherwise 0
    +
    263  @returns [-128, 127]
    +
    264  """
    +
    265  return ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantGetINT8(self._variant_variant)
    +
    266 
    +
    267  def get_uint8(self) -> int:
    +
    268  """
    +
    269  Returns the value of the variant as an uint8 (auto convert if possible) otherwise 0
    +
    270  @returns [0, 255]
    +
    271  """
    +
    272  return ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantGetUINT8(self._variant_variant)
    +
    273 
    +
    274  def get_int16(self) -> int:
    +
    275  """
    +
    276  Returns the value of the variant as an int16 (auto convert if possible) otherwise 0
    +
    277  @returns [-32768, 32767]
    +
    278  """
    +
    279  return ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantGetINT16(self._variant_variant)
    +
    280 
    +
    281  def get_uint16(self) -> int:
    +
    282  """
    +
    283  Returns the value of the variant as an uint16 (auto convert if possible) otherwise 0
    +
    284  @returns [0, 65.535]
    +
    285  """
    +
    286  return ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantGetUINT16(self._variant_variant)
    +
    287 
    +
    288  def get_int32(self) -> int:
    +
    289  """
    +
    290  Returns the value of the variant as an int32 (auto convert if possible) otherwise 0
    +
    291  @returns [-2.147.483.648, 2.147.483.647]
    +
    292  """
    +
    293  return ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantGetINT32(self._variant_variant)
    +
    294 
    +
    295  def get_uint32(self) -> int:
    +
    296  """
    +
    297  Returns the value of the variant as an Uint32 (auto convert if possible) otherwise 0
    +
    298  @returns [0, 4.294.967.295]
    +
    299  """
    +
    300  return ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantGetUINT32(self._variant_variant)
    +
    301 
    +
    302  def get_int64(self) -> int:
    +
    303  """
    +
    304  Returns the value of the variant as an int64 (auto convert if possible) otherwise 0
    +
    305  @returns [-9.223.372.036.854.775.808, 9.223.372.036.854.775.807]
    +
    306  """
    +
    307  return ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantGetINT64(self._variant_variant)
    +
    308 
    +
    309  def get_uint64(self) -> int:
    +
    310  """
    +
    311  Returns the value of the variant as an uint64 (auto convert if possible) otherwise 0
    +
    312  @returns [0, 18446744073709551615]
    +
    313  """
    +
    314  return ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantGetUINT64(self._variant_variant)
    +
    315 
    +
    316  def get_float32(self) -> float:
    +
    317  """
    +
    318  Returns the value of the variant as a float (auto convert if possible) otherwise 0
    +
    319  @returns [1.2E-38, 3.4E+38]
    +
    320  """
    +
    321  return ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantGetFLOAT32(self._variant_variant)
    +
    322 
    +
    323  def get_float64(self) -> float:
    +
    324  """
    +
    325  Returns the value of the variant as a double (auto convert if possible) otherwise 0
    +
    326  @returns [2.3E-308, 1.7E+308]
    +
    327  """
    +
    328  return ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantGetFLOAT64(self._variant_variant)
    +
    329 
    +
    330  def get_string(self) -> str:
    +
    331  """
    +
    332  Returns the array of bool8 if the type is an array of bool otherwise null
    +
    333  @returns string
    +
    334  """
    +
    335  if self.check_convertcheck_convert(VariantType.STRING) != Result.OK:
    +
    336  return None
    +
    337  b = ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantGetSTRING(
    +
    338  self._variant_variant)
    +
    339  if b is None:
    +
    340  return b
    +
    341  return b.decode('utf-8')
    +
    342 
    +
    343  def get_flatbuffers(self) -> bytearray:
    +
    344  """
    +
    345  Returns the flatbuffers if the type is a flatbuffers otherwise null
    +
    346  @returns flatbuffer (bytearray)
    +
    347  """
    +
    348  if self.check_convertcheck_convert(VariantType.FLATBUFFERS) != Result.OK:
    +
    349  return None
    +
    350 
    +
    351  return self.get_dataget_data()
    +
    352 
    +
    353  def get_datetime(self) -> datetime.datetime:
    +
    354  """datetime object as timestamp (FILETIME) 64 bit 100ns since 1.1.1601 (UTC)
    +
    355 
    +
    356  Returns:
    +
    357  datetime.datetime: datetime object
    +
    358  """
    +
    359  d = self.get_uint64get_uint64()
    +
    360  return Variant.from_filetime(d)
    +
    361 
    +
    362  def get_array_bool8(self) -> typing.List[bool]:
    +
    363  """
    +
    364  Returns the array of int8 if the type is an array of int8 otherwise null
    +
    365  @returns array of bool8
    +
    366  """
    +
    367  if self.check_convertcheck_convert(VariantType.ARRAY_BOOL8) != Result.OK:
    +
    368  return None
    +
    369 
    +
    370  c_data = ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantGetArrayOfBOOL8(
    +
    371  self._variant_variant)
    +
    372  length = ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantGetCount(
    +
    373  self._variant_variant)
    +
    374  return [c_data[i] for i in range(length)]
    +
    375 
    +
    376  def get_array_int8(self) -> typing.List[int]:
    +
    377  """
    +
    378  Returns the array of int8 if the type is an array of int8 otherwise null
    +
    379  @returns array of int8
    +
    380  """
    +
    381  if self.check_convertcheck_convert(VariantType.ARRAY_INT8) != Result.OK:
    +
    382  return None
    +
    383  c_data = ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantGetArrayOfINT8(
    +
    384  self._variant_variant)
    +
    385  length = ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantGetCount(
    +
    386  self._variant_variant)
    +
    387  return [c_data[i] for i in range(length)]
    +
    388 
    +
    389  def get_array_uint8(self) -> typing.List[int]:
    +
    390  """
    +
    391  Returns the array of uint8 if the type is an array of uint8 otherwise null
    +
    392  @returns array of uint8
    +
    393  """
    +
    394  if self.check_convertcheck_convert(VariantType.ARRAY_UINT8) != Result.OK:
    +
    395  return None
    +
    396  c_data = ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantGetArrayOfUINT8(
    +
    397  self._variant_variant)
    +
    398  length = ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantGetCount(
    +
    399  self._variant_variant)
    +
    400  return [c_data[i] for i in range(length)]
    +
    401 
    +
    402  def get_array_int16(self) -> typing.List[int]:
    +
    403  """
    +
    404  Returns the array of int16 if the type is an array of int16 otherwise null
    +
    405  @returns array of int16
    +
    406  """
    +
    407  if self.check_convertcheck_convert(VariantType.ARRAY_INT16) != Result.OK:
    +
    408  return None
    +
    409  c_data = ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantGetArrayOfINT16(
    +
    410  self._variant_variant)
    +
    411  length = ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantGetCount(
    +
    412  self._variant_variant)
    +
    413  return [c_data[i] for i in range(length)]
    +
    414 
    +
    415  def get_array_uint16(self) -> typing.List[int]:
    +
    416  """
    +
    417  Returns the array of uint16 if the type is an array of uint16 otherwise null
    +
    418  @returns array of uint16
    +
    419  """
    +
    420  if self.check_convertcheck_convert(VariantType.ARRAY_UINT16) != Result.OK:
    +
    421  return None
    +
    422  c_data = ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantGetArrayOfUINT16(
    +
    423  self._variant_variant)
    +
    424  length = ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantGetCount(
    +
    425  self._variant_variant)
    +
    426  return [c_data[i] for i in range(length)]
    +
    427 
    +
    428  def get_array_int32(self) -> typing.List[int]:
    +
    429  """
    +
    430  Returns the array of int32 if the type is an array of int32 otherwise null
    +
    431  @returns array of int32
    +
    432  """
    +
    433  if self.check_convertcheck_convert(VariantType.ARRAY_INT32) != Result.OK:
    +
    434  return None
    +
    435  c_data = ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantGetArrayOfINT32(
    +
    436  self._variant_variant)
    +
    437  length = ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantGetCount(
    +
    438  self._variant_variant)
    +
    439  return [c_data[i] for i in range(length)]
    +
    440 
    +
    441  def get_array_uint32(self) -> typing.List[int]:
    +
    442  """
    +
    443  Returns the array of uint32 if the type is an array of uint32 otherwise null
    +
    444  @returns array of uint32
    +
    445  """
    +
    446  if self.check_convertcheck_convert(VariantType.ARRAY_UINT32) != Result.OK:
    +
    447  return None
    +
    448  c_data = ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantGetArrayOfUINT32(
    +
    449  self._variant_variant)
    +
    450  length = ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantGetCount(
    +
    451  self._variant_variant)
    +
    452  return [c_data[i] for i in range(length)]
    +
    453 
    +
    454  def get_array_int64(self) -> typing.List[int]:
    +
    455  """
    +
    456  Returns the array of int64 if the type is an array of int64 otherwise null
    +
    457  @returns array of int64
    +
    458  """
    +
    459  if self.check_convertcheck_convert(VariantType.ARRAY_INT64) != Result.OK:
    +
    460  return None
    +
    461  c_data = ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantGetArrayOfINT64(
    +
    462  self._variant_variant)
    +
    463  length = ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantGetCount(
    +
    464  self._variant_variant)
    +
    465  return [c_data[i] for i in range(length)]
    +
    466 
    +
    467  def get_array_uint64(self) -> typing.List[int]:
    +
    468  """
    +
    469  Returns the array of uint64 if the type is an array of uint64 otherwise null
    +
    470  @returns array of uint64
    +
    471  """
    +
    472  if self.check_convertcheck_convert(VariantType.ARRAY_UINT64) != Result.OK and self.check_convertcheck_convert(VariantType.ARRAY_OF_TIMESTAMP) != Result.OK:
    +
    473  return None
    +
    474 
    +
    475  c_data = ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantGetArrayOfUINT64(
    +
    476  self._variant_variant)
    +
    477  length = ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantGetCount(
    +
    478  self._variant_variant)
    +
    479  return [c_data[i] for i in range(length)]
    +
    480 
    +
    481  def get_array_float32(self) -> typing.List[float]:
    +
    482  """
    +
    483  Returns the array of float if the type is an array of float otherwise null
    +
    484  @returns array of float32
    +
    485  """
    +
    486  if self.check_convertcheck_convert(VariantType.ARRAY_FLOAT32) != Result.OK:
    +
    487  return None
    +
    488  c_data = ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantGetArrayOfFLOAT32(
    +
    489  self._variant_variant)
    +
    490  length = ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantGetCount(
    +
    491  self._variant_variant)
    +
    492  return [c_data[i] for i in range(length)]
    +
    493 
    +
    494  def get_array_float64(self) -> typing.List[float]:
    +
    495  """
    +
    496  Returns the array of double if the type is an array of double otherwise null
    +
    497  @returns array of float64
    +
    498  """
    +
    499  if self.check_convertcheck_convert(VariantType.ARRAY_FLOAT64) != Result.OK:
    +
    500  return None
    +
    501  c_data = ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantGetArrayOfFLOAT64(
    +
    502  self._variant_variant)
    +
    503  length = ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantGetCount(
    +
    504  self._variant_variant)
    +
    505  return [c_data[i] for i in range(length)]
    +
    506 
    +
    507  def get_array_string(self) -> typing.List[str]:
    +
    508  """
    +
    509  Returns the type of the variant
    +
    510  @returns array of strings
    +
    511  """
    +
    512  if self.check_convertcheck_convert(VariantType.ARRAY_STRING) != Result.OK:
    +
    513  return None
    +
    514  c_data = ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantGetArrayOfSTRING(
    +
    515  self._variant_variant)
    +
    516  length = ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantGetCount(
    +
    517  self._variant_variant)
    +
    518  return [c_data[i].decode('utf-8') for i in range(length)]
    +
    519 
    +
    520  def get_array_datetime(self) -> typing.List[datetime.datetime]:
    +
    521  """datetime objects as timestamp (FILETIME) 64 bit 100ns since 1.1.1601 (UTC)
    +
    522 
    +
    523  Returns:
    +
    524  array of datetime.datetime: datetime object
    +
    525  """
    +
    526  vals = self.get_array_uint64get_array_uint64()
    +
    527  return [Variant.from_filetime(ft) for ft in vals]
    +
    528 
    +
    529  def set_bool8(self, data: bool) -> Result:
    +
    530  """
    +
    531  Set a bool value
    +
    532  @returns <Result>, status of function call
    +
    533  """
    +
    534  if self.__closed__closed:
    +
    535  return Result.NOT_INITIALIZED
    +
    536  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantSetBOOL8(self._variant_variant, data))
    +
    537 
    +
    538  def set_int8(self, data: int) -> Result:
    +
    539  """
    +
    540  Set an int8 value
    +
    541  @returns <Result>, status of function call
    +
    542  """
    +
    543  if self.__closed__closed:
    +
    544  return Result.NOT_INITIALIZED
    +
    545  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantSetINT8(self._variant_variant, data))
    +
    546 
    +
    547  def set_uint8(self, data: int) -> Result:
    +
    548  """
    +
    549  Set a uint8 value
    +
    550  @returns <Result>, status of function call
    +
    551  """
    +
    552  if self.__closed__closed:
    +
    553  return Result.NOT_INITIALIZED
    +
    554  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantSetUINT8(self._variant_variant, data))
    +
    555 
    +
    556  def set_int16(self, data: int) -> Result:
    +
    557  """
    +
    558  Set an int16 value
    +
    559  @returns <Result>, status of function call
    +
    560  """
    +
    561  if self.__closed__closed:
    +
    562  return Result.NOT_INITIALIZED
    +
    563  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantSetINT16(self._variant_variant, data))
    +
    564 
    +
    565  def set_uint16(self, data: int) -> Result:
    +
    566  """
    +
    567  Set a uint16 value
    +
    568  @returns <Result>, status of function call
    +
    569  """
    +
    570  if self.__closed__closed:
    +
    571  return Result.NOT_INITIALIZED
    +
    572  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantSetUINT16(self._variant_variant, data))
    +
    573 
    +
    574  def set_int32(self, data: int) -> Result:
    +
    575  """
    +
    576  Set an int32 value
    +
    577  @returns <Result>, status of function call
    +
    578  """
    +
    579  if self.__closed__closed:
    +
    580  return Result.NOT_INITIALIZED
    +
    581  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantSetINT32(self._variant_variant, data))
    +
    582 
    +
    583  def set_uint32(self, data: int) -> Result:
    +
    584  """
    +
    585  Set a uint32 value
    +
    586  @returns <Result>, status of function call
    +
    587  """
    +
    588  if self.__closed__closed:
    +
    589  return Result.NOT_INITIALIZED
    +
    590  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantSetUINT32(self._variant_variant, data))
    +
    591 
    +
    592  def set_int64(self, data: int) -> Result:
    +
    593  """
    +
    594  Set an int64 value
    +
    595  @returns <Result>, status of function call
    +
    596  """
    +
    597  if self.__closed__closed:
    +
    598  return Result.NOT_INITIALIZED
    +
    599  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantSetINT64(self._variant_variant, data))
    +
    600 
    +
    601  def set_uint64(self, data: int) -> Result:
    +
    602  """
    +
    603  Set a uint64 value
    +
    604  @returns <Result>, status of function call
    +
    605  """
    +
    606  if self.__closed__closed:
    +
    607  return Result.NOT_INITIALIZED
    +
    608  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantSetUINT64(self._variant_variant, data))
    +
    609 
    +
    610  def set_float32(self, data: float) -> Result:
    +
    611  """
    +
    612  Set a float value
    +
    613  @returns <Result>, status of function call
    +
    614  """
    +
    615  if self.__closed__closed:
    +
    616  return Result.NOT_INITIALIZED
    +
    617  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantSetFLOAT32(self._variant_variant, data))
    +
    618 
    +
    619  def set_float64(self, data: float) -> Result:
    +
    620  """
    +
    621  Set a double value
    +
    622  @returns <Result>, status of function call
    +
    623  """
    +
    624  if self.__closed__closed:
    +
    625  return Result.NOT_INITIALIZED
    +
    626  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantSetFLOAT64(self._variant_variant, data))
    +
    627 
    +
    628  def set_string(self, data: str) -> Result:
    +
    629  """
    +
    630  Set a string
    +
    631  @returns <Result>, status of function call
    +
    632  """
    +
    633  b_data = data.encode('utf-8')
    +
    634  if self.__closed__closed:
    +
    635  return Result.NOT_INITIALIZED
    +
    636  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantSetSTRING(self._variant_variant, b_data))
    +
    637 
    +
    638  def set_flatbuffers(self, data: bytearray) -> Result:
    +
    639  """
    +
    640  Set a flatbuffers
    +
    641  @returns <Result>, status of function call
    +
    642  """
    +
    643  if self.__closed__closed:
    +
    644  return Result.NOT_INITIALIZED
    +
    645  buf = (ctypes.c_byte * len(data)).from_buffer(data)
    +
    646  c_data = ctypes.cast(buf, ctypes.POINTER(ctypes.c_byte))
    +
    647  r = Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantSetFlatbuffers(
    +
    648  self._variant_variant, c_data, len(data)))
    +
    649  del c_data
    +
    650  return r
    +
    651 
    +
    652  def set_timestamp(self, data: int) -> Result:
    +
    653  """
    +
    654  Set a timestamp value
    +
    655  data <int>: timestamp (FILETIME) 64 bit 100ns since 1.1.1601 (UTC)
    +
    656  @returns <Result>, status of function call
    +
    657  """
    +
    658  if self.__closed__closed:
    +
    659  return Result.NOT_INITIALIZED
    +
    660  return Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantSetTimestamp(self._variant_variant, data))
    +
    661 
    +
    662  def set_datetime(self, dt: datetime) -> Result:
    +
    663  """Set a timestamp value as datetime object
    +
    664 
    +
    665  Args:
    +
    666  dt (datetime): datetime object
    +
    667 
    +
    668  Returns:
    +
    669  Result: status of function call
    +
    670  """
    +
    671  ft = Variant.to_filetime(dt)
    +
    672  return self.set_timestampset_timestamp(ft)
    +
    673 
    +
    674  @staticmethod
    +
    675  def from_filetime(filetime) -> datetime:
    +
    676  """convert filetime to datetime
    +
    677 
    +
    678  Args:
    +
    679  filetime (int): (FILETIME) 64 bit 100ns since 1.1.1601 (UTC)
    +
    680 
    +
    681  Returns:
    +
    682  datetime: datetime object
    +
    683  """
    +
    684  #microseconds_since_file_time_epoch = filetime // FILE_TIME_MICROSECOND
    +
    685  return FILE_TIME_EPOCH + datetime.timedelta(microseconds=(filetime // FILE_TIME_MICROSECOND))
    +
    686 
    +
    687  @staticmethod
    +
    688  def to_filetime(dt: datetime) -> int:
    +
    689  """convert datetime to filetime
    +
    690 
    +
    691  Args:
    +
    692  dt (datetime): datetime to convert
    +
    693 
    +
    694  Returns:
    +
    695  int: (FILETIME) 64 bit 100ns since 1.1.1601 (UTC)
    +
    696  """
    +
    697  microseconds_since_file_time_epoch = (
    +
    698  dt - FILE_TIME_EPOCH) // datetime.timedelta(microseconds=1)
    +
    699  return microseconds_since_file_time_epoch * FILE_TIME_MICROSECOND
    +
    700 
    +
    701  def set_array_bool8(self, data: typing.List[bool]) -> Result:
    +
    702  """
    +
    703  Set array of bool8
    +
    704  @returns <Result>, status of function call
    +
    705  """
    +
    706  if self.__closed__closed:
    +
    707  return Result.NOT_INITIALIZED
    +
    708  c_data = (ctypes.c_bool * len(data))(*data)
    +
    709  r = Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantSetARRAY_OF_BOOL8(
    +
    710  self._variant_variant, c_data, len(data)))
    +
    711  del c_data
    +
    712  return r
    +
    713 
    +
    714  def set_array_int8(self, data: typing.List[int]) -> Result:
    +
    715  """
    +
    716  Set array of int8
    +
    717  @returns <Result>, status of function call
    +
    718  """
    +
    719  if self.__closed__closed:
    +
    720  return Result.NOT_INITIALIZED
    +
    721  c_data = (ctypes.c_int8 * len(data))(*data)
    +
    722  r = Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantSetARRAY_OF_INT8(
    +
    723  self._variant_variant, c_data, len(data)))
    +
    724  del c_data
    +
    725  return r
    +
    726 
    +
    727  def set_array_uint8(self, data: typing.List[int]) -> Result:
    +
    728  """
    +
    729  Set array of uint8
    +
    730  @returns <Result>, status of function call
    +
    731  """
    +
    732  if self.__closed__closed:
    +
    733  return Result.NOT_INITIALIZED
    +
    734  c_data = (ctypes.c_uint8 * len(data))(*data)
    +
    735  r = Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantSetARRAY_OF_UINT8(
    +
    736  self._variant_variant, c_data, len(data)))
    +
    737  del c_data
    +
    738  return r
    +
    739 
    +
    740  def set_array_int16(self, data: typing.List[int]) -> Result:
    +
    741  """
    +
    742  Set array of int16
    +
    743  @returns <Result>, status of function call
    +
    744  """
    +
    745  if self.__closed__closed:
    +
    746  return Result.NOT_INITIALIZED
    +
    747  c_data = (ctypes.c_int16 * len(data))(*data)
    +
    748  r = Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantSetARRAY_OF_INT16(
    +
    749  self._variant_variant, c_data, len(data)))
    +
    750  del c_data
    +
    751  return r
    +
    752 
    +
    753  def set_array_uint16(self, data: typing.List[int]) -> Result:
    +
    754  """
    +
    755  Set array of uint16
    +
    756  @returns <Result>, status of function call
    +
    757  """
    +
    758  if self.__closed__closed:
    +
    759  return Result.NOT_INITIALIZED
    +
    760  c_data = (ctypes.c_uint16 * len(data))(*data)
    +
    761  r = Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantSetARRAY_OF_UINT16(
    +
    762  self._variant_variant, c_data, len(data)))
    +
    763  del c_data
    +
    764  return r
    +
    765 
    +
    766  def set_array_int32(self, data: typing.List[int]) -> Result:
    +
    767  """
    +
    768  Set array of int32
    +
    769  @returns <Result>, status of function call
    +
    770  """
    +
    771  if self.__closed__closed:
    +
    772  return Result.NOT_INITIALIZED
    +
    773  c_data = (ctypes.c_int32 * len(data))(*data)
    +
    774  r = Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantSetARRAY_OF_INT32(
    +
    775  self._variant_variant, c_data, len(data)))
    +
    776  del c_data
    +
    777  return r
    +
    778 
    +
    779  def set_array_uint32(self, data: typing.List[int]) -> Result:
    +
    780  """
    +
    781  Set array of uint32
    +
    782  @returns <Result>, status of function call
    +
    783  """
    +
    784  if self.__closed__closed:
    +
    785  return Result.NOT_INITIALIZED
    +
    786  c_data = (ctypes.c_uint32 * len(data))(*data)
    +
    787  r = Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantSetARRAY_OF_UINT32(
    +
    788  self._variant_variant, c_data, len(data)))
    +
    789  del c_data
    +
    790  return r
    +
    791 
    +
    792  def set_array_int64(self, data: typing.List[int]) -> Result:
    +
    793  """
    +
    794  Set array of int64
    +
    795  @returns <Result>, status of function call
    +
    796  """
    +
    797  if self.__closed__closed:
    +
    798  return Result.NOT_INITIALIZED
    +
    799  c_data = (ctypes.c_int64 * len(data))(*data)
    +
    800  r = Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantSetARRAY_OF_INT64(
    +
    801  self._variant_variant, c_data, len(data)))
    +
    802  del c_data
    +
    803  return r
    +
    804 
    +
    805  def set_array_uint64(self, data: typing.List[int]) -> Result:
    +
    806  """
    +
    807  Set array of uint64
    +
    808  @returns <Result>, status of function call
    +
    809  """
    +
    810  if self.__closed__closed:
    +
    811  return Result.NOT_INITIALIZED
    +
    812  c_data = (ctypes.c_uint64 * len(data))(*data)
    +
    813  r = Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantSetARRAY_OF_UINT64(
    +
    814  self._variant_variant, c_data, len(data)))
    +
    815  del c_data
    +
    816  return r
    +
    817 
    +
    818  def set_array_float32(self, data: typing.List[float]) -> Result:
    +
    819  """
    +
    820  Set array of float32
    +
    821  @returns <Result>, status of function call
    +
    822  """
    +
    823  if self.__closed__closed:
    +
    824  return Result.NOT_INITIALIZED
    +
    825  c_data = (ctypes.c_float * len(data))(*data)
    +
    826  r = Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantSetARRAY_OF_FLOAT32(
    +
    827  self._variant_variant, c_data, len(data)))
    +
    828  del c_data
    +
    829  return r
    +
    830 
    +
    831  def set_array_float64(self, data: typing.List[float]) -> Result:
    +
    832  """
    +
    833  Set array of float64
    +
    834  @returns <Result>, status of function call
    +
    835  """
    +
    836  if self.__closed__closed:
    +
    837  return Result.NOT_INITIALIZED
    +
    838  c_data = (ctypes.c_double * len(data))(*data)
    +
    839  r = Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantSetARRAY_OF_FLOAT64(
    +
    840  self._variant_variant, c_data, len(data)))
    +
    841  del c_data
    +
    842  return r
    +
    843 
    +
    844  def set_array_string(self, data: typing.List[str]) -> Result:
    +
    845  """
    +
    846  Set array of strings
    +
    847  @returns <Result>, status of function call
    +
    848  """
    +
    849  if self.__closed__closed:
    +
    850  return Result.NOT_INITIALIZED
    +
    851  c_data = (ctypes.c_char_p * len(data))(*
    +
    852  [d.encode('utf-8') for d in data])
    +
    853  r = Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantSetARRAY_OF_STRING(
    +
    854  self._variant_variant, c_data, len(data)))
    +
    855  del c_data
    +
    856  return r
    +
    857 
    +
    858  def set_array_timestamp(self, data: typing.List[int]) -> Result:
    +
    859  """
    +
    860  Set array of timestamp (uint64)
    +
    861  @returns <Result>, status of function call
    +
    862  """
    +
    863  if self.__closed__closed:
    +
    864  return Result.NOT_INITIALIZED
    +
    865  c_data = (ctypes.c_uint64 * len(data))(*data)
    +
    866  r = Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantSetARRAY_OF_TIMESTAMP(
    +
    867  self._variant_variant, c_data, len(data)))
    +
    868  del c_data
    +
    869  return r
    +
    870 
    +
    871  def set_array_datetime(self, data: typing.List[datetime.datetime]) -> Result:
    +
    872  """
    +
    873  Set array of datetime
    +
    874  @returns <Result>, status of function call
    +
    875  """
    +
    876  if self.__closed__closed:
    +
    877  return Result.NOT_INITIALIZED
    +
    878  return self.set_array_timestampset_array_timestamp([Variant.to_filetime(d) for d in data])
    +
    879 
    +
    880 
    +
    881 def copy(dest: Variant, src: Variant):
    +
    882  """
    +
    883  copies the content of a variant to another variant
    +
    884  @returns tuple (Result, Variant)
    +
    885  @return <Result>, status of function call,
    +
    886  """
    +
    887  result = Result(ctrlxdatalayer.clib.libcomm_datalayer.DLR_variantCopy(
    +
    888  dest.get_handle(), src.get_handle()))
    +
    889  return result
    +
    890 
    +
    891 
    +
    892 class VariantRef(Variant):
    +
    893  """
    +
    894  Variant Helper interface,
    +
    895  Important: store not an instance of VariantRef, uses the clone/copy function
    +
    896  """
    +
    897 
    +
    898  def __init__(self, c_variant: C_DLR_VARIANT = None):
    +
    899  """
    +
    900  generate Variant
    +
    901  """
    +
    902  super().__init__(c_variant)
    +
    903 
    +
    904  def __del__(self):
    +
    905  """
    +
    906  __del__
    +
    907  """
    +
    908  pass
    +
    909 
    +
    910  def __exit__(self, exc_type, exc_val, exc_tb):
    +
    911  """
    +
    912  __exit__
    +
    913  """
    +
    914  pass
    + + +
    def __exit__(self, exc_type, exc_val, exc_tb)
    exit
    Definition: variant.py:919
    + +
    def __init__(self, C_DLR_VARIANT c_variant=None)
    generate Variant
    Definition: variant.py:907
    + +
    Variant is a container for a many types of data.
    Definition: variant.py:150
    +
    Result set_array_datetime(self, typing.List[datetime.datetime] data)
    Set array of datetime.
    Definition: variant.py:881
    +
    Result set_array_float64(self, typing.List[float] data)
    Set array of float64.
    Definition: variant.py:841
    +
    def clone(self)
    clones the content of a variant to another variant
    Definition: variant.py:256
    +
    int get_uint8(self)
    Returns the value of the variant as an uint8 (auto convert if possible) otherwise 0.
    Definition: variant.py:277
    +
    Result check_convert(self, VariantType datatype)
    Checks whether the variant can be converted to another type.
    Definition: variant.py:233
    +
    typing.List[int] get_array_uint16(self)
    Returns the array of uint16 if the type is an array of uint16 otherwise null.
    Definition: variant.py:425
    +
    def __exit__(self, exc_type, exc_val, exc_tb)
    use the python context manager
    Definition: variant.py:174
    +
    Result set_uint16(self, int data)
    Set a uint16 value.
    Definition: variant.py:575
    +
    Result set_array_uint8(self, typing.List[int] data)
    Set array of uint8.
    Definition: variant.py:737
    +
    Result set_array_int64(self, typing.List[int] data)
    Set array of int64.
    Definition: variant.py:802
    +
    typing.List[float] get_array_float32(self)
    Returns the array of float if the type is an array of float otherwise null.
    Definition: variant.py:491
    +
    int get_int64(self)
    Returns the value of the variant as an int64 (auto convert if possible) otherwise 0.
    Definition: variant.py:312
    +
    Result set_uint64(self, int data)
    Set a uint64 value.
    Definition: variant.py:611
    +
    Result set_array_int32(self, typing.List[int] data)
    Set array of int32.
    Definition: variant.py:776
    +
    def __enter__(self)
    use the python context manager
    Definition: variant.py:168
    + +
    Result set_int16(self, int data)
    Set an int16 value.
    Definition: variant.py:566
    +
    VariantType get_type(self)
    Returns the type of the variant.
    Definition: variant.py:202
    +
    int get_uint64(self)
    Returns the value of the variant as an uint64 (auto convert if possible) otherwise 0.
    Definition: variant.py:319
    + +
    Result set_array_int8(self, typing.List[int] data)
    Set array of int8.
    Definition: variant.py:724
    +
    def __init__(self, C_DLR_VARIANT c_variant=None)
    generate Variant
    Definition: variant.py:157
    +
    int get_uint16(self)
    Returns the value of the variant as an uint16 (auto convert if possible) otherwise 0.
    Definition: variant.py:291
    + +
    Result set_float32(self, float data)
    Set a float value.
    Definition: variant.py:620
    +
    Result set_array_string(self, typing.List[str] data)
    Set array of strings.
    Definition: variant.py:854
    +
    bytearray get_flatbuffers(self)
    Returns the flatbuffers if the type is a flatbuffers otherwise null.
    Definition: variant.py:353
    +
    int get_count(self)
    Returns the count of elements in the variant (scalar data types = 1, array = count of elements in arr...
    Definition: variant.py:226
    +
    typing.List[datetime.datetime] get_array_datetime(self)
    datetime objects as timestamp (FILETIME) 64 bit 100ns since 1.1.1601 (UTC)
    Definition: variant.py:531
    +
    Result set_array_int16(self, typing.List[int] data)
    Set array of int16.
    Definition: variant.py:750
    +
    Result set_array_uint64(self, typing.List[int] data)
    Set array of uint64.
    Definition: variant.py:815
    + +
    Result set_bool8(self, bool data)
    Set a bool value.
    Definition: variant.py:539
    +
    Result set_timestamp(self, int data)
    Definition: variant.py:663
    +
    float get_float64(self)
    Returns the value of the variant as a double (auto convert if possible) otherwise 0.
    Definition: variant.py:333
    +
    def copy(C_DLR_VARIANT c_variant)
    copies the content of a variant to another variant
    Definition: variant.py:244
    +
    typing.List[int] get_array_int64(self)
    Returns the array of int64 if the type is an array of int64 otherwise null.
    Definition: variant.py:464
    +
    typing.List[int] get_array_uint8(self)
    Returns the array of uint8 if the type is an array of uint8 otherwise null.
    Definition: variant.py:399
    +
    Result set_array_float32(self, typing.List[float] data)
    Set array of float32.
    Definition: variant.py:828
    +
    bool get_bool8(self)
    Returns the value of the variant as a bool (auto convert if possible) otherwise 0.
    Definition: variant.py:263
    +
    typing.List[int] get_array_int8(self)
    Returns the array of int8 if the type is an array of int8 otherwise null.
    Definition: variant.py:386
    +
    int get_int32(self)
    Returns the value of the variant as an int32 (auto convert if possible) otherwise 0.
    Definition: variant.py:298
    +
    int get_int16(self)
    Returns the value of the variant as an int16 (auto convert if possible) otherwise 0.
    Definition: variant.py:284
    +
    datetime from_filetime(filetime)
    convert filetime to datetime
    Definition: variant.py:689
    +
    typing.List[float] get_array_float64(self)
    Returns the array of double if the type is an array of double otherwise null.
    Definition: variant.py:504
    +
    Result set_flatbuffers(self, bytearray data)
    Set a flatbuffers.
    Definition: variant.py:648
    +
    datetime.datetime get_datetime(self)
    datetime object as timestamp (FILETIME) 64 bit 100ns since 1.1.1601 (UTC)
    Definition: variant.py:364
    +
    def close(self)
    closes the variant instance
    Definition: variant.py:186
    +
    Result set_int64(self, int data)
    Set an int64 value.
    Definition: variant.py:602
    +
    int to_filetime(datetime dt)
    convert datetime to filetime
    Definition: variant.py:702
    +
    typing.List[int] get_array_int32(self)
    Returns the array of int32 if the type is an array of int32 otherwise null.
    Definition: variant.py:438
    +
    Result set_uint32(self, int data)
    Set a uint32 value.
    Definition: variant.py:593
    +
    typing.List[bool] get_array_bool8(self)
    Returns the array of int8 if the type is an array of int8 otherwise null.
    Definition: variant.py:372
    +
    typing.List[int] get_array_uint32(self)
    Returns the array of uint32 if the type is an array of uint32 otherwise null.
    Definition: variant.py:451
    +
    typing.List[int] get_array_uint64(self)
    Returns the array of uint64 if the type is an array of uint64 otherwise null.
    Definition: variant.py:477
    +
    Result set_int32(self, int data)
    Set an int32 value.
    Definition: variant.py:584
    +
    def get_handle(self)
    handle value of variant
    Definition: variant.py:195
    +
    Result set_array_uint32(self, typing.List[int] data)
    Set array of uint32.
    Definition: variant.py:789
    +
    Result set_datetime(self, datetime dt)
    Set a timestamp value as datetime object.
    Definition: variant.py:676
    +
    bytearray get_data(self)
    Returns the pointer to the data of the variant.
    Definition: variant.py:209
    +
    Result set_int8(self, int data)
    Set an int8 value.
    Definition: variant.py:548
    +
    Result set_array_uint16(self, typing.List[int] data)
    Set array of uint16.
    Definition: variant.py:763
    +
    Result set_float64(self, float data)
    Set a double value.
    Definition: variant.py:629
    +
    Result set_array_bool8(self, typing.List[bool] data)
    Set array of bool8.
    Definition: variant.py:711
    +
    str get_string(self)
    Returns the array of bool8 if the type is an array of bool otherwise null.
    Definition: variant.py:340
    +
    int get_int8(self)
    Returns the value of the variant as an int8 (auto convert if possible) otherwise 0.
    Definition: variant.py:270
    +
    Result set_uint8(self, int data)
    Set a uint8 value.
    Definition: variant.py:557
    +
    Result set_array_timestamp(self, typing.List[int] data)
    Set array of timestamp (uint64)
    Definition: variant.py:868
    +
    float get_float32(self)
    Returns the value of the variant as a float (auto convert if possible) otherwise 0.
    Definition: variant.py:326
    +
    typing.List[int] get_array_int16(self)
    Returns the array of int16 if the type is an array of int16 otherwise null.
    Definition: variant.py:412
    +
    typing.List[str] get_array_string(self)
    Returns the type of the variant.
    Definition: variant.py:517
    +
    Result set_string(self, str data)
    Set a string.
    Definition: variant.py:638
    +
    int get_uint32(self)
    Returns the value of the variant as an Uint32 (auto convert if possible) otherwise 0.
    Definition: variant.py:305
    +
    +
    + + + + diff --git a/3.4.0/app_builder_env_changes.html b/3.4.0/app_builder_env_changes.html new file mode 100644 index 000000000..4b7170b52 --- /dev/null +++ b/3.4.0/app_builder_env_changes.html @@ -0,0 +1,2113 @@ + + + + + + + + + + + + + + + + + + + + + + + + + App builder env changes - Software Development Kit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + +
    + + +
    + +
    + + + + + + + + + +
    +
    + + + +
    +
    +
    + + + + + + + +
    +
    +
    + + + + + + + +
    +
    + + + + + + + +

    App builder env changes

    + +

    Software Development Kit for ctrlX AUTOMATION

    +

    Version 1.16.0 July 15, 2022

    +
    +

    Important

    +

    The newest App Build Environment is always provided with ctrlX WORKS.

    +
    +

    Only the AMD64 version is supported because for every programming language supported by the ctrlX AUTOMATION SDK cross build capability is provided.

    +

    Common

    +
      +
    • hostname: app-builder-amd64
    • +
    • User boschrexroth is created in the last step of the setup workflow
    • +
    • Poweroff instead of reboot if setup is finished
    • +
    +

    Installation scripts

    +
      +
    • install-dotnet-sdk.sh: Install as Debian package
    • +
    • install-nodejs-npm.sh: Add proxy infos to ~/.npmrc
    • +
    • install-sdk.sh: Install Debian package ctrlx-datalayer-*.deb
    • +
    +

    Additionally installed packages

    +
      +
    • ssh, curl: Removed because they are installed in the base image.
    • +
    • build-essential: New
    • +
    +

    Version 1.14.0 March 15, 2022

    +

    Installation scripts

    +
      +
    • install-snapcraft.sh: Improve robustness
    • +
    • install-nodejs-npm.sh: Install as snap
    • +
    • install-go.sh: Install as snap
    • +
    • install-go.sh: New
    • +
    +

    Additionally installed packages

    +
      +
    • pkg-config: New
    • +
    • __libzmq3-dev:amd64__: New
    • +
    • __libzmq3-dev:arm64__: New
    • +
    + + + + + + + + + + + + + +
    +
    + + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + + \ No newline at end of file diff --git a/3.4.0/appdevguide.html b/3.4.0/appdevguide.html new file mode 100644 index 000000000..d0cc43600 --- /dev/null +++ b/3.4.0/appdevguide.html @@ -0,0 +1,4038 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + App Developer Guideline - Software Development Kit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + +
    + + +
    + +
    + + + + + + + + + +
    +
    + + + +
    +
    +
    + + + + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + + + + +

    Liability The information in this guideline is intended for product description purposes only and shall not be deemed to be of a warranty nature, unless expressly stipulated by contract. All rights are reserved with respect to the content of this documentation and the availability of the product.

    +

    Table of Contents

    +

    1 Introduction

    +

    2 App Validation Process

    +

    3 App Categories

    +

    4 Basic App Information (mandatory)

    +

    5 Further App Information (conditional)

    +

    6 Working Set Overview (mandatory)

    +

    7 ctrlX Basic Mechanisms (mandatory)

    +

    8 ctrlX Security System (optional)

    +

    9 ctrlX User Interface and Project Handling (optional)

    +

    10 ctrlX AUTOMATION System Functions (optional)

    +

    11 Real Time Extension (optional)

    +

    1 Introduction

    +

    This guideline provides guidance for app developers and partners who want to contribute to the ctrlX World Ecosystem with new apps.

    +

    This is a living document. New apps might lead to new topics and may result in new guidelines at any time.

    +

    1.1 App Development for ctrlX AUTOMATION

    +

    The open ctrlX AUTOMATION system architecture allows developers to implement further system functions with little effort at any time as apps and as open source software. This document provides guidance on how to create apps to integrate them perfectly into ctrlX AUTOMATION.

    +

    Bosch Rexroth approves an app as qualified for ctrlX AUTOMATION using a dedicated app validation and signing process. This process ensures that the app meets the ctrlX AUTOMATION quality standards.

    +

    This document describes all aspects that have to be considered when an app is developed. +Some aspects are mandatory, both from a legal and technical viewpoint. Others are optional and describe how an app can be fully integrated in the ctrlX system architecture to provide the best user experience.

    +

    1.2 Obligations for Technical Aspects

    +

    This document describes the technical aspects for ctrlX apps. These aspects each have one of the following obligations:

    +
      +
    • MANDATORY - This aspect is strictly required and must be implemented.
    • +
    • OPTIONAL This aspect brings added value and can or should be implemented.
    • +
    • CONDITIONAL - This aspect is to be implemented in specific cases**. Bosch Rexroth and the partner identify the requirements during the app integration process.
    • +
    + +

    This development guide describes the technical integration of an app into ctrlX CORE. The following documents of the ctrlX World partner program also need to be available and signed as non-technical prerequisites before an app gets published:

    +
      +
    • The Distribution Framework Agreement ("Partner Contract") describes the fundamental conditions of the partnership between you as app developer and Bosch Rexroth and affiliates
    • +
    • A Individual Contract describes all app related licenses as part of the product to be sold within Bosch Rexroth and affiliates sales channels
    • +
    • A Letter of Intent (LOI) defines the partnership priciples
    • +
    • A Non Disclosure Agreement (NDA) is the basis of our collaboration and needed for file exchange
    • +
    +

    2 App Validation Process

    +

    As a mandatory step for app integration into ctrlX AUTOMATION, Bosch Rexroth will carry out a standard app validation and signing process.

    +

    For handover, Bosch Rexroth accordingly provides a partner folder in the ctrlX World Portal, which will be prepared during the partner contracting process.

    +

    2.1 Initial Meeting for App Validation

    +

    Before the validation process starts, the partner / app developer must provide the app architecture

    +
    +

    Hint

    +

    A picture of the main communication paths is needed, including

    +
    +
      +
    • +

      a modular overview of the app

      +
    • +
    • +

      a short description of the communication paths to other apps/devices

      +
    • +
    • +

      the app configuration and data storage concept

      +
    • +
    • +

      a description of a typical standard scenario

      +
    • +
    +

    The architecture overview should be stored as "architecture-overview.x" in the {app-name} folder. Initially, provide the architecture overview, and if there are any changes in the architecture, update and provide the new overview.

    +

    This document typically will be provided for an initial meeting with the partner / app developer, the relevant Bosch Rexroth partner manager and the Bosch Rexroth app validation team. +At this point, the partner should also already have uploaded the necessary artifacts to be able to clarify any open points.

    +

    2.2 Artifacts’ Delivery

    +

    Bosch Rexroth checks the provided artifacts and the described behavior of an app that is to be signed as an official ctrlX app in an automated validation framework.

    +

    This validation framework requires a standard format for artifacts and information.

    +

    To simplify the delivery of artifacts, we provide a base folder structure with description and schema files. This helps app developers to deliver the required artifacts and us to simplify the validation work. Please use the given structure, folder names and file names as given below, without any renaming:

    +

    General Folder structure

    +
      +
    • {company-name}\ - Partner company name. Folder name is created by Bosch Rexroth
    • +
    • {app-name}\ - Technical app name. This app name is unique. A folder will be created by the partner
        +
      • {version}\ - The version folder separates the different versions. Format is three numbers separated by dots, e.g. "1.0.2". Each version has to be stored in a separate folder. A folder will be created by the partner
      • +
      • {artifacts}\ - The required documents as input for the validation process (see 4.1)
      • +
      +
    • +
    +

    Handover of artifacts

    +

    Once all the required information is available in your local folder, zip the folder using Windows-zip and upload it as "artifacts.zip" to the ctrlX World Partner Portal space in the ".../{company-name}/{app-name}/{version}/" path.

    +
    +

    Important

    +

    To avoid problems when uploading the artifacts.zip file, please use the Windows-zip feature

    +
    +

    2.4 Validation and Signing

    +

    Validation is typically carried out in several iterations, depending on the result of a particular validation activity. +If all the required information is provided in the ctrlX World Portal, an email to ctrlx.world@boschrexroth.de will trigger a validation loop. +Basically, the workflow will be as follows:

    +
      +
    1. Partner/app developer: Uploads required artifacts and informs Bosch Rexroth
    2. +
    3. Bosch Rexroth checks the artifacts for completeness. If rework is required, the partner will be notified by email with an attached report in the ".../{company-name}/{app-name}/{version}/results" folder
    4. +
    5. Once the artifacts are complete, the validation will start. Again, if rework is required, the partner will be notified with an attached report
    6. +
    7. Once validation has been successful, Bosch Rexroth will sign the app and inform the partner by email.
    8. +
    +

    3 App Categories

    +

    Apps can be integrated into ctrlX on different levels. Three categories are defined as guidance for the prerequisites and possibilities on different levels. A category, however, is not a formal boundary, and an app can seamlessly support aspects in the different categories. Also, subsequent versions of an app might support more aspects than an earlier version. +In addition, there is no correlation between the category and an app’s business value. +However, at least all aspects that are mentioned in Category 1 need to be met, since they are considered mandatory.

    +

    The aspects are briefly described in this section The remainder of these documents provides detailed information about all aspects and also refers to additional sources of information, like how-to documents and code samples.

    +

    3.1 Category 1 (Basic): Applies to ctrlX basic mechanisms

    +

    To be approved as an official ctrlX CORE app, an app must support a minimum set of mandatory aspects.

    +

    3.1.1 Overview

    +

    The app itself and corresponding user documentation need to be provided. Legal aspects like FOSS are also required. +Working set information is needed to support the test and validation process. +During runtime, the app must use the ctrlX CORE onboard licensing mechanism.

    +

    3.1.2 Customer User Experience

    +

    Customers can find the app in the ctrlX App Store. They know how the app is licensed and can use the overall Bosch Rexroth licensing system for ctrlX CORE. +They can also be sure that the app contributes to the basic ctrlX CORE security mechanisms.

    +

    3.1.3 Technical Prerequisites

    +
    +

    Note

    +

    As mentioned, the aspects listed here are MANDATORY. This means all of them are required for an official ctrlX app.

    +
    +

    Basic app information:

    +
      +
    • +

      App artifacts (“Executables” for ctrlX CORE and ctrlX COREvirtual and basic technical information)

      +
    • +
    • +

      App documentation / user manual and release notes

      +
    • +
    • +

      Additional app properties according to Linux Ubuntu conventions

      +
    • +
    • +

      FOSS information

      +
    • +
    +

    Working set overview:

    +
      +
    • +

      Information about security behavior (Linux slots & plugs, ports, sockets)

      +
    • +
    • +

      Information about resource consumption and read/write operations

      +
    • +
    • +

      Standard task scheduling overview

      +
    • +
    • +

      Test setup description for typical usage scenario

      +
    • +
    +

    Integration into ctrlX basic mechanisms:

    +
      +
    • +

      Use of ctrlX license handling

      +
    • +
    • +

      App signed by Bosch Rexroth

      +
    • +
    +

    3.2 Category 2 (Advanced): Contributes to ctrlX engineering concepts

    +

    For good integration into ctrlX from a user's point of view, an app should meet the aspects of Category 2 – even if these aspects are not necessary for app validation.

    +

    3.2.1 Overview

    +

    The app uses the relevant ctrlX system interfaces and supports ctrlX platform features like Identity Management, Data Management and Backup/Restore.

    +

    3.2.2 Customer User Experience

    +

    The app contributes to the ctrlX user interface and system behavior. It integrates into basic user stories for configuration and maintenance of a ctrlX application.

    +

    3.2.3 Technical Recommendations

    +
    +

    Note

    +

    As mentioned, the aspects listed here are OPTIONAL. However, they are highly recommended for a good user experience. Also, the category 2 and 3 aspects overlap and not formally separated

    +
    +

    Further app information:

    +
      +
    • +

      FOSS sources

      +
    • +
    • +

      Semantic versioning scheme

      +
    • +
    +

    Integration into ctrlX CORE security system:

    +
      +
    • +

      ctrlX CORE reverse proxy

      +
    • +
    • +

      ctrlX Key & Certificate Management

      +
    • +
    • +

      ctrlX Identity Management

      +
    • +
    • +

      Improved network security (no insecure protocols)

      +
    • +
    +

    Integration into ctrlX user interface and project handling

    +
      +
    • +

      ctrlX CORE navigation pane and landing page

      +
    • +
    • +

      ctrlX CORE configuration storage

      +
    • +
    +

    3.3 Category 3 (Extended): Extends ctrlX AUTOMATION features

    +

    Finally, an app can integrate in the Automation framework and extend the ctrlX real time system

    +
    +

    Note

    +

    Real time integration requires additional training and support from Bosch Rexroth to avoid unexpected system behavior and impacts on the ctrlX real-time kernel.

    +
    +

    3.3.1 Description

    +

    The app exposes information in the ctrlX Data Layer for all other apps. It also can extend the real time functions of ctrlX CORE if connected to the real-time task scheduler

    +

    3.3.2 Customer User Experience

    +

    The app extends the ctrlX AUTOMATION system functions, e.g. for Motion and/or PLC

    +

    3.3.3 Technical Recommendations

    +

    Integration into ctrlX AUTOMATION system functions:

    +
      +
    • +

      ctrlX Data Layer

      +
    • +
    • +

      ctrlX CORE logbook and diagnostics system

      +
    • +
    +

    Real-time extension:

    +
      +
    • ctrlX CORE Scheduler
    • +
    +

    4 Basic App Information (MANDATORY)

    +

    The basic app information is checked as a prerequisite by Bosch Rexroth, before the validation process starts.

    +

    4.1 App Artifacts (MANDATORY)

    +

    4.1.1 Artifacts Folder Template

    +

    Please find the sample artifacts in the artifacts.zip, which can be downloaded and extracted locally. +This will create the required folder structure for the mandatory artifacts out-of-the-box, with default descriptions and schema files.

    +
    +

    Important

    +

    Please use the given structure, folder names and file names unchanged. This will support an efficient validation process.

    +
    +

    image

    +

    The artifacts are organized in five sub folders:

    +

    4.1.2 "Disclosure" folder (MANDATORY)

    +

    The FOSS source files and license text files are stored in the disclosure folder

    +
      +
    • +

      "fossinfo.json" (MANDATORY) - license texts for all an app’s used open source software. For more information about format and content, refer to the json example and the corresponding json schema in the standard "artifacts.zip" file.

      +
    • +
    • +

      "foss-sources.zip" (CONDITIONAL) - In the foss-sources.zip file, the sources of all used open source libraries / packages are zipped without a password.

      +
    • +
    • "foss-offer.x" (CONDITIONAL) - If the foss-sources.zip file is not provided, a human-readable file with the name "offer.x" is needed. It explains how the user can get the sources.
    • +
    +

    Either FOSS sources or FOSS offer is required.

    +

    4.1.3 "Build Info" folder (MANDATORY)

    +

    The build info folder stores all build relevant information.

    +

    Note: For the {xxx}-description files, a default file (with explanation) and the corresponding schema is provided in the standard artifacts.zip example.

    +
      +
    • +

      "snapcraft.yaml" (MANDATORY) - The snapcraft.yaml file is the main entry point to create a snap through Snapcraft. It contains all the details the snapcraft command needs to build a snap. See also https://snapcraft.io/docs/snapcraft-yaml-reference

      +
    • +
    • +

      "package-manifest.json" (MANDATORY) - The package-manifest.json covers essential settings, like the proxy URL

      +
    • +
    • +

      "portlist-description.json" (MANDATORY) - All used ports are described in the port list

      +
    • +
    • +

      "unixsocket-description.json" (MANDATORY) - All used Unix sockets are described in the Unix socket description. If your app does not use a Unix socket, provide an empty description file

      +
    • +
    • +

      "slotplug-description.json" (MANDATORY) - All used slot and plugs are described in the slot and plug description

      +
    • +
    +

    The Base checklist contains the criteria which are checked in these files.

    +

    4.1.4 "Documentation" folder (MANDATORY)

    +

    All documentation relevant to the app is provided here

    +
      +
    • "manual.pdf" (MANDATORY) - The app description (user manual) documents the app’s overall functionality
    • +
    • "test-setup-description.pdf" (MANDATORY) - The app setup describes how to configure the app on a ctrlX CORE for a typical usage and test scenario
    • +
    • "release-notes.pdf" (MANDATORY) - The latest changes, workarounds and defects are mentioned in the release notes
    • +
    +

    4.1.5 "App States" folder (MANDATORY)

    +

    The app validation framework tries to establish relevant states that have to be tested. Therefore, a sequence of API calls has to be provided to bring the app to the test state

    +
      +
    • +

      "standard-scenario1.json" (MANDATORY) - Each file contains a collection (sequence of RESTAPI calls) to generate the standard usage scenario. In each of these scenarios, the validation process monitors the memory and storage usage, the CPU load and the Ethernet communication load. The collections/files are to be created using Postman.

      +
    • +
    • +

      "standard-scenario{2 to n}.json" (optional) - One or more scenarios, if appropriate

      +
    • +
    +

    4.1.6 "Snaps" folder (MANDATORY)

    +

    ctrlX currently supports the amd64 and the arm64 processor architecture. The corresponding target snaps for the app are provided here

    +
      +
    • +

      "ctrlx-{company name}-{app name}_{version}_arm64.snap" (MANDATORY) - Snap that runs in armd64 environments. Currently, the arm64 architecture is used in ctrlX CORE hardware.

      +
    • +
    • +

      "ctrlx-{company name}-{app name}_{version}_amd64.snap" (OPTIONAL) - Snap that runs in amd64 environments. The amd64 is used in ctrlX COREvirtual. However, future ctrlX CORE hardware will also use amd64 architecture. So, it is recommended that a snap is also provided for this platform to avoid future inconvenience.

      +
    • +
    +

    4.2 App Documentation (MANDATORY)

    +

    4.2.1 User Manual (MANDATORY)

    +

    A user manual must be delivered together with the app. +The user manual must describe typical user actions for commissioning and operating the app from a user / customer perspective.

    +

    4.2.2 Test Setup Description (MANDATORY)

    +

    A test setup description must be delivered together with the app. +The test setup description must contain instructions to realize a test scenario. +It must include a description of sequences and dependencies, e.g. additional hardware. If you use plugs and slots, please provide an explanation here.

    +

    4.2.3 Release Notes (MANDATORY)

    +

    Release note documentation must be delivered together with the app.

    +

    4.2.4 General App Description for the ctrlX App Zone (CONDITIONAL)

    +

    Each app needs product information as part of the sales package. The description shall be generated based on the app description template (from the ctrlX World Partner Portal)

    +

    The app description package is necessary in case the app is also to be shown in the ctrlX AUTOMATION Community App Zone or other marketing channels.

    +

    4.3 Additional App Information According to Linux Ubuntu Conventions (MANDATORY)

    +

    The following properties must be defined within the "snapcraft.yaml" file (see https://snapcraft.io/docs/snapcraft-yaml-reference), which also need to be exclusively part of the app and have to be collision free with other apps.

    +
      +
    • +

      Title - The general name of the app that will be shown on all sales channels and customer touch points, e.g. app overview or ctrlX App Store. This is defined together with the partner manager, as part of the business model definitions. Example: "My App"

      +
    • +
    • +

      Name - The technical name of the snap. The name has to be unique in the snap universe and across all snap developer and device vendors. The snap name has to start with "ctrlx-" and must be lowercase and a maximum length of 32 characters. ctrlX World Partners add their company name to the snap name. Example: "ctrlx-partnername-myapp"

      +
    • +
    • +

      Confinement - Must be set to "strict" for releases. See also https://snapcraft.io/docs/snap-confinement

      +
    • +
    • +

      Grade - Defines the quality grade of the app. During development, you may choose to use "devel". When releasing the application, the grade must be set to "stable".

      +
    • +
    +

    4.4 FOSS Info Provisioning (MANDATORY)

    +

    If the app uses Free and Open Source Software (FOSS), certain license information must be delivered together with the app.

    +

    With "fossinfo.xml" the open source license text must be disclosed for copyright reasons. Bosch Rexroth offers the possibility to display the license texts for the used open source software in the ctrlX web interface. For more information about "fossinfo.xml" please refer to the guideline in the SDK. If FOSS license texts are displayed within the app, at least a reference to the license display in the app must be provided in the "fossinfo.xml".

    +

    Since users must be able to view the license texts before the open source software is installed, the "fossinfo.xml" must also be stored outside the app in the "disclosure" directory (see section 3.1.2). In addition, the license texts must be listed within the user documentation or at least a reference must be inserted where the FOSS license texts are located.

    +

    5 Further App Information (CONDITIONAL)

    +

    5.1 FOSS Sources (CONDITIONAL)

    +

    Bosch Rexroth recommends putting all FOSS sources in a zip file with the file name "foss-sources.zip" and storing it in the "disclosure" directory, where the "fossinfo.xml" is provided.

    +

    In the event that the FOSS sources are not provided directly, a written offer is mandatory for open source software with copyleft clause (e.g. GPLv2 or GPLv3) . This means, a human-readable file with the name "foss-offer.x" needs to be provided, which explains how the user can get the app’s FOSS sources.

    +

    5.2 Semantic Versioning Scheme (OPTIONAL)

    +

    It is recommended that a versioning scheme is used based on https://semver.org/ for the app’s versioning. This setting is also relevant in the snapcraft.yaml file while creating the snap.

    +
    +

    Note

    +

    Increasing version numbers are mandatory, regardless of the versioning scheme used

    +
    +

    5.3 Restart Delay (OPTIONAL)

    +

    The restart delay of the app daemon should be set to "5s" or similar in the snapcraft.yaml to prevent the 10s lock-out

    +

    6 Working Set Overview (MANDATORY)

    +

    6.1 Security Information & Considerations

    +

    ctrlX CORE is designed with high security requirements. Also, the overall ctrlX CORE architecture is built to be compliant to be certified as defined by IEC62433. This also implies some requirements for the apps and software running in the ctrlX Ecosystem. For the ctrlX app, this means

    +
      +
    • +

      Only encrypted and secured communication protocols (e.g. https) must be used. Insecure protocols (e.g. http) are not to be used, unless explicitly defined in the validation process.

      +
    • +
    • +

      The device attack surface should be kept as minimal as possible. This means, for example, that the number of open ports in an app should be reduced to a minimum.

      +
    • +
    +

    6.1.1 Interfaces / Slots & Plugs (MANDATORY)

    +

    Used interfaces (Slots & Plugs) must be documented in the snapcraft.yaml file. The following considerations must be taken into account:

    +
      +
    • +

      Use as few interfaces (slots/plugs) as possible. The amount of interfaces (slots & plugs) shall be limited to a minimum. The app should only declare the interfaces (slots and/or plugs) that are absolutely required to minimize the attack surface. When reviewing the app, Bosch Rexroth needs to know for which purpose a specific slot and/or plug is required by an app. Corresponding justification must be provided together with the app.

      +
    • +
    • +

      No global slots & plugs. App developers must avoid assigning global slots & plugs that are valid for all applications. Global slots & plugs should only be used if absolutely necessary.

      +
    • +
    • +

      Debug interfaces only on demand. By default, the app should not provide any open network debug interfaces. If debugging is required, the user should be able to enable the debug interface on demand and only after successful authentication (and authorization). In general, debug interfaces shall not be accessible without authentication and/or insufficient or even hard-coded credentials.

      +
    • +
    +

    The following operating system interfaces which are listed here are denied or restricted for usage:

    +

    Reserved interfaces, (1. Reserved slots and plugs)

    +

    This list is subject to change and might be extended. If unsure, please provide the slot/plug you want to use inside your application together with justification to check whether or not this specific slot/plug is allowed and find potential alternatives.

    +

    6.1.2 Network Security and Ports (CONDITIONAL)

    +

    The package-manifest.json must provide information about the used network interfaces. +The app must keep its network footprint as low as possible:

    +
      +
    • +

      No open debug ports by default

      +
    • +
    • +

      Binding webserver to Unix socket (preferred) or at least localhost

      +
    • +
    +

    Security protocols are to be used by default. This means:

    +
      +
    • +

      No exposure of insecure protocols like http or web socket. ctrlX reverse proxy integration should be used for those specific protocols - Or, in cases where that is not possible, https/websocket secure should be used in the app.

      +
    • +
    • +

      Secure protocols are to be used for non-web apps When the app supports secure & insecure protocols, a secure configuration preset must be used for the app, so that the user must choose to override this setting if they want to choose the insecure version

      +
    • +
    • +

      The app must provide a list of ports to be used in order to avoid conflicts. The app must therefore be robust to already open / used ports. At least a warning is to be issued to the user.

      +
    • +
    +

    The ports listed here are blocked and cannot be used by an app:

    +

    Reserved interfaces, (2. Blocked ports)

    +

    This list is subject to change and might be extended.

    +

    6.1.3 File Permissions (CONDITIONAL)

    +

    It is very likely that an app stores settings & configuration data in the application's folder (e.g. $SNAP_DATA or $SNAP_COMMON). All file permissions have to be set properly so that only the owner of the files is allowed to read or alter the content.

    +

    6.2 Resource Consumption and Read/Write Operations (MANDATORY)

    +

    Typically, more than one app runs on a ctrlX CORE. It is therefore very important than an app does not consume too many system resources (e.g. RAM or disk space). In addition, the available virtual memory on the device is limited to the amount of physical available memory, because the possibility of swapping unused RAM to disk is disabled on ctrlX CORE. The reasons for this is the otherwise negative impact on real-time capability and flash disk lifetime.

    +

    6.2.1 Resource Consumption

    +

    Recommended amount of resources per app:

    +
      +
    • +

      RAM: <75 MB

      +
    • +
    • +

      Snap-Size: ideally <100 MB, as small as possible

      +
    • +
    +

    If an app exceeds these values by a long way, then please contact your app partner support to clarify this further.

    +

    6.2.2 Integrated Storage/Flash Lifetime

    +

    The app must not write diagnostics or similar data cyclically to the internal solid-state memory, as this will damage the flash cells. Instead, cyclical writing can be only be done to a network storage or any other external storage, as these allow easy and regular replacement for this use-case.

    +

    The integrated storage medium and file system in the ctrlX CORE hardware is based on a solid state flash memory, which inherently has a limited lifetime based on the number of erase cycles for its memory cells. To increase the device’s overall lifetime it is necessary to reduce the number of write/erase cycles on the flash cells.

    +

    6.3 Standard Task Scheduling (MANDATORY)

    +

    The app must not have a negative impact on the real-time behavior of other apps. The scheduling / task scheme must remain flexible to allow other apps to run, e.g. the ctrlX Motion app.

    +

    6.4 Test Setup for Typical Usage Scenario (MANDATORY)

    +

    For a fast and efficient start to the validation process, a usage scenario should be provided that does not require any peripheral components. This will help to identify the initial findings quickly and with comparatively little effort. If the app requires additional periphery to run properly, a separate usage scenario should be provided that describes the interaction with the external component.

    +

    Videos and further media can be attached.

    +

    7 ctrlX Basic Mechanisms (MANDATORY)

    +

    7.1 ctrlX License Handling (MANDATORY)

    +

    ctrlX World Partner apps must use the licensing service that is operated by Bosch Rexroth.

    +

    A license model must be defined for each app. To ensure maximum usability for a ctrlX CORE user, the app must call up the ctrlX license manager API when it starts or is running to check if a license is activated. If a license is missing, the missing license will be shown to the user on a user interface. A warning or error must be shown in case the license is missing.

    +

    Each software license (SWL) bought by a customer generates one or more capabilities:

    +
      +
    • +

      Each app checks the existence of these capabilities, using the license manager interface

      +
    • +
    • +

      An app license shall be enforced according to the app business model as part of the contract addendum

      +
    • +
    • +

      The usage of other licensing mechanisms is not allowed

      +
    • +
    +

    For information how to adapt an app to the licensing service please have look on the Licensing guideline

    +
    +

    Note

    +

    Currently, the License Manager does not return licenses on a ctrlX COREvirtual.

    +
    +

    7.2 App Signing by Bosch Rexroth (MANDATORY)

    +

    To make sure that only apps that have successfully passed the validation process are available as a ctrlX app, these Apps need to be signed by Bosch Rexroth. +During the signing process, the app binaries are checked and combined with a signature. This signature guarantees that the app cannot be modified after the validation and signing process.

    +

    Note: Currently only Bosch Rexroth can sign ctrlX apps

    +

    8 ctrlX Security System (OPTIONAL)

    +

    8.1 ctrlX CORE reverse proxy (OPTIONAL)

    +

    The proxy URL is the most important setting in the package-manifest.json file for the app to be integrated seamlessly into the ctrlX CORE. The reverse proxy will forward requests to the URL that are defined for the app web service.

    +
    +

    Hint

    +

    Please make sure that your App provides unique URLs for the ctrlX reverse proxy

    +
    +

    An app is to be bound to a Unix socket instead of a local port. This will also prevent potential collisions with other services.

    +
    +

    Warning

    +

    We strongly recommend binding the app web service to a Unix socket, e.g. /var/snap/my-app/current/package-run/my-app/my-app.web.sock, instead of a local port. This will also prevent potential collisions with other services. The path length of a Unix socket is limited to 108 characters. The complete path must respect that limit and the highlighted part has a maximal length of 50 characters. The path can be shortened if necessary by replacing "package-run" with "run" and shortening the file name from "my-app.web.sock" to "web.sock". However the folder name within the package-run (or run) folder must always be the name of the snap.

    +
    + +

    8.2 ctrlX Key & Certificate Management (OPTIONAL)

    +

    The ctrlX CORE certificate management is to be used to manage your application’s certificates through the web interface. +(package-manifest.json, snapcraft.yaml)

    +

    Note: When the application acts as a ctrlX client, key & certificate based authentication has to be used whenever possible. If user & password based authentication is used, the configuration file permissions have to be correct so that no other user(s) on the system can read those data.

    +

    8.3 ctrlX Identity Management/Authentication & Authorization (OPTIONAL)

    +

    When running a web service, the app should use the authentication & authorization mechanisms that the ctrlX CORE provides to protect the app against unauthorized access.

    +

    If the mechanisms the ctrlX CORE provides are not used, hardcoded accounts/credentials have to be avoided.

    +

    The ctrlX CORE's so called "scopes" are to be used to model app permissions. Scopes allow permissions to be assigned to users & groups via the web interface. If case permissions are used, the permissions must be enforced within the app +(package-manifest.json)

    +
    +

    Hint

    +

    If your app supports scopes, unique scopes must be provided to the ctrlX permission manager

    +
    +

    9 ctrlX User Interface and Project Handling (OPTIONAL)

    +

    9.1 ctrlX Configuration Storage (CONDITIONAL)

    +

    The ctrlX CORE system provides multiple ways for an app to store its data. The app data must be persisted within one of these locations to provide consistent backup and restore mechanism to users.

    +

    9.1.1 Solution Handling (OPTIONAL)

    +

    The so-called "Solution" is an essential part of any ctrlX CORE device. It provides a central storage location for all ctrlX apps that need to persist their app data in configurations. Configuration files are saved to the solution storage or loaded from the storage on demand (by the user or by REST API calls).

    +
      +
    • +

      A configuration file contains project-specific data, like machine-related, PLC, HMI, fieldbus configurations.

      +
    • +
    • +

      To be used in the event of one or more configurations that can be easily switched by the user. Configurations are used and shared by multiple apps.

      +
    • +
    • +

      It does not contain data that is related to a specific device, e.g. certificates, network configurations, users and their permissions, or should be valid for multiple configurations (e.g. app settings).

      +
    • +
    • +

      Should be non-binary (in future version control system / GIT will be used). However, if there is no alternative and the files do not change too often, small binaries can be stored in a configuration.

      +
    • +
    +

    Apps must use separate, unique repositories in ctrlX configurations.

    +

    9.2.2 Environment Variables (CONDITIONAL)

    +

    Environment variables are widely used across Linux to provide convenient access to system and application properties (see also https://snapcraft.io/docs/environment-variables)

    +

    In the specific context of ctrlX, the environment variables $SNAP_COMMON or $SNAP_DATA...

    +
      +
    • +

      ...Contain app-related data, that can be used across multiple configurations, e.g. solutions.

      +
    • +
    • +

      ...Shall not contain data related to the user application, e.g. machine program, and should be applicable on multiple configurations.

      +
    • +
    • +

      $SNAP_DATA shall be used for app data related to a specific app version (snap revision).

      +
    • +
    • +

      $SNAP_COMMON shall be app data used across versions (snap revisions).

      +
    • +
    +

    External storage / SD card and USB storage device (not available yet)

    +
    +

    Note

    +

    These external storage devices are not supported at the moment.

    +
    +

    In the future, they

    +
      +
    • +

      May contain large data (>100MB) or data that is frequently changed, e.g. logs, analytics, database.

      +
    • +
    • +

      Must only contain non-confidential (public) data or data must be protected on app side. Data can be accessed or manipulated from external storage devices.

      +
    • +
    +

    10 ctrlX AUTOMATION System Functions (OPTIONAL)

    +

    10.1 ctrlX Logbook and Diagnostic System

    +

    For further information see https://docs.automation.boschrexroth.com

    +

    11 Real Time Extension (OPTIONAL)

    +

    Please contact your partner manager if a real-time extension might be required for your app.

    +

    Appendices

    +

    Base checklist

    +

    Licensing guideline

    +

    Reserved interfaces and ports

    +

    Guidelines for other platforms (not ctrlX OS)

    +
    +

    Copyright +© Bosch Rexroth AG 2021-2023

    +

    This guideline, as well as the data, specifications and other information set forth in it, are the exclusive property of Bosch Rexroth AG. It may not be reproduced or given to third parties without our consent.

    + + + + + + + + + + + + + +
    +
    + + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + + \ No newline at end of file diff --git a/3.4.0/appdevguide_basechecks.html b/3.4.0/appdevguide_basechecks.html new file mode 100644 index 000000000..1cec78be7 --- /dev/null +++ b/3.4.0/appdevguide_basechecks.html @@ -0,0 +1,2201 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Appdevguide basechecks - Software Development Kit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + +
    + + +
    + +
    + + + + + + + + + +
    +
    + + + +
    +
    +
    + + + + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + + + + +

    This document is part of the Bosch Rexroth ctrlX CORE App Development Guideline, and describes which basic aspects are checked in the Validation Process.

    +

    Please refer to the App Development Guide for further information.

    +

    The content of this document may be subject of change in further versions of the Validation Process.

    +
    +

    1. snapcraft.yaml

    +

    1.1 Checked content

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ItemCriteria
    titleis unique and length is between 3 and 40 characters
    namematches with the snap name (technical app name)
    versionfollows semantic versioning (MAJOR.MINOR.PATCH) and does not exceed 32 characters
    descriptionprovides a short description of the App and is at least 16 characters long
    degree of isolationis set to confinement = "strict"
    gradeis set to grade = "stable"
    restart delayist set to 5 or higher
    plugslist of interfaces consumed by the snap
    slotslist of interfaces provided by the snap (optional)
    package assetsto exchange information
    package-certificatescertificates and keys of the snap (optional)
    +

    1.2 Additional notes

    + +
    +

    2. package-manifest.json

    +

    2.1 Checked content

    + + + + + + + + + + + + + + + + + + + + + +
    ItemCriteria
    licenseslist of all used licenses (licenses.name, .title, .description .required)
    certificatestoressnap service to handle keys and certificates (optional)
    menusoptional: entries for sidebar integration (if use, the entries must be unique)
    +

    For each given Proxy Mapping services.proxyMapping[i]: +| Item | Criteria | +| --- | --- | +| name | is only lowercase, contains .web and is unique in the list | +| url | is only lowercase and starts with / | +| binding | is valid / not empty |

    +

    2.3 Additional notes

    +
      +
    • the package-manifest.json file must provide service entries for all services which are used in in the portlist-description.json file (proxy.service-name, see 3.)
    • +
    • the package-manifest.json file must provide service entries for all services which are used in in the unixsocket-description.json file (socket name and accessibility, see 4.)
    • +
    +
    +

    3. portlist-description.json

    +

    3.3 Checked content

    + + + + + + + + + + + + + +
    ItemCriteria
    idis available and matches to the technical app name (see also name entry in snapcraft.yaml)
    +

    For each given port in the description (ports[i]): +| Item | Criteria | +| --- | --- | +| number| has 3 to 5 digits and exists only once in the list| +| purpose| has at least 16 characters| +| application-protocol| has at least 3 characters| +| binding| (Network Binding Interface) is either localhost or IP| +| routing |is either internal or external| +| service-name |starts with ctrlx- or bosch-, is lowercase and exists only once in the list| +| default-state| is either open or closed|

    +

    3.4 Additional Notes

    +
      +
    • Number of open ports: For security reasons, the number of open ports should be limited to 3
    • +
    • Unwanted direct external access: The following configuration should be avoided:
    • +
    • +

      "protocol = HTTP or HTTPS", "binding = IP" and "routing = external"

      +
    • +
    • +

      Wrong configuration: these configurations are considered as mismatch:

      +
    • +
    • "protocol not HTTP or HTTPS", "binding = IP" and "routing = internal"
    • +
    • +

      "protocol not HTTP or HTTPS", "binding = localhost" and "routing = external"

      +
    • +
    • +

      Port conflicts with reserved ports:

      +
    • +
    • Ports that are listed in the Reserved interfaces and ports will generate a vakidation error
    • +
    +
    +

    4. unix-socket-description.json

    +

    4.1 Checked content

    +

    For each given socket (sockets[i]) +| Item | Criteria | +| --- | --- | +| name |is only lowercase, end with .sock or .socket and exists only once in the list| +| purpose| is at least 16 characters long| +| accessibility |is either internal or external|

    +

    4.2 Additional notes

    +
      +
    • only web sockets (name contains .web) can be used for external accessibility
    • +
    +
    +

    5. slotplug-description.json

    +

    5.1 Checked content

    +

    For each given slot (slots[i]) and plug (plugs[i]) +| Item | Criteria | +| --- | --- | +| name |is only lowercase| +| purpose |is at least 16 characters long|

    +

    5.2 Additional notes

    +
      +
    • both for slots an plugs, the max number of entries should be 8
    • +
    • All slots and plugs in the slotplug-description.json must be available in the snapcraft.yaml file also, and vice versa
    • +
    +

    6. Scopes (${snapname}.scopes.json)

    +

    6.1 Checked content

    + + + + + + + + + + + + + + + + + +
    ItemCriteria
    idmust be assigned (optional)
    required-permissionsmust match with the used permissions (optional)
    +
    +

    Copyright +© Bosch Rexroth AG 2024 - +This document, as well as the data, specifications and other information set forth in it, are the exclusive property of Bosch

    + + + + + + + + + + + + + +
    +
    + + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + + \ No newline at end of file diff --git a/3.4.0/appdevguide_docker.html b/3.4.0/appdevguide_docker.html new file mode 100644 index 000000000..b43b554a6 --- /dev/null +++ b/3.4.0/appdevguide_docker.html @@ -0,0 +1,2102 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Appdevguide docker - Software Development Kit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + +
    + + +
    + +
    + + + + + + + + + +
    +
    + + + +
    +
    +
    + + + + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + + + + +

    This document is part of the Bosch Rexroth ctrlX OS App Development Guideline, and describes specific topics for Apps which are based on the Docker container technology

    +

    Please refer to the App Development Guide for further information about general requirements and checks

    +

    The content of this document may be subject of change in future.

    +

    1. Artifacts / Files

    +

    In addition to a native Ubuntu Core App, a Docker App shall provide the files in this list

    + + + + + + + + + + + + + + + + + + + + + + + +
    FilesDescriptionValue(s)Optional / Mandatory
    Docker-compose.ymlThe docker-compose.yml file contains the configuration and options to run the services required by the snapdocker-compose.ymlMandatory
    Docker-compose.envThe docker-compose.env file contains the environment variable(s) set to run the snapsdocker-compose.envOptional
    +

    2. Base Checks

    +

    2.1 snapcraft yaml / snap.yaml

    +

    In addition to the checks for snap.yaml which are described here, a Docker App has additional elements:

    + + + + + + + + + + + + + + + + + + + + +
    ItemContentOptional / Mandatory
    docker-composeconfiguration fileMandatory
    docker-volumesmanage app dataMandatory
    +

    The mandatory entries must be provided like the following:

    +
    parts:
    +  docker-compose:
    +    plugin: dump
    +    source: ./docker-compose
    +    organize:
    +      '*': docker-compose/${SNAPCRAFT_PROJECT_NAME}/
    +slots:
    +  docker-compose:
    +    interface: content
    +    content: docker-compose
    +    source:
    +      read:
    +        - $SNAP/docker-compose/${SNAPCRAFT_PROJECT_NAME}
    +  docker-volumes:
    +    interface: content
    +    content: docker-volumes
    +    source:
    +      write:
    +        - $SNAP_DATA/docker-volumes/${SNAPCRAFT_PROJECT_NAME}
    +
    +

    2.2 docker-compose.yml

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ItemContentOptional / Mandatory
    versionversion of the docker-composeMandatory
    servicesinformation about the docker images, like image name, container name, used ports, required volumes etc.Mandatory
    volumesmounted volumesOptional
    portsdescribed ports are not conflicting with standard/blocked ports. and app uses only described portsOptional
    +

    Note: For example, here you can find information about syntax of a compose file: https://github.com/compose-spec/compose-spec/blob/master/spec.md

    +

    2.3 docker-compose.env

    +

    This file is optional and provides all environment variables which are used in the docker-compose.yml

    + + + + + + + + + + + + + + + +
    ItemContentOptional / Mandatory
    variablesAll variables in docker-compose.yml are provided hereOptional
    + + + + + + + + + + + + + +
    +
    + + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + + \ No newline at end of file diff --git a/3.4.0/appdevguide_other-technologies.html b/3.4.0/appdevguide_other-technologies.html new file mode 100644 index 000000000..06cddd877 --- /dev/null +++ b/3.4.0/appdevguide_other-technologies.html @@ -0,0 +1,2170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + APPENDIX TO THE CTRLX APP DEVELOPMENT GUIDELINES - Software Development Kit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + +
    + + +
    + +
    + + + + + + + + + +
    +
    + + + +
    +
    +
    + + + + + + + +
    +
    +
    + + + + + + + +
    +
    + + + + + + + +

    APPENDIX TO THE CTRLX APP DEVELOPMENT GUIDELINES

    +

    1. Document Overview

    +

    This document is part of the Bosch Rexroth ctrlX CORE App Development Guidelines, and gives hints for Components and Apps, which are not provided as Linux Ubuntu Core App. +Please make sure that you know the App Development Guidelines, that you can easily understand the content of this document.

    +

    The following deployment technologies are considered here

    +
      +
    • Windows Application (usually Engineering Tools for ctrlX CORE and ctrlX CORE Apps)
    • +
    • PLC Libraries, which are used in the ctrlX CORE PLC App based on Codesys
    • +
    • Node-RED palettes which are loaded into the ctrlX CORE Node-RED App
    • +
    +

    For each technology this document povides

    +
      +
    • A List of aspects which have to be considered in general for onboarding to ctrlX World. Please refer to the App Development Guide for further information on these aspects.
    • +
    • A brief description of aspects, which are specific to the used deployment technology
    • +
    +

    The content of this document may be subject of change in further versions of the Validation Process.

    +

    2. Windows Applications

    +

    2.1. General Aspects

    +

    These aspects, which are also part of the App Development Guidelines main document, must be supported by Windows Applications:

    +
      +
    • Basic App Information - App Documentation (see App Development Guide Chapter 4.2)
    • +
    • Basic App Information - FOSS Info Provisioning (see App Development Guide Chapter 4.4)
    • +
    • Further App Information - FOSS Sources (see App Development Guide Chapter 5.1)
    • +
    • Further App Information - Semantic Versioning Scheme (see App Development Guide Chapter 5.2)
    • +
    • Working Set Overview - Test Setup for Typical Usage Scenario (see App Development Guide Chapter 6.4)
    • +
    • ctrlX Basic Mechanisms - License Handling (see App Development Guide Chapter 7.1) - this is applicable to Windows Applications only +which require licenses. +Please get in touch with your ctrlX World partner manager at Bosch Rexroth for further information about Licensing on Windows
    • +
    +

    2.2 Specific Topics

    +

    In addition to general aspects, Windows Applications must support the following topics:

    +
      +
    • Signed installation file (msi) with accordings certificate - the Application is protected against unwanted / unauthorized modification (like e.g. code injections)
    • +
    • System Requirements - Overview about minimum and recommended environment, like Windows version, Memory, Processor
    • +
    +

    3. PLC Libraries and Function Blocks

    +

    3.1. General Aspects

    +

    These aspects, which are also part of the App Development Guidelines main document, must be supported by PLC Libraries and Function Blocks:

    +
      +
    • Basic App Information - App Documentation (see App Development Guide Chapter 4.2)
    • +
    • Basic App Information - FOSS Info Provisioning (see App Development Guide Chapter 4.4)
    • +
    • Further App Information - FOSS Sources (see App Development Guide Chapter 5.1)
    • +
    • Further App Information - Semantic Versioning Scheme (see App Development Guide Chapter 5.2)
    • +
    • Working Set Overview - Network Security and Ports (see App Development Guide Chapter 6.1.2)
    • +
    • Working Set Overview - Standard Task Scheduling (see App Development Guide Chapter 6.3.)
    • +
    • Working Set Overview - Test Setup for Typical Usage Scenario (see App Development Guide Chapter 6.4)
    • +
    • ctrlX Basic Mechanisms - License Handling (see App Development Guide Chapter 7.1)
    • +
    • ctrlX Basic Mechanisms - Library Signing (see App Development Guide Chapter 7.2) Note: signing process currently in development at Rexroth
    • +
    +

    3.2 Specific Topics

    +

    In addition to general aspects, PLC Libraries and Function Blocks must support the following topics:

    +
      +
    • Library Header with official supplier info (Lib info)
    • +
    • Integrated Library Documentation for direct use in PLC Engineering (based on Codesys)
    • +
    • Compiled Library strongly recommended
    • +
    • System Requirements - PLC App version
    • +
    +

    4. Node-RED Palettes

    +

    4.1. General Aspects

    +

    These aspects, which are also part of the App Development Guidelines main document, must be supported by Node-RED Palettes:

    +
      +
    • Basic App Information - App Documentation (see App Development Guide Chapter 4.2)
    • +
    • Basic App Information - FOSS Info Provisioning (see App Development Guide Chapter 4.4)
    • +
    • Further App Information - FOSS Sources (see App Development Guide Chapter 5.1)
    • +
    • Further App Information - Semantic Versioning Scheme (see App Development Guide Chapter 5.2)
    • +
    • Working Set Overview - Network Security and Ports (see App Development Guide Chapter 6.1.2)
    • +
    • Working Set Overview - Standard Task Scheduling (see App Development Guide Chapter 6.3.)
    • +
    • Working Set Overview - Test Setup for Typical Usage Scenario (see App Development Guide Chapter 6.4)
    • +
    • ctrlX Basic Mechanisms - License Handling (see App Development Guide Chapter 7.1)
    • +
    +

    4.2 Specific Topics

    +

    In addition to general aspects, Node-RED Palettes must support the following topics:

    +
      +
    • Provisioning / Deployment via Node-RED palette manager
    • +
    +

    Copyright +SPDX-FileCopyrightText: Bosch Rexroth AG

    + + + + + + + + + + + + + +
    +
    + + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + + \ No newline at end of file diff --git a/3.4.0/appdevguide_reserved-interfaces.html b/3.4.0/appdevguide_reserved-interfaces.html new file mode 100644 index 000000000..5b741e7ba --- /dev/null +++ b/3.4.0/appdevguide_reserved-interfaces.html @@ -0,0 +1,2565 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Appdevguide reserved interfaces - Software Development Kit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + +
    + + +
    + +
    + + + + + + + + + +
    +
    + + + +
    +
    +
    + + + + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + + + + +

    This document is part of the Bosch Rexroth ctrlX OS App Development Guideline, and describes which interfaces (port, plugs and slots) are reserved and may not be used by a ctrlX OS App

    +

    Please refer to the App Development Guide for further information.

    +

    The content of this document may be subject of change in future.

    +

    1. Reserved slots and plugs

    +

    The following operating system interfaces are denied or restricted for usage. See also https://snapcraft.io/docs/supported-interfaces.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    InterfaceDirectionParametersExceptionsReason
    system-filesPlugnull"'read=^(\/dev\/shm| \/dev\/shm\/.+)', 'write=^(\/dev\/shm| \/dev\/shm\/.+)$'"Prevent access to system files, except shared memory
    account-controlPlugnullnullPrevent uncontrolled access to user and group databases
    snapd-controlPlugnullnullPrevent uncontrolled access to system configuration
    contentPlugcontent=package-certificatesnullPrevent apps to act as device admin
    contentPlugcontent=package-runnullPrevent apps to act as device admin
    contentSlotcontent=active-solutionnullPrevent apps to act as solution snap
    contentSlotcontent=auth-servicenullPrevent unauthorized access, service to service authentication
    contentSlotcontent=rda-proxy-servicenullPrevent uncontrolled access to proxy service
    contentplugcontent=rda-proxy-servicenullPrevent unacontrolled access to proxy service
    block-devicesplugnullnullPrevent mounting of partitions
    raw-volumesPlugnullnullPrevent mounting of partitions
    udisk2SlotnullnullPrevent mounting of partitions
    udisk2PlugnullnullPrevent mounting of partitions
    dockerPlugnullnullPrevent access to docker socket
    docker-supportSlotnullnullPrevent operating as the docker daemon because of possibility of privileg escalation
    docker-supportPlugnullnullPrevent operating as the docker daemon because of possibility of privileg escalation
    acrn-supportPlugnullnullNot being supported and potential dangerous
    bool-filePlugnullnullBool files are normally located in /sys - no write access to this folder
    browser-supportPlugnullnullDenylist
    classic-supportPlugnullnullClassic support bypass all snapd security mechanism
    core-supportPlugnullnullDeprecated
    cpu-controlPlugnullnullAllows setting CPU tunables
    daemon-notifyPlugnullnullAllows sending daemon status changes to the service manager.
    dm-cryptPlugnullnullStorage support including encryption is part of the DeviceAdmin
    firewall-controlPlugnullnullFirewall app handles firewall rules
    fpgaPlugnullnullAllows access to fpga subsystem
    use-supportPlugnullnullAllows access to fuse subsyten
    fwupdPlugnullnullEnabling privileged access to update UEFI firmware
    gconfPlugnullnullAllows configuration of Gconf, typically used by old GNOME libs
    gpg-keysPlugnullnullAllows reading GNU Privacy Guard (GPG) user configuration and keys as well as enabling GPG’s random seed to be updated
    gpio-controlPlugnullnullSuper-privileged access to gpio pins
    gpio-memory-controlPlugnullnullAllows write access to all GPIO memory
    greengrass-supportPlugnullnullAllows operating as the Greengrass service to access resources and syscalls necessary to run Amazon Greengrass services and lambda functions
    hardware-random-controlPlugnullnullEnables control over the hardware random number generator by allowing read/write access to /dev/hwrng
    hidrawPlugnullnullEnables raw access to USB and Bluetooth Human Interface (hidraw) devices. This interface is restricted because it provides privileged access to hardware devices
    homePlugnull"read:all"Allows access to non-hidden files owned by the user in the user’s home directory. There is no home folder for the users on ctrlX CORE
    hugepages-controlPlugnullnullHandle memory is part of the DeviceAdmin
    intel-meiPlugnullnullEnables access to the Intel MEI management interface
    io-ports-controlPlugnullnullAllows access to all I/O ports, including the ability to write to /dev/port to change the I/O port permissions, the privilege level of the calling process, and disabling interrupts
    ion-memory-controlPlugnullnullAllows access to the Android ION memory allocator, a Linux kernel feature for managing one or more memory pools
    kernel-module-controlPlugnullnullProvides the ability to insert, remove and query kernel modules. This interface gives privileged access to the device
    kernel-module-loadPlugnullnullProvides the ability to load, or deny loading, specific kernel modules. This interface gives privileged access to the device
    kubernetes-supportPlugnullnullAllows operating as the Kubernetes service and running application containers
    kvmPlugnullnullAllows access to the /dev/kvm device, providing privileged access and control of the KVM hypervisor
    libvirtPlugnullnullEnables access to the libvirt control socket, which gives privileged access to control libvirtd on the host
    login-session-controlPlugnullnullAllows setup of login sessions and grants privileged access to user sessions.
    lxdPlugnullnullAllows access to the LXD API via the socket provided by the lxd snap
    lxd-supportPlugnullnullEnables operating as the LXD service
    microstack-supportPlugnullnullInterface enables multiple service access for the Microstack infrastructure
    mount-controlPlugnull"Except storage-extension concept"Allows the mounting and unmounting of both transient (non-persistent) and persistent filesystem mount points. This interface gives privileged access to the device
    multipass-supportPlugnullnullAllows operating as the Multipass service
    netlink-auditPlugnullnullAllows access to the kernel part of the Linux Audit Subsystem through Netlink
    netlink-connectorPlugnullnullAllows communication through the kernel Netlink connector
    netlink-driverPlugnullnullAllows a kernel module to expose itself to user-space via the Netlink protocol, typically to transfer information between the kernel and user-space processes
    network-controlPlugnullnullGives access to wifi credentials
    network-managerPlugnullnullGives access to wifi credentials
    network-manager-observePlugnullnullGives access to wifi credentials
    network-setup-controlPlugnullnullGives access to wifi credentials
    network-setup-observePlugnullnullGives access to wifi credentials
    packagekit-controlPlugnullnullAllows control of the PackageKit service, giving privileged access to native package management on the system
    password-manager-servicePlugnullnullProvides access to the global password manager services provided by popular desktop environments, such as Secret Service and Kwallet
    personal-filesPlugnullnullProvides access to the specified files in the user’s home. This interface gives privileged access to the user’s data
    physical-memory-controlPlugnullnullAllows write access the to physical address space via the /dev/mem device
    physical-memory-observePlugnullnullAllows read access the to physical address space via the /dev/mem device
    polkit-interfacePlugnullnullProvides daemons with the permission to use the polkit authorisation manager (polkitd) to make access control decisions for requests from unprivileged clients
    process-controlPlugnullnullPrevent tampering with running processes
    scsi-genericPlugnullnullAllows read and write access to SCSI Generic driver (sg) devices
    sd-controlPlugnullnullAllows for the management and control of SD cards on certain devices using the DualSD driver
    shared-memoryPlugnull"shared-memory=^(datalayer-shm)$"Allows two snaps to communicate with each other using a specific predefined shared-memory path or directory in /dev/sh
    snap-refresh-controlPlugnull, "Exceptions":nullSuper privileged interface to allow extended control, via snapctl, of refreshes targeting the snap
    ssh-keysPlugnullnullAllows a user’s SSH (Secure Socket Shell) configuration to be read, along with both their public and private keys
    storage-framework-servicePlugnullnullAllows operating as, or interacting with, the Storage Framework - storage is part of the DeviceAdmin
    system-backupPlugnullnullProvides read-only access to the system via /var/lib/snapd/hostfs. This interface gives privileged access to system data
    system-tracePlugnullnullEnables the monitoring and control of any running program, via kernel tracing facilities. This interface is restricted because it gives privileged access to all processes on the system and should only be used with trusted apps
    teePlugnullnullPermits access to Trusted Execution Environment (TEE) devices via the TEE subsystem in the Linux kernel
    tpmPlugnullnulltpm allows access to the Trusted Platform Module (tpm) device, /dev/tpm0, and to the in-kernel resource manager, /dev/tpmrm0, on recent kernels (at least v4.12)
    uhidPlugnullnullEnables the creation of kernel USB Human Interface Devices (HID) from user-space, via /dev/uhid , giving privileged access to HID transport drivers
    uinputPlugnullnullSuper privileged interface to allows write access to /dev/uinput on the host system for emulating input devices from userspace that can send input events
    +

    2. Blocked ports

    +

    The following ports are blocked and cannot be used by an app.

    + + + + + + + + + + + + + + + + + +
    Reserved byReserved ports
    ctrlX OS22, 80, 81, 443, 1338, 1880, 1900, 2069, 2070, 4840, 5355, 5353, 5858, 6000, 7878, 8069, 11740, 11741
    Other apps1881, 1884, 1885, 2883, 4222, 6123, 7505, 9230, 9240, 8000, 8080, 8088, 8142, 8840, 8883, 10123, 16620, 16700, 16701, 16800, 16810, 18500, 47808, 48898, 49250-50250, 56090, 58000, 51218
    +
    +

    Copyright +© Bosch Rexroth AG 2024 - +This document, as well as the data, specifications and other information set forth in it, are the exclusive property of Bosch

    + + + + + + + + + + + + + +
    +
    + + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + + \ No newline at end of file diff --git a/3.4.0/appdevguide_systemreport.html b/3.4.0/appdevguide_systemreport.html new file mode 100644 index 000000000..dca964356 --- /dev/null +++ b/3.4.0/appdevguide_systemreport.html @@ -0,0 +1,2034 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Appdevguide systemreport - Software Development Kit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + +
    + + +
    + +
    + + + + + + + + + +
    +
    + + + +
    +
    +
    + + + + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + + + + +

    This document is part of the Bosch Rexroth ctrlX OS App Development Guideline, and describes how a ctrlX OS App can integrate in the ctrlX OS System Report

    +

    Please refer to the App Development Guide for further information.

    +

    The content of this document may be subject of change in future.

    +

    Introduction

    +

    The ctrlX OS system report is provided as zip file. ctrlX OS Apps can participate in this mechanism and provide their own log information and other files. +This document describes, which interfaces are available in ctrlX OS to automatically add App specific information to the system report.

    +

    Note: This mechanism is available in ctrlX OS 1.20 or higher

    +

    Integration in the ctrlX OS System Report

    +

    Information in snapcraft.yaml

    +
      +
    • "apps" section: add "package-run" to the slots of your service(s) that will add files to the system report
    • +
    • "slots" section: add the "package-run" sections as described below:
    • +
    +
    apps:
    +  ...
    +  my-service:
    +    slots: [..., package-run, ...]
    +
    +...
    +
    +slots:
    +  ...
    +  package-run:
    +    interface: content
    +    content: package-run
    +    source:
    +      write:
    +        - $SNAP_DATA/package-run/${SNAPCRAFT_PROJECT_NAME}
    +
    +

    Files for System Report

    +

    The files, which will be part of the System Report, will be provided in this directory:

    +
    $SNAP_DATA/package-run/$SNAP_INSTANCE_NAME/logs
    +
    +
      +
    • Access mode for files: 0644
    • +
    • Access mode for the directory: 0755
    • +
    +

    Example

    +

    With

    +
    $SNAP_INSTANCE_NAME: my-snap
    +$SNAP_DATA: /var/snap/my-snap/current
    +
    +

    and the directory structure

    +
    drwxr-xr-x  root root  /var/snap/my-snap/current
    +drwxr-xr-x  root root  /var/snap/my-snap/current/package-run
    +drwxr-xr-x  root root  /var/snap/my-snap/current/package-run/my-snap
    +drwxr-xr-x  root root  /var/snap/my-snap/current/package-run/my-snap/logs
    +-rw-r--r--  root root  /var/snap/my-snap/current/package-run/my-snap/logs/my-log-file.log
    +drwxr-xr-x  root root  /var/snap/my-snap/current/package-run/my-snap/logs/my-dir
    +-rw-r--r--  root root  /var/snap/my-snap/current/package-run/my-snap/logs/my-dir/my-other-file.dat
    +drwxr-xr-x  root root  /var/snap/my-snap/current/package-run/my-snap/logs/my-empty-dir
    +
    +

    the following files and directories are added to the system report:

    +
    my-log-file.log
    +my-dir/my-other-file.dat
    +my-empty-dir
    +
    + + + + + + + + + + + + + +
    +
    + + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + + \ No newline at end of file diff --git a/3.4.0/artifacts.zip b/3.4.0/artifacts.zip new file mode 100644 index 000000000..664e3a655 Binary files /dev/null and b/3.4.0/artifacts.zip differ diff --git a/3.4.0/assets/images/favicon.png b/3.4.0/assets/images/favicon.png new file mode 100644 index 000000000..1cf13b9f9 Binary files /dev/null and b/3.4.0/assets/images/favicon.png differ diff --git a/3.4.0/assets/javascripts/bundle.83f73b43.min.js b/3.4.0/assets/javascripts/bundle.83f73b43.min.js new file mode 100644 index 000000000..43d8b70f6 --- /dev/null +++ b/3.4.0/assets/javascripts/bundle.83f73b43.min.js @@ -0,0 +1,16 @@ +"use strict";(()=>{var Wi=Object.create;var gr=Object.defineProperty;var Di=Object.getOwnPropertyDescriptor;var Vi=Object.getOwnPropertyNames,Vt=Object.getOwnPropertySymbols,Ni=Object.getPrototypeOf,yr=Object.prototype.hasOwnProperty,ao=Object.prototype.propertyIsEnumerable;var io=(e,t,r)=>t in e?gr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,$=(e,t)=>{for(var r in t||(t={}))yr.call(t,r)&&io(e,r,t[r]);if(Vt)for(var r of Vt(t))ao.call(t,r)&&io(e,r,t[r]);return e};var so=(e,t)=>{var r={};for(var o in e)yr.call(e,o)&&t.indexOf(o)<0&&(r[o]=e[o]);if(e!=null&&Vt)for(var o of Vt(e))t.indexOf(o)<0&&ao.call(e,o)&&(r[o]=e[o]);return r};var xr=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var zi=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Vi(t))!yr.call(e,n)&&n!==r&&gr(e,n,{get:()=>t[n],enumerable:!(o=Di(t,n))||o.enumerable});return e};var Mt=(e,t,r)=>(r=e!=null?Wi(Ni(e)):{},zi(t||!e||!e.__esModule?gr(r,"default",{value:e,enumerable:!0}):r,e));var co=(e,t,r)=>new Promise((o,n)=>{var i=p=>{try{s(r.next(p))}catch(c){n(c)}},a=p=>{try{s(r.throw(p))}catch(c){n(c)}},s=p=>p.done?o(p.value):Promise.resolve(p.value).then(i,a);s((r=r.apply(e,t)).next())});var lo=xr((Er,po)=>{(function(e,t){typeof Er=="object"&&typeof po!="undefined"?t():typeof define=="function"&&define.amd?define(t):t()})(Er,function(){"use strict";function e(r){var o=!0,n=!1,i=null,a={text:!0,search:!0,url:!0,tel:!0,email:!0,password:!0,number:!0,date:!0,month:!0,week:!0,time:!0,datetime:!0,"datetime-local":!0};function s(k){return!!(k&&k!==document&&k.nodeName!=="HTML"&&k.nodeName!=="BODY"&&"classList"in k&&"contains"in k.classList)}function p(k){var ft=k.type,qe=k.tagName;return!!(qe==="INPUT"&&a[ft]&&!k.readOnly||qe==="TEXTAREA"&&!k.readOnly||k.isContentEditable)}function c(k){k.classList.contains("focus-visible")||(k.classList.add("focus-visible"),k.setAttribute("data-focus-visible-added",""))}function l(k){k.hasAttribute("data-focus-visible-added")&&(k.classList.remove("focus-visible"),k.removeAttribute("data-focus-visible-added"))}function f(k){k.metaKey||k.altKey||k.ctrlKey||(s(r.activeElement)&&c(r.activeElement),o=!0)}function u(k){o=!1}function d(k){s(k.target)&&(o||p(k.target))&&c(k.target)}function y(k){s(k.target)&&(k.target.classList.contains("focus-visible")||k.target.hasAttribute("data-focus-visible-added"))&&(n=!0,window.clearTimeout(i),i=window.setTimeout(function(){n=!1},100),l(k.target))}function L(k){document.visibilityState==="hidden"&&(n&&(o=!0),X())}function X(){document.addEventListener("mousemove",J),document.addEventListener("mousedown",J),document.addEventListener("mouseup",J),document.addEventListener("pointermove",J),document.addEventListener("pointerdown",J),document.addEventListener("pointerup",J),document.addEventListener("touchmove",J),document.addEventListener("touchstart",J),document.addEventListener("touchend",J)}function te(){document.removeEventListener("mousemove",J),document.removeEventListener("mousedown",J),document.removeEventListener("mouseup",J),document.removeEventListener("pointermove",J),document.removeEventListener("pointerdown",J),document.removeEventListener("pointerup",J),document.removeEventListener("touchmove",J),document.removeEventListener("touchstart",J),document.removeEventListener("touchend",J)}function J(k){k.target.nodeName&&k.target.nodeName.toLowerCase()==="html"||(o=!1,te())}document.addEventListener("keydown",f,!0),document.addEventListener("mousedown",u,!0),document.addEventListener("pointerdown",u,!0),document.addEventListener("touchstart",u,!0),document.addEventListener("visibilitychange",L,!0),X(),r.addEventListener("focus",d,!0),r.addEventListener("blur",y,!0),r.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&r.host?r.host.setAttribute("data-js-focus-visible",""):r.nodeType===Node.DOCUMENT_NODE&&(document.documentElement.classList.add("js-focus-visible"),document.documentElement.setAttribute("data-js-focus-visible",""))}if(typeof window!="undefined"&&typeof document!="undefined"){window.applyFocusVisiblePolyfill=e;var t;try{t=new CustomEvent("focus-visible-polyfill-ready")}catch(r){t=document.createEvent("CustomEvent"),t.initCustomEvent("focus-visible-polyfill-ready",!1,!1,{})}window.dispatchEvent(t)}typeof document!="undefined"&&e(document)})});var qr=xr((hy,On)=>{"use strict";/*! + * escape-html + * Copyright(c) 2012-2013 TJ Holowaychuk + * Copyright(c) 2015 Andreas Lubbe + * Copyright(c) 2015 Tiancheng "Timothy" Gu + * MIT Licensed + */var $a=/["'&<>]/;On.exports=Pa;function Pa(e){var t=""+e,r=$a.exec(t);if(!r)return t;var o,n="",i=0,a=0;for(i=r.index;i{/*! + * clipboard.js v2.0.11 + * https://clipboardjs.com/ + * + * Licensed MIT © Zeno Rocha + */(function(t,r){typeof It=="object"&&typeof Yr=="object"?Yr.exports=r():typeof define=="function"&&define.amd?define([],r):typeof It=="object"?It.ClipboardJS=r():t.ClipboardJS=r()})(It,function(){return function(){var e={686:function(o,n,i){"use strict";i.d(n,{default:function(){return Ui}});var a=i(279),s=i.n(a),p=i(370),c=i.n(p),l=i(817),f=i.n(l);function u(V){try{return document.execCommand(V)}catch(A){return!1}}var d=function(A){var M=f()(A);return u("cut"),M},y=d;function L(V){var A=document.documentElement.getAttribute("dir")==="rtl",M=document.createElement("textarea");M.style.fontSize="12pt",M.style.border="0",M.style.padding="0",M.style.margin="0",M.style.position="absolute",M.style[A?"right":"left"]="-9999px";var F=window.pageYOffset||document.documentElement.scrollTop;return M.style.top="".concat(F,"px"),M.setAttribute("readonly",""),M.value=V,M}var X=function(A,M){var F=L(A);M.container.appendChild(F);var D=f()(F);return u("copy"),F.remove(),D},te=function(A){var M=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body},F="";return typeof A=="string"?F=X(A,M):A instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(A==null?void 0:A.type)?F=X(A.value,M):(F=f()(A),u("copy")),F},J=te;function k(V){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?k=function(M){return typeof M}:k=function(M){return M&&typeof Symbol=="function"&&M.constructor===Symbol&&M!==Symbol.prototype?"symbol":typeof M},k(V)}var ft=function(){var A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},M=A.action,F=M===void 0?"copy":M,D=A.container,Y=A.target,$e=A.text;if(F!=="copy"&&F!=="cut")throw new Error('Invalid "action" value, use either "copy" or "cut"');if(Y!==void 0)if(Y&&k(Y)==="object"&&Y.nodeType===1){if(F==="copy"&&Y.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if(F==="cut"&&(Y.hasAttribute("readonly")||Y.hasAttribute("disabled")))throw new Error(`Invalid "target" attribute. You can't cut text from elements with "readonly" or "disabled" attributes`)}else throw new Error('Invalid "target" value, use a valid Element');if($e)return J($e,{container:D});if(Y)return F==="cut"?y(Y):J(Y,{container:D})},qe=ft;function Fe(V){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Fe=function(M){return typeof M}:Fe=function(M){return M&&typeof Symbol=="function"&&M.constructor===Symbol&&M!==Symbol.prototype?"symbol":typeof M},Fe(V)}function ki(V,A){if(!(V instanceof A))throw new TypeError("Cannot call a class as a function")}function no(V,A){for(var M=0;M0&&arguments[0]!==void 0?arguments[0]:{};this.action=typeof D.action=="function"?D.action:this.defaultAction,this.target=typeof D.target=="function"?D.target:this.defaultTarget,this.text=typeof D.text=="function"?D.text:this.defaultText,this.container=Fe(D.container)==="object"?D.container:document.body}},{key:"listenClick",value:function(D){var Y=this;this.listener=c()(D,"click",function($e){return Y.onClick($e)})}},{key:"onClick",value:function(D){var Y=D.delegateTarget||D.currentTarget,$e=this.action(Y)||"copy",Dt=qe({action:$e,container:this.container,target:this.target(Y),text:this.text(Y)});this.emit(Dt?"success":"error",{action:$e,text:Dt,trigger:Y,clearSelection:function(){Y&&Y.focus(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function(D){return vr("action",D)}},{key:"defaultTarget",value:function(D){var Y=vr("target",D);if(Y)return document.querySelector(Y)}},{key:"defaultText",value:function(D){return vr("text",D)}},{key:"destroy",value:function(){this.listener.destroy()}}],[{key:"copy",value:function(D){var Y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body};return J(D,Y)}},{key:"cut",value:function(D){return y(D)}},{key:"isSupported",value:function(){var D=arguments.length>0&&arguments[0]!==void 0?arguments[0]:["copy","cut"],Y=typeof D=="string"?[D]:D,$e=!!document.queryCommandSupported;return Y.forEach(function(Dt){$e=$e&&!!document.queryCommandSupported(Dt)}),$e}}]),M}(s()),Ui=Fi},828:function(o){var n=9;if(typeof Element!="undefined"&&!Element.prototype.matches){var i=Element.prototype;i.matches=i.matchesSelector||i.mozMatchesSelector||i.msMatchesSelector||i.oMatchesSelector||i.webkitMatchesSelector}function a(s,p){for(;s&&s.nodeType!==n;){if(typeof s.matches=="function"&&s.matches(p))return s;s=s.parentNode}}o.exports=a},438:function(o,n,i){var a=i(828);function s(l,f,u,d,y){var L=c.apply(this,arguments);return l.addEventListener(u,L,y),{destroy:function(){l.removeEventListener(u,L,y)}}}function p(l,f,u,d,y){return typeof l.addEventListener=="function"?s.apply(null,arguments):typeof u=="function"?s.bind(null,document).apply(null,arguments):(typeof l=="string"&&(l=document.querySelectorAll(l)),Array.prototype.map.call(l,function(L){return s(L,f,u,d,y)}))}function c(l,f,u,d){return function(y){y.delegateTarget=a(y.target,f),y.delegateTarget&&d.call(l,y)}}o.exports=p},879:function(o,n){n.node=function(i){return i!==void 0&&i instanceof HTMLElement&&i.nodeType===1},n.nodeList=function(i){var a=Object.prototype.toString.call(i);return i!==void 0&&(a==="[object NodeList]"||a==="[object HTMLCollection]")&&"length"in i&&(i.length===0||n.node(i[0]))},n.string=function(i){return typeof i=="string"||i instanceof String},n.fn=function(i){var a=Object.prototype.toString.call(i);return a==="[object Function]"}},370:function(o,n,i){var a=i(879),s=i(438);function p(u,d,y){if(!u&&!d&&!y)throw new Error("Missing required arguments");if(!a.string(d))throw new TypeError("Second argument must be a String");if(!a.fn(y))throw new TypeError("Third argument must be a Function");if(a.node(u))return c(u,d,y);if(a.nodeList(u))return l(u,d,y);if(a.string(u))return f(u,d,y);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function c(u,d,y){return u.addEventListener(d,y),{destroy:function(){u.removeEventListener(d,y)}}}function l(u,d,y){return Array.prototype.forEach.call(u,function(L){L.addEventListener(d,y)}),{destroy:function(){Array.prototype.forEach.call(u,function(L){L.removeEventListener(d,y)})}}}function f(u,d,y){return s(document.body,u,d,y)}o.exports=p},817:function(o){function n(i){var a;if(i.nodeName==="SELECT")i.focus(),a=i.value;else if(i.nodeName==="INPUT"||i.nodeName==="TEXTAREA"){var s=i.hasAttribute("readonly");s||i.setAttribute("readonly",""),i.select(),i.setSelectionRange(0,i.value.length),s||i.removeAttribute("readonly"),a=i.value}else{i.hasAttribute("contenteditable")&&i.focus();var p=window.getSelection(),c=document.createRange();c.selectNodeContents(i),p.removeAllRanges(),p.addRange(c),a=p.toString()}return a}o.exports=n},279:function(o){function n(){}n.prototype={on:function(i,a,s){var p=this.e||(this.e={});return(p[i]||(p[i]=[])).push({fn:a,ctx:s}),this},once:function(i,a,s){var p=this;function c(){p.off(i,c),a.apply(s,arguments)}return c._=a,this.on(i,c,s)},emit:function(i){var a=[].slice.call(arguments,1),s=((this.e||(this.e={}))[i]||[]).slice(),p=0,c=s.length;for(p;p0&&i[i.length-1])&&(c[0]===6||c[0]===2)){r=0;continue}if(c[0]===3&&(!i||c[1]>i[0]&&c[1]=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function N(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var o=r.call(e),n,i=[],a;try{for(;(t===void 0||t-- >0)&&!(n=o.next()).done;)i.push(n.value)}catch(s){a={error:s}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(a)throw a.error}}return i}function q(e,t,r){if(r||arguments.length===2)for(var o=0,n=t.length,i;o1||p(d,L)})},y&&(n[d]=y(n[d])))}function p(d,y){try{c(o[d](y))}catch(L){u(i[0][3],L)}}function c(d){d.value instanceof nt?Promise.resolve(d.value.v).then(l,f):u(i[0][2],d)}function l(d){p("next",d)}function f(d){p("throw",d)}function u(d,y){d(y),i.shift(),i.length&&p(i[0][0],i[0][1])}}function uo(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],r;return t?t.call(e):(e=typeof he=="function"?he(e):e[Symbol.iterator](),r={},o("next"),o("throw"),o("return"),r[Symbol.asyncIterator]=function(){return this},r);function o(i){r[i]=e[i]&&function(a){return new Promise(function(s,p){a=e[i](a),n(s,p,a.done,a.value)})}}function n(i,a,s,p){Promise.resolve(p).then(function(c){i({value:c,done:s})},a)}}function H(e){return typeof e=="function"}function ut(e){var t=function(o){Error.call(o),o.stack=new Error().stack},r=e(t);return r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r}var zt=ut(function(e){return function(r){e(this),this.message=r?r.length+` errors occurred during unsubscription: +`+r.map(function(o,n){return n+1+") "+o.toString()}).join(` + `):"",this.name="UnsubscriptionError",this.errors=r}});function Qe(e,t){if(e){var r=e.indexOf(t);0<=r&&e.splice(r,1)}}var Ue=function(){function e(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var t,r,o,n,i;if(!this.closed){this.closed=!0;var a=this._parentage;if(a)if(this._parentage=null,Array.isArray(a))try{for(var s=he(a),p=s.next();!p.done;p=s.next()){var c=p.value;c.remove(this)}}catch(L){t={error:L}}finally{try{p&&!p.done&&(r=s.return)&&r.call(s)}finally{if(t)throw t.error}}else a.remove(this);var l=this.initialTeardown;if(H(l))try{l()}catch(L){i=L instanceof zt?L.errors:[L]}var f=this._finalizers;if(f){this._finalizers=null;try{for(var u=he(f),d=u.next();!d.done;d=u.next()){var y=d.value;try{ho(y)}catch(L){i=i!=null?i:[],L instanceof zt?i=q(q([],N(i)),N(L.errors)):i.push(L)}}}catch(L){o={error:L}}finally{try{d&&!d.done&&(n=u.return)&&n.call(u)}finally{if(o)throw o.error}}}if(i)throw new zt(i)}},e.prototype.add=function(t){var r;if(t&&t!==this)if(this.closed)ho(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=(r=this._finalizers)!==null&&r!==void 0?r:[]).push(t)}},e.prototype._hasParent=function(t){var r=this._parentage;return r===t||Array.isArray(r)&&r.includes(t)},e.prototype._addParent=function(t){var r=this._parentage;this._parentage=Array.isArray(r)?(r.push(t),r):r?[r,t]:t},e.prototype._removeParent=function(t){var r=this._parentage;r===t?this._parentage=null:Array.isArray(r)&&Qe(r,t)},e.prototype.remove=function(t){var r=this._finalizers;r&&Qe(r,t),t instanceof e&&t._removeParent(this)},e.EMPTY=function(){var t=new e;return t.closed=!0,t}(),e}();var Tr=Ue.EMPTY;function qt(e){return e instanceof Ue||e&&"closed"in e&&H(e.remove)&&H(e.add)&&H(e.unsubscribe)}function ho(e){H(e)?e():e.unsubscribe()}var Pe={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var dt={setTimeout:function(e,t){for(var r=[],o=2;o0},enumerable:!1,configurable:!0}),t.prototype._trySubscribe=function(r){return this._throwIfClosed(),e.prototype._trySubscribe.call(this,r)},t.prototype._subscribe=function(r){return this._throwIfClosed(),this._checkFinalizedStatuses(r),this._innerSubscribe(r)},t.prototype._innerSubscribe=function(r){var o=this,n=this,i=n.hasError,a=n.isStopped,s=n.observers;return i||a?Tr:(this.currentObservers=null,s.push(r),new Ue(function(){o.currentObservers=null,Qe(s,r)}))},t.prototype._checkFinalizedStatuses=function(r){var o=this,n=o.hasError,i=o.thrownError,a=o.isStopped;n?r.error(i):a&&r.complete()},t.prototype.asObservable=function(){var r=new j;return r.source=this,r},t.create=function(r,o){return new To(r,o)},t}(j);var To=function(e){oe(t,e);function t(r,o){var n=e.call(this)||this;return n.destination=r,n.source=o,n}return t.prototype.next=function(r){var o,n;(n=(o=this.destination)===null||o===void 0?void 0:o.next)===null||n===void 0||n.call(o,r)},t.prototype.error=function(r){var o,n;(n=(o=this.destination)===null||o===void 0?void 0:o.error)===null||n===void 0||n.call(o,r)},t.prototype.complete=function(){var r,o;(o=(r=this.destination)===null||r===void 0?void 0:r.complete)===null||o===void 0||o.call(r)},t.prototype._subscribe=function(r){var o,n;return(n=(o=this.source)===null||o===void 0?void 0:o.subscribe(r))!==null&&n!==void 0?n:Tr},t}(g);var _r=function(e){oe(t,e);function t(r){var o=e.call(this)||this;return o._value=r,o}return Object.defineProperty(t.prototype,"value",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),t.prototype._subscribe=function(r){var o=e.prototype._subscribe.call(this,r);return!o.closed&&r.next(this._value),o},t.prototype.getValue=function(){var r=this,o=r.hasError,n=r.thrownError,i=r._value;if(o)throw n;return this._throwIfClosed(),i},t.prototype.next=function(r){e.prototype.next.call(this,this._value=r)},t}(g);var At={now:function(){return(At.delegate||Date).now()},delegate:void 0};var Ct=function(e){oe(t,e);function t(r,o,n){r===void 0&&(r=1/0),o===void 0&&(o=1/0),n===void 0&&(n=At);var i=e.call(this)||this;return i._bufferSize=r,i._windowTime=o,i._timestampProvider=n,i._buffer=[],i._infiniteTimeWindow=!0,i._infiniteTimeWindow=o===1/0,i._bufferSize=Math.max(1,r),i._windowTime=Math.max(1,o),i}return t.prototype.next=function(r){var o=this,n=o.isStopped,i=o._buffer,a=o._infiniteTimeWindow,s=o._timestampProvider,p=o._windowTime;n||(i.push(r),!a&&i.push(s.now()+p)),this._trimBuffer(),e.prototype.next.call(this,r)},t.prototype._subscribe=function(r){this._throwIfClosed(),this._trimBuffer();for(var o=this._innerSubscribe(r),n=this,i=n._infiniteTimeWindow,a=n._buffer,s=a.slice(),p=0;p0?e.prototype.schedule.call(this,r,o):(this.delay=o,this.state=r,this.scheduler.flush(this),this)},t.prototype.execute=function(r,o){return o>0||this.closed?e.prototype.execute.call(this,r,o):this._execute(r,o)},t.prototype.requestAsyncId=function(r,o,n){return n===void 0&&(n=0),n!=null&&n>0||n==null&&this.delay>0?e.prototype.requestAsyncId.call(this,r,o,n):(r.flush(this),0)},t}(gt);var Lo=function(e){oe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t}(yt);var kr=new Lo(Oo);var Mo=function(e){oe(t,e);function t(r,o){var n=e.call(this,r,o)||this;return n.scheduler=r,n.work=o,n}return t.prototype.requestAsyncId=function(r,o,n){return n===void 0&&(n=0),n!==null&&n>0?e.prototype.requestAsyncId.call(this,r,o,n):(r.actions.push(this),r._scheduled||(r._scheduled=vt.requestAnimationFrame(function(){return r.flush(void 0)})))},t.prototype.recycleAsyncId=function(r,o,n){var i;if(n===void 0&&(n=0),n!=null?n>0:this.delay>0)return e.prototype.recycleAsyncId.call(this,r,o,n);var a=r.actions;o!=null&&((i=a[a.length-1])===null||i===void 0?void 0:i.id)!==o&&(vt.cancelAnimationFrame(o),r._scheduled=void 0)},t}(gt);var _o=function(e){oe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.flush=function(r){this._active=!0;var o=this._scheduled;this._scheduled=void 0;var n=this.actions,i;r=r||n.shift();do if(i=r.execute(r.state,r.delay))break;while((r=n[0])&&r.id===o&&n.shift());if(this._active=!1,i){for(;(r=n[0])&&r.id===o&&n.shift();)r.unsubscribe();throw i}},t}(yt);var me=new _o(Mo);var S=new j(function(e){return e.complete()});function Yt(e){return e&&H(e.schedule)}function Hr(e){return e[e.length-1]}function Xe(e){return H(Hr(e))?e.pop():void 0}function ke(e){return Yt(Hr(e))?e.pop():void 0}function Bt(e,t){return typeof Hr(e)=="number"?e.pop():t}var xt=function(e){return e&&typeof e.length=="number"&&typeof e!="function"};function Gt(e){return H(e==null?void 0:e.then)}function Jt(e){return H(e[bt])}function Xt(e){return Symbol.asyncIterator&&H(e==null?void 0:e[Symbol.asyncIterator])}function Zt(e){return new TypeError("You provided "+(e!==null&&typeof e=="object"?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function Zi(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var er=Zi();function tr(e){return H(e==null?void 0:e[er])}function rr(e){return fo(this,arguments,function(){var r,o,n,i;return Nt(this,function(a){switch(a.label){case 0:r=e.getReader(),a.label=1;case 1:a.trys.push([1,,9,10]),a.label=2;case 2:return[4,nt(r.read())];case 3:return o=a.sent(),n=o.value,i=o.done,i?[4,nt(void 0)]:[3,5];case 4:return[2,a.sent()];case 5:return[4,nt(n)];case 6:return[4,a.sent()];case 7:return a.sent(),[3,2];case 8:return[3,10];case 9:return r.releaseLock(),[7];case 10:return[2]}})})}function or(e){return H(e==null?void 0:e.getReader)}function U(e){if(e instanceof j)return e;if(e!=null){if(Jt(e))return ea(e);if(xt(e))return ta(e);if(Gt(e))return ra(e);if(Xt(e))return Ao(e);if(tr(e))return oa(e);if(or(e))return na(e)}throw Zt(e)}function ea(e){return new j(function(t){var r=e[bt]();if(H(r.subscribe))return r.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function ta(e){return new j(function(t){for(var r=0;r=2;return function(o){return o.pipe(e?b(function(n,i){return e(n,i,o)}):le,Te(1),r?De(t):Qo(function(){return new ir}))}}function jr(e){return e<=0?function(){return S}:E(function(t,r){var o=[];t.subscribe(T(r,function(n){o.push(n),e=2,!0))}function pe(e){e===void 0&&(e={});var t=e.connector,r=t===void 0?function(){return new g}:t,o=e.resetOnError,n=o===void 0?!0:o,i=e.resetOnComplete,a=i===void 0?!0:i,s=e.resetOnRefCountZero,p=s===void 0?!0:s;return function(c){var l,f,u,d=0,y=!1,L=!1,X=function(){f==null||f.unsubscribe(),f=void 0},te=function(){X(),l=u=void 0,y=L=!1},J=function(){var k=l;te(),k==null||k.unsubscribe()};return E(function(k,ft){d++,!L&&!y&&X();var qe=u=u!=null?u:r();ft.add(function(){d--,d===0&&!L&&!y&&(f=Ur(J,p))}),qe.subscribe(ft),!l&&d>0&&(l=new at({next:function(Fe){return qe.next(Fe)},error:function(Fe){L=!0,X(),f=Ur(te,n,Fe),qe.error(Fe)},complete:function(){y=!0,X(),f=Ur(te,a),qe.complete()}}),U(k).subscribe(l))})(c)}}function Ur(e,t){for(var r=[],o=2;oe.next(document)),e}function P(e,t=document){return Array.from(t.querySelectorAll(e))}function R(e,t=document){let r=fe(e,t);if(typeof r=="undefined")throw new ReferenceError(`Missing element: expected "${e}" to be present`);return r}function fe(e,t=document){return t.querySelector(e)||void 0}function Ie(){var e,t,r,o;return(o=(r=(t=(e=document.activeElement)==null?void 0:e.shadowRoot)==null?void 0:t.activeElement)!=null?r:document.activeElement)!=null?o:void 0}var wa=O(h(document.body,"focusin"),h(document.body,"focusout")).pipe(_e(1),Q(void 0),m(()=>Ie()||document.body),G(1));function et(e){return wa.pipe(m(t=>e.contains(t)),K())}function $t(e,t){return C(()=>O(h(e,"mouseenter").pipe(m(()=>!0)),h(e,"mouseleave").pipe(m(()=>!1))).pipe(t?Ht(r=>Le(+!r*t)):le,Q(e.matches(":hover"))))}function Jo(e,t){if(typeof t=="string"||typeof t=="number")e.innerHTML+=t.toString();else if(t instanceof Node)e.appendChild(t);else if(Array.isArray(t))for(let r of t)Jo(e,r)}function x(e,t,...r){let o=document.createElement(e);if(t)for(let n of Object.keys(t))typeof t[n]!="undefined"&&(typeof t[n]!="boolean"?o.setAttribute(n,t[n]):o.setAttribute(n,""));for(let n of r)Jo(o,n);return o}function sr(e){if(e>999){let t=+((e-950)%1e3>99);return`${((e+1e-6)/1e3).toFixed(t)}k`}else return e.toString()}function Tt(e){let t=x("script",{src:e});return C(()=>(document.head.appendChild(t),O(h(t,"load"),h(t,"error").pipe(v(()=>$r(()=>new ReferenceError(`Invalid script: ${e}`))))).pipe(m(()=>{}),_(()=>document.head.removeChild(t)),Te(1))))}var Xo=new g,Ta=C(()=>typeof ResizeObserver=="undefined"?Tt("https://unpkg.com/resize-observer-polyfill"):I(void 0)).pipe(m(()=>new ResizeObserver(e=>e.forEach(t=>Xo.next(t)))),v(e=>O(Ye,I(e)).pipe(_(()=>e.disconnect()))),G(1));function ce(e){return{width:e.offsetWidth,height:e.offsetHeight}}function ge(e){let t=e;for(;t.clientWidth===0&&t.parentElement;)t=t.parentElement;return Ta.pipe(w(r=>r.observe(t)),v(r=>Xo.pipe(b(o=>o.target===t),_(()=>r.unobserve(t)))),m(()=>ce(e)),Q(ce(e)))}function St(e){return{width:e.scrollWidth,height:e.scrollHeight}}function cr(e){let t=e.parentElement;for(;t&&(e.scrollWidth<=t.scrollWidth&&e.scrollHeight<=t.scrollHeight);)t=(e=t).parentElement;return t?e:void 0}function Zo(e){let t=[],r=e.parentElement;for(;r;)(e.clientWidth>r.clientWidth||e.clientHeight>r.clientHeight)&&t.push(r),r=(e=r).parentElement;return t.length===0&&t.push(document.documentElement),t}function Ve(e){return{x:e.offsetLeft,y:e.offsetTop}}function en(e){let t=e.getBoundingClientRect();return{x:t.x+window.scrollX,y:t.y+window.scrollY}}function tn(e){return O(h(window,"load"),h(window,"resize")).pipe(Me(0,me),m(()=>Ve(e)),Q(Ve(e)))}function pr(e){return{x:e.scrollLeft,y:e.scrollTop}}function Ne(e){return O(h(e,"scroll"),h(window,"scroll"),h(window,"resize")).pipe(Me(0,me),m(()=>pr(e)),Q(pr(e)))}var rn=new g,Sa=C(()=>I(new IntersectionObserver(e=>{for(let t of e)rn.next(t)},{threshold:0}))).pipe(v(e=>O(Ye,I(e)).pipe(_(()=>e.disconnect()))),G(1));function tt(e){return Sa.pipe(w(t=>t.observe(e)),v(t=>rn.pipe(b(({target:r})=>r===e),_(()=>t.unobserve(e)),m(({isIntersecting:r})=>r))))}function on(e,t=16){return Ne(e).pipe(m(({y:r})=>{let o=ce(e),n=St(e);return r>=n.height-o.height-t}),K())}var lr={drawer:R("[data-md-toggle=drawer]"),search:R("[data-md-toggle=search]")};function nn(e){return lr[e].checked}function Je(e,t){lr[e].checked!==t&&lr[e].click()}function ze(e){let t=lr[e];return h(t,"change").pipe(m(()=>t.checked),Q(t.checked))}function Oa(e,t){switch(e.constructor){case HTMLInputElement:return e.type==="radio"?/^Arrow/.test(t):!0;case HTMLSelectElement:case HTMLTextAreaElement:return!0;default:return e.isContentEditable}}function La(){return O(h(window,"compositionstart").pipe(m(()=>!0)),h(window,"compositionend").pipe(m(()=>!1))).pipe(Q(!1))}function an(){let e=h(window,"keydown").pipe(b(t=>!(t.metaKey||t.ctrlKey)),m(t=>({mode:nn("search")?"search":"global",type:t.key,claim(){t.preventDefault(),t.stopPropagation()}})),b(({mode:t,type:r})=>{if(t==="global"){let o=Ie();if(typeof o!="undefined")return!Oa(o,r)}return!0}),pe());return La().pipe(v(t=>t?S:e))}function ye(){return new URL(location.href)}function lt(e,t=!1){if(B("navigation.instant")&&!t){let r=x("a",{href:e.href});document.body.appendChild(r),r.click(),r.remove()}else location.href=e.href}function sn(){return new g}function cn(){return location.hash.slice(1)}function pn(e){let t=x("a",{href:e});t.addEventListener("click",r=>r.stopPropagation()),t.click()}function Ma(e){return O(h(window,"hashchange"),e).pipe(m(cn),Q(cn()),b(t=>t.length>0),G(1))}function ln(e){return Ma(e).pipe(m(t=>fe(`[id="${t}"]`)),b(t=>typeof t!="undefined"))}function Pt(e){let t=matchMedia(e);return ar(r=>t.addListener(()=>r(t.matches))).pipe(Q(t.matches))}function mn(){let e=matchMedia("print");return O(h(window,"beforeprint").pipe(m(()=>!0)),h(window,"afterprint").pipe(m(()=>!1))).pipe(Q(e.matches))}function Nr(e,t){return e.pipe(v(r=>r?t():S))}function zr(e,t){return new j(r=>{let o=new XMLHttpRequest;return o.open("GET",`${e}`),o.responseType="blob",o.addEventListener("load",()=>{o.status>=200&&o.status<300?(r.next(o.response),r.complete()):r.error(new Error(o.statusText))}),o.addEventListener("error",()=>{r.error(new Error("Network error"))}),o.addEventListener("abort",()=>{r.complete()}),typeof(t==null?void 0:t.progress$)!="undefined"&&(o.addEventListener("progress",n=>{var i;if(n.lengthComputable)t.progress$.next(n.loaded/n.total*100);else{let a=(i=o.getResponseHeader("Content-Length"))!=null?i:0;t.progress$.next(n.loaded/+a*100)}}),t.progress$.next(5)),o.send(),()=>o.abort()})}function je(e,t){return zr(e,t).pipe(v(r=>r.text()),m(r=>JSON.parse(r)),G(1))}function fn(e,t){let r=new DOMParser;return zr(e,t).pipe(v(o=>o.text()),m(o=>r.parseFromString(o,"text/html")),G(1))}function un(e,t){let r=new DOMParser;return zr(e,t).pipe(v(o=>o.text()),m(o=>r.parseFromString(o,"text/xml")),G(1))}function dn(){return{x:Math.max(0,scrollX),y:Math.max(0,scrollY)}}function hn(){return O(h(window,"scroll",{passive:!0}),h(window,"resize",{passive:!0})).pipe(m(dn),Q(dn()))}function bn(){return{width:innerWidth,height:innerHeight}}function vn(){return h(window,"resize",{passive:!0}).pipe(m(bn),Q(bn()))}function gn(){return z([hn(),vn()]).pipe(m(([e,t])=>({offset:e,size:t})),G(1))}function mr(e,{viewport$:t,header$:r}){let o=t.pipe(ee("size")),n=z([o,r]).pipe(m(()=>Ve(e)));return z([r,t,n]).pipe(m(([{height:i},{offset:a,size:s},{x:p,y:c}])=>({offset:{x:a.x-p,y:a.y-c+i},size:s})))}function _a(e){return h(e,"message",t=>t.data)}function Aa(e){let t=new g;return t.subscribe(r=>e.postMessage(r)),t}function yn(e,t=new Worker(e)){let r=_a(t),o=Aa(t),n=new g;n.subscribe(o);let i=o.pipe(Z(),ie(!0));return n.pipe(Z(),Re(r.pipe(W(i))),pe())}var Ca=R("#__config"),Ot=JSON.parse(Ca.textContent);Ot.base=`${new URL(Ot.base,ye())}`;function xe(){return Ot}function B(e){return Ot.features.includes(e)}function Ee(e,t){return typeof t!="undefined"?Ot.translations[e].replace("#",t.toString()):Ot.translations[e]}function Se(e,t=document){return R(`[data-md-component=${e}]`,t)}function ae(e,t=document){return P(`[data-md-component=${e}]`,t)}function ka(e){let t=R(".md-typeset > :first-child",e);return h(t,"click",{once:!0}).pipe(m(()=>R(".md-typeset",e)),m(r=>({hash:__md_hash(r.innerHTML)})))}function xn(e){if(!B("announce.dismiss")||!e.childElementCount)return S;if(!e.hidden){let t=R(".md-typeset",e);__md_hash(t.innerHTML)===__md_get("__announce")&&(e.hidden=!0)}return C(()=>{let t=new g;return t.subscribe(({hash:r})=>{e.hidden=!0,__md_set("__announce",r)}),ka(e).pipe(w(r=>t.next(r)),_(()=>t.complete()),m(r=>$({ref:e},r)))})}function Ha(e,{target$:t}){return t.pipe(m(r=>({hidden:r!==e})))}function En(e,t){let r=new g;return r.subscribe(({hidden:o})=>{e.hidden=o}),Ha(e,t).pipe(w(o=>r.next(o)),_(()=>r.complete()),m(o=>$({ref:e},o)))}function Rt(e,t){return t==="inline"?x("div",{class:"md-tooltip md-tooltip--inline",id:e,role:"tooltip"},x("div",{class:"md-tooltip__inner md-typeset"})):x("div",{class:"md-tooltip",id:e,role:"tooltip"},x("div",{class:"md-tooltip__inner md-typeset"}))}function wn(...e){return x("div",{class:"md-tooltip2",role:"tooltip"},x("div",{class:"md-tooltip2__inner md-typeset"},e))}function Tn(e,t){if(t=t?`${t}_annotation_${e}`:void 0,t){let r=t?`#${t}`:void 0;return x("aside",{class:"md-annotation",tabIndex:0},Rt(t),x("a",{href:r,class:"md-annotation__index",tabIndex:-1},x("span",{"data-md-annotation-id":e})))}else return x("aside",{class:"md-annotation",tabIndex:0},Rt(t),x("span",{class:"md-annotation__index",tabIndex:-1},x("span",{"data-md-annotation-id":e})))}function Sn(e){return x("button",{class:"md-clipboard md-icon",title:Ee("clipboard.copy"),"data-clipboard-target":`#${e} > code`})}var Ln=Mt(qr());function Qr(e,t){let r=t&2,o=t&1,n=Object.keys(e.terms).filter(p=>!e.terms[p]).reduce((p,c)=>[...p,x("del",null,(0,Ln.default)(c))," "],[]).slice(0,-1),i=xe(),a=new URL(e.location,i.base);B("search.highlight")&&a.searchParams.set("h",Object.entries(e.terms).filter(([,p])=>p).reduce((p,[c])=>`${p} ${c}`.trim(),""));let{tags:s}=xe();return x("a",{href:`${a}`,class:"md-search-result__link",tabIndex:-1},x("article",{class:"md-search-result__article md-typeset","data-md-score":e.score.toFixed(2)},r>0&&x("div",{class:"md-search-result__icon md-icon"}),r>0&&x("h1",null,e.title),r<=0&&x("h2",null,e.title),o>0&&e.text.length>0&&e.text,e.tags&&x("nav",{class:"md-tags"},e.tags.map(p=>{let c=s?p in s?`md-tag-icon md-tag--${s[p]}`:"md-tag-icon":"";return x("span",{class:`md-tag ${c}`},p)})),o>0&&n.length>0&&x("p",{class:"md-search-result__terms"},Ee("search.result.term.missing"),": ",...n)))}function Mn(e){let t=e[0].score,r=[...e],o=xe(),n=r.findIndex(l=>!`${new URL(l.location,o.base)}`.includes("#")),[i]=r.splice(n,1),a=r.findIndex(l=>l.scoreQr(l,1)),...p.length?[x("details",{class:"md-search-result__more"},x("summary",{tabIndex:-1},x("div",null,p.length>0&&p.length===1?Ee("search.result.more.one"):Ee("search.result.more.other",p.length))),...p.map(l=>Qr(l,1)))]:[]];return x("li",{class:"md-search-result__item"},c)}function _n(e){return x("ul",{class:"md-source__facts"},Object.entries(e).map(([t,r])=>x("li",{class:`md-source__fact md-source__fact--${t}`},typeof r=="number"?sr(r):r)))}function Kr(e){let t=`tabbed-control tabbed-control--${e}`;return x("div",{class:t,hidden:!0},x("button",{class:"tabbed-button",tabIndex:-1,"aria-hidden":"true"}))}function An(e){return x("div",{class:"md-typeset__scrollwrap"},x("div",{class:"md-typeset__table"},e))}function Ra(e){var o;let t=xe(),r=new URL(`../${e.version}/`,t.base);return x("li",{class:"md-version__item"},x("a",{href:`${r}`,class:"md-version__link"},e.title,((o=t.version)==null?void 0:o.alias)&&e.aliases.length>0&&x("span",{class:"md-version__alias"},e.aliases[0])))}function Cn(e,t){var o;let r=xe();return e=e.filter(n=>{var i;return!((i=n.properties)!=null&&i.hidden)}),x("div",{class:"md-version"},x("button",{class:"md-version__current","aria-label":Ee("select.version")},t.title,((o=r.version)==null?void 0:o.alias)&&t.aliases.length>0&&x("span",{class:"md-version__alias"},t.aliases[0])),x("ul",{class:"md-version__list"},e.map(Ra)))}var Ia=0;function ja(e){let t=z([et(e),$t(e)]).pipe(m(([o,n])=>o||n),K()),r=C(()=>Zo(e)).pipe(ne(Ne),pt(1),He(t),m(()=>en(e)));return t.pipe(Ae(o=>o),v(()=>z([t,r])),m(([o,n])=>({active:o,offset:n})),pe())}function Fa(e,t){let{content$:r,viewport$:o}=t,n=`__tooltip2_${Ia++}`;return C(()=>{let i=new g,a=new _r(!1);i.pipe(Z(),ie(!1)).subscribe(a);let s=a.pipe(Ht(c=>Le(+!c*250,kr)),K(),v(c=>c?r:S),w(c=>c.id=n),pe());z([i.pipe(m(({active:c})=>c)),s.pipe(v(c=>$t(c,250)),Q(!1))]).pipe(m(c=>c.some(l=>l))).subscribe(a);let p=a.pipe(b(c=>c),re(s,o),m(([c,l,{size:f}])=>{let u=e.getBoundingClientRect(),d=u.width/2;if(l.role==="tooltip")return{x:d,y:8+u.height};if(u.y>=f.height/2){let{height:y}=ce(l);return{x:d,y:-16-y}}else return{x:d,y:16+u.height}}));return z([s,i,p]).subscribe(([c,{offset:l},f])=>{c.style.setProperty("--md-tooltip-host-x",`${l.x}px`),c.style.setProperty("--md-tooltip-host-y",`${l.y}px`),c.style.setProperty("--md-tooltip-x",`${f.x}px`),c.style.setProperty("--md-tooltip-y",`${f.y}px`),c.classList.toggle("md-tooltip2--top",f.y<0),c.classList.toggle("md-tooltip2--bottom",f.y>=0)}),a.pipe(b(c=>c),re(s,(c,l)=>l),b(c=>c.role==="tooltip")).subscribe(c=>{let l=ce(R(":scope > *",c));c.style.setProperty("--md-tooltip-width",`${l.width}px`),c.style.setProperty("--md-tooltip-tail","0px")}),a.pipe(K(),ve(me),re(s)).subscribe(([c,l])=>{l.classList.toggle("md-tooltip2--active",c)}),z([a.pipe(b(c=>c)),s]).subscribe(([c,l])=>{l.role==="dialog"?(e.setAttribute("aria-controls",n),e.setAttribute("aria-haspopup","dialog")):e.setAttribute("aria-describedby",n)}),a.pipe(b(c=>!c)).subscribe(()=>{e.removeAttribute("aria-controls"),e.removeAttribute("aria-describedby"),e.removeAttribute("aria-haspopup")}),ja(e).pipe(w(c=>i.next(c)),_(()=>i.complete()),m(c=>$({ref:e},c)))})}function mt(e,{viewport$:t},r=document.body){return Fa(e,{content$:new j(o=>{let n=e.title,i=wn(n);return o.next(i),e.removeAttribute("title"),r.append(i),()=>{i.remove(),e.setAttribute("title",n)}}),viewport$:t})}function Ua(e,t){let r=C(()=>z([tn(e),Ne(t)])).pipe(m(([{x:o,y:n},i])=>{let{width:a,height:s}=ce(e);return{x:o-i.x+a/2,y:n-i.y+s/2}}));return et(e).pipe(v(o=>r.pipe(m(n=>({active:o,offset:n})),Te(+!o||1/0))))}function kn(e,t,{target$:r}){let[o,n]=Array.from(e.children);return C(()=>{let i=new g,a=i.pipe(Z(),ie(!0));return i.subscribe({next({offset:s}){e.style.setProperty("--md-tooltip-x",`${s.x}px`),e.style.setProperty("--md-tooltip-y",`${s.y}px`)},complete(){e.style.removeProperty("--md-tooltip-x"),e.style.removeProperty("--md-tooltip-y")}}),tt(e).pipe(W(a)).subscribe(s=>{e.toggleAttribute("data-md-visible",s)}),O(i.pipe(b(({active:s})=>s)),i.pipe(_e(250),b(({active:s})=>!s))).subscribe({next({active:s}){s?e.prepend(o):o.remove()},complete(){e.prepend(o)}}),i.pipe(Me(16,me)).subscribe(({active:s})=>{o.classList.toggle("md-tooltip--active",s)}),i.pipe(pt(125,me),b(()=>!!e.offsetParent),m(()=>e.offsetParent.getBoundingClientRect()),m(({x:s})=>s)).subscribe({next(s){s?e.style.setProperty("--md-tooltip-0",`${-s}px`):e.style.removeProperty("--md-tooltip-0")},complete(){e.style.removeProperty("--md-tooltip-0")}}),h(n,"click").pipe(W(a),b(s=>!(s.metaKey||s.ctrlKey))).subscribe(s=>{s.stopPropagation(),s.preventDefault()}),h(n,"mousedown").pipe(W(a),re(i)).subscribe(([s,{active:p}])=>{var c;if(s.button!==0||s.metaKey||s.ctrlKey)s.preventDefault();else if(p){s.preventDefault();let l=e.parentElement.closest(".md-annotation");l instanceof HTMLElement?l.focus():(c=Ie())==null||c.blur()}}),r.pipe(W(a),b(s=>s===o),Ge(125)).subscribe(()=>e.focus()),Ua(e,t).pipe(w(s=>i.next(s)),_(()=>i.complete()),m(s=>$({ref:e},s)))})}function Wa(e){return e.tagName==="CODE"?P(".c, .c1, .cm",e):[e]}function Da(e){let t=[];for(let r of Wa(e)){let o=[],n=document.createNodeIterator(r,NodeFilter.SHOW_TEXT);for(let i=n.nextNode();i;i=n.nextNode())o.push(i);for(let i of o){let a;for(;a=/(\(\d+\))(!)?/.exec(i.textContent);){let[,s,p]=a;if(typeof p=="undefined"){let c=i.splitText(a.index);i=c.splitText(s.length),t.push(c)}else{i.textContent=s,t.push(i);break}}}}return t}function Hn(e,t){t.append(...Array.from(e.childNodes))}function fr(e,t,{target$:r,print$:o}){let n=t.closest("[id]"),i=n==null?void 0:n.id,a=new Map;for(let s of Da(t)){let[,p]=s.textContent.match(/\((\d+)\)/);fe(`:scope > li:nth-child(${p})`,e)&&(a.set(p,Tn(p,i)),s.replaceWith(a.get(p)))}return a.size===0?S:C(()=>{let s=new g,p=s.pipe(Z(),ie(!0)),c=[];for(let[l,f]of a)c.push([R(".md-typeset",f),R(`:scope > li:nth-child(${l})`,e)]);return o.pipe(W(p)).subscribe(l=>{e.hidden=!l,e.classList.toggle("md-annotation-list",l);for(let[f,u]of c)l?Hn(f,u):Hn(u,f)}),O(...[...a].map(([,l])=>kn(l,t,{target$:r}))).pipe(_(()=>s.complete()),pe())})}function $n(e){if(e.nextElementSibling){let t=e.nextElementSibling;if(t.tagName==="OL")return t;if(t.tagName==="P"&&!t.children.length)return $n(t)}}function Pn(e,t){return C(()=>{let r=$n(e);return typeof r!="undefined"?fr(r,e,t):S})}var Rn=Mt(Br());var Va=0;function In(e){if(e.nextElementSibling){let t=e.nextElementSibling;if(t.tagName==="OL")return t;if(t.tagName==="P"&&!t.children.length)return In(t)}}function Na(e){return ge(e).pipe(m(({width:t})=>({scrollable:St(e).width>t})),ee("scrollable"))}function jn(e,t){let{matches:r}=matchMedia("(hover)"),o=C(()=>{let n=new g,i=n.pipe(jr(1));n.subscribe(({scrollable:c})=>{c&&r?e.setAttribute("tabindex","0"):e.removeAttribute("tabindex")});let a=[];if(Rn.default.isSupported()&&(e.closest(".copy")||B("content.code.copy")&&!e.closest(".no-copy"))){let c=e.closest("pre");c.id=`__code_${Va++}`;let l=Sn(c.id);c.insertBefore(l,e),B("content.tooltips")&&a.push(mt(l,{viewport$}))}let s=e.closest(".highlight");if(s instanceof HTMLElement){let c=In(s);if(typeof c!="undefined"&&(s.classList.contains("annotate")||B("content.code.annotate"))){let l=fr(c,e,t);a.push(ge(s).pipe(W(i),m(({width:f,height:u})=>f&&u),K(),v(f=>f?l:S)))}}return P(":scope > span[id]",e).length&&e.classList.add("md-code__content"),Na(e).pipe(w(c=>n.next(c)),_(()=>n.complete()),m(c=>$({ref:e},c)),Re(...a))});return B("content.lazy")?tt(e).pipe(b(n=>n),Te(1),v(()=>o)):o}function za(e,{target$:t,print$:r}){let o=!0;return O(t.pipe(m(n=>n.closest("details:not([open])")),b(n=>e===n),m(()=>({action:"open",reveal:!0}))),r.pipe(b(n=>n||!o),w(()=>o=e.open),m(n=>({action:n?"open":"close"}))))}function Fn(e,t){return C(()=>{let r=new g;return r.subscribe(({action:o,reveal:n})=>{e.toggleAttribute("open",o==="open"),n&&e.scrollIntoView()}),za(e,t).pipe(w(o=>r.next(o)),_(()=>r.complete()),m(o=>$({ref:e},o)))})}var Un=".node circle,.node ellipse,.node path,.node polygon,.node rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}marker{fill:var(--md-mermaid-edge-color)!important}.edgeLabel .label rect{fill:#0000}.label{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.label foreignObject{line-height:normal;overflow:visible}.label div .edgeLabel{color:var(--md-mermaid-label-fg-color)}.edgeLabel,.edgeLabel p,.label div .edgeLabel{background-color:var(--md-mermaid-label-bg-color)}.edgeLabel,.edgeLabel p{fill:var(--md-mermaid-label-bg-color);color:var(--md-mermaid-edge-color)}.edgePath .path,.flowchart-link{stroke:var(--md-mermaid-edge-color);stroke-width:.05rem}.edgePath .arrowheadPath{fill:var(--md-mermaid-edge-color);stroke:none}.cluster rect{fill:var(--md-default-fg-color--lightest);stroke:var(--md-default-fg-color--lighter)}.cluster span{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}g #flowchart-circleEnd,g #flowchart-circleStart,g #flowchart-crossEnd,g #flowchart-crossStart,g #flowchart-pointEnd,g #flowchart-pointStart{stroke:none}g.classGroup line,g.classGroup rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}g.classGroup text{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.classLabel .box{fill:var(--md-mermaid-label-bg-color);background-color:var(--md-mermaid-label-bg-color);opacity:1}.classLabel .label{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.node .divider{stroke:var(--md-mermaid-node-fg-color)}.relation{stroke:var(--md-mermaid-edge-color)}.cardinality{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.cardinality text{fill:inherit!important}defs #classDiagram-compositionEnd,defs #classDiagram-compositionStart,defs #classDiagram-dependencyEnd,defs #classDiagram-dependencyStart,defs #classDiagram-extensionEnd,defs #classDiagram-extensionStart{fill:var(--md-mermaid-edge-color)!important;stroke:var(--md-mermaid-edge-color)!important}defs #classDiagram-aggregationEnd,defs #classDiagram-aggregationStart{fill:var(--md-mermaid-label-bg-color)!important;stroke:var(--md-mermaid-edge-color)!important}g.stateGroup rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}g.stateGroup .state-title{fill:var(--md-mermaid-label-fg-color)!important;font-family:var(--md-mermaid-font-family)}g.stateGroup .composit{fill:var(--md-mermaid-label-bg-color)}.nodeLabel,.nodeLabel p{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}a .nodeLabel{text-decoration:underline}.node circle.state-end,.node circle.state-start,.start-state{fill:var(--md-mermaid-edge-color);stroke:none}.end-state-inner,.end-state-outer{fill:var(--md-mermaid-edge-color)}.end-state-inner,.node circle.state-end{stroke:var(--md-mermaid-label-bg-color)}.transition{stroke:var(--md-mermaid-edge-color)}[id^=state-fork] rect,[id^=state-join] rect{fill:var(--md-mermaid-edge-color)!important;stroke:none!important}.statediagram-cluster.statediagram-cluster .inner{fill:var(--md-default-bg-color)}.statediagram-cluster rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}.statediagram-state rect.divider{fill:var(--md-default-fg-color--lightest);stroke:var(--md-default-fg-color--lighter)}defs #statediagram-barbEnd{stroke:var(--md-mermaid-edge-color)}.attributeBoxEven,.attributeBoxOdd{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}.entityBox{fill:var(--md-mermaid-label-bg-color);stroke:var(--md-mermaid-node-fg-color)}.entityLabel{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.relationshipLabelBox{fill:var(--md-mermaid-label-bg-color);fill-opacity:1;background-color:var(--md-mermaid-label-bg-color);opacity:1}.relationshipLabel{fill:var(--md-mermaid-label-fg-color)}.relationshipLine{stroke:var(--md-mermaid-edge-color)}defs #ONE_OR_MORE_END *,defs #ONE_OR_MORE_START *,defs #ONLY_ONE_END *,defs #ONLY_ONE_START *,defs #ZERO_OR_MORE_END *,defs #ZERO_OR_MORE_START *,defs #ZERO_OR_ONE_END *,defs #ZERO_OR_ONE_START *{stroke:var(--md-mermaid-edge-color)!important}defs #ZERO_OR_MORE_END circle,defs #ZERO_OR_MORE_START circle{fill:var(--md-mermaid-label-bg-color)}.actor{fill:var(--md-mermaid-sequence-actor-bg-color);stroke:var(--md-mermaid-sequence-actor-border-color)}text.actor>tspan{fill:var(--md-mermaid-sequence-actor-fg-color);font-family:var(--md-mermaid-font-family)}line{stroke:var(--md-mermaid-sequence-actor-line-color)}.actor-man circle,.actor-man line{fill:var(--md-mermaid-sequence-actorman-bg-color);stroke:var(--md-mermaid-sequence-actorman-line-color)}.messageLine0,.messageLine1{stroke:var(--md-mermaid-sequence-message-line-color)}.note{fill:var(--md-mermaid-sequence-note-bg-color);stroke:var(--md-mermaid-sequence-note-border-color)}.loopText,.loopText>tspan,.messageText,.noteText>tspan{stroke:none;font-family:var(--md-mermaid-font-family)!important}.messageText{fill:var(--md-mermaid-sequence-message-fg-color)}.loopText,.loopText>tspan{fill:var(--md-mermaid-sequence-loop-fg-color)}.noteText>tspan{fill:var(--md-mermaid-sequence-note-fg-color)}#arrowhead path{fill:var(--md-mermaid-sequence-message-line-color);stroke:none}.loopLine{fill:var(--md-mermaid-sequence-loop-bg-color);stroke:var(--md-mermaid-sequence-loop-border-color)}.labelBox{fill:var(--md-mermaid-sequence-label-bg-color);stroke:none}.labelText,.labelText>span{fill:var(--md-mermaid-sequence-label-fg-color);font-family:var(--md-mermaid-font-family)}.sequenceNumber{fill:var(--md-mermaid-sequence-number-fg-color)}rect.rect{fill:var(--md-mermaid-sequence-box-bg-color);stroke:none}rect.rect+text.text{fill:var(--md-mermaid-sequence-box-fg-color)}defs #sequencenumber{fill:var(--md-mermaid-sequence-number-bg-color)!important}";var Gr,Qa=0;function Ka(){return typeof mermaid=="undefined"||mermaid instanceof Element?Tt("https://unpkg.com/mermaid@11/dist/mermaid.min.js"):I(void 0)}function Wn(e){return e.classList.remove("mermaid"),Gr||(Gr=Ka().pipe(w(()=>mermaid.initialize({startOnLoad:!1,themeCSS:Un,sequence:{actorFontSize:"16px",messageFontSize:"16px",noteFontSize:"16px"}})),m(()=>{}),G(1))),Gr.subscribe(()=>co(this,null,function*(){e.classList.add("mermaid");let t=`__mermaid_${Qa++}`,r=x("div",{class:"mermaid"}),o=e.textContent,{svg:n,fn:i}=yield mermaid.render(t,o),a=r.attachShadow({mode:"closed"});a.innerHTML=n,e.replaceWith(r),i==null||i(a)})),Gr.pipe(m(()=>({ref:e})))}var Dn=x("table");function Vn(e){return e.replaceWith(Dn),Dn.replaceWith(An(e)),I({ref:e})}function Ya(e){let t=e.find(r=>r.checked)||e[0];return O(...e.map(r=>h(r,"change").pipe(m(()=>R(`label[for="${r.id}"]`))))).pipe(Q(R(`label[for="${t.id}"]`)),m(r=>({active:r})))}function Nn(e,{viewport$:t,target$:r}){let o=R(".tabbed-labels",e),n=P(":scope > input",e),i=Kr("prev");e.append(i);let a=Kr("next");return e.append(a),C(()=>{let s=new g,p=s.pipe(Z(),ie(!0));z([s,ge(e),tt(e)]).pipe(W(p),Me(1,me)).subscribe({next([{active:c},l]){let f=Ve(c),{width:u}=ce(c);e.style.setProperty("--md-indicator-x",`${f.x}px`),e.style.setProperty("--md-indicator-width",`${u}px`);let d=pr(o);(f.xd.x+l.width)&&o.scrollTo({left:Math.max(0,f.x-16),behavior:"smooth"})},complete(){e.style.removeProperty("--md-indicator-x"),e.style.removeProperty("--md-indicator-width")}}),z([Ne(o),ge(o)]).pipe(W(p)).subscribe(([c,l])=>{let f=St(o);i.hidden=c.x<16,a.hidden=c.x>f.width-l.width-16}),O(h(i,"click").pipe(m(()=>-1)),h(a,"click").pipe(m(()=>1))).pipe(W(p)).subscribe(c=>{let{width:l}=ce(o);o.scrollBy({left:l*c,behavior:"smooth"})}),r.pipe(W(p),b(c=>n.includes(c))).subscribe(c=>c.click()),o.classList.add("tabbed-labels--linked");for(let c of n){let l=R(`label[for="${c.id}"]`);l.replaceChildren(x("a",{href:`#${l.htmlFor}`,tabIndex:-1},...Array.from(l.childNodes))),h(l.firstElementChild,"click").pipe(W(p),b(f=>!(f.metaKey||f.ctrlKey)),w(f=>{f.preventDefault(),f.stopPropagation()})).subscribe(()=>{history.replaceState({},"",`#${l.htmlFor}`),l.click()})}return B("content.tabs.link")&&s.pipe(Ce(1),re(t)).subscribe(([{active:c},{offset:l}])=>{let f=c.innerText.trim();if(c.hasAttribute("data-md-switching"))c.removeAttribute("data-md-switching");else{let u=e.offsetTop-l.y;for(let y of P("[data-tabs]"))for(let L of P(":scope > input",y)){let X=R(`label[for="${L.id}"]`);if(X!==c&&X.innerText.trim()===f){X.setAttribute("data-md-switching",""),L.click();break}}window.scrollTo({top:e.offsetTop-u});let d=__md_get("__tabs")||[];__md_set("__tabs",[...new Set([f,...d])])}}),s.pipe(W(p)).subscribe(()=>{for(let c of P("audio, video",e))c.pause()}),Ya(n).pipe(w(c=>s.next(c)),_(()=>s.complete()),m(c=>$({ref:e},c)))}).pipe(Ke(se))}function zn(e,{viewport$:t,target$:r,print$:o}){return O(...P(".annotate:not(.highlight)",e).map(n=>Pn(n,{target$:r,print$:o})),...P("pre:not(.mermaid) > code",e).map(n=>jn(n,{target$:r,print$:o})),...P("pre.mermaid",e).map(n=>Wn(n)),...P("table:not([class])",e).map(n=>Vn(n)),...P("details",e).map(n=>Fn(n,{target$:r,print$:o})),...P("[data-tabs]",e).map(n=>Nn(n,{viewport$:t,target$:r})),...P("[title]",e).filter(()=>B("content.tooltips")).map(n=>mt(n,{viewport$:t})))}function Ba(e,{alert$:t}){return t.pipe(v(r=>O(I(!0),I(!1).pipe(Ge(2e3))).pipe(m(o=>({message:r,active:o})))))}function qn(e,t){let r=R(".md-typeset",e);return C(()=>{let o=new g;return o.subscribe(({message:n,active:i})=>{e.classList.toggle("md-dialog--active",i),r.textContent=n}),Ba(e,t).pipe(w(n=>o.next(n)),_(()=>o.complete()),m(n=>$({ref:e},n)))})}var Ga=0;function Ja(e,t){document.body.append(e);let{width:r}=ce(e);e.style.setProperty("--md-tooltip-width",`${r}px`),e.remove();let o=cr(t),n=typeof o!="undefined"?Ne(o):I({x:0,y:0}),i=O(et(t),$t(t)).pipe(K());return z([i,n]).pipe(m(([a,s])=>{let{x:p,y:c}=Ve(t),l=ce(t),f=t.closest("table");return f&&t.parentElement&&(p+=f.offsetLeft+t.parentElement.offsetLeft,c+=f.offsetTop+t.parentElement.offsetTop),{active:a,offset:{x:p-s.x+l.width/2-r/2,y:c-s.y+l.height+8}}}))}function Qn(e){let t=e.title;if(!t.length)return S;let r=`__tooltip_${Ga++}`,o=Rt(r,"inline"),n=R(".md-typeset",o);return n.innerHTML=t,C(()=>{let i=new g;return i.subscribe({next({offset:a}){o.style.setProperty("--md-tooltip-x",`${a.x}px`),o.style.setProperty("--md-tooltip-y",`${a.y}px`)},complete(){o.style.removeProperty("--md-tooltip-x"),o.style.removeProperty("--md-tooltip-y")}}),O(i.pipe(b(({active:a})=>a)),i.pipe(_e(250),b(({active:a})=>!a))).subscribe({next({active:a}){a?(e.insertAdjacentElement("afterend",o),e.setAttribute("aria-describedby",r),e.removeAttribute("title")):(o.remove(),e.removeAttribute("aria-describedby"),e.setAttribute("title",t))},complete(){o.remove(),e.removeAttribute("aria-describedby"),e.setAttribute("title",t)}}),i.pipe(Me(16,me)).subscribe(({active:a})=>{o.classList.toggle("md-tooltip--active",a)}),i.pipe(pt(125,me),b(()=>!!e.offsetParent),m(()=>e.offsetParent.getBoundingClientRect()),m(({x:a})=>a)).subscribe({next(a){a?o.style.setProperty("--md-tooltip-0",`${-a}px`):o.style.removeProperty("--md-tooltip-0")},complete(){o.style.removeProperty("--md-tooltip-0")}}),Ja(o,e).pipe(w(a=>i.next(a)),_(()=>i.complete()),m(a=>$({ref:e},a)))}).pipe(Ke(se))}function Xa({viewport$:e}){if(!B("header.autohide"))return I(!1);let t=e.pipe(m(({offset:{y:n}})=>n),Be(2,1),m(([n,i])=>[nMath.abs(i-n.y)>100),m(([,[n]])=>n),K()),o=ze("search");return z([e,o]).pipe(m(([{offset:n},i])=>n.y>400&&!i),K(),v(n=>n?r:I(!1)),Q(!1))}function Kn(e,t){return C(()=>z([ge(e),Xa(t)])).pipe(m(([{height:r},o])=>({height:r,hidden:o})),K((r,o)=>r.height===o.height&&r.hidden===o.hidden),G(1))}function Yn(e,{header$:t,main$:r}){return C(()=>{let o=new g,n=o.pipe(Z(),ie(!0));o.pipe(ee("active"),He(t)).subscribe(([{active:a},{hidden:s}])=>{e.classList.toggle("md-header--shadow",a&&!s),e.hidden=s});let i=ue(P("[title]",e)).pipe(b(()=>B("content.tooltips")),ne(a=>Qn(a)));return r.subscribe(o),t.pipe(W(n),m(a=>$({ref:e},a)),Re(i.pipe(W(n))))})}function Za(e,{viewport$:t,header$:r}){return mr(e,{viewport$:t,header$:r}).pipe(m(({offset:{y:o}})=>{let{height:n}=ce(e);return{active:o>=n}}),ee("active"))}function Bn(e,t){return C(()=>{let r=new g;r.subscribe({next({active:n}){e.classList.toggle("md-header__title--active",n)},complete(){e.classList.remove("md-header__title--active")}});let o=fe(".md-content h1");return typeof o=="undefined"?S:Za(o,t).pipe(w(n=>r.next(n)),_(()=>r.complete()),m(n=>$({ref:e},n)))})}function Gn(e,{viewport$:t,header$:r}){let o=r.pipe(m(({height:i})=>i),K()),n=o.pipe(v(()=>ge(e).pipe(m(({height:i})=>({top:e.offsetTop,bottom:e.offsetTop+i})),ee("bottom"))));return z([o,n,t]).pipe(m(([i,{top:a,bottom:s},{offset:{y:p},size:{height:c}}])=>(c=Math.max(0,c-Math.max(0,a-p,i)-Math.max(0,c+p-s)),{offset:a-i,height:c,active:a-i<=p})),K((i,a)=>i.offset===a.offset&&i.height===a.height&&i.active===a.active))}function es(e){let t=__md_get("__palette")||{index:e.findIndex(o=>matchMedia(o.getAttribute("data-md-color-media")).matches)},r=Math.max(0,Math.min(t.index,e.length-1));return I(...e).pipe(ne(o=>h(o,"change").pipe(m(()=>o))),Q(e[r]),m(o=>({index:e.indexOf(o),color:{media:o.getAttribute("data-md-color-media"),scheme:o.getAttribute("data-md-color-scheme"),primary:o.getAttribute("data-md-color-primary"),accent:o.getAttribute("data-md-color-accent")}})),G(1))}function Jn(e){let t=P("input",e),r=x("meta",{name:"theme-color"});document.head.appendChild(r);let o=x("meta",{name:"color-scheme"});document.head.appendChild(o);let n=Pt("(prefers-color-scheme: light)");return C(()=>{let i=new g;return i.subscribe(a=>{if(document.body.setAttribute("data-md-color-switching",""),a.color.media==="(prefers-color-scheme)"){let s=matchMedia("(prefers-color-scheme: light)"),p=document.querySelector(s.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");a.color.scheme=p.getAttribute("data-md-color-scheme"),a.color.primary=p.getAttribute("data-md-color-primary"),a.color.accent=p.getAttribute("data-md-color-accent")}for(let[s,p]of Object.entries(a.color))document.body.setAttribute(`data-md-color-${s}`,p);for(let s=0;sa.key==="Enter"),re(i,(a,s)=>s)).subscribe(({index:a})=>{a=(a+1)%t.length,t[a].click(),t[a].focus()}),i.pipe(m(()=>{let a=Se("header"),s=window.getComputedStyle(a);return o.content=s.colorScheme,s.backgroundColor.match(/\d+/g).map(p=>(+p).toString(16).padStart(2,"0")).join("")})).subscribe(a=>r.content=`#${a}`),i.pipe(ve(se)).subscribe(()=>{document.body.removeAttribute("data-md-color-switching")}),es(t).pipe(W(n.pipe(Ce(1))),ct(),w(a=>i.next(a)),_(()=>i.complete()),m(a=>$({ref:e},a)))})}function Xn(e,{progress$:t}){return C(()=>{let r=new g;return r.subscribe(({value:o})=>{e.style.setProperty("--md-progress-value",`${o}`)}),t.pipe(w(o=>r.next({value:o})),_(()=>r.complete()),m(o=>({ref:e,value:o})))})}var Jr=Mt(Br());function ts(e){e.setAttribute("data-md-copying","");let t=e.closest("[data-copy]"),r=t?t.getAttribute("data-copy"):e.innerText;return e.removeAttribute("data-md-copying"),r.trimEnd()}function Zn({alert$:e}){Jr.default.isSupported()&&new j(t=>{new Jr.default("[data-clipboard-target], [data-clipboard-text]",{text:r=>r.getAttribute("data-clipboard-text")||ts(R(r.getAttribute("data-clipboard-target")))}).on("success",r=>t.next(r))}).pipe(w(t=>{t.trigger.focus()}),m(()=>Ee("clipboard.copied"))).subscribe(e)}function ei(e,t){return e.protocol=t.protocol,e.hostname=t.hostname,e}function rs(e,t){let r=new Map;for(let o of P("url",e)){let n=R("loc",o),i=[ei(new URL(n.textContent),t)];r.set(`${i[0]}`,i);for(let a of P("[rel=alternate]",o)){let s=a.getAttribute("href");s!=null&&i.push(ei(new URL(s),t))}}return r}function ur(e){return un(new URL("sitemap.xml",e)).pipe(m(t=>rs(t,new URL(e))),de(()=>I(new Map)))}function os(e,t){if(!(e.target instanceof Element))return S;let r=e.target.closest("a");if(r===null)return S;if(r.target||e.metaKey||e.ctrlKey)return S;let o=new URL(r.href);return o.search=o.hash="",t.has(`${o}`)?(e.preventDefault(),I(new URL(r.href))):S}function ti(e){let t=new Map;for(let r of P(":scope > *",e.head))t.set(r.outerHTML,r);return t}function ri(e){for(let t of P("[href], [src]",e))for(let r of["href","src"]){let o=t.getAttribute(r);if(o&&!/^(?:[a-z]+:)?\/\//i.test(o)){t[r]=t[r];break}}return I(e)}function ns(e){for(let o of["[data-md-component=announce]","[data-md-component=container]","[data-md-component=header-topic]","[data-md-component=outdated]","[data-md-component=logo]","[data-md-component=skip]",...B("navigation.tabs.sticky")?["[data-md-component=tabs]"]:[]]){let n=fe(o),i=fe(o,e);typeof n!="undefined"&&typeof i!="undefined"&&n.replaceWith(i)}let t=ti(document);for(let[o,n]of ti(e))t.has(o)?t.delete(o):document.head.appendChild(n);for(let o of t.values()){let n=o.getAttribute("name");n!=="theme-color"&&n!=="color-scheme"&&o.remove()}let r=Se("container");return We(P("script",r)).pipe(v(o=>{let n=e.createElement("script");if(o.src){for(let i of o.getAttributeNames())n.setAttribute(i,o.getAttribute(i));return o.replaceWith(n),new j(i=>{n.onload=()=>i.complete()})}else return n.textContent=o.textContent,o.replaceWith(n),S}),Z(),ie(document))}function oi({location$:e,viewport$:t,progress$:r}){let o=xe();if(location.protocol==="file:")return S;let n=ur(o.base);I(document).subscribe(ri);let i=h(document.body,"click").pipe(He(n),v(([p,c])=>os(p,c)),pe()),a=h(window,"popstate").pipe(m(ye),pe());i.pipe(re(t)).subscribe(([p,{offset:c}])=>{history.replaceState(c,""),history.pushState(null,"",p)}),O(i,a).subscribe(e);let s=e.pipe(ee("pathname"),v(p=>fn(p,{progress$:r}).pipe(de(()=>(lt(p,!0),S)))),v(ri),v(ns),pe());return O(s.pipe(re(e,(p,c)=>c)),s.pipe(v(()=>e),ee("pathname"),v(()=>e),ee("hash")),e.pipe(K((p,c)=>p.pathname===c.pathname&&p.hash===c.hash),v(()=>i),w(()=>history.back()))).subscribe(p=>{var c,l;history.state!==null||!p.hash?window.scrollTo(0,(l=(c=history.state)==null?void 0:c.y)!=null?l:0):(history.scrollRestoration="auto",pn(p.hash),history.scrollRestoration="manual")}),e.subscribe(()=>{history.scrollRestoration="manual"}),h(window,"beforeunload").subscribe(()=>{history.scrollRestoration="auto"}),t.pipe(ee("offset"),_e(100)).subscribe(({offset:p})=>{history.replaceState(p,"")}),s}var ni=Mt(qr());function ii(e){let t=e.separator.split("|").map(n=>n.replace(/(\(\?[!=<][^)]+\))/g,"").length===0?"\uFFFD":n).join("|"),r=new RegExp(t,"img"),o=(n,i,a)=>`${i}${a}`;return n=>{n=n.replace(/[\s*+\-:~^]+/g," ").trim();let i=new RegExp(`(^|${e.separator}|)(${n.replace(/[|\\{}()[\]^$+*?.-]/g,"\\$&").replace(r,"|")})`,"img");return a=>(0,ni.default)(a).replace(i,o).replace(/<\/mark>(\s+)]*>/img,"$1")}}function jt(e){return e.type===1}function dr(e){return e.type===3}function ai(e,t){let r=yn(e);return O(I(location.protocol!=="file:"),ze("search")).pipe(Ae(o=>o),v(()=>t)).subscribe(({config:o,docs:n})=>r.next({type:0,data:{config:o,docs:n,options:{suggest:B("search.suggest")}}})),r}function si(e){var l;let{selectedVersionSitemap:t,selectedVersionBaseURL:r,currentLocation:o,currentBaseURL:n}=e,i=(l=Xr(n))==null?void 0:l.pathname;if(i===void 0)return;let a=ss(o.pathname,i);if(a===void 0)return;let s=ps(t.keys());if(!t.has(s))return;let p=Xr(a,s);if(!p||!t.has(p.href))return;let c=Xr(a,r);if(c)return c.hash=o.hash,c.search=o.search,c}function Xr(e,t){try{return new URL(e,t)}catch(r){return}}function ss(e,t){if(e.startsWith(t))return e.slice(t.length)}function cs(e,t){let r=Math.min(e.length,t.length),o;for(o=0;oS)),o=r.pipe(m(n=>{let[,i]=t.base.match(/([^/]+)\/?$/);return n.find(({version:a,aliases:s})=>a===i||s.includes(i))||n[0]}));r.pipe(m(n=>new Map(n.map(i=>[`${new URL(`../${i.version}/`,t.base)}`,i]))),v(n=>h(document.body,"click").pipe(b(i=>!i.metaKey&&!i.ctrlKey),re(o),v(([i,a])=>{if(i.target instanceof Element){let s=i.target.closest("a");if(s&&!s.target&&n.has(s.href)){let p=s.href;return!i.target.closest(".md-version")&&n.get(p)===a?S:(i.preventDefault(),I(new URL(p)))}}return S}),v(i=>ur(i).pipe(m(a=>{var s;return(s=si({selectedVersionSitemap:a,selectedVersionBaseURL:i,currentLocation:ye(),currentBaseURL:t.base}))!=null?s:i})))))).subscribe(n=>lt(n,!0)),z([r,o]).subscribe(([n,i])=>{R(".md-header__topic").appendChild(Cn(n,i))}),e.pipe(v(()=>o)).subscribe(n=>{var a;let i=__md_get("__outdated",sessionStorage);if(i===null){i=!0;let s=((a=t.version)==null?void 0:a.default)||"latest";Array.isArray(s)||(s=[s]);e:for(let p of s)for(let c of n.aliases.concat(n.version))if(new RegExp(p,"i").test(c)){i=!1;break e}__md_set("__outdated",i,sessionStorage)}if(i)for(let s of ae("outdated"))s.hidden=!1})}function ls(e,{worker$:t}){let{searchParams:r}=ye();r.has("q")&&(Je("search",!0),e.value=r.get("q"),e.focus(),ze("search").pipe(Ae(i=>!i)).subscribe(()=>{let i=ye();i.searchParams.delete("q"),history.replaceState({},"",`${i}`)}));let o=et(e),n=O(t.pipe(Ae(jt)),h(e,"keyup"),o).pipe(m(()=>e.value),K());return z([n,o]).pipe(m(([i,a])=>({value:i,focus:a})),G(1))}function pi(e,{worker$:t}){let r=new g,o=r.pipe(Z(),ie(!0));z([t.pipe(Ae(jt)),r],(i,a)=>a).pipe(ee("value")).subscribe(({value:i})=>t.next({type:2,data:i})),r.pipe(ee("focus")).subscribe(({focus:i})=>{i&&Je("search",i)}),h(e.form,"reset").pipe(W(o)).subscribe(()=>e.focus());let n=R("header [for=__search]");return h(n,"click").subscribe(()=>e.focus()),ls(e,{worker$:t}).pipe(w(i=>r.next(i)),_(()=>r.complete()),m(i=>$({ref:e},i)),G(1))}function li(e,{worker$:t,query$:r}){let o=new g,n=on(e.parentElement).pipe(b(Boolean)),i=e.parentElement,a=R(":scope > :first-child",e),s=R(":scope > :last-child",e);ze("search").subscribe(l=>s.setAttribute("role",l?"list":"presentation")),o.pipe(re(r),Wr(t.pipe(Ae(jt)))).subscribe(([{items:l},{value:f}])=>{switch(l.length){case 0:a.textContent=f.length?Ee("search.result.none"):Ee("search.result.placeholder");break;case 1:a.textContent=Ee("search.result.one");break;default:let u=sr(l.length);a.textContent=Ee("search.result.other",u)}});let p=o.pipe(w(()=>s.innerHTML=""),v(({items:l})=>O(I(...l.slice(0,10)),I(...l.slice(10)).pipe(Be(4),Vr(n),v(([f])=>f)))),m(Mn),pe());return p.subscribe(l=>s.appendChild(l)),p.pipe(ne(l=>{let f=fe("details",l);return typeof f=="undefined"?S:h(f,"toggle").pipe(W(o),m(()=>f))})).subscribe(l=>{l.open===!1&&l.offsetTop<=i.scrollTop&&i.scrollTo({top:l.offsetTop})}),t.pipe(b(dr),m(({data:l})=>l)).pipe(w(l=>o.next(l)),_(()=>o.complete()),m(l=>$({ref:e},l)))}function ms(e,{query$:t}){return t.pipe(m(({value:r})=>{let o=ye();return o.hash="",r=r.replace(/\s+/g,"+").replace(/&/g,"%26").replace(/=/g,"%3D"),o.search=`q=${r}`,{url:o}}))}function mi(e,t){let r=new g,o=r.pipe(Z(),ie(!0));return r.subscribe(({url:n})=>{e.setAttribute("data-clipboard-text",e.href),e.href=`${n}`}),h(e,"click").pipe(W(o)).subscribe(n=>n.preventDefault()),ms(e,t).pipe(w(n=>r.next(n)),_(()=>r.complete()),m(n=>$({ref:e},n)))}function fi(e,{worker$:t,keyboard$:r}){let o=new g,n=Se("search-query"),i=O(h(n,"keydown"),h(n,"focus")).pipe(ve(se),m(()=>n.value),K());return o.pipe(He(i),m(([{suggest:s},p])=>{let c=p.split(/([\s-]+)/);if(s!=null&&s.length&&c[c.length-1]){let l=s[s.length-1];l.startsWith(c[c.length-1])&&(c[c.length-1]=l)}else c.length=0;return c})).subscribe(s=>e.innerHTML=s.join("").replace(/\s/g," ")),r.pipe(b(({mode:s})=>s==="search")).subscribe(s=>{switch(s.type){case"ArrowRight":e.innerText.length&&n.selectionStart===n.value.length&&(n.value=e.innerText);break}}),t.pipe(b(dr),m(({data:s})=>s)).pipe(w(s=>o.next(s)),_(()=>o.complete()),m(()=>({ref:e})))}function ui(e,{index$:t,keyboard$:r}){let o=xe();try{let n=ai(o.search,t),i=Se("search-query",e),a=Se("search-result",e);h(e,"click").pipe(b(({target:p})=>p instanceof Element&&!!p.closest("a"))).subscribe(()=>Je("search",!1)),r.pipe(b(({mode:p})=>p==="search")).subscribe(p=>{let c=Ie();switch(p.type){case"Enter":if(c===i){let l=new Map;for(let f of P(":first-child [href]",a)){let u=f.firstElementChild;l.set(f,parseFloat(u.getAttribute("data-md-score")))}if(l.size){let[[f]]=[...l].sort(([,u],[,d])=>d-u);f.click()}p.claim()}break;case"Escape":case"Tab":Je("search",!1),i.blur();break;case"ArrowUp":case"ArrowDown":if(typeof c=="undefined")i.focus();else{let l=[i,...P(":not(details) > [href], summary, details[open] [href]",a)],f=Math.max(0,(Math.max(0,l.indexOf(c))+l.length+(p.type==="ArrowUp"?-1:1))%l.length);l[f].focus()}p.claim();break;default:i!==Ie()&&i.focus()}}),r.pipe(b(({mode:p})=>p==="global")).subscribe(p=>{switch(p.type){case"f":case"s":case"/":i.focus(),i.select(),p.claim();break}});let s=pi(i,{worker$:n});return O(s,li(a,{worker$:n,query$:s})).pipe(Re(...ae("search-share",e).map(p=>mi(p,{query$:s})),...ae("search-suggest",e).map(p=>fi(p,{worker$:n,keyboard$:r}))))}catch(n){return e.hidden=!0,Ye}}function di(e,{index$:t,location$:r}){return z([t,r.pipe(Q(ye()),b(o=>!!o.searchParams.get("h")))]).pipe(m(([o,n])=>ii(o.config)(n.searchParams.get("h"))),m(o=>{var a;let n=new Map,i=document.createNodeIterator(e,NodeFilter.SHOW_TEXT);for(let s=i.nextNode();s;s=i.nextNode())if((a=s.parentElement)!=null&&a.offsetHeight){let p=s.textContent,c=o(p);c.length>p.length&&n.set(s,c)}for(let[s,p]of n){let{childNodes:c}=x("span",null,p);s.replaceWith(...Array.from(c))}return{ref:e,nodes:n}}))}function fs(e,{viewport$:t,main$:r}){let o=e.closest(".md-grid"),n=o.offsetTop-o.parentElement.offsetTop;return z([r,t]).pipe(m(([{offset:i,height:a},{offset:{y:s}}])=>(a=a+Math.min(n,Math.max(0,s-i))-n,{height:a,locked:s>=i+n})),K((i,a)=>i.height===a.height&&i.locked===a.locked))}function Zr(e,o){var n=o,{header$:t}=n,r=so(n,["header$"]);let i=R(".md-sidebar__scrollwrap",e),{y:a}=Ve(i);return C(()=>{let s=new g,p=s.pipe(Z(),ie(!0)),c=s.pipe(Me(0,me));return c.pipe(re(t)).subscribe({next([{height:l},{height:f}]){i.style.height=`${l-2*a}px`,e.style.top=`${f}px`},complete(){i.style.height="",e.style.top=""}}),c.pipe(Ae()).subscribe(()=>{for(let l of P(".md-nav__link--active[href]",e)){if(!l.clientHeight)continue;let f=l.closest(".md-sidebar__scrollwrap");if(typeof f!="undefined"){let u=l.offsetTop-f.offsetTop,{height:d}=ce(f);f.scrollTo({top:u-d/2})}}}),ue(P("label[tabindex]",e)).pipe(ne(l=>h(l,"click").pipe(ve(se),m(()=>l),W(p)))).subscribe(l=>{let f=R(`[id="${l.htmlFor}"]`);R(`[aria-labelledby="${l.id}"]`).setAttribute("aria-expanded",`${f.checked}`)}),fs(e,r).pipe(w(l=>s.next(l)),_(()=>s.complete()),m(l=>$({ref:e},l)))})}function hi(e,t){if(typeof t!="undefined"){let r=`https://api.github.com/repos/${e}/${t}`;return st(je(`${r}/releases/latest`).pipe(de(()=>S),m(o=>({version:o.tag_name})),De({})),je(r).pipe(de(()=>S),m(o=>({stars:o.stargazers_count,forks:o.forks_count})),De({}))).pipe(m(([o,n])=>$($({},o),n)))}else{let r=`https://api.github.com/users/${e}`;return je(r).pipe(m(o=>({repositories:o.public_repos})),De({}))}}function bi(e,t){let r=`https://${e}/api/v4/projects/${encodeURIComponent(t)}`;return st(je(`${r}/releases/permalink/latest`).pipe(de(()=>S),m(({tag_name:o})=>({version:o})),De({})),je(r).pipe(de(()=>S),m(({star_count:o,forks_count:n})=>({stars:o,forks:n})),De({}))).pipe(m(([o,n])=>$($({},o),n)))}function vi(e){let t=e.match(/^.+github\.com\/([^/]+)\/?([^/]+)?/i);if(t){let[,r,o]=t;return hi(r,o)}if(t=e.match(/^.+?([^/]*gitlab[^/]+)\/(.+?)\/?$/i),t){let[,r,o]=t;return bi(r,o)}return S}var us;function ds(e){return us||(us=C(()=>{let t=__md_get("__source",sessionStorage);if(t)return I(t);if(ae("consent").length){let o=__md_get("__consent");if(!(o&&o.github))return S}return vi(e.href).pipe(w(o=>__md_set("__source",o,sessionStorage)))}).pipe(de(()=>S),b(t=>Object.keys(t).length>0),m(t=>({facts:t})),G(1)))}function gi(e){let t=R(":scope > :last-child",e);return C(()=>{let r=new g;return r.subscribe(({facts:o})=>{t.appendChild(_n(o)),t.classList.add("md-source__repository--active")}),ds(e).pipe(w(o=>r.next(o)),_(()=>r.complete()),m(o=>$({ref:e},o)))})}function hs(e,{viewport$:t,header$:r}){return ge(document.body).pipe(v(()=>mr(e,{header$:r,viewport$:t})),m(({offset:{y:o}})=>({hidden:o>=10})),ee("hidden"))}function yi(e,t){return C(()=>{let r=new g;return r.subscribe({next({hidden:o}){e.hidden=o},complete(){e.hidden=!1}}),(B("navigation.tabs.sticky")?I({hidden:!1}):hs(e,t)).pipe(w(o=>r.next(o)),_(()=>r.complete()),m(o=>$({ref:e},o)))})}function bs(e,{viewport$:t,header$:r}){let o=new Map,n=P(".md-nav__link",e);for(let s of n){let p=decodeURIComponent(s.hash.substring(1)),c=fe(`[id="${p}"]`);typeof c!="undefined"&&o.set(s,c)}let i=r.pipe(ee("height"),m(({height:s})=>{let p=Se("main"),c=R(":scope > :first-child",p);return s+.8*(c.offsetTop-p.offsetTop)}),pe());return ge(document.body).pipe(ee("height"),v(s=>C(()=>{let p=[];return I([...o].reduce((c,[l,f])=>{for(;p.length&&o.get(p[p.length-1]).tagName>=f.tagName;)p.pop();let u=f.offsetTop;for(;!u&&f.parentElement;)f=f.parentElement,u=f.offsetTop;let d=f.offsetParent;for(;d;d=d.offsetParent)u+=d.offsetTop;return c.set([...p=[...p,l]].reverse(),u)},new Map))}).pipe(m(p=>new Map([...p].sort(([,c],[,l])=>c-l))),He(i),v(([p,c])=>t.pipe(Fr(([l,f],{offset:{y:u},size:d})=>{let y=u+d.height>=Math.floor(s.height);for(;f.length;){let[,L]=f[0];if(L-c=u&&!y)f=[l.pop(),...f];else break}return[l,f]},[[],[...p]]),K((l,f)=>l[0]===f[0]&&l[1]===f[1])))))).pipe(m(([s,p])=>({prev:s.map(([c])=>c),next:p.map(([c])=>c)})),Q({prev:[],next:[]}),Be(2,1),m(([s,p])=>s.prev.length{let i=new g,a=i.pipe(Z(),ie(!0));if(i.subscribe(({prev:s,next:p})=>{for(let[c]of p)c.classList.remove("md-nav__link--passed"),c.classList.remove("md-nav__link--active");for(let[c,[l]]of s.entries())l.classList.add("md-nav__link--passed"),l.classList.toggle("md-nav__link--active",c===s.length-1)}),B("toc.follow")){let s=O(t.pipe(_e(1),m(()=>{})),t.pipe(_e(250),m(()=>"smooth")));i.pipe(b(({prev:p})=>p.length>0),He(o.pipe(ve(se))),re(s)).subscribe(([[{prev:p}],c])=>{let[l]=p[p.length-1];if(l.offsetHeight){let f=cr(l);if(typeof f!="undefined"){let u=l.offsetTop-f.offsetTop,{height:d}=ce(f);f.scrollTo({top:u-d/2,behavior:c})}}})}return B("navigation.tracking")&&t.pipe(W(a),ee("offset"),_e(250),Ce(1),W(n.pipe(Ce(1))),ct({delay:250}),re(i)).subscribe(([,{prev:s}])=>{let p=ye(),c=s[s.length-1];if(c&&c.length){let[l]=c,{hash:f}=new URL(l.href);p.hash!==f&&(p.hash=f,history.replaceState({},"",`${p}`))}else p.hash="",history.replaceState({},"",`${p}`)}),bs(e,{viewport$:t,header$:r}).pipe(w(s=>i.next(s)),_(()=>i.complete()),m(s=>$({ref:e},s)))})}function vs(e,{viewport$:t,main$:r,target$:o}){let n=t.pipe(m(({offset:{y:a}})=>a),Be(2,1),m(([a,s])=>a>s&&s>0),K()),i=r.pipe(m(({active:a})=>a));return z([i,n]).pipe(m(([a,s])=>!(a&&s)),K(),W(o.pipe(Ce(1))),ie(!0),ct({delay:250}),m(a=>({hidden:a})))}function Ei(e,{viewport$:t,header$:r,main$:o,target$:n}){let i=new g,a=i.pipe(Z(),ie(!0));return i.subscribe({next({hidden:s}){e.hidden=s,s?(e.setAttribute("tabindex","-1"),e.blur()):e.removeAttribute("tabindex")},complete(){e.style.top="",e.hidden=!0,e.removeAttribute("tabindex")}}),r.pipe(W(a),ee("height")).subscribe(({height:s})=>{e.style.top=`${s+16}px`}),h(e,"click").subscribe(s=>{s.preventDefault(),window.scrollTo({top:0})}),vs(e,{viewport$:t,main$:o,target$:n}).pipe(w(s=>i.next(s)),_(()=>i.complete()),m(s=>$({ref:e},s)))}function wi({document$:e,viewport$:t}){e.pipe(v(()=>P(".md-ellipsis")),ne(r=>tt(r).pipe(W(e.pipe(Ce(1))),b(o=>o),m(()=>r),Te(1))),b(r=>r.offsetWidth{let o=r.innerText,n=r.closest("a")||r;return n.title=o,B("content.tooltips")?mt(n,{viewport$:t}).pipe(W(e.pipe(Ce(1))),_(()=>n.removeAttribute("title"))):S})).subscribe(),B("content.tooltips")&&e.pipe(v(()=>P(".md-status")),ne(r=>mt(r,{viewport$:t}))).subscribe()}function Ti({document$:e,tablet$:t}){e.pipe(v(()=>P(".md-toggle--indeterminate")),w(r=>{r.indeterminate=!0,r.checked=!1}),ne(r=>h(r,"change").pipe(Dr(()=>r.classList.contains("md-toggle--indeterminate")),m(()=>r))),re(t)).subscribe(([r,o])=>{r.classList.remove("md-toggle--indeterminate"),o&&(r.checked=!1)})}function gs(){return/(iPad|iPhone|iPod)/.test(navigator.userAgent)}function Si({document$:e}){e.pipe(v(()=>P("[data-md-scrollfix]")),w(t=>t.removeAttribute("data-md-scrollfix")),b(gs),ne(t=>h(t,"touchstart").pipe(m(()=>t)))).subscribe(t=>{let r=t.scrollTop;r===0?t.scrollTop=1:r+t.offsetHeight===t.scrollHeight&&(t.scrollTop=r-1)})}function Oi({viewport$:e,tablet$:t}){z([ze("search"),t]).pipe(m(([r,o])=>r&&!o),v(r=>I(r).pipe(Ge(r?400:100))),re(e)).subscribe(([r,{offset:{y:o}}])=>{if(r)document.body.setAttribute("data-md-scrolllock",""),document.body.style.top=`-${o}px`;else{let n=-1*parseInt(document.body.style.top,10);document.body.removeAttribute("data-md-scrolllock"),document.body.style.top="",n&&window.scrollTo(0,n)}})}Object.entries||(Object.entries=function(e){let t=[];for(let r of Object.keys(e))t.push([r,e[r]]);return t});Object.values||(Object.values=function(e){let t=[];for(let r of Object.keys(e))t.push(e[r]);return t});typeof Element!="undefined"&&(Element.prototype.scrollTo||(Element.prototype.scrollTo=function(e,t){typeof e=="object"?(this.scrollLeft=e.left,this.scrollTop=e.top):(this.scrollLeft=e,this.scrollTop=t)}),Element.prototype.replaceWith||(Element.prototype.replaceWith=function(...e){let t=this.parentNode;if(t){e.length===0&&t.removeChild(this);for(let r=e.length-1;r>=0;r--){let o=e[r];typeof o=="string"?o=document.createTextNode(o):o.parentNode&&o.parentNode.removeChild(o),r?t.insertBefore(this.previousSibling,o):t.replaceChild(o,this)}}}));function ys(){return location.protocol==="file:"?Tt(`${new URL("search/search_index.js",eo.base)}`).pipe(m(()=>__index),G(1)):je(new URL("search/search_index.json",eo.base))}document.documentElement.classList.remove("no-js");document.documentElement.classList.add("js");var ot=Go(),Ut=sn(),Lt=ln(Ut),to=an(),Oe=gn(),hr=Pt("(min-width: 960px)"),Mi=Pt("(min-width: 1220px)"),_i=mn(),eo=xe(),Ai=document.forms.namedItem("search")?ys():Ye,ro=new g;Zn({alert$:ro});var oo=new g;B("navigation.instant")&&oi({location$:Ut,viewport$:Oe,progress$:oo}).subscribe(ot);var Li;((Li=eo.version)==null?void 0:Li.provider)==="mike"&&ci({document$:ot});O(Ut,Lt).pipe(Ge(125)).subscribe(()=>{Je("drawer",!1),Je("search",!1)});to.pipe(b(({mode:e})=>e==="global")).subscribe(e=>{switch(e.type){case"p":case",":let t=fe("link[rel=prev]");typeof t!="undefined"&<(t);break;case"n":case".":let r=fe("link[rel=next]");typeof r!="undefined"&<(r);break;case"Enter":let o=Ie();o instanceof HTMLLabelElement&&o.click()}});wi({viewport$:Oe,document$:ot});Ti({document$:ot,tablet$:hr});Si({document$:ot});Oi({viewport$:Oe,tablet$:hr});var rt=Kn(Se("header"),{viewport$:Oe}),Ft=ot.pipe(m(()=>Se("main")),v(e=>Gn(e,{viewport$:Oe,header$:rt})),G(1)),xs=O(...ae("consent").map(e=>En(e,{target$:Lt})),...ae("dialog").map(e=>qn(e,{alert$:ro})),...ae("palette").map(e=>Jn(e)),...ae("progress").map(e=>Xn(e,{progress$:oo})),...ae("search").map(e=>ui(e,{index$:Ai,keyboard$:to})),...ae("source").map(e=>gi(e))),Es=C(()=>O(...ae("announce").map(e=>xn(e)),...ae("content").map(e=>zn(e,{viewport$:Oe,target$:Lt,print$:_i})),...ae("content").map(e=>B("search.highlight")?di(e,{index$:Ai,location$:Ut}):S),...ae("header").map(e=>Yn(e,{viewport$:Oe,header$:rt,main$:Ft})),...ae("header-title").map(e=>Bn(e,{viewport$:Oe,header$:rt})),...ae("sidebar").map(e=>e.getAttribute("data-md-type")==="navigation"?Nr(Mi,()=>Zr(e,{viewport$:Oe,header$:rt,main$:Ft})):Nr(hr,()=>Zr(e,{viewport$:Oe,header$:rt,main$:Ft}))),...ae("tabs").map(e=>yi(e,{viewport$:Oe,header$:rt})),...ae("toc").map(e=>xi(e,{viewport$:Oe,header$:rt,main$:Ft,target$:Lt})),...ae("top").map(e=>Ei(e,{viewport$:Oe,header$:rt,main$:Ft,target$:Lt})))),Ci=ot.pipe(v(()=>Es),Re(xs),G(1));Ci.subscribe();window.document$=ot;window.location$=Ut;window.target$=Lt;window.keyboard$=to;window.viewport$=Oe;window.tablet$=hr;window.screen$=Mi;window.print$=_i;window.alert$=ro;window.progress$=oo;window.component$=Ci;})(); +//# sourceMappingURL=bundle.83f73b43.min.js.map + diff --git a/3.4.0/assets/javascripts/bundle.83f73b43.min.js.map b/3.4.0/assets/javascripts/bundle.83f73b43.min.js.map new file mode 100644 index 000000000..fe920b7d6 --- /dev/null +++ b/3.4.0/assets/javascripts/bundle.83f73b43.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["node_modules/focus-visible/dist/focus-visible.js", "node_modules/escape-html/index.js", "node_modules/clipboard/dist/clipboard.js", "src/templates/assets/javascripts/bundle.ts", "node_modules/tslib/tslib.es6.mjs", "node_modules/rxjs/src/internal/util/isFunction.ts", "node_modules/rxjs/src/internal/util/createErrorClass.ts", "node_modules/rxjs/src/internal/util/UnsubscriptionError.ts", "node_modules/rxjs/src/internal/util/arrRemove.ts", "node_modules/rxjs/src/internal/Subscription.ts", "node_modules/rxjs/src/internal/config.ts", "node_modules/rxjs/src/internal/scheduler/timeoutProvider.ts", "node_modules/rxjs/src/internal/util/reportUnhandledError.ts", "node_modules/rxjs/src/internal/util/noop.ts", "node_modules/rxjs/src/internal/NotificationFactories.ts", "node_modules/rxjs/src/internal/util/errorContext.ts", "node_modules/rxjs/src/internal/Subscriber.ts", "node_modules/rxjs/src/internal/symbol/observable.ts", "node_modules/rxjs/src/internal/util/identity.ts", "node_modules/rxjs/src/internal/util/pipe.ts", "node_modules/rxjs/src/internal/Observable.ts", "node_modules/rxjs/src/internal/util/lift.ts", "node_modules/rxjs/src/internal/operators/OperatorSubscriber.ts", "node_modules/rxjs/src/internal/scheduler/animationFrameProvider.ts", "node_modules/rxjs/src/internal/util/ObjectUnsubscribedError.ts", "node_modules/rxjs/src/internal/Subject.ts", "node_modules/rxjs/src/internal/BehaviorSubject.ts", "node_modules/rxjs/src/internal/scheduler/dateTimestampProvider.ts", "node_modules/rxjs/src/internal/ReplaySubject.ts", "node_modules/rxjs/src/internal/scheduler/Action.ts", "node_modules/rxjs/src/internal/scheduler/intervalProvider.ts", "node_modules/rxjs/src/internal/scheduler/AsyncAction.ts", "node_modules/rxjs/src/internal/Scheduler.ts", "node_modules/rxjs/src/internal/scheduler/AsyncScheduler.ts", "node_modules/rxjs/src/internal/scheduler/async.ts", "node_modules/rxjs/src/internal/scheduler/QueueAction.ts", "node_modules/rxjs/src/internal/scheduler/QueueScheduler.ts", "node_modules/rxjs/src/internal/scheduler/queue.ts", "node_modules/rxjs/src/internal/scheduler/AnimationFrameAction.ts", "node_modules/rxjs/src/internal/scheduler/AnimationFrameScheduler.ts", "node_modules/rxjs/src/internal/scheduler/animationFrame.ts", "node_modules/rxjs/src/internal/observable/empty.ts", "node_modules/rxjs/src/internal/util/isScheduler.ts", "node_modules/rxjs/src/internal/util/args.ts", "node_modules/rxjs/src/internal/util/isArrayLike.ts", "node_modules/rxjs/src/internal/util/isPromise.ts", "node_modules/rxjs/src/internal/util/isInteropObservable.ts", "node_modules/rxjs/src/internal/util/isAsyncIterable.ts", "node_modules/rxjs/src/internal/util/throwUnobservableError.ts", "node_modules/rxjs/src/internal/symbol/iterator.ts", "node_modules/rxjs/src/internal/util/isIterable.ts", "node_modules/rxjs/src/internal/util/isReadableStreamLike.ts", "node_modules/rxjs/src/internal/observable/innerFrom.ts", "node_modules/rxjs/src/internal/util/executeSchedule.ts", "node_modules/rxjs/src/internal/operators/observeOn.ts", "node_modules/rxjs/src/internal/operators/subscribeOn.ts", "node_modules/rxjs/src/internal/scheduled/scheduleObservable.ts", "node_modules/rxjs/src/internal/scheduled/schedulePromise.ts", "node_modules/rxjs/src/internal/scheduled/scheduleArray.ts", "node_modules/rxjs/src/internal/scheduled/scheduleIterable.ts", "node_modules/rxjs/src/internal/scheduled/scheduleAsyncIterable.ts", "node_modules/rxjs/src/internal/scheduled/scheduleReadableStreamLike.ts", "node_modules/rxjs/src/internal/scheduled/scheduled.ts", "node_modules/rxjs/src/internal/observable/from.ts", "node_modules/rxjs/src/internal/observable/of.ts", "node_modules/rxjs/src/internal/observable/throwError.ts", "node_modules/rxjs/src/internal/util/EmptyError.ts", "node_modules/rxjs/src/internal/util/isDate.ts", "node_modules/rxjs/src/internal/operators/map.ts", "node_modules/rxjs/src/internal/util/mapOneOrManyArgs.ts", "node_modules/rxjs/src/internal/util/argsArgArrayOrObject.ts", "node_modules/rxjs/src/internal/util/createObject.ts", "node_modules/rxjs/src/internal/observable/combineLatest.ts", "node_modules/rxjs/src/internal/operators/mergeInternals.ts", "node_modules/rxjs/src/internal/operators/mergeMap.ts", "node_modules/rxjs/src/internal/operators/mergeAll.ts", "node_modules/rxjs/src/internal/operators/concatAll.ts", "node_modules/rxjs/src/internal/observable/concat.ts", "node_modules/rxjs/src/internal/observable/defer.ts", "node_modules/rxjs/src/internal/observable/fromEvent.ts", "node_modules/rxjs/src/internal/observable/fromEventPattern.ts", "node_modules/rxjs/src/internal/observable/timer.ts", "node_modules/rxjs/src/internal/observable/merge.ts", "node_modules/rxjs/src/internal/observable/never.ts", "node_modules/rxjs/src/internal/util/argsOrArgArray.ts", "node_modules/rxjs/src/internal/operators/filter.ts", "node_modules/rxjs/src/internal/observable/zip.ts", "node_modules/rxjs/src/internal/operators/audit.ts", "node_modules/rxjs/src/internal/operators/auditTime.ts", "node_modules/rxjs/src/internal/operators/bufferCount.ts", "node_modules/rxjs/src/internal/operators/catchError.ts", "node_modules/rxjs/src/internal/operators/scanInternals.ts", "node_modules/rxjs/src/internal/operators/combineLatest.ts", "node_modules/rxjs/src/internal/operators/combineLatestWith.ts", "node_modules/rxjs/src/internal/operators/debounce.ts", "node_modules/rxjs/src/internal/operators/debounceTime.ts", "node_modules/rxjs/src/internal/operators/defaultIfEmpty.ts", "node_modules/rxjs/src/internal/operators/take.ts", "node_modules/rxjs/src/internal/operators/ignoreElements.ts", "node_modules/rxjs/src/internal/operators/mapTo.ts", "node_modules/rxjs/src/internal/operators/delayWhen.ts", "node_modules/rxjs/src/internal/operators/delay.ts", "node_modules/rxjs/src/internal/operators/distinctUntilChanged.ts", "node_modules/rxjs/src/internal/operators/distinctUntilKeyChanged.ts", "node_modules/rxjs/src/internal/operators/throwIfEmpty.ts", "node_modules/rxjs/src/internal/operators/endWith.ts", "node_modules/rxjs/src/internal/operators/finalize.ts", "node_modules/rxjs/src/internal/operators/first.ts", "node_modules/rxjs/src/internal/operators/takeLast.ts", "node_modules/rxjs/src/internal/operators/merge.ts", "node_modules/rxjs/src/internal/operators/mergeWith.ts", "node_modules/rxjs/src/internal/operators/repeat.ts", "node_modules/rxjs/src/internal/operators/scan.ts", "node_modules/rxjs/src/internal/operators/share.ts", "node_modules/rxjs/src/internal/operators/shareReplay.ts", "node_modules/rxjs/src/internal/operators/skip.ts", "node_modules/rxjs/src/internal/operators/skipUntil.ts", "node_modules/rxjs/src/internal/operators/startWith.ts", "node_modules/rxjs/src/internal/operators/switchMap.ts", "node_modules/rxjs/src/internal/operators/takeUntil.ts", "node_modules/rxjs/src/internal/operators/takeWhile.ts", "node_modules/rxjs/src/internal/operators/tap.ts", "node_modules/rxjs/src/internal/operators/throttle.ts", "node_modules/rxjs/src/internal/operators/throttleTime.ts", "node_modules/rxjs/src/internal/operators/withLatestFrom.ts", "node_modules/rxjs/src/internal/operators/zip.ts", "node_modules/rxjs/src/internal/operators/zipWith.ts", "src/templates/assets/javascripts/browser/document/index.ts", "src/templates/assets/javascripts/browser/element/_/index.ts", "src/templates/assets/javascripts/browser/element/focus/index.ts", "src/templates/assets/javascripts/browser/element/hover/index.ts", "src/templates/assets/javascripts/utilities/h/index.ts", "src/templates/assets/javascripts/utilities/round/index.ts", "src/templates/assets/javascripts/browser/script/index.ts", "src/templates/assets/javascripts/browser/element/size/_/index.ts", "src/templates/assets/javascripts/browser/element/size/content/index.ts", "src/templates/assets/javascripts/browser/element/offset/_/index.ts", "src/templates/assets/javascripts/browser/element/offset/content/index.ts", "src/templates/assets/javascripts/browser/element/visibility/index.ts", "src/templates/assets/javascripts/browser/toggle/index.ts", "src/templates/assets/javascripts/browser/keyboard/index.ts", "src/templates/assets/javascripts/browser/location/_/index.ts", "src/templates/assets/javascripts/browser/location/hash/index.ts", "src/templates/assets/javascripts/browser/media/index.ts", "src/templates/assets/javascripts/browser/request/index.ts", "src/templates/assets/javascripts/browser/viewport/offset/index.ts", "src/templates/assets/javascripts/browser/viewport/size/index.ts", "src/templates/assets/javascripts/browser/viewport/_/index.ts", "src/templates/assets/javascripts/browser/viewport/at/index.ts", "src/templates/assets/javascripts/browser/worker/index.ts", "src/templates/assets/javascripts/_/index.ts", "src/templates/assets/javascripts/components/_/index.ts", "src/templates/assets/javascripts/components/announce/index.ts", "src/templates/assets/javascripts/components/consent/index.ts", "src/templates/assets/javascripts/templates/tooltip/index.tsx", "src/templates/assets/javascripts/templates/annotation/index.tsx", "src/templates/assets/javascripts/templates/clipboard/index.tsx", "src/templates/assets/javascripts/templates/search/index.tsx", "src/templates/assets/javascripts/templates/source/index.tsx", "src/templates/assets/javascripts/templates/tabbed/index.tsx", "src/templates/assets/javascripts/templates/table/index.tsx", "src/templates/assets/javascripts/templates/version/index.tsx", "src/templates/assets/javascripts/components/tooltip2/index.ts", "src/templates/assets/javascripts/components/content/annotation/_/index.ts", "src/templates/assets/javascripts/components/content/annotation/list/index.ts", "src/templates/assets/javascripts/components/content/annotation/block/index.ts", "src/templates/assets/javascripts/components/content/code/_/index.ts", "src/templates/assets/javascripts/components/content/details/index.ts", "src/templates/assets/javascripts/components/content/mermaid/index.css", "src/templates/assets/javascripts/components/content/mermaid/index.ts", "src/templates/assets/javascripts/components/content/table/index.ts", "src/templates/assets/javascripts/components/content/tabs/index.ts", "src/templates/assets/javascripts/components/content/_/index.ts", "src/templates/assets/javascripts/components/dialog/index.ts", "src/templates/assets/javascripts/components/tooltip/index.ts", "src/templates/assets/javascripts/components/header/_/index.ts", "src/templates/assets/javascripts/components/header/title/index.ts", "src/templates/assets/javascripts/components/main/index.ts", "src/templates/assets/javascripts/components/palette/index.ts", "src/templates/assets/javascripts/components/progress/index.ts", "src/templates/assets/javascripts/integrations/clipboard/index.ts", "src/templates/assets/javascripts/integrations/sitemap/index.ts", "src/templates/assets/javascripts/integrations/instant/index.ts", "src/templates/assets/javascripts/integrations/search/highlighter/index.ts", "src/templates/assets/javascripts/integrations/search/worker/message/index.ts", "src/templates/assets/javascripts/integrations/search/worker/_/index.ts", "src/templates/assets/javascripts/integrations/version/findurl/index.ts", "src/templates/assets/javascripts/integrations/version/index.ts", "src/templates/assets/javascripts/components/search/query/index.ts", "src/templates/assets/javascripts/components/search/result/index.ts", "src/templates/assets/javascripts/components/search/share/index.ts", "src/templates/assets/javascripts/components/search/suggest/index.ts", "src/templates/assets/javascripts/components/search/_/index.ts", "src/templates/assets/javascripts/components/search/highlight/index.ts", "src/templates/assets/javascripts/components/sidebar/index.ts", "src/templates/assets/javascripts/components/source/facts/github/index.ts", "src/templates/assets/javascripts/components/source/facts/gitlab/index.ts", "src/templates/assets/javascripts/components/source/facts/_/index.ts", "src/templates/assets/javascripts/components/source/_/index.ts", "src/templates/assets/javascripts/components/tabs/index.ts", "src/templates/assets/javascripts/components/toc/index.ts", "src/templates/assets/javascripts/components/top/index.ts", "src/templates/assets/javascripts/patches/ellipsis/index.ts", "src/templates/assets/javascripts/patches/indeterminate/index.ts", "src/templates/assets/javascripts/patches/scrollfix/index.ts", "src/templates/assets/javascripts/patches/scrolllock/index.ts", "src/templates/assets/javascripts/polyfills/index.ts"], + "sourcesContent": ["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (factory());\n}(this, (function () { 'use strict';\n\n /**\n * Applies the :focus-visible polyfill at the given scope.\n * A scope in this case is either the top-level Document or a Shadow Root.\n *\n * @param {(Document|ShadowRoot)} scope\n * @see https://github.com/WICG/focus-visible\n */\n function applyFocusVisiblePolyfill(scope) {\n var hadKeyboardEvent = true;\n var hadFocusVisibleRecently = false;\n var hadFocusVisibleRecentlyTimeout = null;\n\n var inputTypesAllowlist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n };\n\n /**\n * Helper function for legacy browsers and iframes which sometimes focus\n * elements like document, body, and non-interactive SVG.\n * @param {Element} el\n */\n function isValidFocusTarget(el) {\n if (\n el &&\n el !== document &&\n el.nodeName !== 'HTML' &&\n el.nodeName !== 'BODY' &&\n 'classList' in el &&\n 'contains' in el.classList\n ) {\n return true;\n }\n return false;\n }\n\n /**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} el\n * @return {boolean}\n */\n function focusTriggersKeyboardModality(el) {\n var type = el.type;\n var tagName = el.tagName;\n\n if (tagName === 'INPUT' && inputTypesAllowlist[type] && !el.readOnly) {\n return true;\n }\n\n if (tagName === 'TEXTAREA' && !el.readOnly) {\n return true;\n }\n\n if (el.isContentEditable) {\n return true;\n }\n\n return false;\n }\n\n /**\n * Add the `focus-visible` class to the given element if it was not added by\n * the author.\n * @param {Element} el\n */\n function addFocusVisibleClass(el) {\n if (el.classList.contains('focus-visible')) {\n return;\n }\n el.classList.add('focus-visible');\n el.setAttribute('data-focus-visible-added', '');\n }\n\n /**\n * Remove the `focus-visible` class from the given element if it was not\n * originally added by the author.\n * @param {Element} el\n */\n function removeFocusVisibleClass(el) {\n if (!el.hasAttribute('data-focus-visible-added')) {\n return;\n }\n el.classList.remove('focus-visible');\n el.removeAttribute('data-focus-visible-added');\n }\n\n /**\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * Apply `focus-visible` to any current active element and keep track\n * of our keyboard modality state with `hadKeyboardEvent`.\n * @param {KeyboardEvent} e\n */\n function onKeyDown(e) {\n if (e.metaKey || e.altKey || e.ctrlKey) {\n return;\n }\n\n if (isValidFocusTarget(scope.activeElement)) {\n addFocusVisibleClass(scope.activeElement);\n }\n\n hadKeyboardEvent = true;\n }\n\n /**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n * @param {Event} e\n */\n function onPointerDown(e) {\n hadKeyboardEvent = false;\n }\n\n /**\n * On `focus`, add the `focus-visible` class to the target if:\n * - the target received focus as a result of keyboard navigation, or\n * - the event target is an element that will likely require interaction\n * via the keyboard (e.g. a text box)\n * @param {Event} e\n */\n function onFocus(e) {\n // Prevent IE from focusing the document or HTML element.\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (hadKeyboardEvent || focusTriggersKeyboardModality(e.target)) {\n addFocusVisibleClass(e.target);\n }\n }\n\n /**\n * On `blur`, remove the `focus-visible` class from the target.\n * @param {Event} e\n */\n function onBlur(e) {\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (\n e.target.classList.contains('focus-visible') ||\n e.target.hasAttribute('data-focus-visible-added')\n ) {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n hadFocusVisibleRecentlyTimeout = window.setTimeout(function() {\n hadFocusVisibleRecently = false;\n }, 100);\n removeFocusVisibleClass(e.target);\n }\n }\n\n /**\n * If the user changes tabs, keep track of whether or not the previously\n * focused element had .focus-visible.\n * @param {Event} e\n */\n function onVisibilityChange(e) {\n if (document.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the class when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n addInitialPointerMoveListeners();\n }\n }\n\n /**\n * Add a group of listeners to detect usage of any pointing devices.\n * These listeners will be added when the polyfill first loads, and anytime\n * the window is blurred, so that they are active when the window regains\n * focus.\n */\n function addInitialPointerMoveListeners() {\n document.addEventListener('mousemove', onInitialPointerMove);\n document.addEventListener('mousedown', onInitialPointerMove);\n document.addEventListener('mouseup', onInitialPointerMove);\n document.addEventListener('pointermove', onInitialPointerMove);\n document.addEventListener('pointerdown', onInitialPointerMove);\n document.addEventListener('pointerup', onInitialPointerMove);\n document.addEventListener('touchmove', onInitialPointerMove);\n document.addEventListener('touchstart', onInitialPointerMove);\n document.addEventListener('touchend', onInitialPointerMove);\n }\n\n function removeInitialPointerMoveListeners() {\n document.removeEventListener('mousemove', onInitialPointerMove);\n document.removeEventListener('mousedown', onInitialPointerMove);\n document.removeEventListener('mouseup', onInitialPointerMove);\n document.removeEventListener('pointermove', onInitialPointerMove);\n document.removeEventListener('pointerdown', onInitialPointerMove);\n document.removeEventListener('pointerup', onInitialPointerMove);\n document.removeEventListener('touchmove', onInitialPointerMove);\n document.removeEventListener('touchstart', onInitialPointerMove);\n document.removeEventListener('touchend', onInitialPointerMove);\n }\n\n /**\n * When the polfyill first loads, assume the user is in keyboard modality.\n * If any event is received from a pointing device (e.g. mouse, pointer,\n * touch), turn off keyboard modality.\n * This accounts for situations where focus enters the page from the URL bar.\n * @param {Event} e\n */\n function onInitialPointerMove(e) {\n // Work around a Safari quirk that fires a mousemove on whenever the\n // window blurs, even if you're tabbing out of the page. \u00AF\\_(\u30C4)_/\u00AF\n if (e.target.nodeName && e.target.nodeName.toLowerCase() === 'html') {\n return;\n }\n\n hadKeyboardEvent = false;\n removeInitialPointerMoveListeners();\n }\n\n // For some kinds of state, we are interested in changes at the global scope\n // only. For example, global pointer input, global key presses and global\n // visibility change should affect the state at every scope:\n document.addEventListener('keydown', onKeyDown, true);\n document.addEventListener('mousedown', onPointerDown, true);\n document.addEventListener('pointerdown', onPointerDown, true);\n document.addEventListener('touchstart', onPointerDown, true);\n document.addEventListener('visibilitychange', onVisibilityChange, true);\n\n addInitialPointerMoveListeners();\n\n // For focus and blur, we specifically care about state changes in the local\n // scope. This is because focus / blur events that originate from within a\n // shadow root are not re-dispatched from the host element if it was already\n // the active element in its own scope:\n scope.addEventListener('focus', onFocus, true);\n scope.addEventListener('blur', onBlur, true);\n\n // We detect that a node is a ShadowRoot by ensuring that it is a\n // DocumentFragment and also has a host property. This check covers native\n // implementation and polyfill implementation transparently. If we only cared\n // about the native implementation, we could just check if the scope was\n // an instance of a ShadowRoot.\n if (scope.nodeType === Node.DOCUMENT_FRAGMENT_NODE && scope.host) {\n // Since a ShadowRoot is a special kind of DocumentFragment, it does not\n // have a root element to add a class to. So, we add this attribute to the\n // host element instead:\n scope.host.setAttribute('data-js-focus-visible', '');\n } else if (scope.nodeType === Node.DOCUMENT_NODE) {\n document.documentElement.classList.add('js-focus-visible');\n document.documentElement.setAttribute('data-js-focus-visible', '');\n }\n }\n\n // It is important to wrap all references to global window and document in\n // these checks to support server-side rendering use cases\n // @see https://github.com/WICG/focus-visible/issues/199\n if (typeof window !== 'undefined' && typeof document !== 'undefined') {\n // Make the polyfill helper globally available. This can be used as a signal\n // to interested libraries that wish to coordinate with the polyfill for e.g.,\n // applying the polyfill to a shadow root:\n window.applyFocusVisiblePolyfill = applyFocusVisiblePolyfill;\n\n // Notify interested libraries of the polyfill's presence, in case the\n // polyfill was loaded lazily:\n var event;\n\n try {\n event = new CustomEvent('focus-visible-polyfill-ready');\n } catch (error) {\n // IE11 does not support using CustomEvent as a constructor directly:\n event = document.createEvent('CustomEvent');\n event.initCustomEvent('focus-visible-polyfill-ready', false, false, {});\n }\n\n window.dispatchEvent(event);\n }\n\n if (typeof document !== 'undefined') {\n // Apply the polyfill to the global document, so that no JavaScript\n // coordination is required to use the polyfill in the top-level document:\n applyFocusVisiblePolyfill(document);\n }\n\n})));\n", "/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '"';\n break;\n case 38: // &\n escape = '&';\n break;\n case 39: // '\n escape = ''';\n break;\n case 60: // <\n escape = '<';\n break;\n case 62: // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n", "/*!\n * clipboard.js v2.0.11\n * https://clipboardjs.com/\n *\n * Licensed MIT \u00A9 Zeno Rocha\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ClipboardJS\"] = factory();\n\telse\n\t\troot[\"ClipboardJS\"] = factory();\n})(this, function() {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 686:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"default\": function() { return /* binding */ clipboard; }\n});\n\n// EXTERNAL MODULE: ./node_modules/tiny-emitter/index.js\nvar tiny_emitter = __webpack_require__(279);\nvar tiny_emitter_default = /*#__PURE__*/__webpack_require__.n(tiny_emitter);\n// EXTERNAL MODULE: ./node_modules/good-listener/src/listen.js\nvar listen = __webpack_require__(370);\nvar listen_default = /*#__PURE__*/__webpack_require__.n(listen);\n// EXTERNAL MODULE: ./node_modules/select/src/select.js\nvar src_select = __webpack_require__(817);\nvar select_default = /*#__PURE__*/__webpack_require__.n(src_select);\n;// CONCATENATED MODULE: ./src/common/command.js\n/**\n * Executes a given operation type.\n * @param {String} type\n * @return {Boolean}\n */\nfunction command(type) {\n try {\n return document.execCommand(type);\n } catch (err) {\n return false;\n }\n}\n;// CONCATENATED MODULE: ./src/actions/cut.js\n\n\n/**\n * Cut action wrapper.\n * @param {String|HTMLElement} target\n * @return {String}\n */\n\nvar ClipboardActionCut = function ClipboardActionCut(target) {\n var selectedText = select_default()(target);\n command('cut');\n return selectedText;\n};\n\n/* harmony default export */ var actions_cut = (ClipboardActionCut);\n;// CONCATENATED MODULE: ./src/common/create-fake-element.js\n/**\n * Creates a fake textarea element with a value.\n * @param {String} value\n * @return {HTMLElement}\n */\nfunction createFakeElement(value) {\n var isRTL = document.documentElement.getAttribute('dir') === 'rtl';\n var fakeElement = document.createElement('textarea'); // Prevent zooming on iOS\n\n fakeElement.style.fontSize = '12pt'; // Reset box model\n\n fakeElement.style.border = '0';\n fakeElement.style.padding = '0';\n fakeElement.style.margin = '0'; // Move element out of screen horizontally\n\n fakeElement.style.position = 'absolute';\n fakeElement.style[isRTL ? 'right' : 'left'] = '-9999px'; // Move element to the same position vertically\n\n var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n fakeElement.style.top = \"\".concat(yPosition, \"px\");\n fakeElement.setAttribute('readonly', '');\n fakeElement.value = value;\n return fakeElement;\n}\n;// CONCATENATED MODULE: ./src/actions/copy.js\n\n\n\n/**\n * Create fake copy action wrapper using a fake element.\n * @param {String} target\n * @param {Object} options\n * @return {String}\n */\n\nvar fakeCopyAction = function fakeCopyAction(value, options) {\n var fakeElement = createFakeElement(value);\n options.container.appendChild(fakeElement);\n var selectedText = select_default()(fakeElement);\n command('copy');\n fakeElement.remove();\n return selectedText;\n};\n/**\n * Copy action wrapper.\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @return {String}\n */\n\n\nvar ClipboardActionCopy = function ClipboardActionCopy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n var selectedText = '';\n\n if (typeof target === 'string') {\n selectedText = fakeCopyAction(target, options);\n } else if (target instanceof HTMLInputElement && !['text', 'search', 'url', 'tel', 'password'].includes(target === null || target === void 0 ? void 0 : target.type)) {\n // If input type doesn't support `setSelectionRange`. Simulate it. https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n selectedText = fakeCopyAction(target.value, options);\n } else {\n selectedText = select_default()(target);\n command('copy');\n }\n\n return selectedText;\n};\n\n/* harmony default export */ var actions_copy = (ClipboardActionCopy);\n;// CONCATENATED MODULE: ./src/actions/default.js\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n/**\n * Inner function which performs selection from either `text` or `target`\n * properties and then executes copy or cut operations.\n * @param {Object} options\n */\n\nvar ClipboardActionDefault = function ClipboardActionDefault() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Defines base properties passed from constructor.\n var _options$action = options.action,\n action = _options$action === void 0 ? 'copy' : _options$action,\n container = options.container,\n target = options.target,\n text = options.text; // Sets the `action` to be performed which can be either 'copy' or 'cut'.\n\n if (action !== 'copy' && action !== 'cut') {\n throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n } // Sets the `target` property using an element that will be have its content copied.\n\n\n if (target !== undefined) {\n if (target && _typeof(target) === 'object' && target.nodeType === 1) {\n if (action === 'copy' && target.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n\n if (action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n }\n } else {\n throw new Error('Invalid \"target\" value, use a valid Element');\n }\n } // Define selection strategy based on `text` property.\n\n\n if (text) {\n return actions_copy(text, {\n container: container\n });\n } // Defines which selection strategy based on `target` property.\n\n\n if (target) {\n return action === 'cut' ? actions_cut(target) : actions_copy(target, {\n container: container\n });\n }\n};\n\n/* harmony default export */ var actions_default = (ClipboardActionDefault);\n;// CONCATENATED MODULE: ./src/clipboard.js\nfunction clipboard_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { clipboard_typeof = function _typeof(obj) { return typeof obj; }; } else { clipboard_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return clipboard_typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (clipboard_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n/**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n\nfunction getAttributeValue(suffix, element) {\n var attribute = \"data-clipboard-\".concat(suffix);\n\n if (!element.hasAttribute(attribute)) {\n return;\n }\n\n return element.getAttribute(attribute);\n}\n/**\n * Base class which takes one or more elements, adds event listeners to them,\n * and instantiates a new `ClipboardAction` on each click.\n */\n\n\nvar Clipboard = /*#__PURE__*/function (_Emitter) {\n _inherits(Clipboard, _Emitter);\n\n var _super = _createSuper(Clipboard);\n\n /**\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n * @param {Object} options\n */\n function Clipboard(trigger, options) {\n var _this;\n\n _classCallCheck(this, Clipboard);\n\n _this = _super.call(this);\n\n _this.resolveOptions(options);\n\n _this.listenClick(trigger);\n\n return _this;\n }\n /**\n * Defines if attributes would be resolved using internal setter functions\n * or custom functions that were passed in the constructor.\n * @param {Object} options\n */\n\n\n _createClass(Clipboard, [{\n key: \"resolveOptions\",\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n this.container = clipboard_typeof(options.container) === 'object' ? options.container : document.body;\n }\n /**\n * Adds a click event listener to the passed trigger.\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n */\n\n }, {\n key: \"listenClick\",\n value: function listenClick(trigger) {\n var _this2 = this;\n\n this.listener = listen_default()(trigger, 'click', function (e) {\n return _this2.onClick(e);\n });\n }\n /**\n * Defines a new `ClipboardAction` on each click event.\n * @param {Event} e\n */\n\n }, {\n key: \"onClick\",\n value: function onClick(e) {\n var trigger = e.delegateTarget || e.currentTarget;\n var action = this.action(trigger) || 'copy';\n var text = actions_default({\n action: action,\n container: this.container,\n target: this.target(trigger),\n text: this.text(trigger)\n }); // Fires an event based on the copy operation result.\n\n this.emit(text ? 'success' : 'error', {\n action: action,\n text: text,\n trigger: trigger,\n clearSelection: function clearSelection() {\n if (trigger) {\n trigger.focus();\n }\n\n window.getSelection().removeAllRanges();\n }\n });\n }\n /**\n * Default `action` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultAction\",\n value: function defaultAction(trigger) {\n return getAttributeValue('action', trigger);\n }\n /**\n * Default `target` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultTarget\",\n value: function defaultTarget(trigger) {\n var selector = getAttributeValue('target', trigger);\n\n if (selector) {\n return document.querySelector(selector);\n }\n }\n /**\n * Allow fire programmatically a copy action\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @returns Text copied.\n */\n\n }, {\n key: \"defaultText\",\n\n /**\n * Default `text` lookup function.\n * @param {Element} trigger\n */\n value: function defaultText(trigger) {\n return getAttributeValue('text', trigger);\n }\n /**\n * Destroy lifecycle.\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.listener.destroy();\n }\n }], [{\n key: \"copy\",\n value: function copy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n return actions_copy(target, options);\n }\n /**\n * Allow fire programmatically a cut action\n * @param {String|HTMLElement} target\n * @returns Text cutted.\n */\n\n }, {\n key: \"cut\",\n value: function cut(target) {\n return actions_cut(target);\n }\n /**\n * Returns the support of the given action, or all actions if no action is\n * given.\n * @param {String} [action]\n */\n\n }, {\n key: \"isSupported\",\n value: function isSupported() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n var actions = typeof action === 'string' ? [action] : action;\n var support = !!document.queryCommandSupported;\n actions.forEach(function (action) {\n support = support && !!document.queryCommandSupported(action);\n });\n return support;\n }\n }]);\n\n return Clipboard;\n}((tiny_emitter_default()));\n\n/* harmony default export */ var clipboard = (Clipboard);\n\n/***/ }),\n\n/***/ 828:\n/***/ (function(module) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n\n proto.matches = proto.matchesSelector ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' &&\n element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n}\n\nmodule.exports = closest;\n\n\n/***/ }),\n\n/***/ 438:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar closest = __webpack_require__(828);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n // Handle the regular Element usage\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n }\n\n // Handle Element-less usage, it defaults to global delegation\n if (typeof type === 'function') {\n // Use `document` as the first parameter, then apply arguments\n // This is a short way to .unshift `arguments` without running into deoptimizations\n return _delegate.bind(null, document).apply(null, arguments);\n }\n\n // Handle Selector-based usage\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n }\n\n // Handle Array-like based usage\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n\n/***/ 879:\n/***/ (function(__unused_webpack_module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n return value !== undefined\n && value instanceof HTMLElement\n && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return value !== undefined\n && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n && ('length' in value)\n && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n return typeof value === 'string'\n || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return type === '[object Function]';\n};\n\n\n/***/ }),\n\n/***/ 370:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar is = __webpack_require__(879);\nvar delegate = __webpack_require__(438);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n if (!target && !type && !callback) {\n throw new Error('Missing required arguments');\n }\n\n if (!is.string(type)) {\n throw new TypeError('Second argument must be a String');\n }\n\n if (!is.fn(callback)) {\n throw new TypeError('Third argument must be a Function');\n }\n\n if (is.node(target)) {\n return listenNode(target, type, callback);\n }\n else if (is.nodeList(target)) {\n return listenNodeList(target, type, callback);\n }\n else if (is.string(target)) {\n return listenSelector(target, type, callback);\n }\n else {\n throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n node.addEventListener(type, callback);\n\n return {\n destroy: function() {\n node.removeEventListener(type, callback);\n }\n }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.addEventListener(type, callback);\n });\n\n return {\n destroy: function() {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.removeEventListener(type, callback);\n });\n }\n }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n\n/***/ 817:\n/***/ (function(module) {\n\nfunction select(element) {\n var selectedText;\n\n if (element.nodeName === 'SELECT') {\n element.focus();\n\n selectedText = element.value;\n }\n else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n var isReadOnly = element.hasAttribute('readonly');\n\n if (!isReadOnly) {\n element.setAttribute('readonly', '');\n }\n\n element.select();\n element.setSelectionRange(0, element.value.length);\n\n if (!isReadOnly) {\n element.removeAttribute('readonly');\n }\n\n selectedText = element.value;\n }\n else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n\n var selection = window.getSelection();\n var range = document.createRange();\n\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n\n selectedText = selection.toString();\n }\n\n return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ }),\n\n/***/ 279:\n/***/ (function(module) {\n\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\nmodule.exports.TinyEmitter = E;\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(__webpack_module_cache__[moduleId]) {\n/******/ \t\t\treturn __webpack_module_cache__[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/************************************************************************/\n/******/ \t// module exports must be returned from runtime so entry inlining is disabled\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(686);\n/******/ })()\n.default;\n});", "/*\n * Copyright (c) 2016-2024 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport \"focus-visible\"\n\nimport {\n EMPTY,\n NEVER,\n Observable,\n Subject,\n defer,\n delay,\n filter,\n map,\n merge,\n mergeWith,\n shareReplay,\n switchMap\n} from \"rxjs\"\n\nimport { configuration, feature } from \"./_\"\nimport {\n at,\n getActiveElement,\n getOptionalElement,\n requestJSON,\n setLocation,\n setToggle,\n watchDocument,\n watchKeyboard,\n watchLocation,\n watchLocationTarget,\n watchMedia,\n watchPrint,\n watchScript,\n watchViewport\n} from \"./browser\"\nimport {\n getComponentElement,\n getComponentElements,\n mountAnnounce,\n mountBackToTop,\n mountConsent,\n mountContent,\n mountDialog,\n mountHeader,\n mountHeaderTitle,\n mountPalette,\n mountProgress,\n mountSearch,\n mountSearchHiglight,\n mountSidebar,\n mountSource,\n mountTableOfContents,\n mountTabs,\n watchHeader,\n watchMain\n} from \"./components\"\nimport {\n SearchIndex,\n setupClipboardJS,\n setupInstantNavigation,\n setupVersionSelector\n} from \"./integrations\"\nimport {\n patchEllipsis,\n patchIndeterminate,\n patchScrollfix,\n patchScrolllock\n} from \"./patches\"\nimport \"./polyfills\"\n\n/* ----------------------------------------------------------------------------\n * Functions - @todo refactor\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch search index\n *\n * @returns Search index observable\n */\nfunction fetchSearchIndex(): Observable {\n if (location.protocol === \"file:\") {\n return watchScript(\n `${new URL(\"search/search_index.js\", config.base)}`\n )\n .pipe(\n // @ts-ignore - @todo fix typings\n map(() => __index),\n shareReplay(1)\n )\n } else {\n return requestJSON(\n new URL(\"search/search_index.json\", config.base)\n )\n }\n}\n\n/* ----------------------------------------------------------------------------\n * Application\n * ------------------------------------------------------------------------- */\n\n/* Yay, JavaScript is available */\ndocument.documentElement.classList.remove(\"no-js\")\ndocument.documentElement.classList.add(\"js\")\n\n/* Set up navigation observables and subjects */\nconst document$ = watchDocument()\nconst location$ = watchLocation()\nconst target$ = watchLocationTarget(location$)\nconst keyboard$ = watchKeyboard()\n\n/* Set up media observables */\nconst viewport$ = watchViewport()\nconst tablet$ = watchMedia(\"(min-width: 960px)\")\nconst screen$ = watchMedia(\"(min-width: 1220px)\")\nconst print$ = watchPrint()\n\n/* Retrieve search index, if search is enabled */\nconst config = configuration()\nconst index$ = document.forms.namedItem(\"search\")\n ? fetchSearchIndex()\n : NEVER\n\n/* Set up Clipboard.js integration */\nconst alert$ = new Subject()\nsetupClipboardJS({ alert$ })\n\n/* Set up progress indicator */\nconst progress$ = new Subject()\n\n/* Set up instant navigation, if enabled */\nif (feature(\"navigation.instant\"))\n setupInstantNavigation({ location$, viewport$, progress$ })\n .subscribe(document$)\n\n/* Set up version selector */\nif (config.version?.provider === \"mike\")\n setupVersionSelector({ document$ })\n\n/* Always close drawer and search on navigation */\nmerge(location$, target$)\n .pipe(\n delay(125)\n )\n .subscribe(() => {\n setToggle(\"drawer\", false)\n setToggle(\"search\", false)\n })\n\n/* Set up global keyboard handlers */\nkeyboard$\n .pipe(\n filter(({ mode }) => mode === \"global\")\n )\n .subscribe(key => {\n switch (key.type) {\n\n /* Go to previous page */\n case \"p\":\n case \",\":\n const prev = getOptionalElement(\"link[rel=prev]\")\n if (typeof prev !== \"undefined\")\n setLocation(prev)\n break\n\n /* Go to next page */\n case \"n\":\n case \".\":\n const next = getOptionalElement(\"link[rel=next]\")\n if (typeof next !== \"undefined\")\n setLocation(next)\n break\n\n /* Expand navigation, see https://bit.ly/3ZjG5io */\n case \"Enter\":\n const active = getActiveElement()\n if (active instanceof HTMLLabelElement)\n active.click()\n }\n })\n\n/* Set up patches */\npatchEllipsis({ viewport$, document$ })\npatchIndeterminate({ document$, tablet$ })\npatchScrollfix({ document$ })\npatchScrolllock({ viewport$, tablet$ })\n\n/* Set up header and main area observable */\nconst header$ = watchHeader(getComponentElement(\"header\"), { viewport$ })\nconst main$ = document$\n .pipe(\n map(() => getComponentElement(\"main\")),\n switchMap(el => watchMain(el, { viewport$, header$ })),\n shareReplay(1)\n )\n\n/* Set up control component observables */\nconst control$ = merge(\n\n /* Consent */\n ...getComponentElements(\"consent\")\n .map(el => mountConsent(el, { target$ })),\n\n /* Dialog */\n ...getComponentElements(\"dialog\")\n .map(el => mountDialog(el, { alert$ })),\n\n /* Color palette */\n ...getComponentElements(\"palette\")\n .map(el => mountPalette(el)),\n\n /* Progress bar */\n ...getComponentElements(\"progress\")\n .map(el => mountProgress(el, { progress$ })),\n\n /* Search */\n ...getComponentElements(\"search\")\n .map(el => mountSearch(el, { index$, keyboard$ })),\n\n /* Repository information */\n ...getComponentElements(\"source\")\n .map(el => mountSource(el))\n)\n\n/* Set up content component observables */\nconst content$ = defer(() => merge(\n\n /* Announcement bar */\n ...getComponentElements(\"announce\")\n .map(el => mountAnnounce(el)),\n\n /* Content */\n ...getComponentElements(\"content\")\n .map(el => mountContent(el, { viewport$, target$, print$ })),\n\n /* Search highlighting */\n ...getComponentElements(\"content\")\n .map(el => feature(\"search.highlight\")\n ? mountSearchHiglight(el, { index$, location$ })\n : EMPTY\n ),\n\n /* Header */\n ...getComponentElements(\"header\")\n .map(el => mountHeader(el, { viewport$, header$, main$ })),\n\n /* Header title */\n ...getComponentElements(\"header-title\")\n .map(el => mountHeaderTitle(el, { viewport$, header$ })),\n\n /* Sidebar */\n ...getComponentElements(\"sidebar\")\n .map(el => el.getAttribute(\"data-md-type\") === \"navigation\"\n ? at(screen$, () => mountSidebar(el, { viewport$, header$, main$ }))\n : at(tablet$, () => mountSidebar(el, { viewport$, header$, main$ }))\n ),\n\n /* Navigation tabs */\n ...getComponentElements(\"tabs\")\n .map(el => mountTabs(el, { viewport$, header$ })),\n\n /* Table of contents */\n ...getComponentElements(\"toc\")\n .map(el => mountTableOfContents(el, {\n viewport$, header$, main$, target$\n })),\n\n /* Back-to-top button */\n ...getComponentElements(\"top\")\n .map(el => mountBackToTop(el, { viewport$, header$, main$, target$ }))\n))\n\n/* Set up component observables */\nconst component$ = document$\n .pipe(\n switchMap(() => content$),\n mergeWith(control$),\n shareReplay(1)\n )\n\n/* Subscribe to all components */\ncomponent$.subscribe()\n\n/* ----------------------------------------------------------------------------\n * Exports\n * ------------------------------------------------------------------------- */\n\nwindow.document$ = document$ /* Document observable */\nwindow.location$ = location$ /* Location subject */\nwindow.target$ = target$ /* Location target observable */\nwindow.keyboard$ = keyboard$ /* Keyboard observable */\nwindow.viewport$ = viewport$ /* Viewport observable */\nwindow.tablet$ = tablet$ /* Media tablet observable */\nwindow.screen$ = screen$ /* Media screen observable */\nwindow.print$ = print$ /* Media print observable */\nwindow.alert$ = alert$ /* Alert subject */\nwindow.progress$ = progress$ /* Progress indicator subject */\nwindow.component$ = component$ /* Component observable */\n", "/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n", "/**\n * Returns true if the object is a function.\n * @param value The value to check\n */\nexport function isFunction(value: any): value is (...args: any[]) => any {\n return typeof value === 'function';\n}\n", "/**\n * Used to create Error subclasses until the community moves away from ES5.\n *\n * This is because compiling from TypeScript down to ES5 has issues with subclassing Errors\n * as well as other built-in types: https://github.com/Microsoft/TypeScript/issues/12123\n *\n * @param createImpl A factory function to create the actual constructor implementation. The returned\n * function should be a named function that calls `_super` internally.\n */\nexport function createErrorClass(createImpl: (_super: any) => any): T {\n const _super = (instance: any) => {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n\n const ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n", "import { createErrorClass } from './createErrorClass';\n\nexport interface UnsubscriptionError extends Error {\n readonly errors: any[];\n}\n\nexport interface UnsubscriptionErrorCtor {\n /**\n * @deprecated Internal implementation detail. Do not construct error instances.\n * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269\n */\n new (errors: any[]): UnsubscriptionError;\n}\n\n/**\n * An error thrown when one or more errors have occurred during the\n * `unsubscribe` of a {@link Subscription}.\n */\nexport const UnsubscriptionError: UnsubscriptionErrorCtor = createErrorClass(\n (_super) =>\n function UnsubscriptionErrorImpl(this: any, errors: (Error | string)[]) {\n _super(this);\n this.message = errors\n ? `${errors.length} errors occurred during unsubscription:\n${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\\n ')}`\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n }\n);\n", "/**\n * Removes an item from an array, mutating it.\n * @param arr The array to remove the item from\n * @param item The item to remove\n */\nexport function arrRemove(arr: T[] | undefined | null, item: T) {\n if (arr) {\n const index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n", "import { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { SubscriptionLike, TeardownLogic, Unsubscribable } from './types';\nimport { arrRemove } from './util/arrRemove';\n\n/**\n * Represents a disposable resource, such as the execution of an Observable. A\n * Subscription has one important method, `unsubscribe`, that takes no argument\n * and just disposes the resource held by the subscription.\n *\n * Additionally, subscriptions may be grouped together through the `add()`\n * method, which will attach a child Subscription to the current Subscription.\n * When a Subscription is unsubscribed, all its children (and its grandchildren)\n * will be unsubscribed as well.\n *\n * @class Subscription\n */\nexport class Subscription implements SubscriptionLike {\n /** @nocollapse */\n public static EMPTY = (() => {\n const empty = new Subscription();\n empty.closed = true;\n return empty;\n })();\n\n /**\n * A flag to indicate whether this Subscription has already been unsubscribed.\n */\n public closed = false;\n\n private _parentage: Subscription[] | Subscription | null = null;\n\n /**\n * The list of registered finalizers to execute upon unsubscription. Adding and removing from this\n * list occurs in the {@link #add} and {@link #remove} methods.\n */\n private _finalizers: Exclude[] | null = null;\n\n /**\n * @param initialTeardown A function executed first as part of the finalization\n * process that is kicked off when {@link #unsubscribe} is called.\n */\n constructor(private initialTeardown?: () => void) {}\n\n /**\n * Disposes the resources held by the subscription. May, for instance, cancel\n * an ongoing Observable execution or cancel any other type of work that\n * started when the Subscription was created.\n * @return {void}\n */\n unsubscribe(): void {\n let errors: any[] | undefined;\n\n if (!this.closed) {\n this.closed = true;\n\n // Remove this from it's parents.\n const { _parentage } = this;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n for (const parent of _parentage) {\n parent.remove(this);\n }\n } else {\n _parentage.remove(this);\n }\n }\n\n const { initialTeardown: initialFinalizer } = this;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n } catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n\n const { _finalizers } = this;\n if (_finalizers) {\n this._finalizers = null;\n for (const finalizer of _finalizers) {\n try {\n execFinalizer(finalizer);\n } catch (err) {\n errors = errors ?? [];\n if (err instanceof UnsubscriptionError) {\n errors = [...errors, ...err.errors];\n } else {\n errors.push(err);\n }\n }\n }\n }\n\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n }\n\n /**\n * Adds a finalizer to this subscription, so that finalization will be unsubscribed/called\n * when this subscription is unsubscribed. If this subscription is already {@link #closed},\n * because it has already been unsubscribed, then whatever finalizer is passed to it\n * will automatically be executed (unless the finalizer itself is also a closed subscription).\n *\n * Closed Subscriptions cannot be added as finalizers to any subscription. Adding a closed\n * subscription to a any subscription will result in no operation. (A noop).\n *\n * Adding a subscription to itself, or adding `null` or `undefined` will not perform any\n * operation at all. (A noop).\n *\n * `Subscription` instances that are added to this instance will automatically remove themselves\n * if they are unsubscribed. Functions and {@link Unsubscribable} objects that you wish to remove\n * will need to be removed manually with {@link #remove}\n *\n * @param teardown The finalization logic to add to this subscription.\n */\n add(teardown: TeardownLogic): void {\n // Only add the finalizer if it's not undefined\n // and don't add a subscription to itself.\n if (teardown && teardown !== this) {\n if (this.closed) {\n // If this subscription is already closed,\n // execute whatever finalizer is handed to it automatically.\n execFinalizer(teardown);\n } else {\n if (teardown instanceof Subscription) {\n // We don't add closed subscriptions, and we don't add the same subscription\n // twice. Subscription unsubscribe is idempotent.\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = this._finalizers ?? []).push(teardown);\n }\n }\n }\n\n /**\n * Checks to see if a this subscription already has a particular parent.\n * This will signal that this subscription has already been added to the parent in question.\n * @param parent the parent to check for\n */\n private _hasParent(parent: Subscription) {\n const { _parentage } = this;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n }\n\n /**\n * Adds a parent to this subscription so it can be removed from the parent if it\n * unsubscribes on it's own.\n *\n * NOTE: THIS ASSUMES THAT {@link _hasParent} HAS ALREADY BEEN CHECKED.\n * @param parent The parent subscription to add\n */\n private _addParent(parent: Subscription) {\n const { _parentage } = this;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n }\n\n /**\n * Called on a child when it is removed via {@link #remove}.\n * @param parent The parent to remove\n */\n private _removeParent(parent: Subscription) {\n const { _parentage } = this;\n if (_parentage === parent) {\n this._parentage = null;\n } else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n }\n\n /**\n * Removes a finalizer from this subscription that was previously added with the {@link #add} method.\n *\n * Note that `Subscription` instances, when unsubscribed, will automatically remove themselves\n * from every other `Subscription` they have been added to. This means that using the `remove` method\n * is not a common thing and should be used thoughtfully.\n *\n * If you add the same finalizer instance of a function or an unsubscribable object to a `Subscription` instance\n * more than once, you will need to call `remove` the same number of times to remove all instances.\n *\n * All finalizer instances are removed to free up memory upon unsubscription.\n *\n * @param teardown The finalizer to remove from this subscription\n */\n remove(teardown: Exclude): void {\n const { _finalizers } = this;\n _finalizers && arrRemove(_finalizers, teardown);\n\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n }\n}\n\nexport const EMPTY_SUBSCRIPTION = Subscription.EMPTY;\n\nexport function isSubscription(value: any): value is Subscription {\n return (\n value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe))\n );\n}\n\nfunction execFinalizer(finalizer: Unsubscribable | (() => void)) {\n if (isFunction(finalizer)) {\n finalizer();\n } else {\n finalizer.unsubscribe();\n }\n}\n", "import { Subscriber } from './Subscriber';\nimport { ObservableNotification } from './types';\n\n/**\n * The {@link GlobalConfig} object for RxJS. It is used to configure things\n * like how to react on unhandled errors.\n */\nexport const config: GlobalConfig = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n\n/**\n * The global configuration object for RxJS, used to configure things\n * like how to react on unhandled errors. Accessible via {@link config}\n * object.\n */\nexport interface GlobalConfig {\n /**\n * A registration point for unhandled errors from RxJS. These are errors that\n * cannot were not handled by consuming code in the usual subscription path. For\n * example, if you have this configured, and you subscribe to an observable without\n * providing an error handler, errors from that subscription will end up here. This\n * will _always_ be called asynchronously on another job in the runtime. This is because\n * we do not want errors thrown in this user-configured handler to interfere with the\n * behavior of the library.\n */\n onUnhandledError: ((err: any) => void) | null;\n\n /**\n * A registration point for notifications that cannot be sent to subscribers because they\n * have completed, errored or have been explicitly unsubscribed. By default, next, complete\n * and error notifications sent to stopped subscribers are noops. However, sometimes callers\n * might want a different behavior. For example, with sources that attempt to report errors\n * to stopped subscribers, a caller can configure RxJS to throw an unhandled error instead.\n * This will _always_ be called asynchronously on another job in the runtime. This is because\n * we do not want errors thrown in this user-configured handler to interfere with the\n * behavior of the library.\n */\n onStoppedNotification: ((notification: ObservableNotification, subscriber: Subscriber) => void) | null;\n\n /**\n * The promise constructor used by default for {@link Observable#toPromise toPromise} and {@link Observable#forEach forEach}\n * methods.\n *\n * @deprecated As of version 8, RxJS will no longer support this sort of injection of a\n * Promise constructor. If you need a Promise implementation other than native promises,\n * please polyfill/patch Promise as you see appropriate. Will be removed in v8.\n */\n Promise?: PromiseConstructorLike;\n\n /**\n * If true, turns on synchronous error rethrowing, which is a deprecated behavior\n * in v6 and higher. This behavior enables bad patterns like wrapping a subscribe\n * call in a try/catch block. It also enables producer interference, a nasty bug\n * where a multicast can be broken for all observers by a downstream consumer with\n * an unhandled error. DO NOT USE THIS FLAG UNLESS IT'S NEEDED TO BUY TIME\n * FOR MIGRATION REASONS.\n *\n * @deprecated As of version 8, RxJS will no longer support synchronous throwing\n * of unhandled errors. All errors will be thrown on a separate call stack to prevent bad\n * behaviors described above. Will be removed in v8.\n */\n useDeprecatedSynchronousErrorHandling: boolean;\n\n /**\n * If true, enables an as-of-yet undocumented feature from v5: The ability to access\n * `unsubscribe()` via `this` context in `next` functions created in observers passed\n * to `subscribe`.\n *\n * This is being removed because the performance was severely problematic, and it could also cause\n * issues when types other than POJOs are passed to subscribe as subscribers, as they will likely have\n * their `this` context overwritten.\n *\n * @deprecated As of version 8, RxJS will no longer support altering the\n * context of next functions provided as part of an observer to Subscribe. Instead,\n * you will have access to a subscription or a signal or token that will allow you to do things like\n * unsubscribe and test closed status. Will be removed in v8.\n */\n useDeprecatedNextContext: boolean;\n}\n", "import type { TimerHandle } from './timerHandle';\ntype SetTimeoutFunction = (handler: () => void, timeout?: number, ...args: any[]) => TimerHandle;\ntype ClearTimeoutFunction = (handle: TimerHandle) => void;\n\ninterface TimeoutProvider {\n setTimeout: SetTimeoutFunction;\n clearTimeout: ClearTimeoutFunction;\n delegate:\n | {\n setTimeout: SetTimeoutFunction;\n clearTimeout: ClearTimeoutFunction;\n }\n | undefined;\n}\n\nexport const timeoutProvider: TimeoutProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n setTimeout(handler: () => void, timeout?: number, ...args) {\n const { delegate } = timeoutProvider;\n if (delegate?.setTimeout) {\n return delegate.setTimeout(handler, timeout, ...args);\n }\n return setTimeout(handler, timeout, ...args);\n },\n clearTimeout(handle) {\n const { delegate } = timeoutProvider;\n return (delegate?.clearTimeout || clearTimeout)(handle as any);\n },\n delegate: undefined,\n};\n", "import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\n\n/**\n * Handles an error on another job either with the user-configured {@link onUnhandledError},\n * or by throwing it on that new job so it can be picked up by `window.onerror`, `process.on('error')`, etc.\n *\n * This should be called whenever there is an error that is out-of-band with the subscription\n * or when an error hits a terminal boundary of the subscription and no error handler was provided.\n *\n * @param err the error to report\n */\nexport function reportUnhandledError(err: any) {\n timeoutProvider.setTimeout(() => {\n const { onUnhandledError } = config;\n if (onUnhandledError) {\n // Execute the user-configured error handler.\n onUnhandledError(err);\n } else {\n // Throw so it is picked up by the runtime's uncaught error mechanism.\n throw err;\n }\n });\n}\n", "/* tslint:disable:no-empty */\nexport function noop() { }\n", "import { CompleteNotification, NextNotification, ErrorNotification } from './types';\n\n/**\n * A completion object optimized for memory use and created to be the\n * same \"shape\" as other notifications in v8.\n * @internal\n */\nexport const COMPLETE_NOTIFICATION = (() => createNotification('C', undefined, undefined) as CompleteNotification)();\n\n/**\n * Internal use only. Creates an optimized error notification that is the same \"shape\"\n * as other notifications.\n * @internal\n */\nexport function errorNotification(error: any): ErrorNotification {\n return createNotification('E', undefined, error) as any;\n}\n\n/**\n * Internal use only. Creates an optimized next notification that is the same \"shape\"\n * as other notifications.\n * @internal\n */\nexport function nextNotification(value: T) {\n return createNotification('N', value, undefined) as NextNotification;\n}\n\n/**\n * Ensures that all notifications created internally have the same \"shape\" in v8.\n *\n * TODO: This is only exported to support a crazy legacy test in `groupBy`.\n * @internal\n */\nexport function createNotification(kind: 'N' | 'E' | 'C', value: any, error: any) {\n return {\n kind,\n value,\n error,\n };\n}\n", "import { config } from '../config';\n\nlet context: { errorThrown: boolean; error: any } | null = null;\n\n/**\n * Handles dealing with errors for super-gross mode. Creates a context, in which\n * any synchronously thrown errors will be passed to {@link captureError}. Which\n * will record the error such that it will be rethrown after the call back is complete.\n * TODO: Remove in v8\n * @param cb An immediately executed function.\n */\nexport function errorContext(cb: () => void) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n const isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n const { errorThrown, error } = context!;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n } else {\n // This is the general non-deprecated path for everyone that\n // isn't crazy enough to use super-gross mode (useDeprecatedSynchronousErrorHandling)\n cb();\n }\n}\n\n/**\n * Captures errors only in super-gross mode.\n * @param err the error to capture\n */\nexport function captureError(err: any) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n", "import { isFunction } from './util/isFunction';\nimport { Observer, ObservableNotification } from './types';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\n\n/**\n * Implements the {@link Observer} interface and extends the\n * {@link Subscription} class. While the {@link Observer} is the public API for\n * consuming the values of an {@link Observable}, all Observers get converted to\n * a Subscriber, in order to provide Subscription-like capabilities such as\n * `unsubscribe`. Subscriber is a common type in RxJS, and crucial for\n * implementing operators, but it is rarely used as a public API.\n *\n * @class Subscriber\n */\nexport class Subscriber extends Subscription implements Observer {\n /**\n * A static factory for a Subscriber, given a (potentially partial) definition\n * of an Observer.\n * @param next The `next` callback of an Observer.\n * @param error The `error` callback of an\n * Observer.\n * @param complete The `complete` callback of an\n * Observer.\n * @return A Subscriber wrapping the (partially defined)\n * Observer represented by the given arguments.\n * @nocollapse\n * @deprecated Do not use. Will be removed in v8. There is no replacement for this\n * method, and there is no reason to be creating instances of `Subscriber` directly.\n * If you have a specific use case, please file an issue.\n */\n static create(next?: (x?: T) => void, error?: (e?: any) => void, complete?: () => void): Subscriber {\n return new SafeSubscriber(next, error, complete);\n }\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n protected isStopped: boolean = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n protected destination: Subscriber | Observer; // this `any` is the escape hatch to erase extra type param (e.g. R)\n\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n * There is no reason to directly create an instance of Subscriber. This type is exported for typings reasons.\n */\n constructor(destination?: Subscriber | Observer) {\n super();\n if (destination) {\n this.destination = destination;\n // Automatically chain subscriptions together here.\n // if destination is a Subscription, then it is a Subscriber.\n if (isSubscription(destination)) {\n destination.add(this);\n }\n } else {\n this.destination = EMPTY_OBSERVER;\n }\n }\n\n /**\n * The {@link Observer} callback to receive notifications of type `next` from\n * the Observable, with a value. The Observable may call this method 0 or more\n * times.\n * @param {T} [value] The `next` value.\n * @return {void}\n */\n next(value?: T): void {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n } else {\n this._next(value!);\n }\n }\n\n /**\n * The {@link Observer} callback to receive notifications of type `error` from\n * the Observable, with an attached `Error`. Notifies the Observer that\n * the Observable has experienced an error condition.\n * @param {any} [err] The `error` exception.\n * @return {void}\n */\n error(err?: any): void {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n } else {\n this.isStopped = true;\n this._error(err);\n }\n }\n\n /**\n * The {@link Observer} callback to receive a valueless notification of type\n * `complete` from the Observable. Notifies the Observer that the Observable\n * has finished sending push-based notifications.\n * @return {void}\n */\n complete(): void {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n } else {\n this.isStopped = true;\n this._complete();\n }\n }\n\n unsubscribe(): void {\n if (!this.closed) {\n this.isStopped = true;\n super.unsubscribe();\n this.destination = null!;\n }\n }\n\n protected _next(value: T): void {\n this.destination.next(value);\n }\n\n protected _error(err: any): void {\n try {\n this.destination.error(err);\n } finally {\n this.unsubscribe();\n }\n }\n\n protected _complete(): void {\n try {\n this.destination.complete();\n } finally {\n this.unsubscribe();\n }\n }\n}\n\n/**\n * This bind is captured here because we want to be able to have\n * compatibility with monoid libraries that tend to use a method named\n * `bind`. In particular, a library called Monio requires this.\n */\nconst _bind = Function.prototype.bind;\n\nfunction bind any>(fn: Fn, thisArg: any): Fn {\n return _bind.call(fn, thisArg);\n}\n\n/**\n * Internal optimization only, DO NOT EXPOSE.\n * @internal\n */\nclass ConsumerObserver implements Observer {\n constructor(private partialObserver: Partial>) {}\n\n next(value: T): void {\n const { partialObserver } = this;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n } catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n\n error(err: any): void {\n const { partialObserver } = this;\n if (partialObserver.error) {\n try {\n partialObserver.error(err);\n } catch (error) {\n handleUnhandledError(error);\n }\n } else {\n handleUnhandledError(err);\n }\n }\n\n complete(): void {\n const { partialObserver } = this;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n } catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n}\n\nexport class SafeSubscriber extends Subscriber {\n constructor(\n observerOrNext?: Partial> | ((value: T) => void) | null,\n error?: ((e?: any) => void) | null,\n complete?: (() => void) | null\n ) {\n super();\n\n let partialObserver: Partial>;\n if (isFunction(observerOrNext) || !observerOrNext) {\n // The first argument is a function, not an observer. The next\n // two arguments *could* be observers, or they could be empty.\n partialObserver = {\n next: (observerOrNext ?? undefined) as (((value: T) => void) | undefined),\n error: error ?? undefined,\n complete: complete ?? undefined,\n };\n } else {\n // The first argument is a partial observer.\n let context: any;\n if (this && config.useDeprecatedNextContext) {\n // This is a deprecated path that made `this.unsubscribe()` available in\n // next handler functions passed to subscribe. This only exists behind a flag\n // now, as it is *very* slow.\n context = Object.create(observerOrNext);\n context.unsubscribe = () => this.unsubscribe();\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context),\n error: observerOrNext.error && bind(observerOrNext.error, context),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context),\n };\n } else {\n // The \"normal\" path. Just use the partial observer directly.\n partialObserver = observerOrNext;\n }\n }\n\n // Wrap the partial observer to ensure it's a full observer, and\n // make sure proper error handling is accounted for.\n this.destination = new ConsumerObserver(partialObserver);\n }\n}\n\nfunction handleUnhandledError(error: any) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(error);\n } else {\n // Ideal path, we report this as an unhandled error,\n // which is thrown on a new call stack.\n reportUnhandledError(error);\n }\n}\n\n/**\n * An error handler used when no error handler was supplied\n * to the SafeSubscriber -- meaning no error handler was supplied\n * do the `subscribe` call on our observable.\n * @param err The error to handle\n */\nfunction defaultErrorHandler(err: any) {\n throw err;\n}\n\n/**\n * A handler for notifications that cannot be sent to a stopped subscriber.\n * @param notification The notification being sent\n * @param subscriber The stopped subscriber\n */\nfunction handleStoppedNotification(notification: ObservableNotification, subscriber: Subscriber) {\n const { onStoppedNotification } = config;\n onStoppedNotification && timeoutProvider.setTimeout(() => onStoppedNotification(notification, subscriber));\n}\n\n/**\n * The observer used as a stub for subscriptions where the user did not\n * pass any arguments to `subscribe`. Comes with the default error handling\n * behavior.\n */\nexport const EMPTY_OBSERVER: Readonly> & { closed: true } = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n", "/**\n * Symbol.observable or a string \"@@observable\". Used for interop\n *\n * @deprecated We will no longer be exporting this symbol in upcoming versions of RxJS.\n * Instead polyfill and use Symbol.observable directly *or* use https://www.npmjs.com/package/symbol-observable\n */\nexport const observable: string | symbol = (() => (typeof Symbol === 'function' && Symbol.observable) || '@@observable')();\n", "/**\n * This function takes one parameter and just returns it. Simply put,\n * this is like `(x: T): T => x`.\n *\n * ## Examples\n *\n * This is useful in some cases when using things like `mergeMap`\n *\n * ```ts\n * import { interval, take, map, range, mergeMap, identity } from 'rxjs';\n *\n * const source$ = interval(1000).pipe(take(5));\n *\n * const result$ = source$.pipe(\n * map(i => range(i)),\n * mergeMap(identity) // same as mergeMap(x => x)\n * );\n *\n * result$.subscribe({\n * next: console.log\n * });\n * ```\n *\n * Or when you want to selectively apply an operator\n *\n * ```ts\n * import { interval, take, identity } from 'rxjs';\n *\n * const shouldLimit = () => Math.random() < 0.5;\n *\n * const source$ = interval(1000);\n *\n * const result$ = source$.pipe(shouldLimit() ? take(5) : identity);\n *\n * result$.subscribe({\n * next: console.log\n * });\n * ```\n *\n * @param x Any value that is returned by this function\n * @returns The value passed as the first parameter to this function\n */\nexport function identity(x: T): T {\n return x;\n}\n", "import { identity } from './identity';\nimport { UnaryFunction } from '../types';\n\nexport function pipe(): typeof identity;\nexport function pipe(fn1: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction,\n fn8: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction,\n fn8: UnaryFunction,\n fn9: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction,\n fn8: UnaryFunction,\n fn9: UnaryFunction,\n ...fns: UnaryFunction[]\n): UnaryFunction;\n\n/**\n * pipe() can be called on one or more functions, each of which can take one argument (\"UnaryFunction\")\n * and uses it to return a value.\n * It returns a function that takes one argument, passes it to the first UnaryFunction, and then\n * passes the result to the next one, passes that result to the next one, and so on. \n */\nexport function pipe(...fns: Array>): UnaryFunction {\n return pipeFromArray(fns);\n}\n\n/** @internal */\nexport function pipeFromArray(fns: Array>): UnaryFunction {\n if (fns.length === 0) {\n return identity as UnaryFunction;\n }\n\n if (fns.length === 1) {\n return fns[0];\n }\n\n return function piped(input: T): R {\n return fns.reduce((prev: any, fn: UnaryFunction) => fn(prev), input as any);\n };\n}\n", "import { Operator } from './Operator';\nimport { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription, Subscription } from './Subscription';\nimport { TeardownLogic, OperatorFunction, Subscribable, Observer } from './types';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\n\n/**\n * A representation of any set of values over any amount of time. This is the most basic building block\n * of RxJS.\n *\n * @class Observable\n */\nexport class Observable implements Subscribable {\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n */\n source: Observable | undefined;\n\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n */\n operator: Operator | undefined;\n\n /**\n * @constructor\n * @param {Function} subscribe the function that is called when the Observable is\n * initially subscribed to. This function is given a Subscriber, to which new values\n * can be `next`ed, or an `error` method can be called to raise an error, or\n * `complete` can be called to notify of a successful completion.\n */\n constructor(subscribe?: (this: Observable, subscriber: Subscriber) => TeardownLogic) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n\n // HACK: Since TypeScript inherits static properties too, we have to\n // fight against TypeScript here so Subject can have a different static create signature\n /**\n * Creates a new Observable by calling the Observable constructor\n * @owner Observable\n * @method create\n * @param {Function} subscribe? the subscriber function to be passed to the Observable constructor\n * @return {Observable} a new observable\n * @nocollapse\n * @deprecated Use `new Observable()` instead. Will be removed in v8.\n */\n static create: (...args: any[]) => any = (subscribe?: (subscriber: Subscriber) => TeardownLogic) => {\n return new Observable(subscribe);\n };\n\n /**\n * Creates a new Observable, with this Observable instance as the source, and the passed\n * operator defined as the new observable's operator.\n * @method lift\n * @param operator the operator defining the operation to take on the observable\n * @return a new observable with the Operator applied\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n * If you have implemented an operator using `lift`, it is recommended that you create an\n * operator by simply returning `new Observable()` directly. See \"Creating new operators from\n * scratch\" section here: https://rxjs.dev/guide/operators\n */\n lift(operator?: Operator): Observable {\n const observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n }\n\n subscribe(observerOrNext?: Partial> | ((value: T) => void)): Subscription;\n /** @deprecated Instead of passing separate callback arguments, use an observer argument. Signatures taking separate callback arguments will be removed in v8. Details: https://rxjs.dev/deprecations/subscribe-arguments */\n subscribe(next?: ((value: T) => void) | null, error?: ((error: any) => void) | null, complete?: (() => void) | null): Subscription;\n /**\n * Invokes an execution of an Observable and registers Observer handlers for notifications it will emit.\n *\n * Use it when you have all these Observables, but still nothing is happening.\n *\n * `subscribe` is not a regular operator, but a method that calls Observable's internal `subscribe` function. It\n * might be for example a function that you passed to Observable's constructor, but most of the time it is\n * a library implementation, which defines what will be emitted by an Observable, and when it be will emitted. This means\n * that calling `subscribe` is actually the moment when Observable starts its work, not when it is created, as it is often\n * the thought.\n *\n * Apart from starting the execution of an Observable, this method allows you to listen for values\n * that an Observable emits, as well as for when it completes or errors. You can achieve this in two\n * of the following ways.\n *\n * The first way is creating an object that implements {@link Observer} interface. It should have methods\n * defined by that interface, but note that it should be just a regular JavaScript object, which you can create\n * yourself in any way you want (ES6 class, classic function constructor, object literal etc.). In particular, do\n * not attempt to use any RxJS implementation details to create Observers - you don't need them. Remember also\n * that your object does not have to implement all methods. If you find yourself creating a method that doesn't\n * do anything, you can simply omit it. Note however, if the `error` method is not provided and an error happens,\n * it will be thrown asynchronously. Errors thrown asynchronously cannot be caught using `try`/`catch`. Instead,\n * use the {@link onUnhandledError} configuration option or use a runtime handler (like `window.onerror` or\n * `process.on('error)`) to be notified of unhandled errors. Because of this, it's recommended that you provide\n * an `error` method to avoid missing thrown errors.\n *\n * The second way is to give up on Observer object altogether and simply provide callback functions in place of its methods.\n * This means you can provide three functions as arguments to `subscribe`, where the first function is equivalent\n * of a `next` method, the second of an `error` method and the third of a `complete` method. Just as in case of an Observer,\n * if you do not need to listen for something, you can omit a function by passing `undefined` or `null`,\n * since `subscribe` recognizes these functions by where they were placed in function call. When it comes\n * to the `error` function, as with an Observer, if not provided, errors emitted by an Observable will be thrown asynchronously.\n *\n * You can, however, subscribe with no parameters at all. This may be the case where you're not interested in terminal events\n * and you also handled emissions internally by using operators (e.g. using `tap`).\n *\n * Whichever style of calling `subscribe` you use, in both cases it returns a Subscription object.\n * This object allows you to call `unsubscribe` on it, which in turn will stop the work that an Observable does and will clean\n * up all resources that an Observable used. Note that cancelling a subscription will not call `complete` callback\n * provided to `subscribe` function, which is reserved for a regular completion signal that comes from an Observable.\n *\n * Remember that callbacks provided to `subscribe` are not guaranteed to be called asynchronously.\n * It is an Observable itself that decides when these functions will be called. For example {@link of}\n * by default emits all its values synchronously. Always check documentation for how given Observable\n * will behave when subscribed and if its default behavior can be modified with a `scheduler`.\n *\n * #### Examples\n *\n * Subscribe with an {@link guide/observer Observer}\n *\n * ```ts\n * import { of } from 'rxjs';\n *\n * const sumObserver = {\n * sum: 0,\n * next(value) {\n * console.log('Adding: ' + value);\n * this.sum = this.sum + value;\n * },\n * error() {\n * // We actually could just remove this method,\n * // since we do not really care about errors right now.\n * },\n * complete() {\n * console.log('Sum equals: ' + this.sum);\n * }\n * };\n *\n * of(1, 2, 3) // Synchronously emits 1, 2, 3 and then completes.\n * .subscribe(sumObserver);\n *\n * // Logs:\n * // 'Adding: 1'\n * // 'Adding: 2'\n * // 'Adding: 3'\n * // 'Sum equals: 6'\n * ```\n *\n * Subscribe with functions ({@link deprecations/subscribe-arguments deprecated})\n *\n * ```ts\n * import { of } from 'rxjs'\n *\n * let sum = 0;\n *\n * of(1, 2, 3).subscribe(\n * value => {\n * console.log('Adding: ' + value);\n * sum = sum + value;\n * },\n * undefined,\n * () => console.log('Sum equals: ' + sum)\n * );\n *\n * // Logs:\n * // 'Adding: 1'\n * // 'Adding: 2'\n * // 'Adding: 3'\n * // 'Sum equals: 6'\n * ```\n *\n * Cancel a subscription\n *\n * ```ts\n * import { interval } from 'rxjs';\n *\n * const subscription = interval(1000).subscribe({\n * next(num) {\n * console.log(num)\n * },\n * complete() {\n * // Will not be called, even when cancelling subscription.\n * console.log('completed!');\n * }\n * });\n *\n * setTimeout(() => {\n * subscription.unsubscribe();\n * console.log('unsubscribed!');\n * }, 2500);\n *\n * // Logs:\n * // 0 after 1s\n * // 1 after 2s\n * // 'unsubscribed!' after 2.5s\n * ```\n *\n * @param {Observer|Function} observerOrNext (optional) Either an observer with methods to be called,\n * or the first of three possible handlers, which is the handler for each value emitted from the subscribed\n * Observable.\n * @param {Function} error (optional) A handler for a terminal event resulting from an error. If no error handler is provided,\n * the error will be thrown asynchronously as unhandled.\n * @param {Function} complete (optional) A handler for a terminal event resulting from successful completion.\n * @return {Subscription} a subscription reference to the registered handlers\n * @method subscribe\n */\n subscribe(\n observerOrNext?: Partial> | ((value: T) => void) | null,\n error?: ((error: any) => void) | null,\n complete?: (() => void) | null\n ): Subscription {\n const subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n\n errorContext(() => {\n const { operator, source } = this;\n subscriber.add(\n operator\n ? // We're dealing with a subscription in the\n // operator chain to one of our lifted operators.\n operator.call(subscriber, source)\n : source\n ? // If `source` has a value, but `operator` does not, something that\n // had intimate knowledge of our API, like our `Subject`, must have\n // set it. We're going to just call `_subscribe` directly.\n this._subscribe(subscriber)\n : // In all other cases, we're likely wrapping a user-provided initializer\n // function, so we need to catch errors and handle them appropriately.\n this._trySubscribe(subscriber)\n );\n });\n\n return subscriber;\n }\n\n /** @internal */\n protected _trySubscribe(sink: Subscriber): TeardownLogic {\n try {\n return this._subscribe(sink);\n } catch (err) {\n // We don't need to return anything in this case,\n // because it's just going to try to `add()` to a subscription\n // above.\n sink.error(err);\n }\n }\n\n /**\n * Used as a NON-CANCELLABLE means of subscribing to an observable, for use with\n * APIs that expect promises, like `async/await`. You cannot unsubscribe from this.\n *\n * **WARNING**: Only use this with observables you *know* will complete. If the source\n * observable does not complete, you will end up with a promise that is hung up, and\n * potentially all of the state of an async function hanging out in memory. To avoid\n * this situation, look into adding something like {@link timeout}, {@link take},\n * {@link takeWhile}, or {@link takeUntil} amongst others.\n *\n * #### Example\n *\n * ```ts\n * import { interval, take } from 'rxjs';\n *\n * const source$ = interval(1000).pipe(take(4));\n *\n * async function getTotal() {\n * let total = 0;\n *\n * await source$.forEach(value => {\n * total += value;\n * console.log('observable -> ' + value);\n * });\n *\n * return total;\n * }\n *\n * getTotal().then(\n * total => console.log('Total: ' + total)\n * );\n *\n * // Expected:\n * // 'observable -> 0'\n * // 'observable -> 1'\n * // 'observable -> 2'\n * // 'observable -> 3'\n * // 'Total: 6'\n * ```\n *\n * @param next a handler for each value emitted by the observable\n * @return a promise that either resolves on observable completion or\n * rejects with the handled error\n */\n forEach(next: (value: T) => void): Promise;\n\n /**\n * @param next a handler for each value emitted by the observable\n * @param promiseCtor a constructor function used to instantiate the Promise\n * @return a promise that either resolves on observable completion or\n * rejects with the handled error\n * @deprecated Passing a Promise constructor will no longer be available\n * in upcoming versions of RxJS. This is because it adds weight to the library, for very\n * little benefit. If you need this functionality, it is recommended that you either\n * polyfill Promise, or you create an adapter to convert the returned native promise\n * to whatever promise implementation you wanted. Will be removed in v8.\n */\n forEach(next: (value: T) => void, promiseCtor: PromiseConstructorLike): Promise;\n\n forEach(next: (value: T) => void, promiseCtor?: PromiseConstructorLike): Promise {\n promiseCtor = getPromiseCtor(promiseCtor);\n\n return new promiseCtor((resolve, reject) => {\n const subscriber = new SafeSubscriber({\n next: (value) => {\n try {\n next(value);\n } catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n this.subscribe(subscriber);\n }) as Promise;\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): TeardownLogic {\n return this.source?.subscribe(subscriber);\n }\n\n /**\n * An interop point defined by the es7-observable spec https://github.com/zenparsing/es-observable\n * @method Symbol.observable\n * @return {Observable} this instance of the observable\n */\n [Symbol_observable]() {\n return this;\n }\n\n /* tslint:disable:max-line-length */\n pipe(): Observable;\n pipe(op1: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction,\n op8: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction,\n op8: OperatorFunction,\n op9: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction,\n op8: OperatorFunction,\n op9: OperatorFunction,\n ...operations: OperatorFunction[]\n ): Observable;\n /* tslint:enable:max-line-length */\n\n /**\n * Used to stitch together functional operators into a chain.\n * @method pipe\n * @return {Observable} the Observable result of all of the operators having\n * been called in the order they were passed in.\n *\n * ## Example\n *\n * ```ts\n * import { interval, filter, map, scan } from 'rxjs';\n *\n * interval(1000)\n * .pipe(\n * filter(x => x % 2 === 0),\n * map(x => x + x),\n * scan((acc, x) => acc + x)\n * )\n * .subscribe(x => console.log(x));\n * ```\n */\n pipe(...operations: OperatorFunction[]): Observable {\n return pipeFromArray(operations)(this);\n }\n\n /* tslint:disable:max-line-length */\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(): Promise;\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(PromiseCtor: typeof Promise): Promise;\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(PromiseCtor: PromiseConstructorLike): Promise;\n /* tslint:enable:max-line-length */\n\n /**\n * Subscribe to this Observable and get a Promise resolving on\n * `complete` with the last emission (if any).\n *\n * **WARNING**: Only use this with observables you *know* will complete. If the source\n * observable does not complete, you will end up with a promise that is hung up, and\n * potentially all of the state of an async function hanging out in memory. To avoid\n * this situation, look into adding something like {@link timeout}, {@link take},\n * {@link takeWhile}, or {@link takeUntil} amongst others.\n *\n * @method toPromise\n * @param [promiseCtor] a constructor function used to instantiate\n * the Promise\n * @return A Promise that resolves with the last value emit, or\n * rejects on an error. If there were no emissions, Promise\n * resolves with undefined.\n * @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise\n */\n toPromise(promiseCtor?: PromiseConstructorLike): Promise {\n promiseCtor = getPromiseCtor(promiseCtor);\n\n return new promiseCtor((resolve, reject) => {\n let value: T | undefined;\n this.subscribe(\n (x: T) => (value = x),\n (err: any) => reject(err),\n () => resolve(value)\n );\n }) as Promise;\n }\n}\n\n/**\n * Decides between a passed promise constructor from consuming code,\n * A default configured promise constructor, and the native promise\n * constructor and returns it. If nothing can be found, it will throw\n * an error.\n * @param promiseCtor The optional promise constructor to passed by consuming code\n */\nfunction getPromiseCtor(promiseCtor: PromiseConstructorLike | undefined) {\n return promiseCtor ?? config.Promise ?? Promise;\n}\n\nfunction isObserver(value: any): value is Observer {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\n\nfunction isSubscriber(value: any): value is Subscriber {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n", "import { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { OperatorFunction } from '../types';\nimport { isFunction } from './isFunction';\n\n/**\n * Used to determine if an object is an Observable with a lift function.\n */\nexport function hasLift(source: any): source is { lift: InstanceType['lift'] } {\n return isFunction(source?.lift);\n}\n\n/**\n * Creates an `OperatorFunction`. Used to define operators throughout the library in a concise way.\n * @param init The logic to connect the liftedSource to the subscriber at the moment of subscription.\n */\nexport function operate(\n init: (liftedSource: Observable, subscriber: Subscriber) => (() => void) | void\n): OperatorFunction {\n return (source: Observable) => {\n if (hasLift(source)) {\n return source.lift(function (this: Subscriber, liftedSource: Observable) {\n try {\n return init(liftedSource, this);\n } catch (err) {\n this.error(err);\n }\n });\n }\n throw new TypeError('Unable to lift unknown Observable type');\n };\n}\n", "import { Subscriber } from '../Subscriber';\n\n/**\n * Creates an instance of an `OperatorSubscriber`.\n * @param destination The downstream subscriber.\n * @param onNext Handles next values, only called if this subscriber is not stopped or closed. Any\n * error that occurs in this function is caught and sent to the `error` method of this subscriber.\n * @param onError Handles errors from the subscription, any errors that occur in this handler are caught\n * and send to the `destination` error handler.\n * @param onComplete Handles completion notification from the subscription. Any errors that occur in\n * this handler are sent to the `destination` error handler.\n * @param onFinalize Additional teardown logic here. This will only be called on teardown if the\n * subscriber itself is not already closed. This is called after all other teardown logic is executed.\n */\nexport function createOperatorSubscriber(\n destination: Subscriber,\n onNext?: (value: T) => void,\n onComplete?: () => void,\n onError?: (err: any) => void,\n onFinalize?: () => void\n): Subscriber {\n return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);\n}\n\n/**\n * A generic helper for allowing operators to be created with a Subscriber and\n * use closures to capture necessary state from the operator function itself.\n */\nexport class OperatorSubscriber extends Subscriber {\n /**\n * Creates an instance of an `OperatorSubscriber`.\n * @param destination The downstream subscriber.\n * @param onNext Handles next values, only called if this subscriber is not stopped or closed. Any\n * error that occurs in this function is caught and sent to the `error` method of this subscriber.\n * @param onError Handles errors from the subscription, any errors that occur in this handler are caught\n * and send to the `destination` error handler.\n * @param onComplete Handles completion notification from the subscription. Any errors that occur in\n * this handler are sent to the `destination` error handler.\n * @param onFinalize Additional finalization logic here. This will only be called on finalization if the\n * subscriber itself is not already closed. This is called after all other finalization logic is executed.\n * @param shouldUnsubscribe An optional check to see if an unsubscribe call should truly unsubscribe.\n * NOTE: This currently **ONLY** exists to support the strange behavior of {@link groupBy}, where unsubscription\n * to the resulting observable does not actually disconnect from the source if there are active subscriptions\n * to any grouped observable. (DO NOT EXPOSE OR USE EXTERNALLY!!!)\n */\n constructor(\n destination: Subscriber,\n onNext?: (value: T) => void,\n onComplete?: () => void,\n onError?: (err: any) => void,\n private onFinalize?: () => void,\n private shouldUnsubscribe?: () => boolean\n ) {\n // It's important - for performance reasons - that all of this class's\n // members are initialized and that they are always initialized in the same\n // order. This will ensure that all OperatorSubscriber instances have the\n // same hidden class in V8. This, in turn, will help keep the number of\n // hidden classes involved in property accesses within the base class as\n // low as possible. If the number of hidden classes involved exceeds four,\n // the property accesses will become megamorphic and performance penalties\n // will be incurred - i.e. inline caches won't be used.\n //\n // The reasons for ensuring all instances have the same hidden class are\n // further discussed in this blog post from Benedikt Meurer:\n // https://benediktmeurer.de/2018/03/23/impact-of-polymorphism-on-component-based-frameworks-like-react/\n super(destination);\n this._next = onNext\n ? function (this: OperatorSubscriber, value: T) {\n try {\n onNext(value);\n } catch (err) {\n destination.error(err);\n }\n }\n : super._next;\n this._error = onError\n ? function (this: OperatorSubscriber, err: any) {\n try {\n onError(err);\n } catch (err) {\n // Send any errors that occur down stream.\n destination.error(err);\n } finally {\n // Ensure finalization.\n this.unsubscribe();\n }\n }\n : super._error;\n this._complete = onComplete\n ? function (this: OperatorSubscriber) {\n try {\n onComplete();\n } catch (err) {\n // Send any errors that occur down stream.\n destination.error(err);\n } finally {\n // Ensure finalization.\n this.unsubscribe();\n }\n }\n : super._complete;\n }\n\n unsubscribe() {\n if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {\n const { closed } = this;\n super.unsubscribe();\n // Execute additional teardown if we have any and we didn't already do so.\n !closed && this.onFinalize?.();\n }\n }\n}\n", "import { Subscription } from '../Subscription';\n\ninterface AnimationFrameProvider {\n schedule(callback: FrameRequestCallback): Subscription;\n requestAnimationFrame: typeof requestAnimationFrame;\n cancelAnimationFrame: typeof cancelAnimationFrame;\n delegate:\n | {\n requestAnimationFrame: typeof requestAnimationFrame;\n cancelAnimationFrame: typeof cancelAnimationFrame;\n }\n | undefined;\n}\n\nexport const animationFrameProvider: AnimationFrameProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n schedule(callback) {\n let request = requestAnimationFrame;\n let cancel: typeof cancelAnimationFrame | undefined = cancelAnimationFrame;\n const { delegate } = animationFrameProvider;\n if (delegate) {\n request = delegate.requestAnimationFrame;\n cancel = delegate.cancelAnimationFrame;\n }\n const handle = request((timestamp) => {\n // Clear the cancel function. The request has been fulfilled, so\n // attempting to cancel the request upon unsubscription would be\n // pointless.\n cancel = undefined;\n callback(timestamp);\n });\n return new Subscription(() => cancel?.(handle));\n },\n requestAnimationFrame(...args) {\n const { delegate } = animationFrameProvider;\n return (delegate?.requestAnimationFrame || requestAnimationFrame)(...args);\n },\n cancelAnimationFrame(...args) {\n const { delegate } = animationFrameProvider;\n return (delegate?.cancelAnimationFrame || cancelAnimationFrame)(...args);\n },\n delegate: undefined,\n};\n", "import { createErrorClass } from './createErrorClass';\n\nexport interface ObjectUnsubscribedError extends Error {}\n\nexport interface ObjectUnsubscribedErrorCtor {\n /**\n * @deprecated Internal implementation detail. Do not construct error instances.\n * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269\n */\n new (): ObjectUnsubscribedError;\n}\n\n/**\n * An error thrown when an action is invalid because the object has been\n * unsubscribed.\n *\n * @see {@link Subject}\n * @see {@link BehaviorSubject}\n *\n * @class ObjectUnsubscribedError\n */\nexport const ObjectUnsubscribedError: ObjectUnsubscribedErrorCtor = createErrorClass(\n (_super) =>\n function ObjectUnsubscribedErrorImpl(this: any) {\n _super(this);\n this.name = 'ObjectUnsubscribedError';\n this.message = 'object unsubscribed';\n }\n);\n", "import { Operator } from './Operator';\nimport { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription, EMPTY_SUBSCRIPTION } from './Subscription';\nimport { Observer, SubscriptionLike, TeardownLogic } from './types';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { arrRemove } from './util/arrRemove';\nimport { errorContext } from './util/errorContext';\n\n/**\n * A Subject is a special type of Observable that allows values to be\n * multicasted to many Observers. Subjects are like EventEmitters.\n *\n * Every Subject is an Observable and an Observer. You can subscribe to a\n * Subject, and you can call next to feed values as well as error and complete.\n */\nexport class Subject extends Observable implements SubscriptionLike {\n closed = false;\n\n private currentObservers: Observer[] | null = null;\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n observers: Observer[] = [];\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n isStopped = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n hasError = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n thrownError: any = null;\n\n /**\n * Creates a \"subject\" by basically gluing an observer to an observable.\n *\n * @nocollapse\n * @deprecated Recommended you do not use. Will be removed at some point in the future. Plans for replacement still under discussion.\n */\n static create: (...args: any[]) => any = (destination: Observer, source: Observable): AnonymousSubject => {\n return new AnonymousSubject(destination, source);\n };\n\n constructor() {\n // NOTE: This must be here to obscure Observable's constructor.\n super();\n }\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n lift(operator: Operator): Observable {\n const subject = new AnonymousSubject(this, this);\n subject.operator = operator as any;\n return subject as any;\n }\n\n /** @internal */\n protected _throwIfClosed() {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n }\n\n next(value: T) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n if (!this.currentObservers) {\n this.currentObservers = Array.from(this.observers);\n }\n for (const observer of this.currentObservers) {\n observer.next(value);\n }\n }\n });\n }\n\n error(err: any) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.hasError = this.isStopped = true;\n this.thrownError = err;\n const { observers } = this;\n while (observers.length) {\n observers.shift()!.error(err);\n }\n }\n });\n }\n\n complete() {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.isStopped = true;\n const { observers } = this;\n while (observers.length) {\n observers.shift()!.complete();\n }\n }\n });\n }\n\n unsubscribe() {\n this.isStopped = this.closed = true;\n this.observers = this.currentObservers = null!;\n }\n\n get observed() {\n return this.observers?.length > 0;\n }\n\n /** @internal */\n protected _trySubscribe(subscriber: Subscriber): TeardownLogic {\n this._throwIfClosed();\n return super._trySubscribe(subscriber);\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n this._throwIfClosed();\n this._checkFinalizedStatuses(subscriber);\n return this._innerSubscribe(subscriber);\n }\n\n /** @internal */\n protected _innerSubscribe(subscriber: Subscriber) {\n const { hasError, isStopped, observers } = this;\n if (hasError || isStopped) {\n return EMPTY_SUBSCRIPTION;\n }\n this.currentObservers = null;\n observers.push(subscriber);\n return new Subscription(() => {\n this.currentObservers = null;\n arrRemove(observers, subscriber);\n });\n }\n\n /** @internal */\n protected _checkFinalizedStatuses(subscriber: Subscriber) {\n const { hasError, thrownError, isStopped } = this;\n if (hasError) {\n subscriber.error(thrownError);\n } else if (isStopped) {\n subscriber.complete();\n }\n }\n\n /**\n * Creates a new Observable with this Subject as the source. You can do this\n * to create custom Observer-side logic of the Subject and conceal it from\n * code that uses the Observable.\n * @return {Observable} Observable that the Subject casts to\n */\n asObservable(): Observable {\n const observable: any = new Observable();\n observable.source = this;\n return observable;\n }\n}\n\n/**\n * @class AnonymousSubject\n */\nexport class AnonymousSubject extends Subject {\n constructor(\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n public destination?: Observer,\n source?: Observable\n ) {\n super();\n this.source = source;\n }\n\n next(value: T) {\n this.destination?.next?.(value);\n }\n\n error(err: any) {\n this.destination?.error?.(err);\n }\n\n complete() {\n this.destination?.complete?.();\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n return this.source?.subscribe(subscriber) ?? EMPTY_SUBSCRIPTION;\n }\n}\n", "import { Subject } from './Subject';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\n\n/**\n * A variant of Subject that requires an initial value and emits its current\n * value whenever it is subscribed to.\n *\n * @class BehaviorSubject\n */\nexport class BehaviorSubject extends Subject {\n constructor(private _value: T) {\n super();\n }\n\n get value(): T {\n return this.getValue();\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n const subscription = super._subscribe(subscriber);\n !subscription.closed && subscriber.next(this._value);\n return subscription;\n }\n\n getValue(): T {\n const { hasError, thrownError, _value } = this;\n if (hasError) {\n throw thrownError;\n }\n this._throwIfClosed();\n return _value;\n }\n\n next(value: T): void {\n super.next((this._value = value));\n }\n}\n", "import { TimestampProvider } from '../types';\n\ninterface DateTimestampProvider extends TimestampProvider {\n delegate: TimestampProvider | undefined;\n}\n\nexport const dateTimestampProvider: DateTimestampProvider = {\n now() {\n // Use the variable rather than `this` so that the function can be called\n // without being bound to the provider.\n return (dateTimestampProvider.delegate || Date).now();\n },\n delegate: undefined,\n};\n", "import { Subject } from './Subject';\nimport { TimestampProvider } from './types';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\n\n/**\n * A variant of {@link Subject} that \"replays\" old values to new subscribers by emitting them when they first subscribe.\n *\n * `ReplaySubject` has an internal buffer that will store a specified number of values that it has observed. Like `Subject`,\n * `ReplaySubject` \"observes\" values by having them passed to its `next` method. When it observes a value, it will store that\n * value for a time determined by the configuration of the `ReplaySubject`, as passed to its constructor.\n *\n * When a new subscriber subscribes to the `ReplaySubject` instance, it will synchronously emit all values in its buffer in\n * a First-In-First-Out (FIFO) manner. The `ReplaySubject` will also complete, if it has observed completion; and it will\n * error if it has observed an error.\n *\n * There are two main configuration items to be concerned with:\n *\n * 1. `bufferSize` - This will determine how many items are stored in the buffer, defaults to infinite.\n * 2. `windowTime` - The amount of time to hold a value in the buffer before removing it from the buffer.\n *\n * Both configurations may exist simultaneously. So if you would like to buffer a maximum of 3 values, as long as the values\n * are less than 2 seconds old, you could do so with a `new ReplaySubject(3, 2000)`.\n *\n * ### Differences with BehaviorSubject\n *\n * `BehaviorSubject` is similar to `new ReplaySubject(1)`, with a couple of exceptions:\n *\n * 1. `BehaviorSubject` comes \"primed\" with a single value upon construction.\n * 2. `ReplaySubject` will replay values, even after observing an error, where `BehaviorSubject` will not.\n *\n * @see {@link Subject}\n * @see {@link BehaviorSubject}\n * @see {@link shareReplay}\n */\nexport class ReplaySubject extends Subject {\n private _buffer: (T | number)[] = [];\n private _infiniteTimeWindow = true;\n\n /**\n * @param bufferSize The size of the buffer to replay on subscription\n * @param windowTime The amount of time the buffered items will stay buffered\n * @param timestampProvider An object with a `now()` method that provides the current timestamp. This is used to\n * calculate the amount of time something has been buffered.\n */\n constructor(\n private _bufferSize = Infinity,\n private _windowTime = Infinity,\n private _timestampProvider: TimestampProvider = dateTimestampProvider\n ) {\n super();\n this._infiniteTimeWindow = _windowTime === Infinity;\n this._bufferSize = Math.max(1, _bufferSize);\n this._windowTime = Math.max(1, _windowTime);\n }\n\n next(value: T): void {\n const { isStopped, _buffer, _infiniteTimeWindow, _timestampProvider, _windowTime } = this;\n if (!isStopped) {\n _buffer.push(value);\n !_infiniteTimeWindow && _buffer.push(_timestampProvider.now() + _windowTime);\n }\n this._trimBuffer();\n super.next(value);\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n this._throwIfClosed();\n this._trimBuffer();\n\n const subscription = this._innerSubscribe(subscriber);\n\n const { _infiniteTimeWindow, _buffer } = this;\n // We use a copy here, so reentrant code does not mutate our array while we're\n // emitting it to a new subscriber.\n const copy = _buffer.slice();\n for (let i = 0; i < copy.length && !subscriber.closed; i += _infiniteTimeWindow ? 1 : 2) {\n subscriber.next(copy[i] as T);\n }\n\n this._checkFinalizedStatuses(subscriber);\n\n return subscription;\n }\n\n private _trimBuffer() {\n const { _bufferSize, _timestampProvider, _buffer, _infiniteTimeWindow } = this;\n // If we don't have an infinite buffer size, and we're over the length,\n // use splice to truncate the old buffer values off. Note that we have to\n // double the size for instances where we're not using an infinite time window\n // because we're storing the values and the timestamps in the same array.\n const adjustedBufferSize = (_infiniteTimeWindow ? 1 : 2) * _bufferSize;\n _bufferSize < Infinity && adjustedBufferSize < _buffer.length && _buffer.splice(0, _buffer.length - adjustedBufferSize);\n\n // Now, if we're not in an infinite time window, remove all values where the time is\n // older than what is allowed.\n if (!_infiniteTimeWindow) {\n const now = _timestampProvider.now();\n let last = 0;\n // Search the array for the first timestamp that isn't expired and\n // truncate the buffer up to that point.\n for (let i = 1; i < _buffer.length && (_buffer[i] as number) <= now; i += 2) {\n last = i;\n }\n last && _buffer.splice(0, last + 1);\n }\n }\n}\n", "import { Scheduler } from '../Scheduler';\nimport { Subscription } from '../Subscription';\nimport { SchedulerAction } from '../types';\n\n/**\n * A unit of work to be executed in a `scheduler`. An action is typically\n * created from within a {@link SchedulerLike} and an RxJS user does not need to concern\n * themselves about creating and manipulating an Action.\n *\n * ```ts\n * class Action extends Subscription {\n * new (scheduler: Scheduler, work: (state?: T) => void);\n * schedule(state?: T, delay: number = 0): Subscription;\n * }\n * ```\n *\n * @class Action\n */\nexport class Action extends Subscription {\n constructor(scheduler: Scheduler, work: (this: SchedulerAction, state?: T) => void) {\n super();\n }\n /**\n * Schedules this action on its parent {@link SchedulerLike} for execution. May be passed\n * some context object, `state`. May happen at some point in the future,\n * according to the `delay` parameter, if specified.\n * @param {T} [state] Some contextual data that the `work` function uses when\n * called by the Scheduler.\n * @param {number} [delay] Time to wait before executing the work, where the\n * time unit is implicit and defined by the Scheduler.\n * @return {void}\n */\n public schedule(state?: T, delay: number = 0): Subscription {\n return this;\n }\n}\n", "import type { TimerHandle } from './timerHandle';\ntype SetIntervalFunction = (handler: () => void, timeout?: number, ...args: any[]) => TimerHandle;\ntype ClearIntervalFunction = (handle: TimerHandle) => void;\n\ninterface IntervalProvider {\n setInterval: SetIntervalFunction;\n clearInterval: ClearIntervalFunction;\n delegate:\n | {\n setInterval: SetIntervalFunction;\n clearInterval: ClearIntervalFunction;\n }\n | undefined;\n}\n\nexport const intervalProvider: IntervalProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n setInterval(handler: () => void, timeout?: number, ...args) {\n const { delegate } = intervalProvider;\n if (delegate?.setInterval) {\n return delegate.setInterval(handler, timeout, ...args);\n }\n return setInterval(handler, timeout, ...args);\n },\n clearInterval(handle) {\n const { delegate } = intervalProvider;\n return (delegate?.clearInterval || clearInterval)(handle as any);\n },\n delegate: undefined,\n};\n", "import { Action } from './Action';\nimport { SchedulerAction } from '../types';\nimport { Subscription } from '../Subscription';\nimport { AsyncScheduler } from './AsyncScheduler';\nimport { intervalProvider } from './intervalProvider';\nimport { arrRemove } from '../util/arrRemove';\nimport { TimerHandle } from './timerHandle';\n\nexport class AsyncAction extends Action {\n public id: TimerHandle | undefined;\n public state?: T;\n // @ts-ignore: Property has no initializer and is not definitely assigned\n public delay: number;\n protected pending: boolean = false;\n\n constructor(protected scheduler: AsyncScheduler, protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n public schedule(state?: T, delay: number = 0): Subscription {\n if (this.closed) {\n return this;\n }\n\n // Always replace the current state with the new state.\n this.state = state;\n\n const id = this.id;\n const scheduler = this.scheduler;\n\n //\n // Important implementation note:\n //\n // Actions only execute once by default, unless rescheduled from within the\n // scheduled callback. This allows us to implement single and repeat\n // actions via the same code path, without adding API surface area, as well\n // as mimic traditional recursion but across asynchronous boundaries.\n //\n // However, JS runtimes and timers distinguish between intervals achieved by\n // serial `setTimeout` calls vs. a single `setInterval` call. An interval of\n // serial `setTimeout` calls can be individually delayed, which delays\n // scheduling the next `setTimeout`, and so on. `setInterval` attempts to\n // guarantee the interval callback will be invoked more precisely to the\n // interval period, regardless of load.\n //\n // Therefore, we use `setInterval` to schedule single and repeat actions.\n // If the action reschedules itself with the same delay, the interval is not\n // canceled. If the action doesn't reschedule, or reschedules with a\n // different delay, the interval will be canceled after scheduled callback\n // execution.\n //\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n\n // Set the pending flag indicating that this action has been scheduled, or\n // has recursively rescheduled itself.\n this.pending = true;\n\n this.delay = delay;\n // If this action has already an async Id, don't request a new one.\n this.id = this.id ?? this.requestAsyncId(scheduler, this.id, delay);\n\n return this;\n }\n\n protected requestAsyncId(scheduler: AsyncScheduler, _id?: TimerHandle, delay: number = 0): TimerHandle {\n return intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay);\n }\n\n protected recycleAsyncId(_scheduler: AsyncScheduler, id?: TimerHandle, delay: number | null = 0): TimerHandle | undefined {\n // If this action is rescheduled with the same delay time, don't clear the interval id.\n if (delay != null && this.delay === delay && this.pending === false) {\n return id;\n }\n // Otherwise, if the action's delay time is different from the current delay,\n // or the action has been rescheduled before it's executed, clear the interval id\n if (id != null) {\n intervalProvider.clearInterval(id);\n }\n\n return undefined;\n }\n\n /**\n * Immediately executes this action and the `work` it contains.\n * @return {any}\n */\n public execute(state: T, delay: number): any {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n\n this.pending = false;\n const error = this._execute(state, delay);\n if (error) {\n return error;\n } else if (this.pending === false && this.id != null) {\n // Dequeue if the action didn't reschedule itself. Don't call\n // unsubscribe(), because the action could reschedule later.\n // For example:\n // ```\n // scheduler.schedule(function doWork(counter) {\n // /* ... I'm a busy worker bee ... */\n // var originalAction = this;\n // /* wait 100ms before rescheduling the action */\n // setTimeout(function () {\n // originalAction.schedule(counter + 1);\n // }, 100);\n // }, 1000);\n // ```\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n }\n\n protected _execute(state: T, _delay: number): any {\n let errored: boolean = false;\n let errorValue: any;\n try {\n this.work(state);\n } catch (e) {\n errored = true;\n // HACK: Since code elsewhere is relying on the \"truthiness\" of the\n // return here, we can't have it return \"\" or 0 or false.\n // TODO: Clean this up when we refactor schedulers mid-version-8 or so.\n errorValue = e ? e : new Error('Scheduled action threw falsy error');\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n }\n\n unsubscribe() {\n if (!this.closed) {\n const { id, scheduler } = this;\n const { actions } = scheduler;\n\n this.work = this.state = this.scheduler = null!;\n this.pending = false;\n\n arrRemove(actions, this);\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n\n this.delay = null!;\n super.unsubscribe();\n }\n }\n}\n", "import { Action } from './scheduler/Action';\nimport { Subscription } from './Subscription';\nimport { SchedulerLike, SchedulerAction } from './types';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\n\n/**\n * An execution context and a data structure to order tasks and schedule their\n * execution. Provides a notion of (potentially virtual) time, through the\n * `now()` getter method.\n *\n * Each unit of work in a Scheduler is called an `Action`.\n *\n * ```ts\n * class Scheduler {\n * now(): number;\n * schedule(work, delay?, state?): Subscription;\n * }\n * ```\n *\n * @class Scheduler\n * @deprecated Scheduler is an internal implementation detail of RxJS, and\n * should not be used directly. Rather, create your own class and implement\n * {@link SchedulerLike}. Will be made internal in v8.\n */\nexport class Scheduler implements SchedulerLike {\n public static now: () => number = dateTimestampProvider.now;\n\n constructor(private schedulerActionCtor: typeof Action, now: () => number = Scheduler.now) {\n this.now = now;\n }\n\n /**\n * A getter method that returns a number representing the current time\n * (at the time this function was called) according to the scheduler's own\n * internal clock.\n * @return {number} A number that represents the current time. May or may not\n * have a relation to wall-clock time. May or may not refer to a time unit\n * (e.g. milliseconds).\n */\n public now: () => number;\n\n /**\n * Schedules a function, `work`, for execution. May happen at some point in\n * the future, according to the `delay` parameter, if specified. May be passed\n * some context object, `state`, which will be passed to the `work` function.\n *\n * The given arguments will be processed an stored as an Action object in a\n * queue of actions.\n *\n * @param {function(state: ?T): ?Subscription} work A function representing a\n * task, or some unit of work to be executed by the Scheduler.\n * @param {number} [delay] Time to wait before executing the work, where the\n * time unit is implicit and defined by the Scheduler itself.\n * @param {T} [state] Some contextual data that the `work` function uses when\n * called by the Scheduler.\n * @return {Subscription} A subscription in order to be able to unsubscribe\n * the scheduled work.\n */\n public schedule(work: (this: SchedulerAction, state?: T) => void, delay: number = 0, state?: T): Subscription {\n return new this.schedulerActionCtor(this, work).schedule(state, delay);\n }\n}\n", "import { Scheduler } from '../Scheduler';\nimport { Action } from './Action';\nimport { AsyncAction } from './AsyncAction';\nimport { TimerHandle } from './timerHandle';\n\nexport class AsyncScheduler extends Scheduler {\n public actions: Array> = [];\n /**\n * A flag to indicate whether the Scheduler is currently executing a batch of\n * queued actions.\n * @type {boolean}\n * @internal\n */\n public _active: boolean = false;\n /**\n * An internal ID used to track the latest asynchronous task such as those\n * coming from `setTimeout`, `setInterval`, `requestAnimationFrame`, and\n * others.\n * @type {any}\n * @internal\n */\n public _scheduled: TimerHandle | undefined;\n\n constructor(SchedulerAction: typeof Action, now: () => number = Scheduler.now) {\n super(SchedulerAction, now);\n }\n\n public flush(action: AsyncAction): void {\n const { actions } = this;\n\n if (this._active) {\n actions.push(action);\n return;\n }\n\n let error: any;\n this._active = true;\n\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions.shift()!)); // exhaust the scheduler queue\n\n this._active = false;\n\n if (error) {\n while ((action = actions.shift()!)) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n", "import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n\n/**\n *\n * Async Scheduler\n *\n * Schedule task as if you used setTimeout(task, duration)\n *\n * `async` scheduler schedules tasks asynchronously, by putting them on the JavaScript\n * event loop queue. It is best used to delay tasks in time or to schedule tasks repeating\n * in intervals.\n *\n * If you just want to \"defer\" task, that is to perform it right after currently\n * executing synchronous code ends (commonly achieved by `setTimeout(deferredTask, 0)`),\n * better choice will be the {@link asapScheduler} scheduler.\n *\n * ## Examples\n * Use async scheduler to delay task\n * ```ts\n * import { asyncScheduler } from 'rxjs';\n *\n * const task = () => console.log('it works!');\n *\n * asyncScheduler.schedule(task, 2000);\n *\n * // After 2 seconds logs:\n * // \"it works!\"\n * ```\n *\n * Use async scheduler to repeat task in intervals\n * ```ts\n * import { asyncScheduler } from 'rxjs';\n *\n * function task(state) {\n * console.log(state);\n * this.schedule(state + 1, 1000); // `this` references currently executing Action,\n * // which we reschedule with new state and delay\n * }\n *\n * asyncScheduler.schedule(task, 3000, 0);\n *\n * // Logs:\n * // 0 after 3s\n * // 1 after 4s\n * // 2 after 5s\n * // 3 after 6s\n * ```\n */\n\nexport const asyncScheduler = new AsyncScheduler(AsyncAction);\n\n/**\n * @deprecated Renamed to {@link asyncScheduler}. Will be removed in v8.\n */\nexport const async = asyncScheduler;\n", "import { AsyncAction } from './AsyncAction';\nimport { Subscription } from '../Subscription';\nimport { QueueScheduler } from './QueueScheduler';\nimport { SchedulerAction } from '../types';\nimport { TimerHandle } from './timerHandle';\n\nexport class QueueAction extends AsyncAction {\n constructor(protected scheduler: QueueScheduler, protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n public schedule(state?: T, delay: number = 0): Subscription {\n if (delay > 0) {\n return super.schedule(state, delay);\n }\n this.delay = delay;\n this.state = state;\n this.scheduler.flush(this);\n return this;\n }\n\n public execute(state: T, delay: number): any {\n return delay > 0 || this.closed ? super.execute(state, delay) : this._execute(state, delay);\n }\n\n protected requestAsyncId(scheduler: QueueScheduler, id?: TimerHandle, delay: number = 0): TimerHandle {\n // If delay exists and is greater than 0, or if the delay is null (the\n // action wasn't rescheduled) but was originally scheduled as an async\n // action, then recycle as an async action.\n\n if ((delay != null && delay > 0) || (delay == null && this.delay > 0)) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n\n // Otherwise flush the scheduler starting with this action.\n scheduler.flush(this);\n\n // HACK: In the past, this was returning `void`. However, `void` isn't a valid\n // `TimerHandle`, and generally the return value here isn't really used. So the\n // compromise is to return `0` which is both \"falsy\" and a valid `TimerHandle`,\n // as opposed to refactoring every other instanceo of `requestAsyncId`.\n return 0;\n }\n}\n", "import { AsyncScheduler } from './AsyncScheduler';\n\nexport class QueueScheduler extends AsyncScheduler {\n}\n", "import { QueueAction } from './QueueAction';\nimport { QueueScheduler } from './QueueScheduler';\n\n/**\n *\n * Queue Scheduler\n *\n * Put every next task on a queue, instead of executing it immediately\n *\n * `queue` scheduler, when used with delay, behaves the same as {@link asyncScheduler} scheduler.\n *\n * When used without delay, it schedules given task synchronously - executes it right when\n * it is scheduled. However when called recursively, that is when inside the scheduled task,\n * another task is scheduled with queue scheduler, instead of executing immediately as well,\n * that task will be put on a queue and wait for current one to finish.\n *\n * This means that when you execute task with `queue` scheduler, you are sure it will end\n * before any other task scheduled with that scheduler will start.\n *\n * ## Examples\n * Schedule recursively first, then do something\n * ```ts\n * import { queueScheduler } from 'rxjs';\n *\n * queueScheduler.schedule(() => {\n * queueScheduler.schedule(() => console.log('second')); // will not happen now, but will be put on a queue\n *\n * console.log('first');\n * });\n *\n * // Logs:\n * // \"first\"\n * // \"second\"\n * ```\n *\n * Reschedule itself recursively\n * ```ts\n * import { queueScheduler } from 'rxjs';\n *\n * queueScheduler.schedule(function(state) {\n * if (state !== 0) {\n * console.log('before', state);\n * this.schedule(state - 1); // `this` references currently executing Action,\n * // which we reschedule with new state\n * console.log('after', state);\n * }\n * }, 0, 3);\n *\n * // In scheduler that runs recursively, you would expect:\n * // \"before\", 3\n * // \"before\", 2\n * // \"before\", 1\n * // \"after\", 1\n * // \"after\", 2\n * // \"after\", 3\n *\n * // But with queue it logs:\n * // \"before\", 3\n * // \"after\", 3\n * // \"before\", 2\n * // \"after\", 2\n * // \"before\", 1\n * // \"after\", 1\n * ```\n */\n\nexport const queueScheduler = new QueueScheduler(QueueAction);\n\n/**\n * @deprecated Renamed to {@link queueScheduler}. Will be removed in v8.\n */\nexport const queue = queueScheduler;\n", "import { AsyncAction } from './AsyncAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\nimport { SchedulerAction } from '../types';\nimport { animationFrameProvider } from './animationFrameProvider';\nimport { TimerHandle } from './timerHandle';\n\nexport class AnimationFrameAction extends AsyncAction {\n constructor(protected scheduler: AnimationFrameScheduler, protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n protected requestAsyncId(scheduler: AnimationFrameScheduler, id?: TimerHandle, delay: number = 0): TimerHandle {\n // If delay is greater than 0, request as an async action.\n if (delay !== null && delay > 0) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n // Push the action to the end of the scheduler queue.\n scheduler.actions.push(this);\n // If an animation frame has already been requested, don't request another\n // one. If an animation frame hasn't been requested yet, request one. Return\n // the current animation frame request id.\n return scheduler._scheduled || (scheduler._scheduled = animationFrameProvider.requestAnimationFrame(() => scheduler.flush(undefined)));\n }\n\n protected recycleAsyncId(scheduler: AnimationFrameScheduler, id?: TimerHandle, delay: number = 0): TimerHandle | undefined {\n // If delay exists and is greater than 0, or if the delay is null (the\n // action wasn't rescheduled) but was originally scheduled as an async\n // action, then recycle as an async action.\n if (delay != null ? delay > 0 : this.delay > 0) {\n return super.recycleAsyncId(scheduler, id, delay);\n }\n // If the scheduler queue has no remaining actions with the same async id,\n // cancel the requested animation frame and set the scheduled flag to\n // undefined so the next AnimationFrameAction will request its own.\n const { actions } = scheduler;\n if (id != null && actions[actions.length - 1]?.id !== id) {\n animationFrameProvider.cancelAnimationFrame(id as number);\n scheduler._scheduled = undefined;\n }\n // Return undefined so the action knows to request a new async id if it's rescheduled.\n return undefined;\n }\n}\n", "import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n\nexport class AnimationFrameScheduler extends AsyncScheduler {\n public flush(action?: AsyncAction): void {\n this._active = true;\n // The async id that effects a call to flush is stored in _scheduled.\n // Before executing an action, it's necessary to check the action's async\n // id to determine whether it's supposed to be executed in the current\n // flush.\n // Previous implementations of this method used a count to determine this,\n // but that was unsound, as actions that are unsubscribed - i.e. cancelled -\n // are removed from the actions array and that can shift actions that are\n // scheduled to be executed in a subsequent flush into positions at which\n // they are executed within the current flush.\n const flushId = this._scheduled;\n this._scheduled = undefined;\n\n const { actions } = this;\n let error: any;\n action = action || actions.shift()!;\n\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions[0]) && action.id === flushId && actions.shift());\n\n this._active = false;\n\n if (error) {\n while ((action = actions[0]) && action.id === flushId && actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n", "import { AnimationFrameAction } from './AnimationFrameAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\n\n/**\n *\n * Animation Frame Scheduler\n *\n * Perform task when `window.requestAnimationFrame` would fire\n *\n * When `animationFrame` scheduler is used with delay, it will fall back to {@link asyncScheduler} scheduler\n * behaviour.\n *\n * Without delay, `animationFrame` scheduler can be used to create smooth browser animations.\n * It makes sure scheduled task will happen just before next browser content repaint,\n * thus performing animations as efficiently as possible.\n *\n * ## Example\n * Schedule div height animation\n * ```ts\n * // html:
    \n * import { animationFrameScheduler } from 'rxjs';\n *\n * const div = document.querySelector('div');\n *\n * animationFrameScheduler.schedule(function(height) {\n * div.style.height = height + \"px\";\n *\n * this.schedule(height + 1); // `this` references currently executing Action,\n * // which we reschedule with new state\n * }, 0, 0);\n *\n * // You will see a div element growing in height\n * ```\n */\n\nexport const animationFrameScheduler = new AnimationFrameScheduler(AnimationFrameAction);\n\n/**\n * @deprecated Renamed to {@link animationFrameScheduler}. Will be removed in v8.\n */\nexport const animationFrame = animationFrameScheduler;\n", "import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\n\n/**\n * A simple Observable that emits no items to the Observer and immediately\n * emits a complete notification.\n *\n * Just emits 'complete', and nothing else.\n *\n * ![](empty.png)\n *\n * A simple Observable that only emits the complete notification. It can be used\n * for composing with other Observables, such as in a {@link mergeMap}.\n *\n * ## Examples\n *\n * Log complete notification\n *\n * ```ts\n * import { EMPTY } from 'rxjs';\n *\n * EMPTY.subscribe({\n * next: () => console.log('Next'),\n * complete: () => console.log('Complete!')\n * });\n *\n * // Outputs\n * // Complete!\n * ```\n *\n * Emit the number 7, then complete\n *\n * ```ts\n * import { EMPTY, startWith } from 'rxjs';\n *\n * const result = EMPTY.pipe(startWith(7));\n * result.subscribe(x => console.log(x));\n *\n * // Outputs\n * // 7\n * ```\n *\n * Map and flatten only odd numbers to the sequence `'a'`, `'b'`, `'c'`\n *\n * ```ts\n * import { interval, mergeMap, of, EMPTY } from 'rxjs';\n *\n * const interval$ = interval(1000);\n * const result = interval$.pipe(\n * mergeMap(x => x % 2 === 1 ? of('a', 'b', 'c') : EMPTY),\n * );\n * result.subscribe(x => console.log(x));\n *\n * // Results in the following to the console:\n * // x is equal to the count on the interval, e.g. (0, 1, 2, 3, ...)\n * // x will occur every 1000ms\n * // if x % 2 is equal to 1, print a, b, c (each on its own)\n * // if x % 2 is not equal to 1, nothing will be output\n * ```\n *\n * @see {@link Observable}\n * @see {@link NEVER}\n * @see {@link of}\n * @see {@link throwError}\n */\nexport const EMPTY = new Observable((subscriber) => subscriber.complete());\n\n/**\n * @param scheduler A {@link SchedulerLike} to use for scheduling\n * the emission of the complete notification.\n * @deprecated Replaced with the {@link EMPTY} constant or {@link scheduled} (e.g. `scheduled([], scheduler)`). Will be removed in v8.\n */\nexport function empty(scheduler?: SchedulerLike) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\n\nfunction emptyScheduled(scheduler: SchedulerLike) {\n return new Observable((subscriber) => scheduler.schedule(() => subscriber.complete()));\n}\n", "import { SchedulerLike } from '../types';\nimport { isFunction } from './isFunction';\n\nexport function isScheduler(value: any): value is SchedulerLike {\n return value && isFunction(value.schedule);\n}\n", "import { SchedulerLike } from '../types';\nimport { isFunction } from './isFunction';\nimport { isScheduler } from './isScheduler';\n\nfunction last(arr: T[]): T | undefined {\n return arr[arr.length - 1];\n}\n\nexport function popResultSelector(args: any[]): ((...args: unknown[]) => unknown) | undefined {\n return isFunction(last(args)) ? args.pop() : undefined;\n}\n\nexport function popScheduler(args: any[]): SchedulerLike | undefined {\n return isScheduler(last(args)) ? args.pop() : undefined;\n}\n\nexport function popNumber(args: any[], defaultValue: number): number {\n return typeof last(args) === 'number' ? args.pop()! : defaultValue;\n}\n", "export const isArrayLike = ((x: any): x is ArrayLike => x && typeof x.length === 'number' && typeof x !== 'function');", "import { isFunction } from \"./isFunction\";\n\n/**\n * Tests to see if the object is \"thennable\".\n * @param value the object to test\n */\nexport function isPromise(value: any): value is PromiseLike {\n return isFunction(value?.then);\n}\n", "import { InteropObservable } from '../types';\nimport { observable as Symbol_observable } from '../symbol/observable';\nimport { isFunction } from './isFunction';\n\n/** Identifies an input as being Observable (but not necessary an Rx Observable) */\nexport function isInteropObservable(input: any): input is InteropObservable {\n return isFunction(input[Symbol_observable]);\n}\n", "import { isFunction } from './isFunction';\n\nexport function isAsyncIterable(obj: any): obj is AsyncIterable {\n return Symbol.asyncIterator && isFunction(obj?.[Symbol.asyncIterator]);\n}\n", "/**\n * Creates the TypeError to throw if an invalid object is passed to `from` or `scheduled`.\n * @param input The object that was passed.\n */\nexport function createInvalidObservableTypeError(input: any) {\n // TODO: We should create error codes that can be looked up, so this can be less verbose.\n return new TypeError(\n `You provided ${\n input !== null && typeof input === 'object' ? 'an invalid object' : `'${input}'`\n } where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`\n );\n}\n", "export function getSymbolIterator(): symbol {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator' as any;\n }\n\n return Symbol.iterator;\n}\n\nexport const iterator = getSymbolIterator();\n", "import { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from './isFunction';\n\n/** Identifies an input as being an Iterable */\nexport function isIterable(input: any): input is Iterable {\n return isFunction(input?.[Symbol_iterator]);\n}\n", "import { ReadableStreamLike } from '../types';\nimport { isFunction } from './isFunction';\n\nexport async function* readableStreamLikeToAsyncGenerator(readableStream: ReadableStreamLike): AsyncGenerator {\n const reader = readableStream.getReader();\n try {\n while (true) {\n const { value, done } = await reader.read();\n if (done) {\n return;\n }\n yield value!;\n }\n } finally {\n reader.releaseLock();\n }\n}\n\nexport function isReadableStreamLike(obj: any): obj is ReadableStreamLike {\n // We don't want to use instanceof checks because they would return\n // false for instances from another Realm, like an