VR-Vantage API Documentation
radioMessageReceivedHandler.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2012 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
9 
10 #pragma once
11 
14 #include <vl/exerciseConn.h>
15 #include <vl/dataInter.h>
16 #include <vector>
17 
19 
21 {
22 public:
23  // Default constructor does not fully initialize itself. Must call initialize() to complete
24  // the initialization process.
26 
27  // Default destructor does remove all callbacks upon destruction so there is no need to
28  // explicitly remove a callback.
30 
31  // Initializes the instance. Will do nothing if already initialized. Thus you can't
32  // replace the exercise connection this is using. Auto-registers for this message type
33  // once it is initialized. This message type being one of DtIfRadioMessageReceived.
34  virtual void initialize(DtExerciseConn* exConn);
35 
36  // Adds a callback function to the list of callbacks. Your function and class are passed
37  // in as the two arguments (respectively) and will get invoked when a message of this
38  // specific type comes in on the network.
39  virtual void addCallback(DtRadioMessageReceivedHandlerCallback cBackFunc, void* usr);
40 
41  // Removes a callback function from the list of callbacks. Your function and class
42  // that you passed in to add the callback can be used to remove it from the list.
43  // An explicit removal is not required upon termination of the program as it will
44  // clean itself up when this gets destroyed.
45  virtual void removeCallback(DtRadioMessageReceivedHandlerCallback cBackFunc, void* usr);
46 
47  // Publishes a DtIfRadioMessageReceived message to the network. Since this class handles
48  // receiving messages of this type, it also handles sending them. This makes it easy to
49  // send and receive messages of this type.
50  virtual bool publishRadioMessageReceivedMessage(DtIfRadioMessageReceived msg);
51 
52 protected:
53  // Callback function registered to receive data interactions on the network
54  static void dataInteractionCallbackFunction(DtDataInteraction* interaction, void* usr);
55 
56  // Where the data interaction is processed
57  virtual void processDataInteraction(DtDataInteraction* interaction);
58 
59  // Where the callback functions registered to this class are called.
60  virtual void invokeCallbacks(DtIfRadioMessageReceived msg);
61 
62  DtExerciseConn* myExerciseConnection;
63  std::vector<std::pair<void*, DtRadioMessageReceivedHandlerCallback> > myCallbacks;
64 };


Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)