本文整理汇总了C++中Log_Trace函数的典型用法代码示例。如果您正苦于以下问题:C++ Log_Trace函数的具体用法?C++ Log_Trace怎么用?C++ Log_Trace使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Log_Trace函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: memset
bool Endpoint::Set(const char* ip, int port, bool resolv)
{
struct sockaddr_in *sa = (struct sockaddr_in *) &saBuffer;
memset((char *) sa, 0, sizeof(sa));
sa->sin_family = AF_INET;
sa->sin_port = htons((uint16_t)port);
if (inet_aton(ip, &sa->sin_addr) == 0)
{
if (resolv)
{
if (!DNS_ResolveIpv4(ip, &sa->sin_addr))
{
Log_Trace("DNS resolv failed");
return false;
}
else
return true;
}
Log_Trace("inet_aton() failed");
return false;
}
return true;
}
示例2: Log_Debug
void ReplicatedLog::OnRequestChosen(PaxosMessage& imsg)
{
Buffer value;
PaxosMessage omsg;
#ifdef RLOG_DEBUG_MESSAGES
Log_Debug("ReplicatedLog::OnRequestChosen, imsg.paxosID = %U, mine = %U",
imsg.paxosID, GetPaxosID());
#endif
if (imsg.paxosID >= GetPaxosID())
return;
// the node is lagging and needs to catch-up
context->GetDatabase()->GetAcceptedValue(imsg.paxosID, value);
if (value.GetLength() > 0)
{
Log_Trace("Sending paxosID %d to node %d", imsg.paxosID, imsg.nodeID);
omsg.LearnValue(imsg.paxosID, MY_NODEID, 0, value);
}
else
{
Log_Trace("Node requested a paxosID I no longer have");
omsg.StartCatchup(paxosID, MY_NODEID);
}
context->GetTransport()->SendMessage(imsg.nodeID, omsg);
}
示例3: Log_Trace
void SingleKeyspaceDB::OnExpiryTimer()
{
uint64_t expiryTime;
Cursor cursor;
ByteString key;
Log_Trace();
table->Iterate(NULL, cursor);
kdata.Set("!!t:");
if (!cursor.Start(kdata))
ASSERT_FAIL();
cursor.Close();
if (kdata.length < 2)
ASSERT_FAIL();
if (kdata.buffer[0] != '!' || kdata.buffer[1] != '!')
ASSERT_FAIL();
ReadExpiryTime(kdata, expiryTime, key);
table->Delete(NULL, kdata);
table->Delete(NULL, key);
WriteExpiryKey(kdata, key);
table->Delete(NULL, kdata);
Log_Trace("Expiring key: %.*s", key.length, key.buffer);
InitExpiryTimer();
}
示例4: database
Table::Table(Database* database, const char *name, int pageSize) :
database(database)
{
DbTxn *txnid = NULL;
const char *filename = name;
const char *dbname = NULL;
DBTYPE type = DB_BTREE;
u_int32_t flags = DB_CREATE | DB_AUTO_COMMIT |
DB_NOMMAP
#ifdef DB_READ_UNCOMMITTED
| DB_READ_UNCOMMITTED
#endif
;
int mode = 0;
db = new Db(database->env, 0);
if (pageSize != 0)
db->set_pagesize(pageSize);
Log_Trace();
if (db->open(txnid, filename, dbname, type, flags, mode) != 0)
{
db->close(0);
if (IsFolder(filename))
{
STOP_FAIL(rprintf(
"Could not create database file '%s' "
"because a folder '%s' exists",
filename, filename), 1);
}
STOP_FAIL("Could not open database", 1);
}
Log_Trace();
}
示例5: strrchr
bool Endpoint::Set(const char* ip_port, bool resolv)
{
const char* p;
int port;
bool ret;
Buffer ipbuf;
p = ip_port;
if (!IsValidEndpoint(ReadBuffer(ip_port)))
return false;
p = strrchr(ip_port, ':');
if (p == NULL)
{
Log_Trace("No ':' in host specification");
return false;
}
ipbuf.Append(ip_port, p - ip_port);
ipbuf.NullTerminate();
p++;
port = -1;
port = atoi(p);
if (port < 1 || port > 65535)
{
Log_Trace("atoi() failed to produce a sensible value");
return false;
}
ret = Set(ipbuf.GetBuffer(), port, resolv);
return ret;
}
示例6: while
bool Endpoint::Set(const char* ip_port, bool resolv)
{
const char* p;
int port;
bool ret;
DynArray<32> ipbuf;
p = ip_port;
while (*p != '\0' && *p != ':')
p++;
if (*p == '\0')
{
Log_Trace("No ':' in host specification");
return false;
}
ipbuf.Append(ip_port, p - ip_port);
ipbuf.Append("", 1);
p++;
port = -1;
port = atoi(p);
if (port < 1 || port > 65535)
{
Log_Trace("atoi() failed to produce a sensible value");
return false;
}
ret = Set(ipbuf.buffer, port, resolv);
return ret;
}
示例7: Log_Trace
void ReplicatedKeyspaceDB::Append()
{
ByteString bs;
KeyspaceOp* op;
KeyspaceOp**it;
uint64_t expiryTime;
Log_Trace();
if (ops.Length() == 0)
return;
pvalue.length = 0;
bs.Set(pvalue);
unsigned numAppended = 0;
for (it = ops.Head(); it != NULL; it = ops.Next(it))
{
op = *it;
if (op->appended)
ASSERT_FAIL();
if (op->IsExpiry() && op->type != KeyspaceOp::CLEAR_EXPIRIES)
{
// at this point we have up-to-date info on the expiry time
expiryTime = GetExpiryTime(op->key);
op->prevExpiryTime = expiryTime;
}
msg.FromKeyspaceOp(op);
if (msg.Write(bs))
{
pvalue.length += bs.length;
bs.Advance(bs.length);
op->appended = true;
numAppended++;
if (op->IsExpiry())
{
// one expiry command per paxos round
break;
}
}
else
break;
}
if (pvalue.length > 0)
{
estimatedLength -= pvalue.length;
if (estimatedLength < 0) estimatedLength = 0;
RLOG->Append(pvalue);
Log_Trace("appending %d ops (length: %d)", numAppended, pvalue.length);
}
}
示例8: Log_Trace
void TransportTCPWriter::OnClose()
{
Log_Trace("endpoint = %s", endpoint.ToString());
if (!connectTimeout.IsActive())
{
Log_Trace("reset");
EventLoop::Reset(&connectTimeout);
}
}
示例9: Log_Trace
void Database::Checkpoint()
{
int ret;
Log_Trace("started");
ret = env->txn_checkpoint(100*1000 /* in kilobytes */, 0, 0);
if (ret < 0)
ASSERT_FAIL();
Log_Trace("finished");
}
示例10: Log_Trace
void ReplicatedLog::OnLearnLease()
{
Log_Trace("context->IsLeaseOwner() = %s", (context->IsLeaseOwner() ? "true" : "false"));
Log_Trace("!proposer.IsActive() = %s", (!proposer.IsActive() ? "true" : "false"));
Log_Trace("!proposer.state.multi = %s", (!proposer.state.multi ? "true" : "false"));
if (context->IsLeaseOwner() && !proposer.IsActive() && !proposer.state.multi)
{
Log_Trace("Appending dummy to enable MultiPaxos");
TryAppendDummy();
}
}
示例11: Log_Trace
void PaxosLearner::OnLearnChosen(PaxosMsg& msg_)
{
Log_Trace();
msg = msg_;
state.learned = true;
state.value.Set(msg.value);
Log_Trace("+++ Consensus for paxosID = %" PRIu64 " is %.*s +++", paxosID,
state.value.length, state.value.buffer);
}
示例12: Log_Trace
bool Table::Truncate(Transaction* tx)
{
Log_Trace();
u_int32_t count;
u_int32_t flags = 0;
int ret;
DbTxn* txn;
txn = tx ? tx->txn : NULL;
// TODO error handling
if ((ret = db->truncate(txn, &count, flags)) != 0)
Log_Trace("truncate() failed");
return true;
}
示例13: Log_Trace
void MessageConnection::OnFlushWrites()
{
// flushWrites YieldTimer arrived
Log_Trace();
TCPConnection::TryFlush();
}
示例14: Log_Trace
void PLeaseProposer::OnPrepareResponse()
{
Log_Trace();
if (!state.preparing || msg.proposalID != state.proposalID)
return;
numReceived++;
if (msg.type == PLEASE_PREPARE_REJECTED)
numRejected++;
else if (msg.type == PLEASE_PREPARE_PREVIOUSLY_ACCEPTED &&
msg.acceptedProposalID >= state.highestReceivedProposalID)
{
state.highestReceivedProposalID = msg.acceptedProposalID;
state.leaseOwner = msg.leaseOwner;
}
if (numRejected >= ceil((double)(RCONF->GetNumNodes()) / 2))
{
StartPreparing();
return;
}
// see if we have enough positive replies to advance
if ((numReceived - numRejected) >= RCONF->MinMajority())
StartProposing();
}
示例15: while
bool StorageChunkWriter::WriteDataPages()
{
unsigned i;
StorageDataPage* dataPage;
for (i = 0; i < file->numDataPages; i++)
{
if (env->shuttingDown)
return false;
while (env->yieldThreads)
{
Log_Trace("Yielding...");
MSleep(YIELD_TIME);
}
dataPage = file->dataPages[i];
writeBuffer.Clear();
dataPage->Write(writeBuffer);
//ASSERT(writeBuffer.GetLength() == dataPage->GetSize());
if (!WriteBuffer())
return false;
}
return true;
}