本文整理汇总了C++中VString::AppendPrintf方法的典型用法代码示例。如果您正苦于以下问题:C++ VString::AppendPrintf方法的具体用法?C++ VString::AppendPrintf怎么用?C++ VString::AppendPrintf使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类VString
的用法示例。
在下文中一共展示了VString::AppendPrintf方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: DebugDump
CharSet VValueBag::DebugDump(char* inTextBuffer, sLONG& inBufferSize) const
{
if (VProcess::Get() != NULL)
{
VString dump;
VString temp;
VIndex i;
VIndex count = GetAttributesCount();
for (i = 1 ; i <= count ; ++i)
{
const VValueSingle* theValue = GetNthAttribute( i, &temp);
dump.AppendPrintf("%S = %A\n", &temp, theValue);
}
count = GetElementNamesCount();
for (i = 1 ; i <= count ; ++i)
{
const VBagArray *theBagArray = GetNthElementName( i, &temp);
dump.AppendPrintf("=======\n%d %S :\n", theBagArray->GetCount(), &temp);
for (sLONG j = 1 ; j <= theBagArray->GetCount() ; ++j) {
dump.AppendPrintf("--\n%V", theBagArray->RetainNth(j));
}
}
dump.Truncate(inBufferSize/2);
inBufferSize = (sLONG) dump.ToBlock(inTextBuffer, inBufferSize, VTC_UTF_16, false, false);
} else
inBufferSize = 0;
return VTC_UTF_16;
}
示例2: Put
void VSysLogOutput::Put( std::vector< const XBOX::VValueBag* >& inValuesVector)
{
for (std::vector< const XBOX::VValueBag* >::iterator bagIter = inValuesVector.begin() ; bagIter != inValuesVector.end() ; ++bagIter)
{
EMessageLevel bagLevel = ILoggerBagKeys::level.Get( *bagIter);
if ((fFilter & (1 << bagLevel)) != 0)
{
VString logMsg;
VError errorCode = VE_OK;
ILoggerBagKeys::error_code.Get( *bagIter, errorCode);
VString loggerID;
ILoggerBagKeys::source.Get( *bagIter, loggerID);
OsType componentSignature = 0;
if (!ILoggerBagKeys::component_signature.Get( *bagIter, componentSignature))
componentSignature = COMPONENT_FROM_VERROR( errorCode);
if (componentSignature != 0)
{
if (!loggerID.IsEmpty())
loggerID.AppendUniChar( L'.');
loggerID.AppendOsType( componentSignature);
}
if (!loggerID.IsEmpty())
logMsg.Printf( "[%S]", &loggerID);
// build message string
VString message;
if (errorCode != VE_OK)
message.AppendPrintf( "error %d", ERRCODE_FROM_VERROR( errorCode));
VString bagMsg;
if (ILoggerBagKeys::message.Get( *bagIter, bagMsg))
{
if (!message.IsEmpty())
message.AppendString( L", ");
message.AppendString( bagMsg);
}
sLONG taskId=-1;
if (ILoggerBagKeys::task_id.Get( *bagIter, taskId))
{
if (!message.IsEmpty())
message.AppendString( L", ");
message.AppendString( L"task #");
message.AppendLong( taskId);
}
VString taskName;
if (!ILoggerBagKeys::task_name.Get( *bagIter, taskName))
VTask::GetCurrent()->GetName( taskName);
if (!taskName.IsEmpty())
{
if (!message.IsEmpty())
message.AppendString( L", ");
message.AppendString( taskName);
}
sLONG socketDescriptor=-1;
if (ILoggerBagKeys::socket.Get( *bagIter, socketDescriptor))
{
if (!message.IsEmpty())
message.AppendString( L", ");
message.AppendString( L"socket ");
message.AppendLong(socketDescriptor);
}
VString localAddr;
if (ILoggerBagKeys::local_addr.Get( *bagIter, localAddr))
{
if (!message.IsEmpty())
message.AppendString( L", ");
message.AppendString( L"local addr is ");
message.AppendString( localAddr);
}
VString peerAddr;
if (ILoggerBagKeys::peer_addr.Get( *bagIter, peerAddr))
{
if (!message.IsEmpty())
message.AppendString( L", ");
message.AppendString( L"peer addr is ");
message.AppendString( peerAddr);
}
bool exchangeEndPointID=false;
if (ILoggerBagKeys::exchange_id.Get( *bagIter, exchangeEndPointID))
{
if (!message.IsEmpty())
message.AppendString( L", ");
message.AppendString( (exchangeEndPointID) ? L"exchange endpoint id" : L"do not exchange endpoint id");
}
bool isBlocking=false;
if (ILoggerBagKeys::is_blocking.Get( *bagIter, isBlocking))
{
//.........这里部分代码省略.........
示例3: logDocDump
static void _ExplainTTRFormat_V1()
{
VString doc;
char theTime[512] = {0};
time_t now = ::time( NULL);
::strftime( theTime, sizeof( theTime),"%Y-%m-%dT%H:%M:%S", localtime( &now));
doc = "Text (Tab-Tab-Return) format version ";
doc.AppendLong(kTTR_FORMAT_VERSION);
doc.AppendCString("\r\r");
// ===============================================
doc += "--------------------------------------------------\r";
doc += "General\r";
doc += "--------------------------------------------------\r";
doc.AppendPrintf("Every entry is quoted by square brackets. For example: [%d] for \"FlushFromLanguage\".\r", eCLEntryKind_FlushFromLanguage);
doc.AppendPrintf("First entry in the log is the \"start\" entry (%d), it gives the current date-time.\r", eCLEntryKind_Start);
doc += "Then, every other entry is followed by [tab] ellapsed second since log started [tab] Task ID {and optionnaly: [tab] other infos...}\r\r";
doc += "For example, when the log starts, first line is something like:\r";
doc.AppendPrintf("[%d]\t%s\t10\r", eCLEntryKind_Start, theTime);
doc += "Then you may have (FlushFromLanguage, executed 5 seconds since the log started, for task ID 10):\r";
doc.AppendPrintf("[%d]\t5\t10\r", eCLEntryKind_FlushFromLanguage);
doc += "\rEntries may be quoted with start/end. In this case, the format is [entry num]s and [entry num]e.";
doc += " Between both tags, several other entries may be logged, from the same task ID or from others.\r";
doc += "In all cases, the 'end' tag is formatted: [entry num]e [tab] ellapsed second since log started [tab] taskID [tab] count of milliseconds since [entry num]start\r";
doc += "For example, with the FlushFromLanguage kind launched from task ID 10, the log could be:\r";
doc.AppendPrintf("[%d]s\t123\t10\t(...other infos - see format)\r", eCLEntryKind_FlushFromLanguage);
doc += ". . .\r. . .\r. . .\r";
doc.AppendPrintf("[%d]s\t126\t10\t(...other infos - see format)\r", eCLEntryKind_FlushFromLanguage);
// ===============================================
doc += "--------------------------------------------------\r";
doc += "List of all kinds of entry (name [tab] value)\r";
doc += "--------------------------------------------------\r";
doc.AppendPrintf("Unknown\t%d\r", eCLEntryKind_Unknown);
doc.AppendPrintf("Start\t%d\r", eCLEntryKind_Start);
doc.AppendPrintf("Stop\t%d\r", eCLEntryKind_Stop);
doc.AppendPrintf("Comment\t%d\r", eCLEntryKind_Comment);
doc.AppendPrintf("NeedsBytes\t%d\r", eCLEntryKind_NeedsBytes);
doc.AppendPrintf("CallNeedsBytes\t%d\r", eCLEntryKind_CallNeedsBytes);
doc.AppendPrintf("FlushFromLanguage\t%d\r", eCLEntryKind_FlushFromLanguage);
doc.AppendPrintf("FlushFromMenuCommand\t%d\r", eCLEntryKind_FlushFromMenuCommand);
doc.AppendPrintf("FlushFromScheduler\t%d\r", eCLEntryKind_FlushFromScheduler);
doc.AppendPrintf("FlushFromBackup\t%d\r", eCLEntryKind_FlushFromBackup);
doc.AppendPrintf("FlushFromNeedsBytes\t%d\r", eCLEntryKind_FlushFromNeedsBytes);
doc.AppendPrintf("FlushFromRemote\t%d\r", eCLEntryKind_FlushFromRemote);
doc.AppendPrintf("FlushFromUnknown\t%d\r", eCLEntryKind_FlushFromUnknown);
doc.AppendPrintf("Flush\t%d\r", eCLEntryKind_Flush);
doc.AppendPrintf("MemStats\t%d\r", eCLEntryKind_MemStats);
doc.AppendCString("\r\r");
// ===============================================
doc += "--------------------------------------------------\r";
doc += "Format and meaning of each kind\r";
doc += "--------------------------------------------------\r";
doc.AppendPrintf("[%d]\r", eCLEntryKind_Unknown);
doc += "Unknown entry kind\r";
doc.AppendPrintf("[%d] [tab] ellapsed second since log started [tab] taskID\r\r", eCLEntryKind_Unknown);
doc.AppendPrintf("[%d]\r", eCLEntryKind_Start);
doc += "The log starts. Quoted (start/end) entry, with misc. infos between the start and the end.\r";
doc.AppendPrintf("[%d]s [tab] current time [tab] taskID [tab] version [cr]\r", eCLEntryKind_Start);
doc.AppendPrintf("struct [tab] path to host database structure file [cr]\r");
doc.AppendPrintf("data [tab] path to host database data file [cr]\r");
doc.AppendPrintf("[%d]e\r\r", eCLEntryKind_Start);
doc.AppendPrintf("[%d]\r", eCLEntryKind_Stop);
doc += "The log ends\r";
doc.AppendPrintf("[%d] [tab] ellapsed second since log started [tab] taskID\r\r", eCLEntryKind_Stop);
doc.AppendPrintf("[%d]\r", eCLEntryKind_Comment);
doc += "A comment added by the developer. Comments are always quoted with start and end, a \\r is added at beginning and end.\r";
doc.AppendPrintf("[%d]start [tab] ellapsed second since log started [tab] taskID [cr] the comment [cr] [%d]end [tab] time [tab] taskID [tab] 0 (the milliseconds)\r\r", eCLEntryKind_Comment);
doc.AppendPrintf("[%d]\r", eCLEntryKind_NeedsBytes);
doc += "Any source asks memory to the cache manager\r";
doc.AppendPrintf("[%d] [tab] ellapsed second since log started [tab] taskID [tab] task name [tab] process 4D num [tab] needed bytes (very large int.)\r", eCLEntryKind_NeedsBytes);
doc.AppendPrintf("Note: may be followed by [%d]\r\r", eCLEntryKind_MemStats);
doc.AppendPrintf("[%d]\r", eCLEntryKind_CallNeedsBytes);
doc += "Memory manager asks memory to the cache manager: not enough space in the cache to allocate memory. The cache manager will try to free unused objects, to flush, etc...\r";
doc.AppendPrintf("[%d] [tab] ellapsed second since log started [tab] taskID [tab] task name [tab] process 4D num [tab] needed bytes (very large int.)\r", eCLEntryKind_CallNeedsBytes);
doc.AppendPrintf("Note: may be followed by [%d]\r\r", eCLEntryKind_MemStats);
doc.AppendPrintf("[%d], [%d], [%d], [%d], [%d], [%d], [%d]\r", eCLEntryKind_FlushFromLanguage,
eCLEntryKind_FlushFromMenuCommand,
eCLEntryKind_FlushFromScheduler,
eCLEntryKind_FlushFromBackup,
eCLEntryKind_FlushFromNeedsBytes,
eCLEntryKind_FlushFromRemote,
eCLEntryKind_FlushFromUnknown);
doc += "Action at the origin of a flush. All the 'FlushFrom...' share the same format.\r";
doc.AppendPrintf("[%d] [tab] ellapsed second since log started [tab] taskID [tab] task name [tab] process 4D num [tab] isWaitUntilDone (1 = yes, 0 = no, -1 = unknown) [tab] isEmptyCache (1 = yes, 0 = no, -1 = unknown)\r", eCLEntryKind_CallNeedsBytes);
doc.AppendPrintf("Note: may be followed by [%d]\r", eCLEntryKind_MemStats);
doc.AppendPrintf("Note: [%d] means a flush was requested from the remote, but we don't have the exact origin (does a client called FLUSH BUFFERS explicitely? ...)\r\r", eCLEntryKind_FlushFromRemote);
//.........这里部分代码省略.........
示例4: testMySQLConnectorPreparedStatementWithTypeDouble
void testMySQLConnectorPreparedStatementWithTypeDouble()
{
CSQLConnector* connector = (CSQLConnector*) ( VComponentManager::RetainComponent ( 'MYSQ', 'SQL ' ) );
VJSONObject* params = new VJSONObject();
params->SetProperty ( "hostname", MYSQL_HOST );
params->SetProperty ( "user", MYSQL_USER );
params->SetProperty ( "password", MYSQL_CORRECT_PASSWORD );
params->SetProperty ( "database", MYSQL_DATABASE );
params->SetProperty ( "port", MYSQL_PORT );
params->SetProperty ( "ssl", MYSQL_SSL_FALSE );
ISQLSession* session = connector->CreateSession ( params );
ReleaseRefCountable ( ¶ms );
if ( session != NULL )
{
ISQLStatement* statement = session->CreateStatement ( "SELECT * FROM test_double" );
VError error = VE_OK;
ISQLPreparedStatement* pStmt = statement->CreatePreparedStatement ( error );
ISQLResultSet* res = pStmt->Execute ( error );
if ( error == VE_OK )
{
if ( res->IsError() )
{
printf ( "an error occured in the execution of the prepared statement!\n" );
}
else
{
while ( !res->IsEOF() )
{
ISQLRow* row = res->RetainNextRow();
VValue* value = row->GetNthValue ( 2 );
VString dbgMsg;
dbgMsg.AppendPrintf ( "value = %V", value );
DebugMsg ( "%V\n", &dbgMsg );
ReleaseRefCountable ( &row );
}
}
ReleaseRefCountable ( &res );
}
else
{
printf ( "an error occured in the execution of the prepared statement!\n" );
}
ReleaseRefCountable ( &session );
}
else
{
printf ( "connection to mysql server failed ..\n" );
}
ReleaseRefCountable ( &connector );
}
示例5: testMySQLConnectorPreparedStatementWithDateParam
void testMySQLConnectorPreparedStatementWithDateParam()
{
CSQLConnector* connector = (CSQLConnector*) ( VComponentManager::RetainComponent ( 'MYSQ', 'SQL ' ) );
VJSONObject* params = new VJSONObject();
params->SetProperty ( "hostname", MYSQL_HOST );
params->SetProperty ( "user", MYSQL_USER );
params->SetProperty ( "password", MYSQL_CORRECT_PASSWORD );
params->SetProperty ( "database", MYSQL_DATABASE );
params->SetProperty ( "port", MYSQL_PORT );
params->SetProperty ( "ssl", MYSQL_SSL_FALSE );
ISQLSession* session = connector->CreateSession ( params );
ReleaseRefCountable ( ¶ms );
if ( session != NULL )
{
ISQLStatement* statement = session->CreateStatement ( "SELECT * FROM people WHERE date_of_birth = ?" );
VError error = VE_OK;
ISQLPreparedStatement* pStmt = statement->CreatePreparedStatement ( error );
VTime keyDate;
keyDate.FromUTCTime ( 1984, 8, 11, 0, 0, 0, 0 );
pStmt->SetNthParameter ( 1, keyDate );
ISQLResultSet* res = pStmt->Execute ( error );
if ( error == VE_OK )
{
if ( res->IsError() )
{
printf ( "an error occured in the execution of the prepared statement!\n" );
VString msg = res->GetErrorMessage();
printf ( "error msg = %V\n", &msg );
}
else
{
while ( !res->IsEOF() )
{
ISQLRow* row = res->RetainNextRow();
VValue* idValue = row->GetNthValue ( 1 );
VValue* firstNameValue = row->GetNthValue ( 3 );
VValue* dateValue = row->GetNthValue ( 5 );
VString DbgMsg;
DbgMsg.AppendPrintf ( "idValue = %V, firstNameValue = %V, dateValue = %V", idValue, firstNameValue, dateValue );
DebugMsg ( "%V", &DbgMsg );
ReleaseRefCountable ( &row );
}
}
ReleaseRefCountable ( &res );
}
else
{
printf ( "an error occured in the execution of the prepared statement!\n" );
}
ReleaseRefCountable ( &session );
}
else
{
printf ( "connection to mysql server failed ..\n" );
}
ReleaseRefCountable ( &connector );
}
示例6: testMySQLConnectorStatement
void testMySQLConnectorStatement()
{
CSQLConnector* connector = (CSQLConnector*) ( VComponentManager::RetainComponent ( 'MYSQ', 'SQL ' ) );
VJSONObject* params = new VJSONObject();
params->SetProperty ( "hostname", MYSQL_HOST );
params->SetProperty ( "user", MYSQL_USER );
params->SetProperty ( "password", MYSQL_CORRECT_PASSWORD );
params->SetProperty ( "database", MYSQL_DATABASE );
params->SetProperty ( "port", MYSQL_PORT );
params->SetProperty ( "ssl", MYSQL_SSL_FALSE );
ISQLSession* session = connector->CreateSession ( params );
ReleaseRefCountable ( ¶ms );
if ( session != NULL )
{
ISQLStatement* stmt = session->CreateStatement ( "SELECT * FROM people WHERE id < 5" );
VError error = VE_OK;
ISQLResultSet* res = stmt->Execute ( error );
if ( error == VE_OK )
{
if ( res->IsError() )
{
printf ( "an error occured in the execution of the prepared statement!\n" );
}
else
{
while ( !res->IsEOF() )
{
ISQLRow* row = res->RetainNextRow();
VValue* idValue = row->GetNthValue ( 1 );
VString id;
id.AppendPrintf ( "%V", idValue );
DebugMsg ( "id = %V\n", &id );
VValue* firstNameValue = row->GetNthValue ( 3 );
VString firstName;
firstName.AppendPrintf ( "%V", firstNameValue );
DebugMsg ( "first name = %V\n", &firstName );
VValue* dateValue = row->GetNthValue ( 5 );
VString date;
date.AppendPrintf ( "%V", dateValue );
DebugMsg ( "date = %V\n", &date );
ReleaseRefCountable ( &row );
}
}
ReleaseRefCountable ( &res );
}
else
{
printf ( "an error occured in the execution of the prepared statement!\n" );
}
ReleaseRefCountable ( &session );
}
else
{
printf ( "connection to mysql server failed ..\n" );
}
ReleaseRefCountable ( &connector );
}