callbackmanagerxda.h
Go to the documentation of this file.
1 
2 // Copyright (c) 2003-2021 Xsens Technologies B.V. or subsidiaries worldwide.
3 // All rights reserved.
4 //
5 // Redistribution and use in source and binary forms, with or without modification,
6 // are permitted provided that the following conditions are met:
7 //
8 // 1. Redistributions of source code must retain the above copyright notice,
9 // this list of conditions, and the following disclaimer.
10 //
11 // 2. Redistributions in binary form must reproduce the above copyright notice,
12 // this list of conditions, and the following disclaimer in the documentation
13 // and/or other materials provided with the distribution.
14 //
15 // 3. Neither the names of the copyright holders nor the names of their contributors
16 // may be used to endorse or promote products derived from this software without
17 // specific prior written permission.
18 //
19 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
20 // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
21 // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
22 // THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23 // SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
24 // OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25 // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY OR
26 // TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
27 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.THE LAWS OF THE NETHERLANDS
28 // SHALL BE EXCLUSIVELY APPLICABLE AND ANY DISPUTES SHALL BE FINALLY SETTLED UNDER THE RULES
29 // OF ARBITRATION OF THE INTERNATIONAL CHAMBER OF COMMERCE IN THE HAGUE BY ONE OR MORE
30 // ARBITRATORS APPOINTED IN ACCORDANCE WITH SAID RULES.
31 //
32 
33 
34 // Copyright (c) 2003-2021 Xsens Technologies B.V. or subsidiaries worldwide.
35 // All rights reserved.
36 //
37 // Redistribution and use in source and binary forms, with or without modification,
38 // are permitted provided that the following conditions are met:
39 //
40 // 1. Redistributions of source code must retain the above copyright notice,
41 // this list of conditions, and the following disclaimer.
42 //
43 // 2. Redistributions in binary form must reproduce the above copyright notice,
44 // this list of conditions, and the following disclaimer in the documentation
45 // and/or other materials provided with the distribution.
46 //
47 // 3. Neither the names of the copyright holders nor the names of their contributors
48 // may be used to endorse or promote products derived from this software without
49 // specific prior written permission.
50 //
51 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
52 // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
53 // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
54 // THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
55 // SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
56 // OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
57 // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY OR
58 // TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
59 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.THE LAWS OF THE NETHERLANDS
60 // SHALL BE EXCLUSIVELY APPLICABLE AND ANY DISPUTES SHALL BE FINALLY SETTLED UNDER THE RULES
61 // OF ARBITRATION OF THE INTERNATIONAL CHAMBER OF COMMERCE IN THE HAGUE BY ONE OR MORE
62 // ARBITRATORS APPOINTED IN ACCORDANCE WITH SAID RULES.
63 //
64 
65 #ifndef CALLBACKMANAGERXDA_H
66 #define CALLBACKMANAGERXDA_H
67 
68 #include "xscallback.h"
69 
71 struct CallbackManagerItem;
72 namespace xsens
73 {
74 class MutexReadWrite;
75 }
76 struct MtwInfo;
77 
78 class CallbackManagerXda : public XsCallback
79 {
80 public:
81  void onDeviceStateChanged(XsDevice* dev, XsDeviceState newState, XsDeviceState oldState) override;
82  void onLiveDataAvailable(XsDevice* dev, const XsDataPacket* packet) override;
83  void onAllLiveDataAvailable(XsDevicePtrArray* devs, const XsDataPacketPtrArray* packets) override;
84  void onMissedPackets(XsDevice* dev, int count, int first, int last) override;
85  void onDataUnavailable(XsDevice* dev, int64_t packetId) override;
86  void onWakeupReceived(XsDevice* dev) override;
87  void onProgressUpdated(XsDevice* dev, int current, int total, const XsString* identifier) override;
88  int onWriteMessageToLogFile(XsDevice* dev, const XsMessage* message) override;
89  void onBufferedDataAvailable(XsDevice* dev, const XsDataPacket* data) override;
90  void onAllBufferedDataAvailable(XsDevicePtrArray* devs, const XsDataPacketPtrArray* packets) override;
91  void onConnectivityChanged(XsDevice* dev, XsConnectivityState newState) override;
92  void onInfoResponse(XsDevice* dev, XsInfoRequest request) override;
93  void onError(XsDevice* dev, XsResultValue error) override;
94  void onNonDataMessage(XsDevice* dev, XsMessage const* message) override;
95  void onMessageDetected(XsDevice* dev, XsProtocolType type, XsByteArray const* rawMessage) override;
96  void onMessageReceivedFromDevice(XsDevice* dev, XsMessage const* message) override;
97  void onMessageSentToDevice(XsDevice* dev, XsMessage const* message) override;
98  void onDataAvailable(XsDevice* dev, const XsDataPacket* data) override;
99  void onAllDataAvailable(XsDevicePtrArray* devs, const XsDataPacketPtrArray* packets) override;
100  void onRecordedDataAvailable(XsDevice* dev, const XsDataPacket* data) override;
101  void onAllRecordedDataAvailable(XsDevicePtrArray* devs, const XsDataPacketPtrArray* packets) override;
102  void onTransmissionRequest(int channelId, const XsByteArray* data) override;
103  void onRestoreCommunication(const XsString* portName, XsResultValue result) override;
104 
107 
108  void clearCallbackHandlers(bool chain = true);
109  void addCallbackHandler(XsCallbackPlainC* cb, bool chain = true);
110  void removeCallbackHandler(XsCallbackPlainC* cb, bool chain = true);
111 
112  void clearChainedManagers();
115 
116  void copyCallbackHandlersTo(CallbackManagerXda* cm, bool chain = true);
117  void copyCallbackHandlersFrom(CallbackManagerXda* cm, bool chain = true);
118 
119 private:
123 
124  CallbackManagerXda(CallbackManagerXda const&) = delete;
125  CallbackManagerXda const& operator=(CallbackManagerXda const&) = delete;
126 };
127 
128 #endif
CallbackManagerXda::addChainedManager
void addChainedManager(CallbackManagerXda *cm)
Add a chained manager to the list.
Definition: callbackmanagerxda.cpp:262
CallbackManagerXda::~CallbackManagerXda
~CallbackManagerXda()
Destructor, clears the callback list.
Definition: callbackmanagerxda.cpp:112
CallbackManagerXda::copyCallbackHandlersTo
void copyCallbackHandlersTo(CallbackManagerXda *cm, bool chain=true)
Copy all handlers from this manager into cm.
Definition: callbackmanagerxda.cpp:328
CallbackManagerXda::onInfoResponse
void onInfoResponse(XsDevice *dev, XsInfoRequest request) override
The XsCallback::onInfoResponse() callback forwarding function.
Definition: callbackmanagerxda.cpp:495
xsens::MutexReadWrite
A readers-writer mutex class.
Definition: xsens_mutex.h:248
XsDataPacketPtrArray
A list of XsDataPacketPtr values.
CallbackManagerXda::onAllRecordedDataAvailable
void onAllRecordedDataAvailable(XsDevicePtrArray *devs, const XsDataPacketPtrArray *packets) override
The XsCallback::onAllRecordedDataAvailable() callback forwarding function.
Definition: callbackmanagerxda.cpp:612
CallbackManagerXda::removeChainedManager
void removeChainedManager(CallbackManagerXda *cm)
Remove achained manager from the list.
Definition: callbackmanagerxda.cpp:298
CallbackManagerXda::onWriteMessageToLogFile
int onWriteMessageToLogFile(XsDevice *dev, const XsMessage *message) override
The XsCallback::onWriteMessageToLogFile() callback forwarding function.
Definition: callbackmanagerxda.cpp:441
CallbackManagerXda::onBufferedDataAvailable
void onBufferedDataAvailable(XsDevice *dev, const XsDataPacket *data) override
The XsCallback::onBufferedDataAvailable() callback forwarding function.
Definition: callbackmanagerxda.cpp:456
XsByteArray
A list of uint8_t values.
XsCallbackPlainC
Structure that contains callback functions for the Xsens Device API.
Definition: xscallbackplainc.h:99
CallbackManagerXda::onRecordedDataAvailable
void onRecordedDataAvailable(XsDevice *dev, const XsDataPacket *data) override
The XsCallback::onRecordedDataAvailable() callback forwarding function.
Definition: callbackmanagerxda.cpp:599
CallbackManagerXda::m_handlerList
CallbackHandlerXdaItem * m_handlerList
The first item in the linked list of callback handlers.
Definition: callbackmanagerxda.h:121
XsDataPacket
Contains an interpreted data message. The class provides easy access to the contained data through it...
Definition: xsdatapacket.h:301
CallbackManagerXda::onAllDataAvailable
void onAllDataAvailable(XsDevicePtrArray *devs, const XsDataPacketPtrArray *packets) override
The XsCallback::onAllDataAvailable() callback forwarding function.
Definition: callbackmanagerxda.cpp:586
CallbackManagerXda::CallbackManagerXda
CallbackManagerXda()
Constructor, initializes the callback list.
Definition: callbackmanagerxda.cpp:103
CallbackManagerXda::removeCallbackHandler
void removeCallbackHandler(XsCallbackPlainC *cb, bool chain=true)
Remove a handler from the list.
Definition: callbackmanagerxda.cpp:207
data
data
CallbackManagerXda::onLiveDataAvailable
void onLiveDataAvailable(XsDevice *dev, const XsDataPacket *packet) override
The XsCallback::onLiveDataAvailable() callback forwarding function.
Definition: callbackmanagerxda.cpp:363
XsResultValue
XsResultValue
Xsens result values.
Definition: xsresultvalue.h:82
CallbackManagerXda::onDataUnavailable
void onDataUnavailable(XsDevice *dev, int64_t packetId) override
The XsCallback::onDataUnavailable() callback forwarding function.
Definition: callbackmanagerxda.cpp:402
CallbackManagerXda::clearChainedManagers
void clearChainedManagers()
Clear the chained manager list.
Definition: callbackmanagerxda.cpp:245
CallbackManagerXda::copyCallbackHandlersFrom
void copyCallbackHandlersFrom(CallbackManagerXda *cm, bool chain=true)
Copy all handlers from cm into this manager.
Definition: callbackmanagerxda.cpp:337
CallbackManagerXda::onWakeupReceived
void onWakeupReceived(XsDevice *dev) override
The XsCallback::onWakeupReceived() callback forwarding function.
Definition: callbackmanagerxda.cpp:415
CallbackManagerXda::onAllLiveDataAvailable
void onAllLiveDataAvailable(XsDevicePtrArray *devs, const XsDataPacketPtrArray *packets) override
The XsCallback::onAllLiveDataAvailable() callback forwarding function.
Definition: callbackmanagerxda.cpp:376
CallbackManagerXda::onNonDataMessage
void onNonDataMessage(XsDevice *dev, XsMessage const *message) override
The Xscallback::onNonDataMessage() callback forwarding function.
Definition: callbackmanagerxda.cpp:521
CallbackManagerXda::onMessageSentToDevice
void onMessageSentToDevice(XsDevice *dev, XsMessage const *message) override
The Xscallback::onMessageSentToDevice() callback forwarding function.
Definition: callbackmanagerxda.cpp:560
CallbackManagerXda::onConnectivityChanged
void onConnectivityChanged(XsDevice *dev, XsConnectivityState newState) override
The XsCallback::onConnectivityChanged() callback forwarding function.
Definition: callbackmanagerxda.cpp:482
CallbackManagerXda::onMessageReceivedFromDevice
void onMessageReceivedFromDevice(XsDevice *dev, XsMessage const *message) override
The Xscallback::onMessageReceivedFromDevice() callback forwarding function.
Definition: callbackmanagerxda.cpp:547
CallbackManagerXda::m_callbackMutex
xsens::MutexReadWrite * m_callbackMutex
Administration mutex.
Definition: callbackmanagerxda.h:120
CallbackManagerXda::onDeviceStateChanged
void onDeviceStateChanged(XsDevice *dev, XsDeviceState newState, XsDeviceState oldState) override
The XsCallback::onDeviceStateChanged() callback forwarding function.
Definition: callbackmanagerxda.cpp:350
CallbackManagerXda::onRestoreCommunication
void onRestoreCommunication(const XsString *portName, XsResultValue result) override
The Xscallback::onRestoreCommunication callback forwarding function.
Definition: callbackmanagerxda.cpp:637
XsInfoRequest
XsInfoRequest
Information request identifiers.
Definition: xsinforequest.h:77
XsMessage
Structure for storing a single message.
Definition: xsmessage.h:202
XsDevicePtrArray
A list of XsDevicePtr values.
xscallback.h
CallbackManagerXda::onTransmissionRequest
void onTransmissionRequest(int channelId, const XsByteArray *data) override
Definition: callbackmanagerxda.cpp:624
CallbackManagerXda::onMissedPackets
void onMissedPackets(XsDevice *dev, int count, int first, int last) override
The XsCallback::onMissedPackets() callback forwarding function.
Definition: callbackmanagerxda.cpp:389
XsConnectivityState
XsConnectivityState
XsDevice connectivity state identifiers.
Definition: xsconnectivitystate.h:78
CallbackManagerXda::m_managerList
CallbackManagerItem * m_managerList
The first item in the linked list of child callback managers.
Definition: callbackmanagerxda.h:122
CallbackManagerXda::onDataAvailable
void onDataAvailable(XsDevice *dev, const XsDataPacket *data) override
The XsCallback::onDataAvailable() callback forwarding function.
Definition: callbackmanagerxda.cpp:573
CallbackManagerXda::operator=
CallbackManagerXda const & operator=(CallbackManagerXda const &)=delete
CallbackManagerXda::onAllBufferedDataAvailable
void onAllBufferedDataAvailable(XsDevicePtrArray *devs, const XsDataPacketPtrArray *packets) override
The XsCallback::onAllBufferedDataAvailable() callback forwarding function.
Definition: callbackmanagerxda.cpp:469
CallbackManagerXda::onMessageDetected
void onMessageDetected(XsDevice *dev, XsProtocolType type, XsByteArray const *rawMessage) override
The Xscallback::onMessageReceivedFromDevice() callback forwarding function.
Definition: callbackmanagerxda.cpp:534
CallbackManagerXda::onProgressUpdated
void onProgressUpdated(XsDevice *dev, int current, int total, const XsString *identifier) override
The XsCallback::onProgressUpdated() callback forwarding function.
Definition: callbackmanagerxda.cpp:428
XsProtocolType
XsProtocolType
Protocol types (XsDevice::enableProtocol())
Definition: xsprotocoltype.h:72
XsDeviceState
XsDeviceState
XsDevice state identifiers.
Definition: xsdevicestate.h:77
CallbackManagerXda::onError
void onError(XsDevice *dev, XsResultValue error) override
The Xscallback::onError() callback forwarding function.
Definition: callbackmanagerxda.cpp:508
CallbackHandlerXdaItem
Linked list item that contains a registered XsCallback handler for CallbackManagerXda.
Definition: callbackmanagerxda.cpp:72
CallbackManagerXda
Class that delegates callbacks to registered XsCallbackHandlerItems.
Definition: callbackmanagerxda.h:78
XsString
A 0-terminated managed string of characters.
XsDevice
Definition: xsdevice_def.h:164
xsens
Definition: threading.cpp:78
CallbackManagerXda::clearCallbackHandlers
void clearCallbackHandlers(bool chain=true)
Clear the callback list.
Definition: callbackmanagerxda.cpp:129
CallbackManagerItem
Linked list item that contains a chained CallbackManagerXda.
Definition: callbackmanagerxda.cpp:80
CallbackManagerXda::addCallbackHandler
void addCallbackHandler(XsCallbackPlainC *cb, bool chain=true)
Add a handler to the list.
Definition: callbackmanagerxda.cpp:158


xsens_mti_driver
Author(s):
autogenerated on Sun Sep 3 2023 02:43:19