Clase IAnalyzer
El SDK de C++ Build Insights es compatible con Visual Studio 2017 y versiones posteriores. Para ver la documentación de estas versiones, establezca el control de selector de Versión de Visual Studio para este artículo en Visual Studio 2017 o versiones posteriores. Se encuentra en la parte superior de la tabla de contenido de esta página.
La clase IAnalyzer
proporciona una interfaz para analizar un seguimiento de la característica Seguimiento de eventos para Windows (ETW). Se usa con las funciones MakeDynamicAnalyzerGroup, MakeDynamicReloggerGroup, MakeStaticAnalyzerGroup, y MakeStaticReloggerGroup. Use IAnalyzer
como una clase base para crear su propio analizador que puede formar parte de un grupo de analizadores o registradores.
Sintaxis
class IAnalyzer : public IRelogger
{
public:
virtual AnalysisControl OnStartActivity(const EventStack& eventStack);
virtual AnalysisControl OnStopActivity(const EventStack& eventStack)
virtual AnalysisControl OnSimpleEvent(const EventStack& eventStack);
virtual AnalysisControl OnBeginAnalysis();
virtual AnalysisControl OnEndAnalysis();
virtual AnalysisControl OnBeginAnalysisPass();
virtual AnalysisControl OnEndAnalysisPass();
AnalysisControl OnStartActivity(const EventStack& eventStack,
const void* relogSession) final;
AnalysisControl OnStopActivity(const EventStack& eventStack,
const void* relogSession) final;
AnalysisControl OnSimpleEvent(const EventStack& eventStack,
const void* relogSession) final;
AnalysisControl OnBeginRelogging() final;
AnalysisControl OnEndRelogging() final;
AnalysisControl OnBeginReloggingPass() final;
AnalysisControl OnEndReloggingPass() final;
virtual ~IAnalyzer();
};
Comentarios
Las clases que derivan de IAnalyzer
se pueden usar como analizadores y registradores. Cuando se usan como repetidores de registro, las funciones específicas del registrador se redirigen a su analizador equivalente. Lo contrario no es cierto: una clase que deriva de IRelogger
no se puede usar como analizador. El uso de un analizador en un grupo de registradores es un patrón común. Cuando se coloca en una posición anticipada de un grupo de registradores, un analizador puede calcular previamente la información y ponerla a disposición de los registradores en posiciones posteriores.
El valor devuelto predeterminado para todas las funciones que no se invalidan es AnalysisControl::CONTINUE
. Para más información, consulte AnalysisControl.
Miembros
Además del miembro OnTraceInfo de la interfaz IRelogger
, la clase IAnalyzer
contiene los siguientes miembros:
Destructor
Functions
OnBeginAnalysis
OnBeginAnalysisPass
OnBeginRelogging
OnBeginReloggingPass
OnEndAnalysis
OnEndAnalysisPass
OnEndRelogging
OnEndReloggingPass
OnSimpleEvent
OnStartActivity
OnStopActivity
~IAnalyzer
Destruye la clase IAnalyzer.
virtual ~IAnalyzer();
OnBeginAnalysis
En el caso de los analizadores que forman parte de un grupo de analizadores, esta función se llama antes de que comience la primera fase de análisis. En el caso de los analizadores que forman parte de un grupo de registradores, esta función se llama antes de que comience la primera fase de repetición de registro. En el caso de los analizadores que forman parte tanto del grupo de analizadores como del grupo de registradores de la misma sesión de repetición de registro, esta función se llama dos veces antes de comenzar la primera fase de análisis.
virtual AnalysisControl OnBeginAnalysis();
Valor devuelto
Un código AnalysisControl que describe lo que debería ocurrir a continuación.
OnBeginAnalysisPass
En el caso de los analizadores que forman parte de un grupo de analizadores, esta función se llama al principio de cada fase de análisis. En el caso de los analizadores que forman parte de un grupo de registradores, esta función se llama al principio de cada fase de registrador. En el caso de los analizadores que forman parte tanto del grupo de analizadores como del grupo de registradores de la misma sesión de repetición de registro, esta función se llama al principio de cada fase de análisis y al principio de la fase de registrador.
virtual AnalysisControl OnBeginAnalysisPass();
Valor devuelto
Un código AnalysisControl que describe lo que debería ocurrir a continuación.
OnBeginRelogging
AnalysisControl OnBeginRelogging() final;
Esta función no se puede invalidar. La llama el SDK de C++ Build Insights cuando un analizador forma parte de un grupo de registradores. Esta función redirige la llamada a OnBeginAnalysis.
Valor devuelto
El resultado de la llamada OnBeginAnalysis.
OnBeginReloggingPass
Esta función no se puede invalidar. La llama el SDK de C++ Build Insights cuando un analizador forma parte de un grupo de registradores. Esta función redirige la llamada a OnBeginAnalysisPass.
AnalysisControl OnBeginReloggingPass() final;
Valor devuelto
El resultado de la llamada OnBeginAnalysisPass.
OnEndAnalysis
En el caso de los analizadores que forman parte de un grupo de analizadores, esta función se llama después de que haya terminado la última fase de análisis. En el caso de los analizadores que forman parte de un grupo de registradores, esta función se llama después de que haya terminado la fase de repetición de registro. En el caso de los analizadores que forman parte tanto del grupo de analizadores como del grupo de registradores, esta función se llama dos veces:
- después de que hayan terminado todas las fases de análisis y antes de que comience la fase de registro, y
- después de que haya terminado la fase de registro.
virtual AnalysisControl OnEndAnalysis();
Valor devuelto
Un código AnalysisControl que describe lo que debería ocurrir a continuación.
OnEndAnalysisPass
En el caso de los analizadores que forman parte de un grupo de analizadores, esta función se llama al final de cada fase de análisis. En el caso de los analizadores que forman parte de un grupo de registradores, esta función se llama al final de cada fase de registrador. En el caso de los analizadores que forman parte tanto del grupo de analizadores como del grupo de registradores de la misma sesión de repetición de registro, esta función se llama al final de cada fase de análisis y al final de la fase de registrador.
virtual AnalysisControl OnEndAnalysisPass();
Valor devuelto
Un código AnalysisControl que describe lo que debería ocurrir a continuación.
OnEndRelogging
Esta función no se puede invalidar. La llama el SDK de C++ Build Insights cuando un analizador forma parte de un grupo de registradores. Esta función redirige la llamada a OnEndAnalysis.
AnalysisControl OnEndRelogging() final;
Valor devuelto
El resultado de la llamada OnEndAnalysis.
OnEndReloggingPass
Esta función no se puede invalidar. La llama el SDK de C++ Build Insights cuando un analizador forma parte de un grupo de registradores. Esta función redirige la llamada a OnEndAnalysisPass.
AnalysisControl OnEndReloggingPass() final;
Valor devuelto
El resultado de la llamada OnEndAnalysisPass.
OnSimpleEvent
Esta función se llama cuando se está procesando un evento simple. No se puede invalidar la segunda versión de esta función. La llama el SDK de C++ Build Insights cuando un analizador forma parte de un grupo de registradores. Todas las llamadas a la versión 2 se redirigen a la versión 1.
versión 1
virtual AnalysisControl OnSimpleEvent(const EventStack& eventStack);
versión 2
AnalysisControl OnSimpleEvent(const EventStack& eventStack,
const void* relogSession) final;
Parámetros
eventStack
La pila de eventos para este evento sencillo. Para más información sobre pilas de eventos, vea Eventos.
relogSession
Este parámetro no se utiliza.
Valor devuelto
Un código AnalysisControl que describe lo que debería ocurrir a continuación.
OnStartActivity
Esta función se llama cuando se está procesando un evento de inicio de actividad. No se puede invalidar la segunda versión de esta función. La llama el SDK de C++ Build Insights cuando un analizador forma parte de un grupo de registradores. Todas las llamadas a la versión 2 se redirigen a la versión 1.
versión 1
virtual AnalysisControl OnStartActivity(const EventStack& eventStack);
versión 2
AnalysisControl OnStartActivity(const EventStack& eventStack,
const void* relogSession) final;
Parámetros
eventStack
La pila de eventos para este evento de inicio de actividad. Para más información sobre pilas de eventos, vea Eventos.
relogSession
Este parámetro no se utiliza.
Valor devuelto
Un código AnalysisControl que describe lo que debería ocurrir a continuación.
OnStopActivity
Esta función se llama cuando se está procesando un evento de parada de actividad. No se puede invalidar la segunda versión de esta función. La llama el SDK de C++ Build Insights cuando un analizador forma parte de un grupo de registradores. Todas las llamadas a la versión 2 se redirigen a la versión 1.
versión 1
virtual AnalysisControl OnStopActivity(const EventStack& eventStack);
versión 2
AnalysisControl OnStopActivity(const EventStack& eventStack,
const void* relogSession) final;
Parámetros
eventStack
La pila de eventos para este evento de parada de actividad. Para más información sobre pilas de eventos, vea Eventos.
relogSession
Este parámetro no se utiliza.
Valor devuelto
Un código AnalysisControl que describe lo que debería ocurrir a continuación.
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de