Changeset 181

Show
Ignore:
Timestamp:
03/22/09 00:38:35 (15 years ago)
Author:
bhilburn
Message:

Implemented a more standard way of registering/deregistering components and
engines.

Location:
vtcross/trunk/src
Files:
6 modified

Legend:

Unmodified
Added
Removed
  • vtcross/trunk/src/Makefile.am

    r161 r181  
    1 SUBDIRS = lib policy_engines cognitive_engines service_management_layer \ 
    2                   libvtcross shell include 
     1SUBDIRS = lib include policy_engines cognitive_engines service_management_layer \ 
     2                  libvtcross shell 
  • vtcross/trunk/src/cognitive_engines/cbr_demo.c

    r161 r181  
    538538{ 
    539539    // Send register message to cognitive radio 
    540     SendMessage(sockfd, "c_register"); 
     540    SendMessage(sockfd, "register_engine_cognitive"); 
    541541    return 1; 
    542542     
  • vtcross/trunk/src/include/vtcross/components.h

    r173 r181  
    6565 * inherit (e.g. cognitive and policy engines). Inherits all functions from the 
    6666 * ABC Component publically. 
     67 * 
     68 * TODO perhaps this shouldn't be an abstract base class? Some functions, like 
     69 * GetRemoteComponentType, are going to be the same for all child classes 
     70 * anyways... 
    6771 */ 
    6872class Engine : public Component 
     
    130134 
    131135 
     136/* Contains information regarding the SML in a VTCROSS system.  Note that if 
     137 * there is no SML present, the engine should have no instantiation of this 
     138 * struct. 
     139 */ 
     140struct SML_Info { 
     141    std::string hostname; 
     142    std::string port; 
     143    int32_t socketFD; 
     144}; 
     145 
     146 
    132147/* Policy Engine class declaration.  All public functions are inherited from 
    133148 * parent classes. 
     
    138153        PolicyEngine(); 
    139154        ~PolicyEngine(); 
     155 
     156 
     157        /* Overloaded constructor that creates a policy engine object with SML 
     158         * information pre-defined. 
     159         */ 
     160        PolicyEngine(const char* serverName, const char* portNumber); 
    140161 
    141162        void GetRemoteComponentType(int32_t socketFD); 
     
    167188        void ValidateParameters(struct Parameter pList[], \ 
    168189                struct CE_Info *ce_info, int decision_array[]); 
     190 
     191 
     192        /* Contains information regarding the presence of a service management 
     193         * layer.  If this pointer is NULL, then there is no SML present in the 
     194         * radio system. 
     195         */ 
     196        struct SML_Info *SML; 
    169197}; 
    170198 
     
    219247        void ReceiveFeedback(Observable *observables, \ 
    220248                Parameter *parameters, std::string service); 
     249 
     250 
     251        /* Contains information regarding the presence of a service management 
     252         * layer.  If this pointer is NULL, then there is no SML present in the 
     253         * radio system. 
     254         */ 
     255        struct SML_Info *SML; 
     256 
    221257}; 
    222258 
  • vtcross/trunk/src/policy_engines/PolicyEngine.cpp

    r164 r181  
    2424{ 
    2525    LOG("Creating Policy Engine.\n"); 
     26    SML = NULL; 
    2627    LoadPolicies(); 
    2728} 
     
    3031PolicyEngine::~PolicyEngine() 
    3132{ 
     33    if(SML) 
     34        delete SML; 
     35} 
     36 
     37 
     38PolicyEngine::PolicyEngine(const char* serverName, const char* portNumber) 
     39{ 
     40    LOG("Creating Policy Engine.\n"); 
     41 
     42    SML = new SML_Info; 
     43    SML->hostname = std::string(serverName); 
     44    SML->port = std::string(portNumber); 
     45 
     46    SML->socketFD = ClientSocket(serverName, portNumber); 
     47    RegisterServices(SML->socketFD); 
     48 
     49    LOG("Policy Engine connected to SML at %s.\n", serverName); 
     50 
     51    LoadPolicies(); 
    3252} 
    3353 
     
    7494PolicyEngine::RegisterComponent(int32_t socketFD) 
    7595{ 
    76     SendMessage(socketFD, "p_register"); 
     96    SendMessage(socketFD, "register_engine_policy"); 
    7797    LOG("Policy Engine:: Registration message sent.\n"); 
     98 
    7899} 
    79100 
     
    88109PolicyEngine::RegisterServices(int32_t socketFD) 
    89110{ 
     111    LOG("Policy Engine:: Registering services.\n"); 
     112    SendMessage(socketFD, "register_service_pe_geo"); 
     113    SendMessage(socketFD, "register_service_pe_time"); 
     114    SendMessage(socketFD, "register_service_pe_spectrum"); 
     115    SendMessage(socketFD, "register_service_pe_spacial"); 
    90116} 
    91117 
     
    94120PolicyEngine::DeregisterServices(int32_t socketFD) 
    95121{ 
     122    LOG("Policy Engine:: Deregistering services.\n"); 
     123    SendMessage(socketFD, "deregister_service_pe_geo"); 
     124    SendMessage(socketFD, "deregister_service_pe_time"); 
     125    SendMessage(socketFD, "deregister_service_pe_spectrum"); 
     126    SendMessage(socketFD, "deregister_service_pe_spacial"); 
    96127} 
    97128 
  • vtcross/trunk/src/service_management_layer/ServiceManagementLayer.cpp

    r164 r181  
    7272ServiceManagementLayer::RegisterComponent(int32_t socketFD) 
    7373{ 
    74     SendMessage(socketFD, "sml_register"); 
     74    SendMessage(socketFD, "register_sml"); 
    7575    LOG("ServiceManagementLayer:: Registration message sent.\n"); 
    7676} 
  • vtcross/trunk/src/shell/cr_shell.cpp

    r179 r181  
    512512    LOG("Cognitive Radio:: Message Received - %s.\n\n", buffer); 
    513513 
    514     if(strcmp(buffer,"c_register") == 0)  
     514    if(strcmp(buffer,"register_engine_cognitive") == 0)  
    515515            InitializeCE(socketFD, uList, pList, oList, ce_info); 
    516516 
    517     if(strcmp(buffer,"p_register") == 0) 
     517    if(strcmp(buffer,"register_engine_policy") == 0) 
    518518            InitializePE(socketFD, ce_info); 
    519519