本文整理汇总了C++中safe_unpack32函数的典型用法代码示例。如果您正苦于以下问题:C++ safe_unpack32函数的具体用法?C++ safe_unpack32怎么用?C++ safe_unpack32使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了safe_unpack32函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: _unpack_acct_coord_msg
static int _unpack_acct_coord_msg(dbd_acct_coord_msg_t **msg,
uint16_t rpc_version, Buf buffer)
{
uint32_t uint32_tmp;
int i;
char *acct = NULL;
uint32_t count = 0;
dbd_acct_coord_msg_t *msg_ptr = xmalloc(sizeof(dbd_acct_coord_msg_t));
*msg = msg_ptr;
safe_unpack32(&count, buffer);
if (count) {
msg_ptr->acct_list = list_create(slurm_destroy_char);
for(i=0; i<count; i++) {
safe_unpackstr_xmalloc(&acct, &uint32_tmp, buffer);
list_append(msg_ptr->acct_list, acct);
}
}
if (slurmdb_unpack_user_cond((void *)&msg_ptr->cond,
rpc_version, buffer)
== SLURM_ERROR)
goto unpack_error;
return SLURM_SUCCESS;
unpack_error:
slurmdbd_free_acct_coord_msg(msg_ptr);
*msg = NULL;
return SLURM_ERROR;
}
示例2: job_options_unpack
/*
* Unpack options from buffer "buf" into options container opts.
*/
int job_options_unpack (job_options_t opts, Buf buf)
{
uint32_t count;
uint32_t len;
char * tag = NULL;
int i;
safe_unpackstr_xmalloc (&tag, &len, buf);
if (strncmp (tag, JOB_OPTIONS_PACK_TAG, len) != 0) {
xfree(tag);
return (-1);
}
xfree(tag);
safe_unpack32 (&count, buf);
for (i = 0; i < count; i++) {
struct job_option_info *ji;
if ((ji = job_option_info_unpack (buf)) == NULL)
return (SLURM_ERROR);
list_append (opts->options, ji);
}
return (0);
unpack_error:
xfree(tag);
return SLURM_ERROR;
}
示例3: slurm_ckpt_unpack_job
extern int slurm_ckpt_unpack_job(check_jobinfo_t jobinfo, Buf buffer,
uint16_t protocol_version)
{
uint32_t uint32_tmp;
struct check_job_info *check_ptr =
(struct check_job_info *)jobinfo;
if (protocol_version >= SLURM_2_3_PROTOCOL_VERSION) {
safe_unpack16(&check_ptr->disabled, buffer);
safe_unpack16(&check_ptr->node_cnt, buffer);
safe_unpack16(&check_ptr->reply_cnt, buffer);
safe_unpack16(&check_ptr->wait_time, buffer);
safe_unpack32(&check_ptr->error_code, buffer);
safe_unpackstr_xmalloc(&check_ptr->error_msg,
&uint32_tmp, buffer);
safe_unpack_time(&check_ptr->time_stamp, buffer);
}
return SLURM_SUCCESS;
unpack_error:
xfree(check_ptr->error_msg);
return SLURM_ERROR;
}
示例4: name_unpublish_up
extern int
name_unpublish_up(char *name)
{
Buf buf = NULL, resp_buf = NULL;
uint32_t size, tmp_32;
int rc;
buf = init_buf(1024);
pack16((uint16_t)TREE_CMD_NAME_UNPUBLISH, buf);
packstr(name, buf);
size = get_buf_offset(buf);
rc = tree_msg_to_srun_with_resp(size, get_buf_data(buf), &resp_buf);
free_buf(buf);
if (rc == SLURM_SUCCESS) {
safe_unpack32(&tmp_32, resp_buf);
rc = (int) tmp_32;
}
unpack_error:
if (resp_buf)
free_buf(resp_buf);
return rc;
}
示例5: select_p_select_jobinfo_unpack
extern int select_p_select_jobinfo_unpack(select_jobinfo_t **jobinfo_pptr,
Buf buffer, uint16_t protocol_version)
{
int rc = SLURM_ERROR;
select_jobinfo_t *jobinfo = xmalloc(sizeof(struct select_jobinfo));
*jobinfo_pptr = jobinfo;
jobinfo->magic = JOBINFO_MAGIC;
if (protocol_version >= SLURM_MIN_PROTOCOL_VERSION) {
safe_unpack8(&jobinfo->confirmed, buffer);
safe_unpack32(&jobinfo->reservation_id, buffer);
safe_unpack64(&jobinfo->confirm_cookie, buffer);
rc = other_select_jobinfo_unpack(&jobinfo->other_jobinfo,
buffer, protocol_version);
} else {
error("select_p_select_jobinfo_unpack: protocol_version "
"%hu not supported", protocol_version);
}
if (rc != SLURM_SUCCESS)
goto unpack_error;
return SLURM_SUCCESS;
unpack_error:
select_p_select_jobinfo_free(jobinfo);
*jobinfo_pptr = NULL;
return SLURM_ERROR;
}
示例6: slurm_persist_unpack_rc_msg
extern int slurm_persist_unpack_rc_msg(
persist_rc_msg_t **msg, Buf buffer, uint16_t protocol_version)
{
uint32_t uint32_tmp;
persist_rc_msg_t *msg_ptr = xmalloc(sizeof(persist_rc_msg_t));
*msg = msg_ptr;
if (protocol_version >= SLURM_MIN_PROTOCOL_VERSION) {
safe_unpackstr_xmalloc(&msg_ptr->comment, &uint32_tmp, buffer);
safe_unpack16(&msg_ptr->flags, buffer);
safe_unpack32(&msg_ptr->rc, buffer);
safe_unpack16(&msg_ptr->ret_info, buffer);
} else {
error("%s: invalid protocol_version %u",
__func__, protocol_version);
goto unpack_error;
}
return SLURM_SUCCESS;
unpack_error:
slurm_persist_free_rc_msg(msg_ptr);
*msg = NULL;
return SLURM_ERROR;
}
示例7: unpack_slurm_step_layout
extern int unpack_slurm_step_layout(slurm_step_layout_t **layout, Buf buffer,
uint16_t protocol_version)
{
uint16_t uint16_tmp;
uint32_t num_tids, uint32_tmp;
slurm_step_layout_t *step_layout = NULL;
int i;
if (protocol_version >= SLURM_MIN_PROTOCOL_VERSION) {
safe_unpack16(&uint16_tmp, buffer);
if (!uint16_tmp)
return SLURM_SUCCESS;
step_layout = xmalloc(sizeof(slurm_step_layout_t));
*layout = step_layout;
safe_unpackstr_xmalloc(&step_layout->front_end,
&uint32_tmp, buffer);
safe_unpackstr_xmalloc(&step_layout->node_list,
&uint32_tmp, buffer);
safe_unpack32(&step_layout->node_cnt, buffer);
safe_unpack16(&step_layout->start_protocol_ver, buffer);
safe_unpack32(&step_layout->task_cnt, buffer);
safe_unpack32(&step_layout->task_dist, buffer);
step_layout->tasks =
xmalloc(sizeof(uint32_t) * step_layout->node_cnt);
step_layout->tids = xmalloc(sizeof(uint32_t *)
* step_layout->node_cnt);
for (i = 0; i < step_layout->node_cnt; i++) {
safe_unpack32_array(&(step_layout->tids[i]),
&num_tids,
buffer);
step_layout->tasks[i] = num_tids;
}
} else {
error("unpack_slurm_step_layout: protocol_version "
"%hu not supported", protocol_version);
goto unpack_error;
}
return SLURM_SUCCESS;
unpack_error:
slurm_step_layout_destroy(step_layout);
*layout = NULL;
return SLURM_ERROR;
}
示例8: switch_p_unpack_jobinfo
int switch_p_unpack_jobinfo(switch_jobinfo_t *switch_job, Buf buffer,
uint16_t protocol_version)
{
sw_gen_step_info_t *gen_step_info = (sw_gen_step_info_t *) switch_job;
sw_gen_node_t *node_ptr;
sw_gen_ifa_t *ifa_ptr;
uint32_t uint32_tmp;
int i, j;
if (debug_flags & DEBUG_FLAG_SWITCH)
info("switch_p_unpack_jobinfo() starting");
safe_unpack32(&gen_step_info->node_cnt, buffer);
gen_step_info->node_array = xmalloc(sizeof(sw_gen_node_t *) *
gen_step_info->node_cnt);
for (i = 0; i < gen_step_info->node_cnt; i++) {
node_ptr = xmalloc(sizeof(sw_gen_node_t));
gen_step_info->node_array[i] = node_ptr;
safe_unpackstr_xmalloc(&node_ptr->node_name, &uint32_tmp,
buffer);
safe_unpack16(&node_ptr->ifa_cnt, buffer);
node_ptr->ifa_array = xmalloc(sizeof(sw_gen_ifa_t *) *
node_ptr->ifa_cnt);
for (j = 0; j < node_ptr->ifa_cnt; j++) {
ifa_ptr = xmalloc(sizeof(sw_gen_ifa_t));
node_ptr->ifa_array[j] = ifa_ptr;
safe_unpackstr_xmalloc(&ifa_ptr->ifa_addr, &uint32_tmp,
buffer);
safe_unpackstr_xmalloc(&ifa_ptr->ifa_family,
&uint32_tmp, buffer);
safe_unpackstr_xmalloc(&ifa_ptr->ifa_name, &uint32_tmp,
buffer);
if (debug_flags & DEBUG_FLAG_SWITCH) {
info("node=%s name=%s family=%s addr=%s",
node_ptr->node_name, ifa_ptr->ifa_name,
ifa_ptr->ifa_family, ifa_ptr->ifa_addr);
}
}
}
return SLURM_SUCCESS;
unpack_error:
for (i = 0; i < gen_step_info->node_cnt; i++) {
node_ptr = gen_step_info->node_array[i];
for (j = 0; j < node_ptr->ifa_cnt; j++) {
ifa_ptr = node_ptr->ifa_array[j];
xfree(ifa_ptr->ifa_addr);
xfree(ifa_ptr->ifa_family);
xfree(ifa_ptr->ifa_name);
xfree(ifa_ptr);
}
xfree(node_ptr->ifa_array);
xfree(node_ptr->node_name);
xfree(node_ptr);
}
gen_step_info->node_cnt = 0;
xfree(gen_step_info->node_array);
return SLURM_ERROR;
}
示例9: io_init_msg_unpack
static int
io_init_msg_unpack(struct slurm_io_init_msg *hdr, Buf buffer)
{
uint32_t val;
safe_unpack16(&hdr->version, buffer);
safe_unpack32(&hdr->nodeid, buffer);
safe_unpack32(&hdr->stdout_objs, buffer);
safe_unpack32(&hdr->stderr_objs, buffer);
safe_unpackmem((char *) hdr->cred_signature, &val, buffer);
if (val != SLURM_IO_KEY_SIZE)
goto unpack_error;
return SLURM_SUCCESS;
unpack_error:
error("unpack error in io_init_msg_unpack");
return SLURM_ERROR;
}
示例10: _unpack_jobacct_id
static int _unpack_jobacct_id(jobacct_id_t *jobacct_id,
uint16_t rpc_version, Buf buffer)
{
safe_unpack32(&jobacct_id->nodeid, buffer);
safe_unpack16(&jobacct_id->taskid, buffer);
return SLURM_SUCCESS;
unpack_error:
return SLURM_ERROR;
}
示例11: _unpack_register_ctld_msg
static int _unpack_register_ctld_msg(dbd_register_ctld_msg_t **msg,
uint16_t rpc_version, Buf buffer)
{
dbd_register_ctld_msg_t *msg_ptr = xmalloc(
sizeof(dbd_register_ctld_msg_t));
*msg = msg_ptr;
if (rpc_version >= SLURM_MIN_PROTOCOL_VERSION) {
safe_unpack16(&msg_ptr->dimensions, buffer);
safe_unpack32(&msg_ptr->flags, buffer);
safe_unpack32(&msg_ptr->plugin_id_select, buffer);
safe_unpack16(&msg_ptr->port, buffer);
}
return SLURM_SUCCESS;
unpack_error:
slurmdbd_free_register_ctld_msg(msg_ptr);
*msg = NULL;
return SLURM_ERROR;
}
示例12: slurmdbd_unpack_id_rc_msg
extern int slurmdbd_unpack_id_rc_msg(void **msg,
uint16_t rpc_version, Buf buffer)
{
dbd_id_rc_msg_t *msg_ptr = xmalloc(sizeof(dbd_id_rc_msg_t));
*msg = msg_ptr;
if (rpc_version >= SLURM_MIN_PROTOCOL_VERSION) {
safe_unpack32(&msg_ptr->job_id, buffer);
safe_unpack64(&msg_ptr->db_index, buffer);
safe_unpack32(&msg_ptr->return_code, buffer);
}
return SLURM_SUCCESS;
unpack_error:
slurmdbd_free_id_rc_msg(msg_ptr);
*msg = NULL;
return SLURM_ERROR;
}
示例13: ext_sensors_data_unpack
extern int ext_sensors_data_unpack(ext_sensors_data_t **ext_sensors, Buf buffer,
uint16_t protocol_version)
{
ext_sensors_data_t *ext_sensors_ptr = ext_sensors_alloc();
*ext_sensors = ext_sensors_ptr;
if (ext_sensors_ptr == NULL)
return SLURM_ERROR;
safe_unpack32(&ext_sensors_ptr->consumed_energy, buffer);
safe_unpack32(&ext_sensors_ptr->temperature, buffer);
safe_unpack_time(&ext_sensors_ptr->energy_update_time, buffer);
safe_unpack32(&ext_sensors_ptr->current_watts, buffer);
return SLURM_SUCCESS;
unpack_error:
ext_sensors_destroy(ext_sensors_ptr);
*ext_sensors = NULL;
return SLURM_ERROR;
}
示例14: _load_pending_jobs
/* Load jobcomp data from save state file */
static int _load_pending_jobs(void)
{
int i, rc = SLURM_SUCCESS;
char *saved_data = NULL, *state_file = NULL, *job_data = NULL;
uint32_t data_size, job_cnt = 0, tmp32 = 0;
Buf buffer;
struct job_node *jnode;
state_file = slurm_get_state_save_location();
if (state_file == NULL) {
error("%s: Could not retrieve StateSaveLocation from conf",
plugin_type);
return SLURM_ERROR;
}
if (state_file[strlen(state_file) - 1] != '/')
xstrcat(state_file, "/");
xstrcat(state_file, save_state_file);
slurm_mutex_lock(&save_lock);
data_size = _read_file(state_file, &saved_data);
if ((data_size <= 0) || (saved_data == NULL)) {
slurm_mutex_unlock(&save_lock);
xfree(saved_data);
xfree(state_file);
return rc;
}
slurm_mutex_unlock(&save_lock);
buffer = create_buf(saved_data, data_size);
safe_unpack32(&job_cnt, buffer);
for (i = 0; i < job_cnt; i++) {
safe_unpackstr_xmalloc(&job_data, &tmp32, buffer);
jnode = xmalloc(sizeof(struct job_node));
jnode->serialized_job = job_data;
list_enqueue(jobslist, jnode);
}
if (job_cnt > 0) {
if (slurm_get_debug_flags() & DEBUG_FLAG_ESEARCH)
info("%s: Loaded %u jobs from state file", plugin_type,
job_cnt);
}
free_buf(buffer);
xfree(state_file);
return rc;
unpack_error:
error("%s: Error unpacking file %s", plugin_type, state_file);
free_buf(buffer);
xfree(state_file);
return SLURM_ERROR;
}
示例15: io_hdr_unpack
int
io_hdr_unpack(io_hdr_t *hdr, Buf buffer)
{
safe_unpack16(&hdr->type, buffer);
safe_unpack16(&hdr->gtaskid, buffer);
safe_unpack16(&hdr->ltaskid, buffer);
safe_unpack32(&hdr->length, buffer);
return SLURM_SUCCESS;
unpack_error:
error("io_hdr_unpack error: %m");
return SLURM_ERROR;
}