本文整理汇总了C++中packstr函数的典型用法代码示例。如果您正苦于以下问题:C++ packstr函数的具体用法?C++ packstr怎么用?C++ packstr使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了packstr函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: switch_p_pack_jobinfo
int switch_p_pack_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;
int i, j;
if (debug_flags & DEBUG_FLAG_SWITCH)
info("switch_p_pack_jobinfo() starting");
xassert(gen_step_info);
xassert(gen_step_info->magic == SW_GEN_STEP_INFO_MAGIC);
pack32(gen_step_info->node_cnt, buffer);
for (i = 0; i < gen_step_info->node_cnt; i++) {
node_ptr = gen_step_info->node_array[i];
packstr(node_ptr->node_name, buffer);
pack16(node_ptr->ifa_cnt, buffer);
for (j = 0; j < node_ptr->ifa_cnt; j++) {
ifa_ptr = node_ptr->ifa_array[j];
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);
}
packstr(ifa_ptr->ifa_addr, buffer);
packstr(ifa_ptr->ifa_family, buffer);
packstr(ifa_ptr->ifa_name, buffer);
}
}
return SLURM_SUCCESS;
}
示例2: job_option_info_pack
static void job_option_info_pack (struct job_option_info *ji, Buf buf)
{
pack32 (ji->type, buf);
packstr (ji->option, buf);
packstr (ji->optarg, buf); /* packstr() handles NULL optarg */
return;
}
示例3: slurm_auth_pack
/*
* Marshall a credential for transmission over the network, according to
* SLURM's marshalling protocol.
*/
int
slurm_auth_pack( slurm_auth_credential_t *cred, Buf buf )
{
if (cred == NULL) {
plugin_errno = SLURM_AUTH_BADARG;
return SLURM_ERROR;
}
if (buf == NULL) {
cred->cr_errno = SLURM_AUTH_BADARG;
return SLURM_ERROR;
}
xassert(cred->magic == MUNGE_MAGIC);
/*
* Prefix the credential with a description of the credential
* type so that it can be sanity-checked at the receiving end.
*/
packstr( (char *) plugin_type, buf );
pack32( plugin_version, buf );
/*
* Pack the data.
*/
packstr(cred->m_str, buf);
return SLURM_SUCCESS;
}
示例4: name_publish_up
extern int
name_publish_up(char *name, char *port)
{
Buf buf = NULL, resp_buf = NULL;
uint32_t size, tmp_32;
int rc;
buf = init_buf(1024);
pack16((uint16_t)TREE_CMD_NAME_PUBLISH, buf);
packstr(name, buf);
packstr(port, 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: pack_slurm_step_layout
extern void pack_slurm_step_layout(slurm_step_layout_t *step_layout,
Buf buffer, uint16_t protocol_version)
{
uint32_t i = 0;
if (protocol_version >= SLURM_2_3_PROTOCOL_VERSION) {
if (step_layout)
i=1;
pack16(i, buffer);
if (!i)
return;
packstr(step_layout->front_end, buffer);
packstr(step_layout->node_list, buffer);
pack32(step_layout->node_cnt, buffer);
pack32(step_layout->task_cnt, buffer);
pack16(step_layout->task_dist, buffer);
for (i=0; i<step_layout->node_cnt; i++) {
pack32_array(step_layout->tids[i],
step_layout->tasks[i],
buffer);
}
} else {
error("pack_slurm_step_layout: protocol_version "
"%hu not supported", protocol_version);
}
}
示例6: _dump_part_state
/*
* _dump_part_state - dump the state of a specific partition to a buffer
* IN part_ptr - pointer to partition for which information
* is requested
* IN/OUT buffer - location to store data, pointers automatically advanced
*/
static void _dump_part_state(struct part_record *part_ptr, Buf buffer)
{
xassert(part_ptr);
if (default_part_loc == part_ptr)
part_ptr->flags |= PART_FLAG_DEFAULT;
else
part_ptr->flags &= (~PART_FLAG_DEFAULT);
packstr(part_ptr->name, buffer);
pack32(part_ptr->grace_time, buffer);
pack32(part_ptr->max_time, buffer);
pack32(part_ptr->default_time, buffer);
pack32(part_ptr->max_cpus_per_node, buffer);
pack32(part_ptr->max_nodes_orig, buffer);
pack32(part_ptr->min_nodes_orig, buffer);
pack16(part_ptr->flags, buffer);
pack16(part_ptr->max_share, buffer);
pack16(part_ptr->preempt_mode, buffer);
pack16(part_ptr->priority, buffer);
pack16(part_ptr->state_up, buffer);
pack16(part_ptr->cr_type, buffer);
packstr(part_ptr->allow_groups, buffer);
packstr(part_ptr->allow_alloc_nodes, buffer);
packstr(part_ptr->alternate, buffer);
packstr(part_ptr->nodes, buffer);
}
示例7: pack_slurmd_conf_lite
/* Assume that the slurmd and slurmstepd are the same version level when slurmd
* starts slurmstepd, so we do not need to support different protocol versions
* for the different message formats. */
extern void pack_slurmd_conf_lite(slurmd_conf_t *conf, Buf buffer)
{
xassert(conf != NULL);
packstr(conf->hostname, buffer);
pack16(conf->cpus, buffer);
pack16(conf->boards, buffer);
pack16(conf->sockets, buffer);
pack16(conf->cores, buffer);
pack16(conf->threads, buffer);
pack32(conf->real_memory_size, buffer);
pack16(conf->block_map_size, buffer);
pack16_array(conf->block_map, conf->block_map_size, buffer);
pack16_array(conf->block_map_inv, conf->block_map_size, buffer);
packstr(conf->spooldir, buffer);
packstr(conf->node_name, buffer);
packstr(conf->logfile, buffer);
packstr(conf->task_prolog, buffer);
packstr(conf->task_epilog, buffer);
packstr(conf->job_acct_gather_freq, buffer);
packstr(conf->job_acct_gather_type, buffer);
pack16(conf->propagate_prio, buffer);
pack32(conf->debug_flags, buffer);
pack32(conf->debug_level, buffer);
pack32(conf->daemonize, buffer);
pack32((uint32_t)conf->slurm_user_id, buffer);
pack16(conf->use_pam, buffer);
pack16(conf->task_plugin_param, buffer);
packstr(conf->node_topo_addr, buffer);
packstr(conf->node_topo_pattern, buffer);
pack32((uint32_t)conf->port, buffer);
pack16(conf->log_fmt, buffer);
pack16(conf->mem_limit_enforce, buffer);
}
示例8: _pack_cluster_tres_msg
static void _pack_cluster_tres_msg(dbd_cluster_tres_msg_t *msg,
uint16_t rpc_version, Buf buffer)
{
if (rpc_version >= SLURM_MIN_PROTOCOL_VERSION) {
packstr(msg->cluster_nodes, buffer);
pack_time(msg->event_time, buffer);
packstr(msg->tres_str, buffer);
}
}
示例9: _dump_front_end_state
/*
* _dump_front_end_state - dump state of a specific front_end node to a buffer
* IN front_end_ptr - pointer to node for which information is requested
* IN/OUT buffer - location to store data, pointers automatically advanced
*/
static void _dump_front_end_state(front_end_record_t *front_end_ptr,
Buf buffer)
{
packstr (front_end_ptr->name, buffer);
pack16 (front_end_ptr->node_state, buffer);
packstr (front_end_ptr->reason, buffer);
pack_time(front_end_ptr->reason_time, buffer);
pack32 (front_end_ptr->reason_uid, buffer);
}
示例10: _pack_alloc
static void _pack_alloc(struct bb_alloc *bb_alloc, Buf buffer,
uint16_t protocol_version)
{
if (protocol_version >= SLURM_16_05_PROTOCOL_VERSION) {
packstr(bb_alloc->account, buffer);
pack32(bb_alloc->array_job_id, buffer);
pack32(bb_alloc->array_task_id, buffer);
pack_time(bb_alloc->create_time, buffer);
pack32(bb_alloc->job_id, buffer);
packstr(bb_alloc->name, buffer);
packstr(bb_alloc->partition, buffer);
packstr(bb_alloc->pool, buffer);
packstr(bb_alloc->qos, buffer);
pack64(bb_alloc->size, buffer);
pack16(bb_alloc->state, buffer);
pack32(bb_alloc->user_id, buffer);
} else {
packstr(bb_alloc->account, buffer);
pack32(bb_alloc->array_job_id, buffer);
pack32(bb_alloc->array_task_id, buffer);
pack_time(bb_alloc->create_time, buffer);
pack32((uint32_t)0, buffer);
pack32(bb_alloc->job_id, buffer);
packstr(bb_alloc->name, buffer);
packstr(bb_alloc->partition, buffer);
packstr(bb_alloc->qos, buffer);
pack64(bb_alloc->size, buffer);
pack16(bb_alloc->state, buffer);
pack32(bb_alloc->user_id, buffer);
}
}
示例11: _pack_node_state_msg
static void _pack_node_state_msg(dbd_node_state_msg_t *msg,
uint16_t rpc_version, Buf buffer)
{
if (rpc_version >= SLURM_MIN_PROTOCOL_VERSION) {
packstr(msg->hostlist, buffer);
packstr(msg->reason, buffer);
pack32(msg->reason_uid, buffer);
pack16(msg->new_state, buffer);
pack_time(msg->event_time, buffer);
pack32(msg->state, buffer);
packstr(msg->tres_str, buffer);
}
}
示例12: _pack_front_end
/*
* _pack_front_end - dump all configuration information about a specific
* front_end node in machine independent form (for network transmission)
* IN dump_front_end_ptr - pointer to front_end node for which information is
* requested
* IN/OUT buffer - buffer where data is placed, pointers automatically updated
* IN protocol_version - slurm protocol version of client
* NOTE: if you make any changes here be sure to make the corresponding
* changes to load_front_end_config in api/node_info.c
*/
static void _pack_front_end(struct front_end_record *dump_front_end_ptr,
Buf buffer, uint16_t protocol_version)
{
if (protocol_version >= SLURM_2_6_PROTOCOL_VERSION) {
packstr(dump_front_end_ptr->allow_groups, buffer);
packstr(dump_front_end_ptr->allow_users, buffer);
pack_time(dump_front_end_ptr->boot_time, buffer);
packstr(dump_front_end_ptr->deny_groups, buffer);
packstr(dump_front_end_ptr->deny_users, buffer);
packstr(dump_front_end_ptr->name, buffer);
pack16(dump_front_end_ptr->node_state, buffer);
packstr(dump_front_end_ptr->reason, buffer);
pack_time(dump_front_end_ptr->reason_time, buffer);
pack32(dump_front_end_ptr->reason_uid, buffer);
pack_time(dump_front_end_ptr->slurmd_start_time, buffer);
} else if (protocol_version >= SLURM_2_5_PROTOCOL_VERSION) {
pack_time(dump_front_end_ptr->boot_time, buffer);
packstr(dump_front_end_ptr->name, buffer);
pack16(dump_front_end_ptr->node_state, buffer);
packstr(dump_front_end_ptr->reason, buffer);
pack_time(dump_front_end_ptr->reason_time, buffer);
pack32(dump_front_end_ptr->reason_uid, buffer);
pack_time(dump_front_end_ptr->slurmd_start_time, buffer);
} else {
error("_pack_front_end: Unsupported slurm version %u",
protocol_version);
}
}
示例13: _save_dbd_state
static void _save_dbd_state(void)
{
char *dbd_fname;
Buf buffer;
int fd, rc, wrote = 0;
uint16_t msg_type;
uint32_t offset;
dbd_fname = slurm_get_state_save_location();
xstrcat(dbd_fname, "/dbd.messages");
(void) unlink(dbd_fname); /* clear save state */
fd = open(dbd_fname, O_WRONLY | O_CREAT | O_TRUNC, 0600);
if (fd < 0) {
error("slurmdbd: Creating state save file %s", dbd_fname);
} else if (agent_list && list_count(agent_list)) {
char curr_ver_str[10];
snprintf(curr_ver_str, sizeof(curr_ver_str),
"VER%d", SLURM_PROTOCOL_VERSION);
buffer = init_buf(strlen(curr_ver_str));
packstr(curr_ver_str, buffer);
rc = _save_dbd_rec(fd, buffer);
free_buf(buffer);
if (rc != SLURM_SUCCESS)
goto end_it;
while ((buffer = list_dequeue(agent_list))) {
/*
* We do not want to store registration messages. If an
* admin puts in an incorrect cluster name we can get a
* deadlock unless they add the bogus cluster name to
* the accounting system.
*/
offset = get_buf_offset(buffer);
if (offset < 2) {
free_buf(buffer);
continue;
}
set_buf_offset(buffer, 0);
(void) unpack16(&msg_type, buffer); /* checked by offset */
set_buf_offset(buffer, offset);
if (msg_type == DBD_REGISTER_CTLD) {
free_buf(buffer);
continue;
}
rc = _save_dbd_rec(fd, buffer);
free_buf(buffer);
if (rc != SLURM_SUCCESS)
break;
wrote++;
}
}
end_it:
if (fd >= 0) {
verbose("slurmdbd: saved %d pending RPCs", wrote);
(void) close(fd);
}
xfree(dbd_fname);
}
示例14: slurm_persist_pack_rc_msg
extern void slurm_persist_pack_rc_msg(
persist_rc_msg_t *msg, Buf buffer, uint16_t protocol_version)
{
packstr(msg->comment, buffer);
pack32(msg->rc, buffer);
pack16(msg->ret_info, buffer);
}
示例15: job_options_pack
/*
* Pack all accumulated options into Buffer "buf"
*/
int job_options_pack (job_options_t opts, Buf buf)
{
uint32_t count = 0;
ListIterator i;
struct job_option_info *opt;
packstr (JOB_OPTIONS_PACK_TAG, buf);
if (opts == NULL) {
pack32 (0, buf);
return (0);
}
xassert (opts->magic == JOB_OPTIONS_MAGIC);
xassert (opts->options != NULL);
xassert (opts->iterator != NULL);
count = list_count (opts->options);
pack32 (count, buf);
i = list_iterator_create (opts->options);
while ((opt = list_next (i)))
job_option_info_pack (opt, buf);
list_iterator_destroy (i);
return (count);
}