Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Class execution_monitor

Boost , Boost.Test , Header <boost/test/execution_monitor.hpp>

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Class execution_monitor

boost::execution_monitor — Function execution monitor.

Synopsis

// In header: <boost/test/execution_monitor.hpp>

class execution_monitor {
public:
  // construct/copy/destruct
  execution_monitor();
  // public member functions
  int execute(boost::function< int()> const &);
  void vexecute(boost::function< void()> const &);
  template<typename ExceptionType, typename ExceptionTranslator> 
    void register_exception_translator(ExceptionTranslator const &, 
                                       const_string = const_string(), 
                                       boost::type< ExceptionType > * = 0);
  void erase_exception_translator(const_string);
  template<typename ExceptionType> 
    void erase_exception_translator(boost::type< ExceptionType > * = 0);
  // private member functions
  int catch_signals(boost::function< int()> const &);
  // public data members
  unit_test::readwrite_property< bool > p_catch_system_errors;  // Should monitor catch system errors. 
  unit_test::readwrite_property< bool > p_auto_start_dbg;  // Should monitor try to attach debugger in case of caught system error. 
  unit_test::readwrite_property< unsigned > p_timeout;  // Specifies the seconds that elapse before a timer_error occurs. 
  unit_test::readwrite_property< bool > p_use_alt_stack;  // Should monitor use alternative stack for the signal catching. 
  unit_test::readwrite_property< unsigned > p_detect_fp_exceptions;  // Should monitor try to detect hardware floating point exceptions (!= 0), and which specific exception to catch. 
};

Description

Этот класс используется для однородного обнаружения и сообщения о возникновении нескольких типов сигналов и исключений, сводя различные ошибки к однородному.Исполнение_исключениеВозвращается обратно.

Поведение executiom_monitor может быть настроено с помощью набора общедоступных параметров (свойств), связанных с экземпляромexecution_monitor. Все параметры реализованы как public unit_test::readwrite_property data members of the classexecution_monitor.

execution_monitor public construct/copy/destruct

  1. execution_monitor;
    Конструктор по умолчанию инициализирует все свойства монитора исполнения.

execution_monitor public member functions

См. также:

[

Параметры:

F

[[[[] [

[[] [[] [[]

[[] [[]] [] [[

Функция мониторинга

Возврат:

возвращаемое значение по вызову функции F().

  • voidvexecuteboost::Функция<void]]][
    Точка входа монитора исполнения для функций, возвращающих пустоту.

    Этот метод семантически идентичен execution_monitor::execute, но не дает никакого кода результата.

    См. также:

    выполнить

    Параметры:

    Функция мониторинга

  • шаблон<TypenameTypenamevoidregister_ Exception_translatorconst&tr,const_string=const_string::boost<*
    Регистрирует пользовательский (поставляемый пользователем) переводчик исключения.

    Данный шаблон метода регистрирует переводчика для типа исключения, указанного в качестве первого аргумента шаблона. Например,

    voidmyExceptTrMyException&ex]/*делать что-то, за исключением здесь.emрегистр_исключение_переводчик<MyException>myExceptTr

    Переводчиком должен быть любой унарный объект функции/функтора, который принимает MyException const&. Это может быть функция свободного стояния или метод связанного класса. Второй аргумент - это дополнительный тег строки, который вы можете связать с этой рутиной переводчика. Единственная причина указать тег, если вы планируете удалить переводчик в конечном итоге. Это может быть полезно при повторном использовании одного и того же экземпляраexecution_monitorдля мониторинга различных процедур и необходимости регистрации переводчика, специфичного для контролируемой процедуры. Хотя можно удалить переводчик на основе типа исключения, для которого он был зарегистрирован, строка тега обеспечивает более простой способ сделать это.

    объект функции переводчика с подписью

    [35
  • voiderase_ Exception_translatorconst_stringtag;
    Стирает пользовательский переводчик исключений на основе тега.

    Используйте тот же тег, что и при регистрации переводчика

  • Параметры:

    Параметры:

    тег, связанный с переводчиком, который вы хотите стереть

  • шаблон<имя типаИсключение Тип>пустотастирание_исключение_переводчикповышение::тип<>*=0;[526
    Стирает пользовательский переводчик исключений на основе типа исключения.

    исключение Тип исключения, для которого вы хотите удалить переводчик

  • execution_monitor private member functions

    1. intcatch_signalsboost::Функция<int>const&F;

    execution_monitor public public data members

    1. unit_test::readwrite_property<bool>p_catch_system_errors

      Свойствоp_catch_system_errors, определяющее, следует лиexecution_monitorулавливать системные ошибки/исключения/сигналы системного уровня, что привело бы к сбою программы в обычном случае (безexecution_monitor. Установите это свойство на ложное, например, если вы хотите принудительно создать файл. Unit Test Framework предоставляет параметр времени выполнения--catch_system_errors=yesдля изменения поведения в контролируемых тестовых случаях.

    2. unit_test::readwrite_property<bool>p_auto_start_dbg

      Свойствоp_auto_start_dbgс указанием того, следует лиexecution_monitorпытаться прикрепить отладчик в случае обнаружения ошибки системы.

    3. unit_test::readwrite_property<unsigned>p_timeout;

      Свойствоp_timeoutявляется целым тайм-аутом (в секундах) для выполнения контролируемой функции. Используйте этот параметр для мониторинга кода с возможными тупиками или неопределенными циклами. Эта функция доступна только для некоторых операционных систем (но не для Microsoft Windows).

    4. unit_test::readwrite_property<bool>p_use_alt_stack;

      Свойствоp_use_alt_stack, определяющее, должен лиexecution_monitorиспользовать альтернативный стек для ловли сигнала на основе сигакции. При включении сигналы доставляются вexecution_monitorна стеке, отличном от текущего стека исполнения, который является более безопасным в случае, если он поврежден контролируемой функцией. Более подробную информацию об альтернативной обработке стека см. в соответствующих руководствах.

    5. unit_test::readwrite_property<unsigned>p_detect_fp_ Exceptions

      Свойствоp_detect_fp_ Exceptionsопределяет, следует лиexecution_monitorустанавливать аппаратные ловушки для исключения плавающей точки на платформах, где оно поддерживается.


    PrevUpHomeNext

    Статья Class execution_monitor раздела Boost.Test Header <boost/test/execution_monitor.hpp> может быть полезна для разработчиков на c++ и boost.




    Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



    :: Главная :: Header <boost/test/execution_monitor.hpp> ::


    реклама


    ©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
    Top.Mail.Ru

    Время компиляции файла: 2024-08-30 11:47:00
    2025-05-19 18:52:44/0.0082151889801025/0