2013-11-14 01:20:51 +01:00
|
|
|
|
<?xml version="1.0" encoding="utf-8"?>
|
2006-03-15 20:54:49 +01:00
|
|
|
|
<!-- Original Revision: 1.4
|
|
|
|
|
$FreeBSD$ -->
|
|
|
|
|
|
|
|
|
|
<!ENTITY mac.mpo "mpo">
|
|
|
|
|
<!ENTITY mac.thead '
|
2013-06-07 21:44:22 +02:00
|
|
|
|
<colspec xmlns="http://docbook.org/ns/docbook" colname="first" colwidth="0"/>
|
|
|
|
|
<colspec xmlns="http://docbook.org/ns/docbook" colwidth="0"/>
|
|
|
|
|
<colspec xmlns="http://docbook.org/ns/docbook" colname="last" colwidth="0"/>
|
2006-03-15 20:54:49 +01:00
|
|
|
|
|
2013-06-07 21:44:22 +02:00
|
|
|
|
<thead xmlns="http://docbook.org/ns/docbook">
|
2006-03-15 20:54:49 +01:00
|
|
|
|
<row>
|
2013-11-14 01:20:51 +01:00
|
|
|
|
<entry>参数</entry>
|
|
|
|
|
<entry>说明</entry>
|
|
|
|
|
<entry>锁定</entry>
|
2006-03-15 20:54:49 +01:00
|
|
|
|
</row>
|
|
|
|
|
</thead>
|
|
|
|
|
'>
|
|
|
|
|
|
|
|
|
|
<!ENTITY mac.externalize.paramdefs '
|
2013-06-07 21:44:22 +02:00
|
|
|
|
<paramdef xmlns="http://docbook.org/ns/docbook">struct label *<parameter>label</parameter></paramdef>
|
|
|
|
|
<paramdef xmlns="http://docbook.org/ns/docbook">char *<parameter>element_name</parameter></paramdef>
|
|
|
|
|
<paramdef xmlns="http://docbook.org/ns/docbook">struct sbuf *<parameter>sb</parameter></paramdef>
|
|
|
|
|
<paramdef xmlns="http://docbook.org/ns/docbook">int <parameter>*claimed</parameter></paramdef>
|
2006-03-15 20:54:49 +01:00
|
|
|
|
'>
|
|
|
|
|
|
|
|
|
|
<!ENTITY mac.externalize.tbody '
|
2013-06-07 21:44:22 +02:00
|
|
|
|
<tbody xmlns="http://docbook.org/ns/docbook">
|
2006-03-15 20:54:49 +01:00
|
|
|
|
<row>
|
|
|
|
|
<entry><parameter>label</parameter></entry>
|
2013-11-14 01:20:51 +01:00
|
|
|
|
<entry>将用外部形式表示的标记</entry>
|
2006-03-15 20:54:49 +01:00
|
|
|
|
</row>
|
2012-08-21 21:16:02 +02:00
|
|
|
|
|
2006-03-15 20:54:49 +01:00
|
|
|
|
<row>
|
|
|
|
|
<entry><parameter>element_name</parameter></entry>
|
2013-11-14 01:20:51 +01:00
|
|
|
|
<entry>需要外部表示标记的策略的名字</entry>
|
2006-03-15 20:54:49 +01:00
|
|
|
|
</row>
|
2012-08-21 21:16:02 +02:00
|
|
|
|
|
2006-03-15 20:54:49 +01:00
|
|
|
|
<row>
|
|
|
|
|
<entry><parameter>sb</parameter></entry>
|
2013-11-14 01:20:51 +01:00
|
|
|
|
<entry>用来存放标记的文本表示形式的字符buffer</entry>
|
2006-03-15 20:54:49 +01:00
|
|
|
|
</row>
|
2012-08-21 21:16:02 +02:00
|
|
|
|
|
2006-03-15 20:54:49 +01:00
|
|
|
|
<row>
|
|
|
|
|
<entry><parameter>claimed</parameter></entry>
|
2013-11-14 01:20:51 +01:00
|
|
|
|
<entry>如果可以填充element_data 域,则其数值递增</entry>
|
2006-03-15 20:54:49 +01:00
|
|
|
|
</row>
|
|
|
|
|
</tbody>
|
|
|
|
|
'>
|
|
|
|
|
|
2013-06-07 21:44:22 +02:00
|
|
|
|
<!ENTITY mac.externalize.para '
|
2013-11-14 01:20:51 +01:00
|
|
|
|
<para xmlns="http://docbook.org/ns/docbook">根据传入的标记结构,产生一个以外部形式表示的标记。
|
|
|
|
|
一个外部形式标记,是标记内容的文本表示,它由用户级的应用程序使用,是用户可读的。
|
|
|
|
|
目前的MAC实现方案将依次调用策略的相应入口函数,因此,
|
|
|
|
|
具体策略的实现代码,需要在填写sb之前,先检查element_name中指定的名字。
|
|
|
|
|
如果element_name中的内容与你的策略名字不相符,则直接返回0。
|
|
|
|
|
仅当转换标记数据的过程中出现错误时,才返回非0值。
|
|
|
|
|
一旦策略决定填写element_data,递增*claim的数值。</para>
|
2013-06-07 21:44:22 +02:00
|
|
|
|
'>
|
2006-03-15 20:54:49 +01:00
|
|
|
|
|
|
|
|
|
<!ENTITY mac.internalize.paramdefs '
|
2013-06-07 21:44:22 +02:00
|
|
|
|
<paramdef xmlns="http://docbook.org/ns/docbook">struct label *<parameter>label</parameter></paramdef>
|
|
|
|
|
<paramdef xmlns="http://docbook.org/ns/docbook">char *<parameter>element_name</parameter></paramdef>
|
|
|
|
|
<paramdef xmlns="http://docbook.org/ns/docbook">char *<parameter>element_data</parameter></paramdef>
|
|
|
|
|
<paramdef xmlns="http://docbook.org/ns/docbook">int *<parameter>claimed</parameter></paramdef>
|
2006-03-15 20:54:49 +01:00
|
|
|
|
'>
|
|
|
|
|
|
|
|
|
|
<!ENTITY mac.internalize.tbody '
|
2013-06-07 21:44:22 +02:00
|
|
|
|
<tbody xmlns="http://docbook.org/ns/docbook">
|
2006-03-15 20:54:49 +01:00
|
|
|
|
<row>
|
|
|
|
|
<entry><parameter>label</parameter></entry>
|
2013-11-14 01:20:51 +01:00
|
|
|
|
<entry>将被填充的标记</entry>
|
2006-03-15 20:54:49 +01:00
|
|
|
|
</row>
|
2012-08-21 21:16:02 +02:00
|
|
|
|
|
2006-03-15 20:54:49 +01:00
|
|
|
|
<row>
|
|
|
|
|
<entry><parameter>element_name</parameter></entry>
|
2013-11-14 01:20:51 +01:00
|
|
|
|
<entry>需要内部表示标记的策略的名字</entry>
|
2006-03-15 20:54:49 +01:00
|
|
|
|
</row>
|
2012-08-21 21:16:02 +02:00
|
|
|
|
|
2006-03-15 20:54:49 +01:00
|
|
|
|
<row>
|
|
|
|
|
<entry><parameter>element_data</parameter></entry>
|
2013-11-14 01:20:51 +01:00
|
|
|
|
<entry>需要被转换的文本数据</entry>
|
2006-03-15 20:54:49 +01:00
|
|
|
|
</row>
|
2012-08-21 21:16:02 +02:00
|
|
|
|
|
2006-03-15 20:54:49 +01:00
|
|
|
|
<row>
|
|
|
|
|
<entry><parameter>claimed</parameter></entry>
|
2013-11-14 01:20:51 +01:00
|
|
|
|
<entry>如果数据被正确转换,则其数值递增</entry>
|
2006-03-15 20:54:49 +01:00
|
|
|
|
</row>
|
|
|
|
|
</tbody>
|
|
|
|
|
'>
|
|
|
|
|
|
2013-06-07 21:44:22 +02:00
|
|
|
|
<!ENTITY mac.internalize.para '
|
2013-11-14 01:20:51 +01:00
|
|
|
|
<para xmlns="http://docbook.org/ns/docbook">根据一个文本形式的外部表示标记数据,创建一个内部形式的标记结构。
|
|
|
|
|
目前的MAC方案将依次调用所有策略的相关入口函数,来响应标记的内部转换请求,
|
|
|
|
|
因此,实现代码必须首先通过比较element_name中的内容和自己的策略名字,
|
|
|
|
|
来确定是否需要转换element_data中存放的数据。
|
|
|
|
|
类似的,如果名字不匹配或者数据转换操作成功,该函数返回0,并递增*claimed的值。</para>
|
2013-06-07 21:44:22 +02:00
|
|
|
|
'>
|