root/vtcross/branches/bhilburn/src/include/libvtcross.h @ 112

Revision 112, 3.4 KB (checked in by bhilburn, 15 years ago)

Adding doc directory, moving all source directories to proper 'src' directory.

Line 
1/* Virginia Tech Cognitive Radio Open Source Systems
2 * Virginia Tech, 2009
3 *
4 * LICENSE INFORMATION GOES HERE
5 */
6
7/* VTCROSS Cognitive Radio API
8 *
9 * This header exports all public functions that comprise the VTCROSS function
10 * library. 
11 *
12 * PUT MORE STUFF HERE
13 */
14
15#ifdef GCC_EXPERIMENTAL
16    #include <cstdint>
17#else
18    #include <stdint.h>
19#endif
20
21#include "components.h"
22#include "containers.h"
23
24
25/* Parses VTCROSS XML configuration file and uses it to configure the radio.
26 *
27 * This function *must* be called when the radio first starts up, and may be
28 * called at any point after that to reconfigure the radio.
29 */
30bool ParseRadioConfiguration();
31
32/* Lists current radio configuration options loaded from the configuration XML
33 * file.
34 *
35 * TODO How are we listing these?  Are we simply returning them to stdout?
36 * Logging them? Returning strings?  Need to figure this out...
37 */
38void ListCurrentRadioConfiguration();
39
40/* View data from the current status of the radio.
41 *
42 * This function allows client code to capture radio properties at any certain
43 * instant.  Note, however, that these properties could be changing at very
44 * rapid rates. There is no guarantee that the return results from these
45 * functions will still be valid by the time the client code receives them.
46 */
47Observables* GetRadioObservables();
48Parameters* GetRadioParameters();
49Utilities* GetRadioUtilities();
50
51/* View components currently connected to the radio by id.
52 *
53 * TODO Should there be another way to list components? If you have 10 cognitive
54 * engines, how are you going to know which is which just by id?
55 */
56uint32_t* GetConnectedCognitiveEngines();
57uint32_t* GetConnectedPolicyEngines();
58uint32_t* GetConnectedManagementServiceLayers();
59uint32_t* GetConnectedComponents();
60
61/* Look up component information by id.
62 *
63 * Note that the return type is of abstract base class component, which can then
64 * be used to reference whatever sub-component type was referenced by the id.
65 */
66Component* GetComponentInformation(uint32_t id);
67
68/* Given a certain set of observables, ask the radio to find the optimum radio
69 * parameters and return them.
70 *
71 * TODO I'm a little confused about this function... why would anyone need to
72 * use this?  Shouldn't this be internal to the radio operation?
73 */
74Parameters* GetOptimalParameters(Observables *radioObservables);
75
76/* Update the radio regarding its performance for a certain set of transmission
77 * parameters, observables, and utilities.
78 *
79 * TODO Where in the function parameters are we accurately representing the
80 * radio's performance?
81 */
82bool UpdateParameterPerformance(Parameters *radioParameters, \
83        Observables *radioObservables, Utilies *radioUtilies);
84
85/* Deactivate/Activate/Disconnect a component by id.
86 *
87 * TODO This seems silly?  If id's are independent of component type, why not
88 * just have one deactivate function that takes an id and operates on it? Why do
89 * we need 3 separate functions? They are all components...
90 */
91bool DeactivateCE(uint32_t id);
92bool DeactivatePE(uint32_t id);
93bool DeactivateSML(uint32_t id);
94bool ActivateCE(uint32_t id);
95bool ActivatePE(uint32_t id);
96bool ActivateSML(uint32_t id);
97bool DisconnectCE(uint32_t id);
98bool DisconnectPE(uint32_t id);
99bool DisconnectSML(uint32_t id);
100
101/* Shut down the radio.
102 *
103 * This function will deactivate and disconnect all radio components before
104 * finally shutting down the shell and stopping radio operations.
105 */
106bool Shutdown();
107
Note: See TracBrowser for help on using the browser.