本文整理汇总了C++中JCR::get_JobLevel方法的典型用法代码示例。如果您正苦于以下问题:C++ JCR::get_JobLevel方法的具体用法?C++ JCR::get_JobLevel怎么用?C++ JCR::get_JobLevel使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类JCR
的用法示例。
在下文中一共展示了JCR::get_JobLevel方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Py_FindMethod
/* Return Job variables */
PyObject *job_getattr(PyObject *self, char *attrname)
{
JCR *jcr;
bool found = false;
int i;
char buf[10];
char errmsg[200];
Dmsg1(100, "In job_getattr=%s\n", attrname);
jcr = get_jcr_from_PyObject(self);
if (!jcr) {
bstrncpy(errmsg, _("Job pointer not found."), sizeof(errmsg));
goto bail_out;
}
for (i=0; getvars[i].name; i++) {
if (strcmp(getvars[i].name, attrname) == 0) {
found = true;
break;
}
}
if (!found) {
/* Try our methods */
return Py_FindMethod(JobMethods, self, attrname);
}
switch (i) {
case 0: /* Job */
return Py_BuildValue((char *)getvars[i].fmt, jcr->job_name); /* Non-unique name */
case 1: /* SD's name */
return Py_BuildValue((char *)getvars[i].fmt, my_name);
case 2: /* level */
return Py_BuildValue((char *)getvars[i].fmt, job_level_to_str(jcr->get_JobLevel()));
case 3: /* type */
return Py_BuildValue((char *)getvars[i].fmt, job_type_to_str(jcr->get_JobType()));
case 4: /* JobId */
return Py_BuildValue((char *)getvars[i].fmt, jcr->JobId);
case 5: /* Client */
return Py_BuildValue((char *)getvars[i].fmt, jcr->client_name);
case 6: /* Pool */
return Py_BuildValue((char *)getvars[i].fmt, jcr->dcr->pool_name);
case 7: /* MediaType */
return Py_BuildValue((char *)getvars[i].fmt, jcr->dcr->media_type);
case 8: /* JobName */
return Py_BuildValue((char *)getvars[i].fmt, jcr->Job);
case 9: /* JobStatus */
buf[1] = 0;
buf[0] = jcr->JobStatus;
return Py_BuildValue((char *)getvars[i].fmt, buf);
case 10:
return Py_BuildValue((char *)getvars[i].fmt, jcr->dcr->VolumeName);
case 11:
return Py_BuildValue((char *)getvars[i].fmt, jcr->dcr->dev_name);
}
bsnprintf(errmsg, sizeof(errmsg), _("Attribute %s not found."), attrname);
bail_out:
PyErr_SetString(PyExc_AttributeError, errmsg);
return NULL;
}
示例2: missing_handler
/*
* We are called here for each record that matches the above
* SQL query -- that is for each file contained in the Catalog
* that was not marked earlier. This means that the file in
* question is a missing file (in the Catalog but not on Disk).
*/
static int missing_handler(void *ctx, int num_fields, char **row)
{
JCR *jcr = (JCR *)ctx;
if (job_canceled(jcr)) {
return 1;
}
if (!jcr->fn_printed) {
Qmsg(jcr, M_WARNING, 0, _("The following files are in the Catalog but not on %s:\n"),
jcr->get_JobLevel() == L_VERIFY_VOLUME_TO_CATALOG ? "the Volume(s)" : "disk");
jcr->fn_printed = true;
}
Qmsg(jcr, M_INFO, 0, " %s%s\n", row[0]?row[0]:"", row[1]?row[1]:"");
return 0;
}
示例3: _dbg_print_jcr
/*
* !!! WARNING !!!
*
* This function should be used ONLY after a fatal signal. We walk through the
* JCR chain without doing any lock, bacula should not be running.
*/
void _dbg_print_jcr(FILE *fp)
{
char buf1[128], buf2[128], buf3[128], buf4[128];
if (!jcrs) {
return;
}
fprintf(fp, "Attempt to dump current JCRs\n");
for (JCR *jcr = (JCR *)jcrs->first(); jcr ; jcr = (JCR *)jcrs->next(jcr)) {
if (!jcr) { /* protect us against something ? */
continue;
}
fprintf(fp, "JCR=%p JobId=%i name=%s JobStatus=%c\n",
jcr, jcr->JobId, jcr->Job, jcr->JobStatus);
#ifdef HAVE_WIN32
fprintf(fp, "\tuse_count=%i\n",
jcr->use_count());
#else
fprintf(fp, "\tuse_count=%i threadid=0x%x\n",
jcr->use_count(), (int)jcr->my_thread_id);
#endif
fprintf(fp, "\tJobType=%c JobLevel=%c\n",
jcr->get_JobType(), jcr->get_JobLevel());
bstrftime(buf1, sizeof(buf1), jcr->sched_time);
bstrftime(buf2, sizeof(buf2), jcr->start_time);
bstrftime(buf3, sizeof(buf3), jcr->end_time);
bstrftime(buf4, sizeof(buf4), jcr->wait_time);
fprintf(fp, "\tsched_time=%s start_time=%s\n\tend_time=%s wait_time=%s\n",
buf1, buf2, buf3, buf4);
fprintf(fp, "\tdequeing=%i\n", jcr->dequeuing);
fprintf(fp, "\tdb=%p db_batch=%p batch_started=%i\n",
jcr->db, jcr->db_batch, jcr->batch_started);
for(int i=0; i < dbg_jcr_handler_count; i++) {
dbg_jcr_hook_t *fct = dbg_jcr_hooks[i];
fct(jcr, fp);
}
}
}
示例4: job_setattr
/* Returns: 0 for OK
* -1 for error
*/
int job_setattr(PyObject *self, char *attrname, PyObject *value)
{
JCR *jcr;
bool found = false;
char *strval = NULL;
int intval = 0;
int i;
Dmsg2(100, "In job_setattr=%s val=%p.\n", attrname, value);
if (value == NULL) { /* Cannot delete variables */
goto bail_out;
}
jcr = get_jcr_from_PyObject(self);
if (!jcr) {
goto bail_out;
}
/* Find attribute name in list */
for (i=0; setvars[i].name; i++) {
if (strcmp(setvars[i].name, attrname) == 0) {
found = true;
break;
}
}
if (!found) {
goto bail_out;
}
/* Get argument value */
if (setvars[i].fmt != NULL) {
switch (setvars[i].fmt[0]) {
case 's':
if (!PyArg_Parse(value, (char *)setvars[i].fmt, &strval)) {
PyErr_SetString(PyExc_TypeError, _("Read-only attribute"));
return -1;
}
break;
case 'i':
if (!PyArg_Parse(value, (char *)setvars[i].fmt, &intval)) {
PyErr_SetString(PyExc_TypeError, _("Read-only attribute"));
return -1;
}
break;
}
}
switch (i) {
case 0: /* JobReport */
Jmsg(jcr, M_INFO, 0, "%s", strval);
return 0;
case 1: /* VolumeName */
/* Make sure VolumeName is valid and we are in VolumeName event */
if (strcmp("NewVolume", jcr->event) == 0 &&
is_volume_name_legal(NULL, strval)) {
pm_strcpy(jcr->VolumeName, strval);
Dmsg1(100, "Set Vol=%s\n", strval);
return 0;
} else {
jcr->VolumeName[0] = 0;
}
break;
case 2: /* Priority */
Dmsg1(000, "Set priority=%d\n", intval);
if (intval >= 1 && intval <= 100) {
jcr->JobPriority = intval;
} else {
PyErr_SetString(PyExc_ValueError, _("Priority must be 1-100"));
return -1;
}
case 3: /* Job Level */
if (strcmp("JobInit", jcr->event) != 0) {
PyErr_SetString(PyExc_RuntimeError, _("Job Level can be set only during JobInit"));
return -1;
}
if (strval != NULL) {
for (i=0; joblevels[i].level_name; i++) {
if (strcmp(strval, joblevels[i].level_name) == 0) {
if (joblevels[i].job_type == jcr->get_JobType()) {
jcr->set_JobLevel(joblevels[i].level);
jcr->jr.JobLevel = jcr->get_JobLevel();
return 0;
}
}
}
}
PyErr_SetString(PyExc_ValueError, _("Bad JobLevel string"));
return -1;
}
bail_out:
PyErr_SetString(PyExc_AttributeError, attrname);
return -1;
}
示例5: Py_FindMethod
/* Returns: NULL if error
* PyObject * return value if OK
*/
PyObject *job_getattr(PyObject *self, char *attrname)
{
JCR *jcr;
bool found = false;
int i;
char buf[10];
char errmsg[200];
Dmsg0(100, "In job_getattr.\n");
jcr = get_jcr_from_PyObject(self);
if (!jcr) {
bstrncpy(errmsg, _("Job pointer not found."), sizeof(errmsg));
goto bail_out;
}
for (i=0; getvars[i].name; i++) {
if (strcmp(getvars[i].name, attrname) == 0) {
found = true;
break;
}
}
if (!found) {
/* Try our methods */
return Py_FindMethod(JobMethods, self, attrname);
}
switch (i) {
case 0: /* Job */
return Py_BuildValue((char *)getvars[i].fmt, jcr->job->hdr.name);
case 1: /* level */
return Py_BuildValue((char *)getvars[i].fmt, job_level_to_str(jcr->get_JobLevel()));
case 2: /* type */
return Py_BuildValue((char *)getvars[i].fmt, job_type_to_str(jcr->get_JobType()));
case 3: /* JobId */
return Py_BuildValue((char *)getvars[i].fmt, jcr->JobId);
case 4: /* Client */
return Py_BuildValue((char *)getvars[i].fmt, jcr->client->hdr.name);
case 5: /* NumVols */
POOL_DBR pr;
memset(&pr, 0, sizeof(pr));
bstrncpy(pr.Name, jcr->pool->hdr.name, sizeof(pr.Name));
if (db_get_pool_record(jcr, jcr->db, &pr)) {
jcr->NumVols = pr.NumVols;
return Py_BuildValue((char *)getvars[i].fmt, jcr->NumVols);
} else {
bsnprintf(errmsg, sizeof(errmsg), _("Pool record not found."));
goto bail_out;
}
case 6: /* Pool */
return Py_BuildValue((char *)getvars[i].fmt, jcr->pool->name());
case 7: /* Storage */
if (jcr->wstore) {
return Py_BuildValue((char *)getvars[i].fmt, jcr->wstore->name());
} else if (jcr->rstore) {
return Py_BuildValue((char *)getvars[i].fmt, jcr->rstore->name());
} else {
goto bail_out;
}
case 8:
return Py_BuildValue((char *)getvars[i].fmt, jcr->catalog->name());
case 9: /* MediaType */
if (jcr->wstore) {
return Py_BuildValue((char *)getvars[i].fmt, jcr->wstore->media_type);
} else if (jcr->rstore) {
return Py_BuildValue((char *)getvars[i].fmt, jcr->rstore->media_type);
} else {
goto bail_out;
}
case 10: /* JobName */
return Py_BuildValue((char *)getvars[i].fmt, jcr->Job);
case 11: /* JobStatus */
buf[1] = 0;
buf[0] = jcr->JobStatus;
return Py_BuildValue((char *)getvars[i].fmt, buf);
case 12: /* Priority */
return Py_BuildValue((char *)getvars[i].fmt, jcr->JobPriority);
case 13:
return Py_BuildValue((char *)getvars[i].fmt, jcr->VolumeName);
case 14: /* CatalogRes */
return Py_BuildValue((char *)getvars[i].fmt,
jcr->catalog->db_name, jcr->catalog->db_address,
jcr->catalog->db_user, jcr->catalog->db_password,
jcr->catalog->db_socket, jcr->catalog->db_port,
db_get_type());
case 15: /* JobErrors */
return Py_BuildValue((char *)getvars[i].fmt, jcr->JobErrors);
case 16: /* JobFiles */
return Py_BuildValue((char *)getvars[i].fmt, jcr->JobFiles);
case 17: /* SDJobFiles */
return Py_BuildValue((char *)getvars[i].fmt, jcr->SDJobFiles);
case 18: /* SDErrors */
return Py_BuildValue((char *)getvars[i].fmt, jcr->SDErrors);
case 19: /* FDJobStatus */
buf[1] = 0;
buf[0] = jcr->FDJobStatus;
return Py_BuildValue((char *)getvars[i].fmt, buf);
case 29: /* SDJobStatus */
buf[1] = 0;
buf[0] = jcr->SDJobStatus;
//.........这里部分代码省略.........