本文整理匯總了C++中Emsg1函數的典型用法代碼示例。如果您正苦於以下問題:C++ Emsg1函數的具體用法?C++ Emsg1怎麽用?C++ Emsg1使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。
在下文中一共展示了Emsg1函數的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C++代碼示例。
示例1: Mmsg0
/*
* Set the position of the device -- only for files and DVD
* For other devices, there is no generic way to do it.
* Returns: true on succes
* false on error
*/
bool DEVICE::update_pos(DCR *dcr)
{
boffset_t pos;
bool ok = true;
if (!is_open()) {
dev_errno = EBADF;
Mmsg0(errmsg, _("Bad device call. Device not open\n"));
Emsg1(M_FATAL, 0, "%s", errmsg);
return false;
}
if (is_file()) {
file = 0;
file_addr = 0;
pos = lseek(dcr, (boffset_t)0, SEEK_CUR);
if (pos < 0) {
berrno be;
dev_errno = errno;
Pmsg1(000, _("Seek error: ERR=%s\n"), be.bstrerror());
Mmsg2(errmsg, _("lseek error on %s. ERR=%s.\n"),
print_name(), be.bstrerror());
ok = false;
} else {
file_addr = pos;
block_num = (uint32_t)pos;
file = (uint32_t)(pos >> 32);
}
}
return ok;
}
示例2: Emsg2
POOLMEM *sm_get_pool_memory(const char *fname, int lineno, int pool)
{
struct abufhead *buf;
if (pool > PM_MAX) {
Emsg2(M_ABORT, 0, _("MemPool index %d larger than max %d\n"), pool, PM_MAX);
}
P(mutex);
if (pool_ctl[pool].free_buf) {
buf = pool_ctl[pool].free_buf;
pool_ctl[pool].free_buf = buf->next;
pool_ctl[pool].in_use++;
if (pool_ctl[pool].in_use > pool_ctl[pool].max_used) {
pool_ctl[pool].max_used = pool_ctl[pool].in_use;
}
V(mutex);
Dmsg3(dbglvl, "sm_get_pool_memory reuse %p to %s:%d\n", buf, fname, lineno);
sm_new_owner(fname, lineno, (char *)buf);
return (POOLMEM *)((char *)buf+HEAD_SIZE);
}
if ((buf = (struct abufhead *)sm_malloc(fname, lineno, pool_ctl[pool].size+HEAD_SIZE)) == NULL) {
V(mutex);
Emsg1(M_ABORT, 0, _("Out of memory requesting %d bytes\n"), pool_ctl[pool].size);
}
buf->ablen = pool_ctl[pool].size;
buf->pool = pool;
pool_ctl[pool].in_use++;
if (pool_ctl[pool].in_use > pool_ctl[pool].max_used) {
pool_ctl[pool].max_used = pool_ctl[pool].in_use;
}
V(mutex);
Dmsg3(dbglvl, "sm_get_pool_memory give %p to %s:%d\n", buf, fname, lineno);
return (POOLMEM *)((char *)buf+HEAD_SIZE);
}
示例3: P
POOLMEM *get_pool_memory(int pool)
{
struct abufhead *buf;
P(mutex);
if (pool_ctl[pool].free_buf) {
buf = pool_ctl[pool].free_buf;
pool_ctl[pool].free_buf = buf->next;
V(mutex);
return (POOLMEM *)((char *)buf+HEAD_SIZE);
}
if ((buf=malloc(pool_ctl[pool].size+HEAD_SIZE)) == NULL) {
V(mutex);
Emsg1(M_ABORT, 0, _("Out of memory requesting %d bytes\n"), pool_ctl[pool].size);
}
buf->ablen = pool_ctl[pool].size;
buf->pool = pool;
buf->next = NULL;
pool_ctl[pool].in_use++;
if (pool_ctl[pool].in_use > pool_ctl[pool].max_used) {
pool_ctl[pool].max_used = pool_ctl[pool].in_use;
}
V(mutex);
return (POOLMEM *)(((char *)buf)+HEAD_SIZE);
}
示例4: cleanup_bnet_thread_server
/*
* Perform a cleanup for the Threaded Network Server check if there is still
* something to do or that the cleanup already took place.
*/
void cleanup_bnet_thread_server(alist *sockfds, workq_t *client_wq)
{
int status;
s_sockfd *fd_ptr = NULL;
if (!sockfds->empty()) {
/*
* Cleanup open files and pointers to them
*/
fd_ptr = (s_sockfd *)sockfds->first();
while (fd_ptr) {
close(fd_ptr->fd);
fd_ptr = (s_sockfd *)sockfds->next();
}
sockfds->destroy();
/*
* Stop work queue thread
*/
if ((status = workq_destroy(client_wq)) != 0) {
berrno be;
be.set_errno(status);
Emsg1(M_FATAL, 0, _("Could not destroy client queue: ERR=%s\n"),
be.bstrerror());
}
}
}
示例5: object_store_logfunc
/*
* Generic log function that glues libdroplet with BAREOS.
*/
static void object_store_logfunc(dpl_ctx_t *ctx, dpl_log_level_t level, const char *message)
{
switch (level) {
case DPL_DEBUG:
Dmsg1(100, "%s\n", message);
break;
case DPL_INFO:
Emsg1(M_INFO, 0, "%s\n", message);
break;
case DPL_WARNING:
Emsg1(M_WARNING, 0, "%s\n", message);
break;
case DPL_ERROR:
Emsg1(M_ERROR, 0, "%s\n", message);
break;
}
}
示例6: init_vol_list_lock
/*
* Initialized the main volume list. Note, we are using a recursive lock.
*/
void init_vol_list_lock()
{
int errstat;
if ((errstat=rwl_init(&vol_list_lock, PRIO_SD_VOL_LIST)) != 0) {
berrno be;
Emsg1(M_ABORT, 0, _("Unable to initialize volume list lock. ERR=%s\n"),
be.bstrerror(errstat));
}
}
示例7: do_extract
static void do_extract(char *devname)
{
struct stat statp;
enable_backup_privileges(NULL, 1);
jcr = setup_jcr("bextract", devname, bsr, director, VolumeName, 1); /* acquire for read */
if (!jcr) {
exit(1);
}
dev = jcr->read_dcr->dev;
if (!dev) {
exit(1);
}
dcr = jcr->read_dcr;
/* Make sure where directory exists and that it is a directory */
if (stat(where, &statp) < 0) {
berrno be;
Emsg2(M_ERROR_TERM, 0, _("Cannot stat %s. It must exist. ERR=%s\n"),
where, be.bstrerror());
}
if (!S_ISDIR(statp.st_mode)) {
Emsg1(M_ERROR_TERM, 0, _("%s must be a directory.\n"), where);
}
free(jcr->where);
jcr->where = bstrdup(where);
attr = new_attr(jcr);
compress_buf = get_memory(compress_buf_size);
acl_data.last_fname = get_pool_memory(PM_FNAME);
xattr_data.last_fname = get_pool_memory(PM_FNAME);
read_records(dcr, record_cb, mount_next_read_volume);
/* If output file is still open, it was the last one in the
* archive since we just hit an end of file, so close the file.
*/
if (is_bopen(&bfd)) {
set_attributes(jcr, attr, &bfd);
}
free_attr(attr);
free_pool_memory(acl_data.last_fname);
free_pool_memory(xattr_data.last_fname);
clean_device(jcr->dcr);
dev->term();
free_dcr(dcr);
free_jcr(jcr);
printf(_("%u files restored.\n"), num_files);
return;
}
示例8: calloc
void *bcalloc(size_t size1, size_t size2)
{
void *buf;
buf = calloc(size1, size2);
if (buf == NULL) {
berrno be;
Emsg1(M_ABORT, 0, _("Out of memory: ERR=%s\n"), be.bstrerror());
}
return buf;
}
示例9: start_UA_server
/* Called here by Director daemon to start UA (user agent)
* command thread. This routine creates the thread and then
* returns.
*/
void start_UA_server(dlist *addrs)
{
int status;
static dlist *myaddrs = addrs;
if ((status = pthread_create(&tcp_server_tid, NULL, connect_thread, (void *)myaddrs)) != 0) {
berrno be;
Emsg1(M_ABORT, 0, _("Cannot create UA thread: %s\n"), be.bstrerror(status));
}
started = TRUE;
return;
}
示例10: sm_realloc
void *brealloc (void *buf, size_t size)
{
#ifdef SMARTALOC
buf = sm_realloc(__FILE__, __LINE__, buf, size);
#else
buf = realloc(buf, size);
#endif
if (buf == NULL) {
berrno be;
Emsg1(M_ABORT, 0, _("Out of memory: ERR=%s\n"), be.bstrerror());
}
return buf;
}
示例11: sm_malloc
void *bmalloc(size_t size)
{
void *buf;
#ifdef SMARTALLOC
buf = sm_malloc(file, line, size);
#else
buf = malloc(size);
#endif
if (buf == NULL) {
berrno be;
Emsg1(M_ABORT, 0, _("Out of memory: ERR=%s\n"), be.bstrerror());
}
return buf;
}
示例12: Emsg1
/* Get nonpool memory of size requested */
POOLMEM *sm_get_memory(const char *fname, int lineno, int32_t size)
{
struct abufhead *buf;
int pool = 0;
if ((buf = (struct abufhead *)sm_malloc(fname, lineno, size+HEAD_SIZE)) == NULL) {
Emsg1(M_ABORT, 0, _("Out of memory requesting %d bytes\n"), size);
}
buf->ablen = size;
buf->pool = pool;
buf->next = NULL;
pool_ctl[pool].in_use++;
if (pool_ctl[pool].in_use > pool_ctl[pool].max_used)
pool_ctl[pool].max_used = pool_ctl[pool].in_use;
return (POOLMEM *)(((char *)buf)+HEAD_SIZE);
}
示例13: init_job_server
void init_job_server(int max_workers)
{
int status;
watchdog_t *wd;
if ((status = jobq_init(&job_queue, max_workers, job_thread)) != 0) {
berrno be;
Emsg1(M_ABORT, 0, _("Could not init job queue: ERR=%s\n"), be.bstrerror(status));
}
wd = new_watchdog();
wd->callback = job_monitor_watchdog;
wd->destructor = job_monitor_destructor;
wd->one_shot = false;
wd->interval = 60;
wd->data = new_control_jcr("*JobMonitor*", JT_SYSTEM);
register_watchdog(wd);
}
示例14: lex_get_token
static BSR *store_slot(LEX *lc, BSR *bsr)
{
int token;
token = lex_get_token(lc, T_PINT32);
if (token == T_ERROR) {
return NULL;
}
if (!bsr->volume) {
Emsg1(M_ERROR,0, _("Slot %d in bsr at inappropriate place.\n"),
lc->pint32_val);
return bsr;
}
bsr->volume->Slot = lc->pint32_val;
scan_to_eol(lc);
return bsr;
}
示例15: Emsg1
/*
* Connection request. We accept connections either from the
* Director, Storage Daemon or a Client (File daemon).
*
* Note, we are running as a seperate thread of the Storage daemon.
*
* Basic tasks done here:
* - If it was a connection from the FD, call handle_filed_connection()
* - If it was a connection from another SD, call handle_stored_connection()
* - Otherwise it was a connection from the DIR, call handle_director_connection()
*/
static void *handle_connection_request(void *arg)
{
BSOCK *bs = (BSOCK *)arg;
char name[MAX_NAME_LENGTH];
char tbuf[MAX_TIME_LENGTH];
if (bs->recv() <= 0) {
Emsg1(M_ERROR, 0, _("Connection request from %s failed.\n"), bs->who());
bmicrosleep(5, 0); /* make user wait 5 seconds */
bs->close();
return NULL;
}
/*
* Do a sanity check on the message received
*/
if (bs->msglen < MIN_MSG_LEN || bs->msglen > MAX_MSG_LEN) {
Dmsg1(000, "<filed: %s", bs->msg);
Emsg2(M_ERROR, 0, _("Invalid connection from %s. Len=%d\n"), bs->who(), bs->msglen);
bmicrosleep(5, 0); /* make user wait 5 seconds */
bs->close();
return NULL;
}
Dmsg1(110, "Conn: %s", bs->msg);
/*
* See if this is a File daemon connection. If so call FD handler.
*/
if (sscanf(bs->msg, "Hello Start Job %127s", name) == 1) {
Dmsg1(110, "Got a FD connection at %s\n", bstrftimes(tbuf, sizeof(tbuf), (utime_t)time(NULL)));
return handle_filed_connection(bs, name);
}
/*
* See if this is a Storage daemon connection. If so call SD handler.
*/
if (sscanf(bs->msg, "Hello Start Storage Job %127s", name) == 1) {
Dmsg1(110, "Got a SD connection at %s\n", bstrftimes(tbuf, sizeof(tbuf), (utime_t)time(NULL)));
return handle_stored_connection(bs, name);
}
Dmsg1(110, "Got a DIR connection at %s\n", bstrftimes(tbuf, sizeof(tbuf), (utime_t)time(NULL)));
return handle_director_connection(bs);
}