blob: 9ac36c48c4c404b99377441ce775149a36250afd [file] [log] [blame]
///////////////////////////////////////////////////////////////////////////////
// //
// Copyright (c) 2000-2019 Ericsson Telecom AB //
// //
// All rights reserved. This program and the accompanying materials //
// are made available under the terms of the Eclipse Public License v2.0 //
// which accompanies this distribution, and is available at //
// https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html //
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
// Module: LoadRegulator_Functions
//
// Purpose:
// Example LoadRegulator for EPTF Central Scheduling demo
//
// Module Parameters:
//
// Module depends on:
// <EPTF_CLL_LoadRegulator_Functions>
// <EPTF_CLL_HostAdmin_BaseFunctions>
// <EPTF_CLL_Variable_Definitions>
// <LoadRegulator_Definitions>
//
// Current Owner:
// Gabor Tatarka (egbotat)
//
// Last Review Date:
// -
//
// Detailed Comments:
// -
///////////////////////////////////////////////////////////
module LoadRegulator_Functions
{
import from EPTF_CLL_Base_Functions all;
import from EPTF_CLL_LoadRegulator_Functions all;
import from EPTF_CLL_HostAdmin_BaseFunctions all;
import from EPTF_CLL_Variable_Definitions all;
import from LoadRegulator_Definitions all;
function f_LoadRegulator_getSutLoad()
runs on LoadRegulator_CT
return float
{
f_EPTF_HostAdmin_Base_update();
return v_EPTF_HostAdmin_testerHostLoad;
}
function f_LoadRegulator_behavior(
in charstring pl_selfName,
in EPTF_Var_CT pl_execCtrlCompRef,
in float pl_loadToReach)
runs on LoadRegulator_CT
{
f_EPTF_HostAdmin_Base_init_CT(pl_selfName);
f_EPTF_LoadRegulator_init_CT(pl_selfName, refers(f_LoadRegulator_getSutLoad));
//v_EPTF_LoadRegulator_loadToReach := pl_loadToReach;
f_EPTF_LoadRegulator_registerToExecCtrl(pl_execCtrlCompRef);
f_EPTF_LoadRegulator_adjustTargetLoadInExecCtrl(pl_loadToReach);
timer t_wait := 100.0;
t_wait.start;
alt {
[]t_wait.timeout {
t_wait.start;
repeat;
}
}
if(t_wait.running) { t_wait.stop; }
f_EPTF_Base_cleanup_CT();
}
} // end of module