mib2c.genhtml.conf
上传用户:wxp200602
上传日期:2007-10-30
资源大小:4028k
文件大小:7k
源码类别:

SNMP编程

开发平台:

Unix_Linux

  1. ##
  2. ## try to strip leading white space from text
  3. ##
  4. @define DO_FORMATED_TEXT@
  5. @startperl@
  6.   my ($s) = ($vars{'x'} =~ /n(s+)/);
  7.   $vars{'x'} =~ s/^$s//gm;
  8.   0;
  9. @endperl@
  10. <pre>
  11. $x
  12. </pre>
  13. @enddefine@
  14. ##
  15. ## print a description clause (include TC info and references 
  16. ##
  17. @define DO_DESCR@
  18. <td>
  19. @if "$i.perltype" ne "$i.syntax"@
  20. <p>
  21. @eval $tmpsyn = "$i.syntax"@
  22. @perleval if (!defined($TCS{$vars{'tmpsyn'}})) { $TCS{$vars{'tmpsyn'}} = $vars{'i'}; }; 0;@
  23. Note: this object is based on the <a href="#$i.syntax"> $i.syntax TEXTUAL-CONVENTION</a>.
  24. </p>
  25. @end@
  26. @eval $x = "$i.description"@
  27. @calldefine DO_FORMATED_TEXT@
  28. ##@startperl@
  29. ##  my ($s) = ($vars{'x'} =~ /n(s+)/);
  30. ##  $vars{'x'} =~ s/^$s//gm;
  31. ##  0;
  32. ##@endperl@
  33. ##<pre>
  34. ##$x
  35. ##</pre>
  36. @if "$i.reference" ne ""@
  37. @eval $x = "$i.reference"@
  38. <p><i>Also see Reference:
  39. @calldefine DO_FORMATED_TEXT@
  40. </i></p>
  41. @end@
  42. </td>
  43. @enddefine@
  44. ##
  45. ## print information (a row) about a given node
  46. ##
  47. @define NODE_INFO@
  48.   <td>
  49. <a name="$i" />
  50. @eval $tmpi = "$i.parent"@
  51. @if "$doindexstuff" ne "" && "$tmpi.parent" ne "$t"@
  52. (external from $tmpi.parent)
  53. @else@
  54. $i.subid
  55. @end@
  56. <br /><b>$i</b>
  57. </td><td>
  58.   $i.perltype
  59.   @if "$i.perltype" ne "$i.syntax"@
  60.  <br>
  61.  @eval $tmpsyn = "$i.syntax"@
  62.  @perleval if (!defined($TCS{$vars{'tmpsyn'}})) { $TCS{$vars{'tmpsyn'}} = $vars{'i'}; }; 0;@
  63.  <a href="#$i.syntax">$i.syntax</a>
  64.     @if $i.enums@
  65.      <br>(ENUM list below)
  66.     @end@
  67.   @else@
  68.     @if $i.enums@
  69.       <table border=2 bgcolor="#cccccc">
  70.       <tr><th>Value</th><th>Label/Meaning</th></tr>
  71.       @foreach $e $v enum@
  72.         <tr><td>$v</td><td>$e</td></tr>
  73.       @end@
  74.       </table>
  75.     @end@
  76.   @end@
  77.   </td><td>$i.access</td>
  78.   @if !"$dont_do_oids"@
  79.     <td>$i.objectID</td>
  80.   @end@
  81.   @calldefine DO_DESCR@
  82. @enddefine@
  83. @open ${name}.html@
  84. <head>
  85.   <title>MIB information for $name</title>
  86. <style type="text/css">
  87. <!--
  88. h2{background:#bbeebb}
  89. h3{background:#ccccee}
  90. -->
  91. </style>
  92. </head>
  93. <body bgcolor="#ffffff">
  94. <h2>INTRODUCTION</h2>
  95. <ul>
  96. <p>
  97. This is a summary of information regarding objects below the <b>$name</b>
  98. MIB object, which is defined within the <b>$name.module</b> MIB
  99. document as <b>$name.objectID</b>.
  100. </p>
  101. </ul>
  102. ##
  103. ## Table of contents
  104. ##
  105. <h2>TABLE OF CONTENTS</h2>
  106. <ul>
  107. @foreach $Current stuff Current Deprecated@
  108. <h3><a href="#objects_$Current">$Current Objects</a></h3>
  109. <ul>
  110. @if "$Current" eq "Current"@
  111. <li><a href="#scalar_current">Scalars</a></li>
  112. @else@
  113. <li><a href="#scalar_notcurrent">Deprecated Scalars</a></li>
  114. @end@
  115. @foreach $t table@
  116. @if ("$Current" eq "Current" && "$t.status" eq "Current") || ("$Current" ne "Current" && "$t.status" ne "Current")@
  117.   <li><a href="#$t">$t</a></li>
  118. @end@
  119. @end@
  120. </ul>
  121. @end@
  122. <h3><a href="#notifications">Notifications</a></h3>
  123. <h3><a href="#textconventions">Textual Conventions</a></h3>
  124. <h3><a href="#treeview">Tree-based view</a></h3>
  125. </ul>
  126. ##
  127. ## Start of definitions
  128. ##
  129. @foreach $Current stuff Current Deprecated@
  130. <a name="objects_$Current" />
  131. @if "$Current" ne "Current"@
  132.   @eval $namestring = "notcurrent"@
  133.   <hr />
  134.   <h1><font color="red">DEPRECATED OR OBSOLETE OR HISTORIC OBJECTS</font></h1>
  135.   <br>
  136.   <table bgcolor="#ffdddd" border=1><tr><td>
  137. @else@
  138.   @eval $namestring = "current"@
  139. @end@
  140. <a name="scalar_$namestring" />
  141. <h2>SCALAR OBJECTS</h2>
  142. <ul>
  143. <table border=2 bgcolor="#dddddd">
  144. <tr bgcolor="#bbbbbb"><th>Name</th><th>Type</th><th>Access</th><th>OID</th><th>Description</th></tr>
  145. @foreach $i scalar@
  146.   @if ("$Current" eq "Current" && "$i.status" eq "Current") || ("$Current" ne "Current" && "$i.status" ne "Current")@
  147.   <tr>
  148.   @calldefine NODE_INFO@
  149.   </tr>
  150.   @end@
  151. @end@
  152. </table>
  153. </ul>
  154. <h2>TABLE OBJECTS</h2>
  155. @eval $dont_do_oids = 1@
  156. @foreach $t table@
  157. @if ("$Current" eq "Current" && "$t.status" eq "Current") || ("$Current" ne "Current" && "$t.status" ne "Current")@
  158. <a name="$t" /><h3>Table $t</h3>
  159. <ul>
  160.   <table border=2 bgcolor="#dddddd">
  161.   <tr><td bgcolor="#bbbbbb">Table Name</td><td>$t</td></tr>
  162.   <tr><td bgcolor="#bbbbbb">In MIB</td><td>$t.module</td></tr>
  163.   <tr><td bgcolor="#bbbbbb">Registered at OID</td><td>$t.objectID</td></tr>
  164.   <tr><td bgcolor="#bbbbbb">Table Description</td>
  165. @eval $i ="$t"@
  166. @calldefine DO_DESCR@
  167. </tr>
  168.     @eval $tmpx = $t@
  169.     @perleval $vars{'tmpx'} =~ s/Table/Entry/; 0;@
  170. @eval $i = "$tmpx"@
  171. <tr><td bgcolor="#bbbbbb"><a name="$tmpx" />Row Description</td>
  172. @calldefine DO_DESCR@
  173. </tr>
  174.   </table>
  175.   <h4>$t Indexes:</h4>
  176. <table border=2 bgcolor="#dddddd">
  177. <tr bgcolor="#bbbbbb"><th>Name</th><th>Type</th><th>Access</th><th>Description</th></tr>
  178. @foreach $i index@
  179.   <tr>
  180.   @calldefine NODE_INFO@
  181.   </tr>
  182. @end@
  183. </table>
  184.   <h4>Other $t Columns:</h4>
  185. <table border=2 bgcolor="#dddddd">
  186. <tr bgcolor="#bbbbbb"><th>Name</th><th>Type</th><th>Access</th><th>Description</th></tr>
  187. @foreach $i nonindex@
  188.   <tr>
  189.   @calldefine NODE_INFO@
  190.   </tr>
  191. @end@
  192. </table>
  193. </ul>
  194. @end@
  195. @end@
  196. @end@
  197. <br>
  198.   </table>
  199. <hr />
  200. <a name="notifications" />
  201. <h2>NOTIFICATIONS</h2>
  202. <ul>
  203. <p>
  204. @foreach $i notifications@
  205. <a name="$i" /><h3>Notification: $i</h3>
  206.   <table border=2 bgcolor="#dddddd">
  207.   <tr><td bgcolor="#bbbbbb">Notification Name</td><td>$i</td></tr>
  208.   <tr><td bgcolor="#bbbbbb">In MIB</td><td>$i.module</td></tr>
  209.   <tr><td bgcolor="#bbbbbb">Registered at OID</td><td>$i.objectID</td></tr>
  210.   <tr><td bgcolor="#bbbbbb">Notification Description</td>
  211. @calldefine DO_DESCR@
  212.   </tr>
  213.   <tr> <td bgcolor="#bbbbbb">Mandatory<br />Objects</td><td>
  214.   <table border=2>
  215.     @foreach $v varbinds@
  216.       <tr><td><a href="#$v">$v</a></td></tr>
  217.     @end@
  218.   </table></td></tr>
  219.   </table>
  220. @end@
  221. </ul>
  222. <br>
  223. <hr />
  224. <a name="textconventions" />
  225. <h2>TEXTUAL CONVENTIONS</h2>
  226. <ul>
  227. <p>
  228. These TEXTUAL-CONVENTIONS are used in other parts of the document
  229. above.  They are SNMP's way of defining a datatype that is used
  230. repeatedly by other MIB objects.  Any implementation implementing
  231. objects that use one of these definitions must follow its DESCRIPTION
  232. clause as well as the DESCRIPTION clause of the object itself.
  233. </p>
  234. @startperl@
  235. mib2c_output("<table border=2 bgcolor="#dddddd">");
  236. mib2c_output("<tr bgcolor="bbbbbb"><th>Name</th><th>Type</th><th>Description</th></tr>n");
  237. map {
  238.     my $desc = $SNMP::MIB{$TCS{$_}}{'TCDescription'};
  239.       my ($s) = ($desc =~ /n(s+)/);
  240.       $desc =~ s/^$s//gm;
  241.     mib2c_output("<tr><td><a name="$_">$_</td><td>");
  242.     mib2c_output($SNMP::MIB{$TCS{$_}}{'type'});
  243.     my @enumkeys = keys(%{$SNMP::MIB{$TCS{$_}}{'enums'}});
  244.     if ($#enumkeys > -1) {
  245.        mib2c_output("<table border=2 bgcolor="#cccccc">");
  246.        mib2c_output("<tr><th>Value</th><th>Label/Meaning</th></tr>");
  247.        foreach $k (sort { $SNMP::MIB{$TCS{$_}}{'enums'}{$a} <=>
  248.   $SNMP::MIB{$TCS{$_}}{'enums'}{$b} } @enumkeys) {
  249.             mib2c_output("<tr><td>$SNMP::MIB{$TCS{$_}}{'enums'}{$k}</td><td>$k</td></tr>");
  250.        }
  251.        mib2c_output("</table>");
  252.     }
  253.     mib2c_output("</td><td><pre>$desc</pre></td></tr>n");
  254. } keys(%TCS); 
  255. mib2c_output("</table>");
  256. 0;
  257. @endperl@
  258. </ul>
  259. <a name="treeview" />
  260. <h2>TREE VIEW</h2>
  261. @eval $mod = "$name.module"@
  262. <p>Tree view generated by running: <b>snmptranslate -Tp $mod::$name</b></p>
  263. <pre>
  264. @startperl@
  265. open(TREE,"snmptranslate -Tp $vars{mod}::$vars{name}|");
  266. while(<TREE>) {
  267.   s/(+-- .*s)(w+)((d+))$/$1<a href="#$2">$2</a>$3/;
  268.   s/+--(w+)/+--<a href="#$1">$1</a>/;
  269.   s/Textual Convention: (w+)/Textual Convention: <a href="#$1">$1</a>/;
  270.   mib2c_output($_);
  271. }
  272. close(TREE);
  273. return 0;
  274. @endperl@
  275. </pre>