Sets the global trace mask.
DWORD ctaSetGlobalTraceMask ( CTAHD ctahd, unsigned tracemask)
|
Argument |
Description |
|
ctahd |
Context handle for the server on which the global trace mask is changed. ctahd can be a void context handle. |
|
tracemask |
The new global trace mask. |
|
Return value |
Description |
|
SUCCESS |
|
|
CTAERR_INVALID_CTAHD |
An invalid context handle was passed as an argument to a function, or the context was destroyed by another thread. |
|
CTAERR_NOT_IMPLEMENTED |
Function is not available in the execution mode associated with the specified context. |
|
CTAERR_NOT_INITIALIZED |
Natural Access is not initialized. Call ctaInitialize first. |
|
CTAERR_SVR_COMM |
Server communication error. |
ctaSetGlobalTraceMask sets the global trace mask for the Natural Access Server (ctdaemon) specified by ctahd. CTA_TRACEMASK macros accepted by ctaSetTraceLevel can be used for the tracemask argument.
int DemoRemoteTrace(CTAQUEUEHD ctaqueuehd, CTAHD ctahd)
{
DWORD ret;
/* Start tracing */
ret = ctaStartTrace(ctahd);
if ( ret != SUCCESS )
return ret;
/* Set tracemask on server */
ret = ctaSetGlobalTraceMask(ctahd,CTA_TRACEMASK_ALL_COMMANDS);
if ( ret != SUCCESS )
return ret;
for (;!kbhit();)
{
// Retrieve an event from the event queue.
CTA_EVENT cta_event;
ret = ctaWaitEvent( ctaqueuehd, &cta_event, 1000 );
// Check if buffer is owned by Natual Access and must be freed by
// us below.
bool const bCtaOwnsBuf = (cta_event.buffer != NULL &&
(cta_event.size & CTA_INTERNAL_BUFFER));
if (bCtaOwnsBuf)
{
cta_event.size &= ~CTA_INTERNAL_BUFFER;
// clear flag from size
}
if (cta_event.id == CTAEVN_TRACE_MESSAGE)
// if it's a trace event
{
if (!cta_event.buffer)
{
continue;
}
const char * const pszText = (char*)cta_event.buffer;
printf( "%s", pszText );
}
if (bCtaOwnsBuf)
{
ctaFreeBuffer( cta_event.buffer );
// our reponsibility to free
}
}
/* Stop tracing */
ret = ctaStopTrace( ctahd );
if ( ret != SUCCESS )
return ret;
return SUCCESS;
}