root/vtcross/branches/bhilburn/src/include/vtcross/components.h @ 140

Revision 140, 2.1 KB (checked in by bhilburn, 15 years ago)

Created the PolicyEngine? implementation file. Have not yet added it to the
Makefile because it is a ways from compiling (or really doing anything) just
yet. Minor touch-up in components.h.

Line 
1/* Virginia Tech Cognitive Radio Open Source Systems
2 * Virginia Tech, 2009
3 *
4 * LICENSE INFORMATION GOES HERE
5 */
6
7/* This header exports the declarations for all VT-CROSS radio components.  It
8 * contains two pure abstract base classes, Component and Engine; Engine derives
9 * from Component.  All functions contained within the abstract base classes are
10 * dynamically linked and pure, and all child non-abstract classes derive using
11 * private inheritence.  Class functions of the abstract base classes are public
12 * for two reasons: (1) To allow for public/protected inheritence in other
13 * implementations, (2) So that symbolic debuggers can navigate the call tree
14 * for typecasted objects of derivative classes.
15 */
16
17#ifndef CONTAINERS_H
18#define CONTAINERS_H
19
20
21#include "containers.h"
22
23
24class Component
25{
26    public:
27        virtual void GetRemoteComponentType() = 0;
28        virtual void WaitForSignal() = 0;
29        virtual void Shutdown() = 0;
30        virtual void Reset() = 0;
31        virtual void RegisterComponent(socketFD, compType) = 0;
32        virtual void DeregisterComponent() = 0;
33};
34
35
36class Engine : public Component
37{
38    public:
39        virtual void RegisterServices() = 0;
40        virtual void DeregisterServices() = 0;
41};
42
43
44class ServiceManagementLayer : private Component
45{
46    private:
47        void TransferRadioConfiguration();
48        void TransferExperience();
49        void ReceiveServices();
50        void SetActiveMission();
51        void ListServices();
52        void ReloadConfiguration();
53        void LoadConfiguration();
54};
55
56
57class PolicyEngine : private Engine
58{
59    private:
60        void ReloadPolicies();
61        void LoadPolicies();
62        void ValidateParameters();
63};
64
65
66class CognitiveEngine : private Engine
67{
68    private:
69        void ReceiveRadioConfiguration();
70        void ReceiveExperience();
71        void GetSolution(Observable *observables);
72        void GetSolution(Observable *observables, string service);
73        void ReceiveFeedback(Observable *observables, Parameter *parameters, Utility *utilities);
74        void ReceiveFeedback(Observable *observables, Parameter *parameters, string service);
75};
76
77#endif
Note: See TracBrowser for help on using the browser.