IBM-LoadLeveler

 view release on metacpan or  search on metacpan

Reservation.xsh  view on Meta::CPAN


#if LLVER >= 3030000

int
ll_bind(jobsteplist,ID,unbind,binding_method)
	char **jobsteplist
	char  *ID
	int    unbind
	int    binding_method	

	CODE:
	{
	    LL_element    *errObj = NULL;
	    LL_bind_param  param;
	    LL_bind_param *p_param = &param;
		
	    param.jobsteplist=jobsteplist;
	    param.ID=ID;
	    param.unbind=unbind;
#if LLVER >= 3050000
	    param.binding_method=binding_method;
#endif	    	    
	    RETVAL=ll_bind(LL_API_VERSION,&errObj,&p_param);
	    if ( RETVAL != RESERVATION_OK)
	    {
		    sv_setiv(get_sv("IBM::LoadLeveler::errObj",FALSE),(IV)errObj);	   
	    }
	}
        OUTPUT:
	    RETVAL			
			
void *
ll_make_reservation(start_time,duration,data_type,data,options,users,groups,group,...)
	char  *start_time
	int    duration
	int    data_type
	SV	*data
	int    options
	char **users
	char **groups
	char  *group	

	PPCODE:
	{
	    LL_element           *errObj = NULL;
	    LL_reservation_param  param;
	    LL_reservation_param *p_param = &param;
	    
	    int rc;    
#if LLVER >= 3050000
	    /* Handle new parameters */	    
	    char  *expiration;
	    SV    *recurrence;
	    
	    expiration = (char *)SvPV_nolen(ST(8));
	    recurrence = (SV *)ST(9);
#endif       
	    /* First Initialize the structure */
	    RETVAL=(void *)targ; /* bogus but spresses any unused variable error messages */
	    rc = ll_init_reservation_param(LL_API_VERSION,&errObj,&p_param);
	    if ( rc != 0 )
	    {
		/* If the init_routine fails send the error code and object back */
		XPUSHs(sv_2mortal(&PL_sv_undef));	
		if (rc != API_OK )
		{
		    sv_setiv(get_sv("IBM::LoadLeveler::errObj",FALSE),(IV)errObj);	   
		}

	    }
	    else		       
	    {
		if ( errObj != NULL )
		{
		    Safefree(errObj);
		    errObj=NULL;
		}
		param.start_time=start_time;
		param.duration=duration;
		param.data_type=data_type;	      
		/*fprintf(stderr,"Reserving at %s for %d minutes\n",start_time,duration);*/
		switch (data_type)
		{
		    case RESERVATION_BY_NODE:
#if LLVER >= 3040101
		    case RESERVATION_BY_BG_CNODE:
#endif
		    {
			int value;

			value=SvIV(data);	
			/*fprintf(stderr,"Reserving by nodes = %d, %s\n",value,group);*/
			/* Interface Change from 3.3.0.0 */
#if LLVER == 3030000
			param.data=(void *)value;
#else
			param.data=&value;
#endif
		    }
		    break;
		    case RESERVATION_BY_HOSTLIST:
		    {
			param.data=XS_unpack_charPtrPtr(data);



( run in 0.540 second using v1.01-cache-2.11-cpan-5511b514fd6 )