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

Class object_name

Boost , Chapter 1. Boost.Log v2 , Utilities

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 object_name

boost::log::ipc::object_name — A system object name class.

Synopsis

// In header: <boost/log/utility/ipc/object_name.hpp>

class object_name {
public:
  // Name scopes. 
  enum scope { global, user, session, process_group };
  // construct/copy/destruct
  object_name() noexcept;
  object_name(object_name &&) noexcept;
  object_name(object_name const &);
  object_name(scope, const char *);
  object_name(scope, std::string const &);
  object_name & operator=(object_name &&) noexcept;
  object_name & operator=(object_name const &);
  // public member functions
  bool empty() const noexcept;
  std::size_t size() const noexcept;
  const char * c_str() const noexcept;
  void swap(object_name &) noexcept;
  // public static functions
  static object_name from_native(const char *);
  static object_name from_native(std::string const &);
  // friend functions
  friend void swap(object_name &, object_name &) noexcept;
  friend std::string to_string(object_name const &);
  friend bool operator==(object_name const &, object_name const &) noexcept;
  friend bool operator!=(object_name const &, object_name const &) noexcept;
  friend bool operator<(object_name const &, object_name const &) noexcept;
  friend bool operator>(object_name const &, object_name const &) noexcept;
  friend bool operator<=(object_name const &, object_name const &) noexcept;
  friend bool operator>=(object_name const &, object_name const &) noexcept;
  template<typename CharT, typename TraitsT> 
    friend std::basic_ostream< CharT, TraitsT > & 
    operator<<(std::basic_ostream< CharT, TraitsT > &, object_name const &);
};

Description

Чтобы идентифицировать общесистемный объект, такой как сегмент общей памяти или именованный примитивный синхронизатор, объекту должно быть дано имя. Формат имени специфичен для операционной системы, а класс object_name предоставляет абстракцию для имен объектов. Он также предоставляет средства для поиска, что позволяет избежать столкновений имен между различными процессами.

Имя объекта - кодированная строка UTF-8. Название переносного объекта должно состоять из следующих символов:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
a b c d e f g h i j k l m n o p q r s t u v w x y z
0 1 2 3 4 5 6 7 8 9 . _ -
[Note] Note

Набор символов соответствует набору символов POSIX Portable Filename (http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_278).

Использование других символов может привести к непортативному системному поведению.

Название может иметь одну из следующих областей:

  • глобальный - объекты в пределах этой области видны любому процессу в системе. Для того, чтобы использовать эту область, процесс может иметь расширенные привилегии. Эта область недоступна для приложений Windows Store.

  • пользователь - объекты в этой области могут быть открыты процессами, выполняемыми под тем же пользователем, что и текущий процесс.

  • сессия - объекты в этой области видны процессам в рамках сессии текущего процесса. Определение сеанса может варьироваться между операционными системами. На POSIX сеанс обычно представляет собой группу процессов, присоединенных к одному виртуальному оконечному устройству. В Windows сеанс начинается, когда пользователь входит в систему. Существует также отдельный сеанс для служб Windows.

  • process_group - объекты в пределах этой области видны процессам внутри группы процессов текущего процесса. В настоящее время в Windows все процессы, выполняемые в текущей сессии, считаются членами одной и той же группы процессов. В будущем ситуация может измениться.

Сферы не пересекаются. Например, если объект создан в глобальном масштабе, объект не может быть открыт с тем же именем, но в объеме пользователя.

Обратите внимание, что определение имени не является функцией безопасности. На некоторых системах любой процесс в системе имеет техническую возможность открывать объекты в любом объеме. Область применения используется только для предотвращения столкновений имен между процессами с использованием object_name для идентификации объектов.

object_name public construct/copy/destruct

  1. object_name() за исключением;

    Конструктор по умолчанию. Способ создает пустое имя объекта.

    Постусловия:

    пустое() == истинное

  2. object_name(object_name &&, что, , за исключением ;

    Двигайтесь конструктором.

  3. object_name(object_name const & that);

    Конструктор копий.

  4. Объект_имя,char str;;

  • Объект_имя,std::stringconststringconststrstrstr
  • object_name &оператор=(object_name &&, что,, за исключением ;

    Переместить назначение

  • object_name & оператор=(object_name const &, что;

    Копирование назначения

  • object_name public member functions

    1. bool empty() const no except;

      Возвращает true, если имя объекта пусто

    2. std::size_tsize() constза исключением ;

      Возвращает длину имени, в байтах

    3. const charc_str() constза исключением;

      Вернет строку имени

    4. void swap(object_name & that)no except;

      Swaps the object name with another object name

    object_name public static functions

    1. static object_name  from_nativeconst char str;2>;

      Конструктор от Родная строка.

      Параметры:

      str

      Строка имени объекта не должна быть NULL. Формат строки специфичен для операционной системы.

    2. static object_name from_native(std::string const & str;;

      Конструктор от Родная строка.

      Параметры:

      str

      Строка имени объекта. Формат строки специфичен для операционной системы.

      <68

    object_name friend functions

    1. friend voidwap(object_name& left, object_name & right>no except;

      Swaps two object names

    2. friend std::stringto_string(object_name const & name;

      Возвращает строковое представление имени объекта

    3. friend boolоператор(object_nameconst , object_name const &право;2>не исключение;

      Оператор равенства

    4. friend boolоператор!=object_nameconst & левый,  object_name const &правый;2>нет, кроме ;

      Оператор неравенства

    5. friend boolоператор(object_nameconst , object_nameconst &право;2>не исключение;

      Меньший оператор

    6. friend boolоператор(object_nameconst & object_nameconst &правый;2>нет, кроме ;

      Большой оператор

    7. friend boolоператор(object_name const , object_name const &правый;2>не исключая;

      Меньший или равный оператор

    8. friend boolоператор(object_nameconst ,  object_name const &, за исключением ;

    9. template CharT,TraitsT>basic_ostream,TraitsT> > операторbasic_ostream, > stm, object_nameconst

      Streamouput operator


    Статья Class object_name раздела Chapter 1. Boost.Log v2 Utilities может быть полезна для разработчиков на c++ и boost.




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



    :: Главная :: Utilities ::


    реклама


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

    Время компиляции файла: 2024-08-30 11:47:00
    2025-07-04 18:15:35/0.0077688694000244/0