本文整理汇总了C++中param_integer函数的典型用法代码示例。如果您正苦于以下问题:C++ param_integer函数的具体用法?C++ param_integer怎么用?C++ param_integer使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了param_integer函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: param_integer
void StarterStatistics::Reconfig() {
int quantum = param_integer("STATISTICS_WINDOW_QUANTUM_STARTER", INT_MAX, 1, INT_MAX);
if (quantum >= INT_MAX)
quantum = param_integer("STATISTICS_WINDOW_QUANTUM", 4*60, 1, INT_MAX);
this->RecentWindowQuantum = quantum;
int window = param_integer("STATISTICS_WINDOW_SECONDS_STARTER", INT_MAX, 1, INT_MAX);
if (window >= INT_MAX)
window = param_integer("STATISTICS_WINDOW_SECONDS", 1200, quantum, INT_MAX);
this->RecentWindowMax = window;
this->RecentWindowMax = window;
Pool.SetRecentMax(window, this->RecentWindowQuantum);
this->PublishFlags = IF_BASICPUB | IF_RECENTPUB;
char* tmp = param("STATISTICS_TO_PUBLISH");
if (tmp) {
this->PublishFlags = generic_stats_ParseConfigString(tmp, "STARTER", "_no_alternate_name_", this->PublishFlags);
free(tmp);
}
}
示例2: param
void BaseShadow::config()
{
if (spool) free(spool);
spool = param("SPOOL");
if (!spool) {
EXCEPT("SPOOL not specified in config file.");
}
if (fsDomain) free(fsDomain);
fsDomain = param( "FILESYSTEM_DOMAIN" );
if (!fsDomain) {
EXCEPT("FILESYSTEM_DOMAIN not specified in config file.");
}
if (uidDomain) free(uidDomain);
uidDomain = param( "UID_DOMAIN" );
if (!uidDomain) {
EXCEPT("UID_DOMAIN not specified in config file.");
}
reconnect_ceiling = param_integer( "RECONNECT_BACKOFF_CEILING", 300 );
reconnect_e_factor = 0.0;
reconnect_e_factor = param_double( "RECONNECT_BACKOFF_FACTOR", 2.0, 0.0 );
if( reconnect_e_factor < -1e-4 || reconnect_e_factor > 1e-4) {
reconnect_e_factor = 2.0;
}
m_cleanup_retry_tid = -1;
m_num_cleanup_retries = 0;
// NOTE: these config knobs are very similar to
// LOCAL_UNIVERSE_MAX_JOB_CLEANUP_RETRIES and
// LOCAL_UNIVERSE_JOB_CLEANUP_RETRY_DELAY in the local starter.
m_max_cleanup_retries = param_integer("SHADOW_MAX_JOB_CLEANUP_RETRIES", 5);
m_cleanup_retry_delay = param_integer("SHADOW_JOB_CLEANUP_RETRY_DELAY", 30);
m_lazy_queue_update = param_boolean("SHADOW_LAZY_QUEUE_UPDATE", true);
}
示例3: strtod
void
TransferQueueManager::parseThrottleConfig(char const *config_param,bool &enable_throttle,double &low,double &high,std::string &throttle_short_horizon,std::string &throttle_long_horizon,time_t &throttle_increment_wait)
{
enable_throttle = false;
std::string throttle_config;
if( !param(throttle_config,config_param) ) {
return;
}
char *endptr=NULL;
low = strtod(throttle_config.c_str(),&endptr);
if( !endptr || !(*endptr == ' ' || *endptr == '\0') ) {
EXCEPT("Invalid configuration for %s: %s\n",config_param,throttle_config.c_str());
return;
}
while( *endptr == ' ' ) endptr++;
if( *endptr == '\0' ) {
high = low;
low = 0.9*high;
}
else if( strncmp(endptr,"to ",3)==0 ) {
endptr += 3;
while( *endptr == ' ' ) endptr++;
high = strtod(endptr,&endptr);
if( !endptr || *endptr != '\0' ) {
dprintf(D_ALWAYS,"Invalid configuration for %s: %s\n",config_param,throttle_config.c_str());
return;
}
}
else {
EXCEPT("Invalid configuration for %s: %s\n",config_param,throttle_config.c_str());
}
// for now, these are hard-coded
std::string horizon_param;
formatstr(horizon_param,"%s_SHORT_HORIZON",config_param);
param(throttle_short_horizon,horizon_param.c_str(),"1m");
formatstr(horizon_param,"%s_LONG_HORIZON",config_param);
param(throttle_long_horizon,horizon_param.c_str(),"5m");
std::string wait_param;
formatstr(wait_param,"%s_WAIT_BETWEEN_INCREMENTS",config_param);
throttle_increment_wait = (time_t) param_integer(wait_param.c_str(),60,0);
m_throttle_disk_load = true;
}
示例4: param_integer
bool SelfMonitorData::ExportData(ClassAd *ad)
{
bool success;
MyString attribute;
if (ad == NULL) {
success = false;
} else {
ad->Assign("MonitorSelfTime", last_sample_time);
ad->Assign("MonitorSelfCPUUsage", cpu_usage);
ad->Assign("MonitorSelfImageSize", image_size);
ad->Assign("MonitorSelfResidentSetSize", rs_size);
ad->Assign("MonitorSelfAge", age);
ad->Assign("MonitorSelfRegisteredSocketCount", registered_socket_count);
ad->Assign("MonitorSelfSecuritySessions", cached_security_sessions);
ad->Assign(ATTR_DETECTED_CPUS, param_integer("DETECTED_CORES", 0));
ad->Assign(ATTR_DETECTED_MEMORY, param_integer("DETECTED_MEMORY", 0));
success = true;
}
return success;
}
示例5: param_integer
void
HibernationManager::update( void )
{
int previous_inteval = m_interval;
m_interval = param_integer ( "HIBERNATE_CHECK_INTERVAL",
0 /* default */, 0 /* min; no max */ );
bool change = ( previous_inteval != m_interval );
if ( change ) {
dprintf ( D_ALWAYS, "HibernationManager: Hibernation is %s\n",
( m_interval > 0 ? "enabled" : "disabled" ) );
}
if ( m_hibernator ) {
m_hibernator->update( );
}
}
示例6: NordugridJobReconfig
void NordugridJobReconfig()
{
int tmp_int;
tmp_int = param_integer( "GRIDMANAGER_GAHP_CALL_TIMEOUT", 5 * 60 );
NordugridJob::setGahpCallTimeout( tmp_int );
// Tell all the resource objects to deal with their new config values
NordugridResource *next_resource;
NordugridResource::ResourcesByName.startIterations();
while ( NordugridResource::ResourcesByName.iterate( next_resource ) != 0 ) {
next_resource->Reconfig();
}
}
示例7: sleepStateToInt
HibernatorBase::SLEEP_STATE
UserDefinedToolsHibernator::enterState ( HibernatorBase::SLEEP_STATE state ) const
{
/** Make sure a tool for this sleep state has been defined */
unsigned index = sleepStateToInt ( state );
if ( NULL == m_tool_paths[index] ) {
dprintf (
D_FULLDEBUG,
"Hibernator::%s tool not configured.\n",
HibernatorBase::sleepStateToString ( state ) );
return HibernatorBase::NONE;
}
/** Tell DaemonCore to register the process family so we can
safely kill everything from the reaper */
FamilyInfo fi;
fi.max_snapshot_interval = param_integer (
"PID_SNAPSHOT_INTERVAL",
15 );
/** Run the user tool */
int pid = daemonCore->Create_Process (
m_tool_paths[index],
m_tool_args[index],
PRIV_CONDOR_FINAL,
m_reaper_id,
FALSE,
FALSE,
NULL,
NULL,
&fi );
if ( FALSE == pid ) {
dprintf (
D_ALWAYS,
"UserDefinedToolsHibernator::enterState: Create_Process() "
"failed\n" );
return HibernatorBase::NONE;
}
return state;
}
示例8: CancelSubmit
void BaseResource::UnregisterJob( BaseJob *job )
{
CancelSubmit( job );
pingRequesters.Delete( job );
registeredJobs.Delete( job );
leaseUpdates.Delete( job );
if ( IsEmpty() ) {
int delay = param_integer( "GRIDMANAGER_EMPTY_RESOURCE_DELAY", 5*60 );
if ( delay < 0 ) {
delay = 0;
}
deleteMeTid = daemonCore->Register_Timer( delay,
(TimerHandlercpp)&BaseResource::DeleteMe,
"BaseResource::DeleteMe", (Service*)this );
}
}
示例9: strdup
BaseResource::BaseResource( const char *resource_name )
{
resourceName = strdup( resource_name );
deleteMeTid = TIMER_UNSET;
resourceDown = false;
firstPingDone = false;
pingActive = false;
pingTimerId = daemonCore->Register_Timer( 0,
(TimerHandlercpp)&BaseResource::Ping,
"BaseResource::Ping", (Service*)this );
lastPing = 0;
lastStatusChange = 0;
jobLimit = DEFAULT_MAX_SUBMITTED_JOBS_PER_RESOURCE;
hasLeases = false;
updateLeasesTimerId = daemonCore->Register_Timer( 0,
(TimerHandlercpp)&BaseResource::UpdateLeases,
"BaseResource::UpdateLeases", (Service*)this );
lastUpdateLeases = 0;
updateLeasesActive = false;
updateLeasesCmdActive = false;
m_hasSharedLeases = false;
m_defaultLeaseDuration = -1;
m_sharedLeaseExpiration = 0;
_updateCollectorTimerId = daemonCore->Register_Timer (
0,
(TimerHandlercpp)&BaseResource::UpdateCollector,
"BaseResource::UpdateCollector",
(Service*)this );
_lastCollectorUpdate = 0;
_firstCollectorUpdate = true;
_collectorUpdateInterval = param_integer (
"GRIDMANAGER_COLLECTOR_UPDATE_INTERVAL", 5*60 );
m_batchStatusActive = false;
m_batchPollTid = TIMER_UNSET;
m_paramJobPollRate = -1;
m_paramJobPollInterval = -1;
m_jobPollInterval = 0;
}
示例10: countTypes
int countTypes( int max_types, int num_cpus, int** array_ptr, bool except )
{
int i, num=0, num_set=0;
MyString param_name;
MyString cruft_name;
int* my_type_nums = new int[max_types];
if( ! array_ptr ) {
EXCEPT( "ResMgr:countTypes() called with NULL array_ptr!" );
}
// Type 0 is special, user's shouldn't define it.
_checkInvalidParam("NUM_SLOTS_TYPE_0", except);
// CRUFT
_checkInvalidParam("NUM_VIRTUAL_MACHINES_TYPE_0", except);
for( i=1; i<max_types; i++ ) {
param_name.formatstr("NUM_SLOTS_TYPE_%d", i);
if (param_boolean("ALLOW_VM_CRUFT", false)) {
cruft_name.formatstr("NUM_VIRTUAL_MACHINES_TYPE_%d", i);
my_type_nums[i] = param_integer(param_name.Value(),
param_integer(cruft_name.Value(),
0));
} else {
my_type_nums[i] = param_integer(param_name.Value(), 0);
}
if (my_type_nums[i]) {
num_set = 1;
num += my_type_nums[i];
}
}
if( num_set ) {
// We found type-specific stuff, use that.
my_type_nums[0] = 0;
} else {
// We haven't found any special types yet. Therefore,
// we're evenly dividing things, so we only have to figure
// out how many nodes to advertise.
if (param_boolean("ALLOW_VM_CRUFT", false)) {
my_type_nums[0] = param_integer("NUM_SLOTS",
param_integer("NUM_VIRTUAL_MACHINES",
num_cpus));
} else {
my_type_nums[0] = param_integer("NUM_SLOTS", num_cpus);
}
num = my_type_nums[0];
}
*array_ptr = my_type_nums;
return num;
}
示例11: param_integer
void
CCBListener::InitAndReconfig()
{
int new_heartbeat_interval = param_integer("CCB_HEARTBEAT_INTERVAL",1200,0);
if( new_heartbeat_interval != m_heartbeat_interval ) {
if( new_heartbeat_interval < 30 && new_heartbeat_interval > 0 ) {
new_heartbeat_interval = 30;
// CCB server doesn't expect a high rate of unsolicited
// input from us
dprintf(D_ALWAYS,
"CCBListener: using minimum heartbeat interval of %ds\n",
new_heartbeat_interval);
}
m_heartbeat_interval = new_heartbeat_interval;
if( m_heartbeat_initialized ) {
RescheduleHeartbeat();
}
}
}
示例12: param_integer
void GlobusResource::Reconfig()
{
int tmp_int;
BaseResource::Reconfig();
gahp->setTimeout( gahpCallTimeout );
tmp_int = param_integer( "GRIDMANAGER_MAX_JOBMANAGERS_PER_RESOURCE",
DEFAULT_MAX_JOBMANAGERS_PER_RESOURCE );
if ( tmp_int == 0 ) {
submitJMLimit = GM_RESOURCE_UNLIMITED;
restartJMLimit = GM_RESOURCE_UNLIMITED;
} else {
if ( tmp_int < 2 ) {
tmp_int = 2;
}
submitJMLimit = tmp_int / 2;
restartJMLimit = tmp_int - submitJMLimit;
}
// If the jobmanager limits were widened, move jobs from Wanted to
// Allowed and signal them
while ( ( submitJMsAllowed.Length() + restartJMsAllowed.Length() <
submitJMLimit + restartJMLimit ) &&
( submitJMsWanted.Length() != 0 ||
restartJMsWanted.Length() != 0 ) ) {
JMComplete( NULL );
}
if ( enableGridMonitor ) {
// start grid monitor
daemonCore->Reset_Timer( checkMonitorTid, 0 );
} else {
// stop grid monitor
if ( monitorActive || monitorStarting ) {
StopMonitor();
}
daemonCore->Reset_Timer( checkMonitorTid, TIMER_NEVER );
}
}
示例13: scheduleHousekeeper
int CollectorEngine::
scheduleHousekeeper (int timeout)
{
// Are we filtering updates that we forward to the view collector?
std::string watch_list;
param(watch_list,"COLLECTOR_FORWARD_WATCH_LIST", "State,Cpus,Memory,IdleJobs,ClaimId,Capability,ClaimIdList,ChildClaimIds");
m_forwardWatchList.clearAll();
m_forwardWatchList.initializeFromString(watch_list.c_str());
m_forwardFilteringEnabled = param_boolean( "COLLECTOR_FORWARD_FILTERING", false );
// cancel outstanding housekeeping requests
if (housekeeperTimerID != -1)
{
(void) daemonCore->Cancel_Timer(housekeeperTimerID);
}
// reset for new timer
if (timeout < 0)
return 0;
// set to new timeout interval
machineUpdateInterval = timeout;
m_forwardInterval = param_integer("COLLECTOR_FORWARD_INTERVAL", machineUpdateInterval / 3, 0);
// if timeout interval was non-zero (i.e., housekeeping required) ...
if (timeout > 0)
{
// schedule housekeeper
housekeeperTimerID = daemonCore->Register_Timer(machineUpdateInterval,
machineUpdateInterval,
(TimerHandlercpp)&CollectorEngine::housekeeper,
"CollectorEngine::housekeeper",this);
if (housekeeperTimerID == -1)
return 0;
}
return 1;
}
示例14: decRefCount
void
CCBListener::Disconnected()
{
if( m_sock ) {
daemonCore->Cancel_Socket( m_sock );
delete m_sock;
m_sock = NULL;
}
if( m_waiting_for_connect ) {
m_waiting_for_connect = false;
decRefCount();
}
m_waiting_for_registration = false;
m_registered = false;
StopHeartbeat();
if( m_reconnect_timer != -1 ) {
return; // already in progress
}
int reconnect_time = param_integer("CCB_RECONNECT_TIME",60);
dprintf(D_ALWAYS,
"CCBListener: connection to CCB server %s failed; "
"will try to reconnect in %d seconds.\n",
m_ccb_address.Value(), reconnect_time);
m_reconnect_timer = daemonCore->Register_Timer(
reconnect_time,
(TimerHandlercpp)&CCBListener::ReconnectTime,
"CCBListener::ReconnectTime",
this );
ASSERT( m_reconnect_timer != -1 );
}
示例15: Reconfig
void
Reconfig()
{
contact_schedd_interval =
param_integer ("C_GAHP_CONTACT_SCHEDD_DELAY", 5);
// When GSI authentication is used, we're willing to trust schedds
// which have the same credential as the job
if ( proxySubjectName ) {
char *daemon_subjects = param( "GSI_DAEMON_NAME" );
if ( daemon_subjects ) {
std::string buff;
formatstr( buff, "%s,%s", daemon_subjects, proxySubjectName );
dprintf( D_ALWAYS, "Setting %s=%s\n", "GSI_DAEMON_NAME",
buff.c_str() );
// We must use our daemon subsystem prefix in case the
// admin used it in the config file.
config_insert( "C_GAHP_WORKER_THREAD.GSI_DAEMON_NAME",
buff.c_str() );
free( daemon_subjects );
}
}
}