root/vtcross/branches/bhilburn/include/components.h @ 101

Revision 101, 2.0 KB (checked in by bhilburn, 15 years ago)

Created initial header with API for components. Still not really anything there
yet.

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