The OpenNET Project
 
Поиск (ключи):    ПРОГРАММЫ СТАТЬИ СОВЕТЫ ФОРУМ
  WIKI НОВОСТИ (+) MAN'ы ДОКУМЕНТАЦИЯ

Каталог документации / Раздел "Программирование, языки" / Оглавление документа

Quarks

Quarks — Два способа связать строку и уникальный целочисленный идентификатор.

Краткое описание


#include <glib.h>


typedef     GQuark;
GQuark      g_quark_from_string             (const gchar *string);
GQuark      g_quark_from_static_string      (const gchar *string);
const gchar* g_quark_to_string              (GQuark quark);
GQuark      g_quark_try_string              (const gchar *string);
const gchar* g_intern_string                (const gchar *string);
const gchar* g_intern_static_string         (const gchar *string);

Описание

Кварк является связью между строками и целочисленными идентификаторами. Получая либо строку, либо GQuark идентификатор, можно найти либо то, либо другое.

Кварки используются и для Datasets и для Keyed Data Lists.

Для создания нового кварка из строки, используйте g_quark_from_string() или g_quark_from_static_string().

Для поиска строки соответствующей полученному GQuark, используйте g_quark_to_string().

Для поиска GQuark соответствующего полученной строке, используйте g_quark_try_string().

Другой способ использования для строкового пула поддерживающего функции кварка интернирования строки, использование g_intern_string() или g_intern_static_string(). Интернированная строка это канонически представленная строка. Одно важно преимущество интернированных строк в том, что они могут сравниваться на эквивалентность с помощью простого сравнения указателя, в отличие от использования strcmp().

Детали

GQuark

typedef guint32 GQuark;

GQuark это уникальный целочисленный идентификатор специфичной строки.


g_quark_from_string ()

GQuark      g_quark_from_string             (const gchar *string);

Определяет GQuark идентификатор указанной строки. Если строка не имеет текущего связанного с ней GQuark, создаётся новый GQuark, используя копию строки.

string : строка.
Возвращает : GQuark идентификатор строки.

g_quark_from_static_string ()

GQuark      g_quark_from_static_string      (const gchar *string);

Определяет GQuark идентификатор указанной (статичной) строки. Если строка не имеет связанного с ней GQuark, создаётся новый GQuark, связывая с указанной строкой.

Помните что эта функция идентична g_quark_from_string(), исключая то, что если новый GQuark создан, используется сама строка, а не её копия. Это сохраняет память, но может использоваться только если строка всегда существует. Она может использоваться со статически распределёнными строками в основной программе, но не со статически распределённой памятью в динамически загружаемых модулях, если вы планируете выгружать модуль снова (например не используйте эту функцию в движках GTK+ тем).

string : строка.
Возвращает : GQuark идентификатор строки.

g_quark_to_string ()

const gchar* g_quark_to_string              (GQuark quark);

Определяет строку связанную с полученным GQuark.

quark : GQuark.
Возвращает : строка связанная с GQuark.

g_quark_try_string ()

GQuark      g_quark_try_string              (const gchar *string);

Определяет GQuark связанный с полученной строкой, или 0 если строка не связана с GQuark.

Если вы хотите чтобы GQuark был создан, если он не существует, используйте g_quark_from_string(), или g_quark_from_static_string().

string : строка.
Возвращает : GQuark связанный со строкой, или 0, если нет GQuark связанного со строкой.

g_intern_string ()

const gchar* g_intern_string                (const gchar *string);

Возвращает каноническое представление string. Интернированные строки могут сравниваться на эквивалентность с помощью сравнения указателей, вместо использования strcmp().

string : строка
Возвращает : каноническое представление строки

Начиная с версии 2.10


g_intern_static_string ()

const gchar* g_intern_static_string         (const gchar *string);

Возвращает каноническое представление string. Интернированные строки могут сравниваться на эквивалентность с помощью сравнения указателей, вместо использования strcmp(). g_intern_static_string() не копирует строку, однако string не должна освобождаться или изменяться.

string : статичная строка
Возвращает : каноническое представление строки

Начиная с версии 2.10


ПОДПИШИСЬ НА ЖУРНАЛ Linux Format 2012!

Журнал "Linux Format" (Линукс Формат)- Единственный в России и странах СНГ журнал на русском языке, посвящённый Linux и свободному ПО. Журнал для IT-директоров, IT-менеджеров, программистов, системных администраторов, учителей школ и преподавателей ВУЗов и всех пользователей ПК. В каждом выпуске: Новости индустрии OpenSource, обзоры новинок свободного ПО, обучающие и методические статьи.

Каждый, кто оформит подписку, получает бонусы и подарки- объёмные наклейки на системный блок, диск с архивом номеров за 2005-2011 г.г. и ежемесячно электронную версию журнала в pdf-формате.

Оформить подписку на год


  Закладки на сайте
  Проследить за страницей
Created 1996-2012 by Maxim Chirkov  
ДобавитьРекламаВебмастеруГИД  
RUNNet TopList