本文整理汇总了C++中edit_uint64函数的典型用法代码示例。如果您正苦于以下问题:C++ edit_uint64函数的具体用法?C++ edit_uint64怎么用?C++ edit_uint64使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了edit_uint64函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: db_update_pool_record
bool db_update_pool_record(JCR *jcr, B_DB *mdb, POOL_DBR *pr)
{
bool retval;
char ed1[50], ed2[50], ed3[50], ed4[50], ed5[50], ed6[50];
char esc[MAX_ESCAPE_NAME_LENGTH];
db_lock(mdb);
mdb->db_escape_string(jcr, esc, pr->LabelFormat, strlen(pr->LabelFormat));
Mmsg(mdb->cmd, "SELECT count(*) from Media WHERE PoolId=%s",
edit_int64(pr->PoolId, ed4));
pr->NumVols = get_sql_record_max(jcr, mdb);
Dmsg1(400, "NumVols=%d\n", pr->NumVols);
Mmsg(mdb->cmd,
"UPDATE Pool SET NumVols=%u,MaxVols=%u,UseOnce=%d,UseCatalog=%d,"
"AcceptAnyVolume=%d,VolRetention='%s',VolUseDuration='%s',"
"MaxVolJobs=%u,MaxVolFiles=%u,MaxVolBytes=%s,Recycle=%d,"
"AutoPrune=%d,LabelType=%d,LabelFormat='%s',RecyclePoolId=%s,"
"ScratchPoolId=%s,ActionOnPurge=%d WHERE PoolId=%s",
pr->NumVols, pr->MaxVols, pr->UseOnce, pr->UseCatalog,
pr->AcceptAnyVolume, edit_uint64(pr->VolRetention, ed1),
edit_uint64(pr->VolUseDuration, ed2),
pr->MaxVolJobs, pr->MaxVolFiles,
edit_uint64(pr->MaxVolBytes, ed3),
pr->Recycle, pr->AutoPrune, pr->LabelType,
esc, edit_int64(pr->RecyclePoolId,ed5),
edit_int64(pr->ScratchPoolId,ed6),
pr->ActionOnPurge,
ed4);
retval = UPDATE_DB(jcr, mdb, mdb->cmd);
db_unlock(mdb);
return retval;
}
示例2: db_update_client_record
/*
* Update Client record
* Returns: false on failure
* true on success
*/
bool db_update_client_record(JCR *jcr, B_DB *mdb, CLIENT_DBR *cr)
{
bool retval = false;
char ed1[50], ed2[50];
char esc_name[MAX_ESCAPE_NAME_LENGTH];
char esc_uname[MAX_ESCAPE_NAME_LENGTH];
CLIENT_DBR tcr;
db_lock(mdb);
memcpy(&tcr, cr, sizeof(tcr));
if (!db_create_client_record(jcr, mdb, &tcr)) {
goto bail_out;
}
mdb->db_escape_string(jcr, esc_name, cr->Name, strlen(cr->Name));
mdb->db_escape_string(jcr, esc_uname, cr->Uname, strlen(cr->Uname));
Mmsg(mdb->cmd,
"UPDATE Client SET AutoPrune=%d,FileRetention=%s,JobRetention=%s,"
"Uname='%s' WHERE Name='%s'",
cr->AutoPrune,
edit_uint64(cr->FileRetention, ed1),
edit_uint64(cr->JobRetention, ed2),
esc_uname, esc_name);
retval = UPDATE_DB(jcr, mdb, mdb->cmd);
bail_out:
db_unlock(mdb);
return retval;
}
示例3: send_volume_info_to_storage_daemon
static int send_volume_info_to_storage_daemon(JCR *jcr, BSOCK *sd, MEDIA_DBR *mr)
{
int status;
char ed1[50], ed2[50], ed3[50], ed4[50], ed5[50], ed6[50];
jcr->MediaId = mr->MediaId;
pm_strcpy(jcr->VolumeName, mr->VolumeName);
bash_spaces(mr->VolumeName);
status = sd->fsend(OK_media, mr->VolumeName, mr->VolJobs,
mr->VolFiles, mr->VolBlocks, edit_uint64(mr->VolBytes, ed1),
mr->VolMounts, mr->VolErrors, mr->VolWrites,
edit_uint64(mr->MaxVolBytes, ed2),
edit_uint64(mr->VolCapacityBytes, ed3),
mr->VolStatus, mr->Slot, mr->MaxVolJobs, mr->MaxVolFiles,
mr->InChanger,
edit_int64(mr->VolReadTime, ed4),
edit_int64(mr->VolWriteTime, ed5),
mr->EndFile, mr->EndBlock,
mr->LabelType,
edit_uint64(mr->MediaId, ed6),
mr->EncrKey, mr->MinBlocksize, mr->MaxBlocksize);
unbash_spaces(mr->VolumeName);
Dmsg2(100, "Vol Info for %s: %s", jcr->Job, sd->msg);
return status;
}
示例4: write_bsr_item
/*
* Write bsr data for a single bsr record
*/
static uint32_t write_bsr_item(RBSR *bsr, UAContext *ua,
RESTORE_CTX &rx, FILE *fd, bool &first, uint32_t &LastIndex)
{
char ed1[50], ed2[50];
uint32_t count = 0;
uint32_t total_count = 0;
char device[MAX_NAME_LENGTH];
/*
* For a given volume, loop over all the JobMedia records.
* VolCount is the number of JobMedia records.
*/
for (int i=0; i < bsr->VolCount; i++) {
if (!is_volume_selected(bsr->fi, bsr->VolParams[i].FirstIndex,
bsr->VolParams[i].LastIndex)) {
bsr->VolParams[i].VolumeName[0] = 0; /* zap VolumeName */
continue;
}
if (!rx.store) {
find_storage_resource(ua, rx, bsr->VolParams[i].Storage,
bsr->VolParams[i].MediaType);
}
fprintf(fd, "Storage=\"%s\"\n", bsr->VolParams[i].Storage);
fprintf(fd, "Volume=\"%s\"\n", bsr->VolParams[i].VolumeName);
fprintf(fd, "MediaType=\"%s\"\n", bsr->VolParams[i].MediaType);
if (bsr->fileregex) {
fprintf(fd, "FileRegex=%s\n", bsr->fileregex);
}
if (get_storage_device(device, bsr->VolParams[i].Storage)) {
fprintf(fd, "Device=\"%s\"\n", device);
}
if (bsr->VolParams[i].Slot > 0) {
fprintf(fd, "Slot=%d\n", bsr->VolParams[i].Slot);
}
fprintf(fd, "VolSessionId=%u\n", bsr->VolSessionId);
fprintf(fd, "VolSessionTime=%u\n", bsr->VolSessionTime);
fprintf(fd, "VolAddr=%s-%s\n", edit_uint64(bsr->VolParams[i].StartAddr, ed1),
edit_uint64(bsr->VolParams[i].EndAddr, ed2));
// Dmsg2(100, "bsr VolParam FI=%u LI=%u\n",
// bsr->VolParams[i].FirstIndex, bsr->VolParams[i].LastIndex);
count = write_findex(bsr->fi, bsr->VolParams[i].FirstIndex,
bsr->VolParams[i].LastIndex, fd);
if (count) {
fprintf(fd, "Count=%u\n", count);
}
total_count += count;
/* If the same file is present on two tapes or in two files
* on a tape, it is a continuation, and should not be treated
* twice in the totals.
*/
if (!first && LastIndex == bsr->VolParams[i].FirstIndex) {
total_count--;
}
first = false;
LastIndex = bsr->VolParams[i].LastIndex;
}
return total_count;
}
示例5: Dmsg0
/**
* After writing a Volume, create the JobMedia record.
*/
bool SD_DCR::dir_create_jobmedia_record(bool zero)
{
BSOCK *dir = jcr->dir_bsock;
char ed1[50];
/*
* If system job, do not update catalog
*/
if (jcr->is_JobType(JT_SYSTEM)) {
return true;
}
/*
* Throw out records where FI is zero -- i.e. nothing done
*/
if (!zero && VolFirstIndex == 0 &&
(StartBlock != 0 || EndBlock != 0)) {
Dmsg0(dbglvl, "JobMedia FI=0 StartBlock!=0 record suppressed\n");
return true;
}
if (!WroteVol) {
return true; /* nothing written to tape */
}
WroteVol = false;
if (zero) {
/*
* Send dummy place holder to avoid purging
*/
dir->fsend(Create_job_media, jcr->Job,
0 , 0, 0, 0, 0, 0, 0, 0, edit_uint64(VolMediaId, ed1));
} else {
dir->fsend(Create_job_media, jcr->Job,
VolFirstIndex, VolLastIndex,
StartFile, EndFile,
StartBlock, EndBlock,
Copy, Stripe,
edit_uint64(VolMediaId, ed1));
}
Dmsg1(dbglvl, ">dird %s", dir->msg);
if (dir->recv() <= 0) {
Dmsg0(dbglvl, "create_jobmedia error bnet_recv\n");
Jmsg(jcr, M_FATAL, 0, _("Error creating JobMedia record: ERR=%s\n"),
dir->bstrerror());
return false;
}
Dmsg1(dbglvl, "<dird %s", dir->msg);
if (!bstrcmp(dir->msg, OK_create)) {
Dmsg1(dbglvl, "Bad response from Dir: %s\n", dir->msg);
Jmsg(jcr, M_FATAL, 0, _("Error creating JobMedia record: %s\n"), dir->msg);
return false;
}
return true;
}
示例6: db_update_job_end_record
/*
* Update the Job record at end of Job
*
* Returns: 0 on failure
* 1 on success
*/
int
db_update_job_end_record(JCR *jcr, B_DB *mdb, JOB_DBR *jr)
{
char dt[MAX_TIME_LENGTH];
char rdt[MAX_TIME_LENGTH];
time_t ttime;
struct tm tm;
int stat;
char ed1[30], ed2[30], ed3[50], ed4[50];
btime_t JobTDate;
char PriorJobId[50];
if (jr->PriorJobId) {
bstrncpy(PriorJobId, edit_int64(jr->PriorJobId, ed1), sizeof(PriorJobId));
} else {
bstrncpy(PriorJobId, "0", sizeof(PriorJobId));
}
ttime = jr->EndTime;
(void)localtime_r(&ttime, &tm);
strftime(dt, sizeof(dt), "%Y-%m-%d %H:%M:%S", &tm);
if (jr->RealEndTime == 0) {
jr->RealEndTime = jr->EndTime;
}
ttime = jr->RealEndTime;
(void)localtime_r(&ttime, &tm);
strftime(rdt, sizeof(rdt), "%Y-%m-%d %H:%M:%S", &tm);
JobTDate = ttime;
db_lock(mdb);
Mmsg(mdb->cmd,
"UPDATE Job SET JobStatus='%c',EndTime='%s',"
"ClientId=%u,JobBytes=%s,ReadBytes=%s,JobFiles=%u,JobErrors=%u,VolSessionId=%u,"
"VolSessionTime=%u,PoolId=%u,FileSetId=%u,JobTDate=%s,"
"RealEndTime='%s',PriorJobId=%s,HasBase=%u,PurgedFiles=%u WHERE JobId=%s",
(char)(jr->JobStatus), dt, jr->ClientId, edit_uint64(jr->JobBytes, ed1),
edit_uint64(jr->ReadBytes, ed4),
jr->JobFiles, jr->JobErrors, jr->VolSessionId, jr->VolSessionTime,
jr->PoolId, jr->FileSetId, edit_uint64(JobTDate, ed2),
rdt, PriorJobId, jr->HasBase, jr->PurgedFiles,
edit_int64(jr->JobId, ed3));
stat = UPDATE_DB(jcr, mdb, mdb->cmd);
db_unlock(mdb);
return stat;
}
示例7: UpdateDB
/*
* Utility routine for updates.
* Returns: false on failure
* true on success
*/
bool UpdateDB(const char *file, int line, JCR *jcr, B_DB *mdb, char *cmd, int nr_afr)
{
int num_rows;
if (!sql_query(mdb, cmd)) {
m_msg(file, line, &mdb->errmsg, _("update %s failed:\n%s\n"), cmd, sql_strerror(mdb));
j_msg(file, line, jcr, M_ERROR, 0, "%s", mdb->errmsg);
if (verbose) {
j_msg(file, line, jcr, M_INFO, 0, "%s\n", cmd);
}
return false;
}
if (nr_afr > 0) {
num_rows = sql_affected_rows(mdb);
if (num_rows < nr_afr) {
char ed1[30];
m_msg(file, line, &mdb->errmsg, _("Update failed: affected_rows=%s for %s\n"),
edit_uint64(num_rows, ed1), cmd);
if (verbose) {
// j_msg(file, line, jcr, M_INFO, 0, "%s\n", cmd);
}
return false;
}
}
mdb->changes++;
return true;
}
示例8: wait_for_device
/*
* Wait for any device to be released, then we return, so
* higher level code can rescan possible devices. Since there
* could be a job waiting for a drive to free up, we wait a maximum
* of 1 minute then retry just in case a broadcast was lost, and
* we return to rescan the devices.
*
* Returns: true if a device has changed state
* false if the total wait time has expired.
*/
bool wait_for_device(JCR *jcr, int &retries)
{
struct timeval tv;
struct timezone tz;
struct timespec timeout;
int status = 0;
bool ok = true;
const int max_wait_time = 1 * 60; /* wait 1 minute */
char ed1[50];
Dmsg0(dbglvl, "Enter wait_for_device\n");
P(device_release_mutex);
if (++retries % 5 == 0) {
/* Print message every 5 minutes */
Jmsg(jcr, M_MOUNT, 0, _("JobId=%s, Job %s waiting to reserve a device.\n"),
edit_uint64(jcr->JobId, ed1), jcr->Job);
}
gettimeofday(&tv, &tz);
timeout.tv_nsec = tv.tv_usec * 1000;
timeout.tv_sec = tv.tv_sec + max_wait_time;
Dmsg0(dbglvl, "Going to wait for a device.\n");
/* Wait required time */
status = pthread_cond_timedwait(&wait_device_release, &device_release_mutex, &timeout);
Dmsg1(dbglvl, "Wokeup from sleep on device status=%d\n", status);
V(device_release_mutex);
Dmsg1(dbglvl, "Return from wait_device ok=%d\n", ok);
return ok;
}
示例9: db_update_job_start_record
/*
* Update the Job record at start of Job
*
* Returns: false on failure
* true on success
*/
bool db_update_job_start_record(JCR *jcr, B_DB *mdb, JOB_DBR *jr)
{
char dt[MAX_TIME_LENGTH];
time_t stime;
struct tm tm;
btime_t JobTDate;
bool retval;
char ed1[50], ed2[50], ed3[50], ed4[50], ed5[50];
stime = jr->StartTime;
(void)localtime_r(&stime, &tm);
strftime(dt, sizeof(dt), "%Y-%m-%d %H:%M:%S", &tm);
JobTDate = (btime_t)stime;
db_lock(mdb);
Mmsg(mdb->cmd, "UPDATE Job SET JobStatus='%c',Level='%c',StartTime='%s',"
"ClientId=%s,JobTDate=%s,PoolId=%s,FileSetId=%s WHERE JobId=%s",
(char)(jcr->JobStatus),
(char)(jr->JobLevel), dt,
edit_int64(jr->ClientId, ed1),
edit_uint64(JobTDate, ed2),
edit_int64(jr->PoolId, ed3),
edit_int64(jr->FileSetId, ed4),
edit_int64(jr->JobId, ed5));
retval = UPDATE_DB(jcr, mdb, mdb->cmd);
mdb->changes = 0;
db_unlock(mdb);
return retval;
}
示例10: InsertDB
/*
* Utility routine to do inserts
* Returns: false on failure
* true on success
*/
bool InsertDB(const char *file, int line, JCR *jcr, B_DB *mdb, char *cmd)
{
int num_rows;
if (!sql_query(mdb, cmd)) {
m_msg(file, line, &mdb->errmsg, _("insert %s failed:\n%s\n"), cmd, sql_strerror(mdb));
j_msg(file, line, jcr, M_FATAL, 0, "%s", mdb->errmsg);
if (verbose) {
j_msg(file, line, jcr, M_INFO, 0, "%s\n", cmd);
}
return false;
}
num_rows = sql_affected_rows(mdb);
if (num_rows != 1) {
char ed1[30];
m_msg(file, line, &mdb->errmsg, _("Insertion problem: affected_rows=%s\n"),
edit_uint64(num_rows, ed1));
if (verbose) {
j_msg(file, line, jcr, M_INFO, 0, "%s\n", cmd);
}
return false;
}
mdb->changes++;
return true;
}
示例11: run_job
/*
* Run a File daemon Job -- File daemon already authorized
* Director sends us this command.
*
* Basic task here is:
* - Read a command from the File daemon
* - Execute it
*
*/
void run_job(JCR *jcr)
{
BSOCK *dir = jcr->dir_bsock;
char ec1[30];
dir->set_jcr(jcr);
Dmsg1(120, "Start run Job=%s\n", jcr->Job);
dir->fsend(Job_start, jcr->Job);
jcr->start_time = time(NULL);
jcr->run_time = jcr->start_time;
jcr->sendJobStatus(JS_Running);
do_fd_commands(jcr);
jcr->end_time = time(NULL);
dequeue_messages(jcr); /* send any queued messages */
jcr->setJobStatus(JS_Terminated);
generate_plugin_event(jcr, bsdEventJobEnd);
dir->fsend(Job_end, jcr->Job, jcr->JobStatus, jcr->JobFiles,
edit_uint64(jcr->JobBytes, ec1), jcr->JobErrors);
dir->signal(BNET_EOD); /* send EOD to Director daemon */
free_plugins(jcr); /* release instantiated plugins */
}
示例12: db_update_quota_softlimit
/*
* Update Quota Softlimit
*
* Returns: false on failure
* true on success
*/
bool db_update_quota_softlimit(JCR *jcr, B_DB *mdb, JOB_DBR *jr)
{
bool retval;
char ed1[50], ed2[50];
db_lock(mdb);
Mmsg(mdb->cmd,
"UPDATE Quota SET QuotaLimit=%s WHERE ClientId='%s'",
edit_uint64((jr->JobSumTotalBytes + jr->JobBytes), ed1),
edit_uint64(jr->ClientId, ed2));
retval = UPDATE_DB(jcr, mdb, mdb->cmd);
db_unlock(mdb);
return retval;
}
示例13: dump_resource
/*
* Dump contents of resource
*/
void dump_resource(int type, RES *reshdr, void sendit(void *sock, const char *fmt, ...), void *sock)
{
URES *res = (URES *)reshdr;
bool recurse = true;
char ed1[100], ed2[100];
if (res == NULL) {
sendit(sock, _("No %s resource defined\n"), res_to_str(type));
return;
}
if (type < 0) { /* no recursion */
type = - type;
recurse = false;
}
switch (type) {
case R_MONITOR:
sendit(sock, _("Monitor: name=%s FDtimeout=%s SDtimeout=%s\n"),
reshdr->name,
edit_uint64(res->res_monitor.FDConnectTimeout, ed1),
edit_uint64(res->res_monitor.SDConnectTimeout, ed2));
break;
case R_DIRECTOR:
sendit(sock, _("Director: name=%s address=%s FDport=%d\n"),
res->res_dir.hdr.name, res->res_dir.address, res->res_dir.DIRport);
break;
case R_CLIENT:
sendit(sock, _("Client: name=%s address=%s FDport=%d\n"),
res->res_client.hdr.name, res->res_client.address, res->res_client.FDport);
break;
case R_STORAGE:
sendit(sock, _("Storage: name=%s address=%s SDport=%d\n"),
res->res_store.hdr.name, res->res_store.address, res->res_store.SDport);
break;
case R_CONSOLE_FONT:
sendit(sock, _("ConsoleFont: name=%s font face=%s\n"),
reshdr->name, NPRT(res->con_font.fontface));
break;
default:
sendit(sock, _("Unknown resource type %d in dump_resource.\n"), type);
break;
}
if (recurse && res->res_monitor.hdr.next) {
dump_resource(type, res->res_monitor.hdr.next, sendit, sock);
}
}
示例14: update_volmaxbytes
static void update_volmaxbytes(UAContext *ua, char *val, MEDIA_DBR *mr)
{
uint64_t maxbytes;
char ed1[50], ed2[50];
POOL_MEM query(PM_MESSAGE);
if (!size_to_uint64(val, strlen(val), &maxbytes)) {
ua->error_msg(_("Invalid max. bytes specification: %s\n"), val);
return;
}
Mmsg(query, "UPDATE Media SET MaxVolBytes=%s WHERE MediaId=%s",
edit_uint64(maxbytes, ed1), edit_int64(mr->MediaId, ed2));
if (!db_sql_query(ua->db, query.c_str(), NULL, NULL)) {
ua->error_msg("%s", db_strerror(ua->db));
} else {
ua->info_msg(_("New Max bytes is: %s\n"), edit_uint64(maxbytes, ed1));
}
}
示例15: db_update_quota_gracetime
/*
* Update Quota record
*
* Returns: false on failure
* true on success
*/
bool db_update_quota_gracetime(JCR *jcr, B_DB *mdb, JOB_DBR *jr)
{
bool retval;
char ed1[50], ed2[50];
time_t now = time(NULL);
db_lock(mdb);
Mmsg(mdb->cmd,
"UPDATE Quota SET GraceTime=%s WHERE ClientId='%s'",
edit_uint64(now, ed1),
edit_uint64(jr->ClientId, ed2));
retval = UPDATE_DB(jcr, mdb, mdb->cmd);
db_unlock(mdb);
return retval;
}