/* Virginia Tech Cognitive Radio Open Source Systems * Virginia Tech, 2009 * * LICENSE INFORMATION GOES HERE */ /* DESCRIPTION OF FILE. */ #include #include #include #include "vtcross/common.h" #include "vtcross/components.h" #include "vtcross/containers.h" #include "vtcross/debug.h" #include "vtcross/error.h" #include "vtcross/socketcomm.h" PolicyEngine::PolicyEngine() { LOG("Creating Policy Engine.\n"); LoadPolicies(); } PolicyEngine::~PolicyEngine() { } void PolicyEngine::GetRemoteComponentType(int32_t socketFD) { } void PolicyEngine::WaitForSignal(int32_t socketFD) { LOG("Policy Engine:: Waiting for Policy Check Request.\n"); int32_t decision_array[10]; struct Parameter pList[10]; struct CE_Info ce_info; int32_t ret = GetRequest(socketFD, pList, &ce_info); if(ret == 1) { LOG("Policy Engine:: Validating Transmission Parameters.\n"); ValidateParameters(pList, &ce_info, decision_array); LOG("Policy Engine:: Sending Policy decision to Server.\n"); SendPEDecision(socketFD, pList, &ce_info, decision_array); } } void PolicyEngine::Shutdown() { } void PolicyEngine::Reset() { } void PolicyEngine::RegisterComponent(int32_t socketFD) { SendMessage(socketFD, "p_register"); LOG("Policy Engine:: Registration message sent.\n"); } void PolicyEngine::DeregisterComponent(int32_t socketFD) { } void PolicyEngine::RegisterServices(int32_t socketFD) { } void PolicyEngine::DeregisterServices(int32_t socketFD) { } void PolicyEngine::LoadPolicies() { LOG("PolicyEngine:: Loading policies.\n"); } void PolicyEngine::ReloadPolicies() { } void PolicyEngine::SendPEDecision(int32_t socketFD, struct Parameter pList[], \ struct CE_Info *ce_info, int32_t decision_array[]) { char var[50]; for (size_t i = 0; i < ce_info->numParameters; i++) { sprintf(var, "%i", decision_array[i]); SendMessage(socketFD, var); } } void PolicyEngine::ValidateParameters(struct Parameter pList[], \ struct CE_Info *ce_info, int decision_array[]) { LOG("Policy Engine:: Policies Validated.\n"); for (size_t i = 0; i < ce_info->numParameters; i++) decision_array[i] = 1; }