home *** CD-ROM | disk | FTP | other *** search
-
-
-
- XrmGetResource(3X11) XLIB FUNCTIONS XrmGetResource(3X11)
-
-
- NNAAMMEE
- XrmGetResource, XrmQGetResource, XrmQGetSearchList,
- XrmQGetSearchResource - retrieve database resources and
- search lists
-
- SSYYNNTTAAXX
- Bool XrmGetResource(_d_a_t_a_b_a_s_e, _s_t_r___n_a_m_e, _s_t_r___c_l_a_s_s,
- _s_t_r___t_y_p_e___r_e_t_u_r_n, _v_a_l_u_e___r_e_t_u_r_n)
- XrmDatabase _d_a_t_a_b_a_s_e;
- char *_s_t_r___n_a_m_e;
- char *_s_t_r___c_l_a_s_s;
- char **_s_t_r___t_y_p_e___r_e_t_u_r_n;
- XrmValue *_v_a_l_u_e___r_e_t_u_r_n;
-
- Bool XrmQGetResource(_d_a_t_a_b_a_s_e, _q_u_a_r_k___n_a_m_e, _q_u_a_r_k___c_l_a_s_s,
- _q_u_a_r_k___t_y_p_e___r_e_t_u_r_n, _v_a_l_u_e___r_e_t_u_r_n)
- XrmDatabase _d_a_t_a_b_a_s_e;
- XrmNameList _q_u_a_r_k___n_a_m_e;
- XrmClassList _q_u_a_r_k___c_l_a_s_s;
- XrmRepresentation *_q_u_a_r_k___t_y_p_e___r_e_t_u_r_n;
- XrmValue *_v_a_l_u_e___r_e_t_u_r_n;
-
- typedef XrmHashTable *XrmSearchList;
-
- Bool XrmQGetSearchList(_d_a_t_a_b_a_s_e, _n_a_m_e_s, _c_l_a_s_s_e_s,
- _l_i_s_t___r_e_t_u_r_n, _l_i_s_t___l_e_n_g_t_h)
- XrmDatabase _d_a_t_a_b_a_s_e;
- XrmNameList _n_a_m_e_s;
- XrmClassList _c_l_a_s_s_e_s;
- XrmSearchList _l_i_s_t___r_e_t_u_r_n;
- int _l_i_s_t___l_e_n_g_t_h;
-
- Bool XrmQGetSearchResource(_l_i_s_t, _n_a_m_e, _c_l_a_s_s, _t_y_p_e___r_e_t_u_r_n,
- _v_a_l_u_e___r_e_t_u_r_n)
- XrmSearchList _l_i_s_t;
- XrmName _n_a_m_e;
- XrmClass _c_l_a_s_s;
- XrmRepresentation *_t_y_p_e___r_e_t_u_r_n;
- XrmValue *_v_a_l_u_e___r_e_t_u_r_n;
-
- AARRGGUUMMEENNTTSS
- _c_l_a_s_s Specifies the resource class.
-
- _c_l_a_s_s_e_s Specifies a list of resource classes.
-
- _d_a_t_a_b_a_s_e Specifies the database that is to be used.
-
- _l_i_s_t Specifies the search list returned by
- _X_r_m_Q_G_e_t_S_e_a_r_c_h_L_i_s_t.
-
- _l_i_s_t___l_e_n_g_t_h
- Specifies the number of entries (not the byte
- size) allocated for list_return.
-
-
-
-
- X Version 11 Release 6.1 1
-
-
-
-
-
- XrmGetResource(3X11) XLIB FUNCTIONS XrmGetResource(3X11)
-
-
- _l_i_s_t___r_e_t_u_r_n
- Returns a search list for further use.
-
- _n_a_m_e Specifies the resource name.
-
- _n_a_m_e_s Specifies a list of resource names.
-
- _q_u_a_r_k___c_l_a_s_s
- Specifies the fully qualified class of the value
- being retrieved (as a quark).
-
- _q_u_a_r_k___n_a_m_e
- Specifies the fully qualified name of the value
- being retrieved (as a quark).
-
- _q_u_a_r_k___t_y_p_e___r_e_t_u_r_n
- Returns the representation type of the destina-
- tion (as a quark).
-
- _s_t_r___c_l_a_s_s Specifies the fully qualified class of the value
- being retrieved (as a string).
-
- _s_t_r___n_a_m_e Specifies the fully qualified name of the value
- being retrieved (as a string).
-
- _s_t_r___t_y_p_e___r_e_t_u_r_n
- Returns the representation type of the destina-
- tion (as a string).
-
- _t_y_p_e___r_e_t_u_r_n
- Returns data representation type.
-
- _v_a_l_u_e___r_e_t_u_r_n
- Returns the value in the database.
-
- DDEESSCCRRIIPPTTIIOONN
- The _X_r_m_G_e_t_R_e_s_o_u_r_c_e and _X_r_m_Q_G_e_t_R_e_s_o_u_r_c_e functions retrieve
- a resource from the specified database. Both take a fully
- qualified name/class pair, a destination resource repre-
- sentation, and the address of a value (size/address pair).
- The value and returned type point into database memory;
- therefore, you must not modify the data.
-
- The database only frees or overwrites entries on
- _X_r_m_P_u_t_R_e_s_o_u_r_c_e, _X_r_m_Q_P_u_t_R_e_s_o_u_r_c_e, or _X_r_m_M_e_r_g_e_D_a_t_a_b_a_s_e_s. A
- client that is not storing new values into the database or
- is not merging the database should be safe using the
- address passed back at any time until it exits. If a
- resource was found, both _X_r_m_G_e_t_R_e_s_o_u_r_c_e and _X_r_m_Q_G_e_t_R_e_-
- _s_o_u_r_c_e return _T_r_u_e; otherwise, they return _F_a_l_s_e.
-
- The _X_r_m_Q_G_e_t_S_e_a_r_c_h_L_i_s_t function takes a list of names and
- classes and returns a list of database levels where a
- match might occur. The returned list is in best-to-worst
-
-
-
- X Version 11 Release 6.1 2
-
-
-
-
-
- XrmGetResource(3X11) XLIB FUNCTIONS XrmGetResource(3X11)
-
-
- order and uses the same algorithm as _X_r_m_G_e_t_R_e_s_o_u_r_c_e for
- determining precedence. If list_return was large enough
- for the search list, _X_r_m_Q_G_e_t_S_e_a_r_c_h_L_i_s_t returns _T_r_u_e; oth-
- erwise, it returns _F_a_l_s_e.
-
- The size of the search list that the caller must allocate
- is dependent upon the number of levels and wildcards in
- the resource specifiers that are stored in the database.
- The worst case length is %3 sup n%, where _n is the number
- of name or class components in names or classes.
-
- When using _X_r_m_Q_G_e_t_S_e_a_r_c_h_L_i_s_t followed by multiple probes
- for resources with a common name and class prefix, only
- the common prefix should be specified in the name and
- class list to _X_r_m_Q_G_e_t_S_e_a_r_c_h_L_i_s_t.
-
- The _X_r_m_Q_G_e_t_S_e_a_r_c_h_R_e_s_o_u_r_c_e function searches the specified
- database levels for the resource that is fully identified
- by the specified name and class. The search stops with
- the first match. _X_r_m_Q_G_e_t_S_e_a_r_c_h_R_e_s_o_u_r_c_e returns _T_r_u_e if
- the resource was found; otherwise, it returns _F_a_l_s_e.
-
- A call to _X_r_m_Q_G_e_t_S_e_a_r_c_h_L_i_s_t with a name and class list
- containing all but the last component of a resource name
- followed by a call to _X_r_m_Q_G_e_t_S_e_a_r_c_h_R_e_s_o_u_r_c_e with the last
- component name and class returns the same database entry
- as _X_r_m_G_e_t_R_e_s_o_u_r_c_e and _X_r_m_Q_G_e_t_R_e_s_o_u_r_c_e with the fully qual-
- ified name and class.
-
- MMAATTCCHHIINNGG RRUULLEESS
- The algorithm for determining which resource database
- entry matches a given query is the heart of the resource
- manager. All queries must fully specify the name and
- class of the desired resource (use of the characters ``*''
- and ``?'' are not permitted). The library supports up to
- 100 components in a full name or class. Resources are
- stored in the database with only partially specified names
- and classes, using pattern matching constructs. An aster-
- isk (*) is a loose binding and is used to represent any
- number of intervening components, including none. A
- period (.) is a tight binding and is used to separate
- immediately adjacent components. A question mark (?) is
- used to match any single component name or class. A
- database entry cannot end in a loose binding; the final
- component (which cannot be the character ``?'') must be
- specified. The lookup algorithm searches the database for
- the entry that most closely matches (is most specific for)
- the full name and class being queried. When more than one
- database entry matches the full name and class, precedence
- rules are used to select just one.
-
- The full name and class are scanned from left to right
- (from highest level in the hierarchy to lowest), one com-
- ponent at a time. At each level, the corresponding
-
-
-
- X Version 11 Release 6.1 3
-
-
-
-
-
- XrmGetResource(3X11) XLIB FUNCTIONS XrmGetResource(3X11)
-
-
- component and/or binding of each matching entry is deter-
- mined, and these matching components and bindings are com-
- pared according to precedence rules. Each of the rules is
- applied at each level before moving to the next level,
- until a rule selects a single entry over all others. The
- rules, in order of precedence, are:
-
- 1. An entry that contains a matching component (whether
- name, class, or the character ``?'') takes prece-
- dence over entries that elide the level (that is,
- entries that match the level in a loose binding).
-
- 2. An entry with a matching name takes precedence over
- both entries with a matching class and entries that
- match using the character ``?''. An entry with a
- matching class takes precedence over entries that
- match using the character ``?''.
-
- 3. An entry preceded by a tight binding takes precedence
- over entries preceded by a loose binding.
-
- SSEEEE AALLSSOO
- XrmInitialize(3X11), XrmMergeDatabases(3X11), XrmPutRe-
- source(3X11), XrmUniqueQuark(3X11)
- _X_l_i_b _- _C _L_a_n_g_u_a_g_e _X _I_n_t_e_r_f_a_c_e
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- X Version 11 Release 6.1 4
-
-
-