trema 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (560) hide show
  1. data/.mono.rant +4107 -0
  2. data/.rspec +1 -0
  3. data/.yardopts +4 -0
  4. data/Doxyfile +1679 -0
  5. data/GPL2 +339 -0
  6. data/Gemfile +22 -0
  7. data/Gemfile.lock +71 -0
  8. data/README.md +135 -0
  9. data/Rakefile +140 -0
  10. data/Rantfile +834 -0
  11. data/VERSION +1 -0
  12. data/build.rb +32 -0
  13. data/cruise.rb +389 -0
  14. data/features/example.dumper.feature +87 -0
  15. data/features/example.learning_switch.feature +39 -0
  16. data/features/example.list_switches.feature +38 -0
  17. data/features/example.message.echo_reply.feature +26 -0
  18. data/features/example.message.echo_request.feature +25 -0
  19. data/features/example.message.features_request.feature +84 -0
  20. data/features/example.message.hello.feature +25 -0
  21. data/features/example.message.set_config.feature +27 -0
  22. data/features/example.multi_learning_switch.feature +135 -0
  23. data/features/example.packetin_filter_config.feature +91 -0
  24. data/features/example.repeater_hub.feature +49 -0
  25. data/features/example.switch_monitor.feature +39 -0
  26. data/features/packetin_filter.feature +49 -0
  27. data/features/step_definitions/kill_steps.rb +30 -0
  28. data/features/step_definitions/log_steps.rb +90 -0
  29. data/features/step_definitions/misc_steps.rb +64 -0
  30. data/features/step_definitions/off_steps.rb +30 -0
  31. data/features/step_definitions/run_steps.rb +91 -0
  32. data/features/step_definitions/send_packets_steps.rb +42 -0
  33. data/features/step_definitions/show_stats_steps.rb +43 -0
  34. data/features/step_definitions/stats_steps.rb +39 -0
  35. data/features/support/env.rb +75 -0
  36. data/features/support/hooks.rb +8 -0
  37. data/features/switch_manager.feature +35 -0
  38. data/features/trema-config.feature +68 -0
  39. data/features/trema.dump_flows.feature +25 -0
  40. data/features/trema.feature +25 -0
  41. data/features/trema.kill.feature +53 -0
  42. data/features/trema.killall.feature +30 -0
  43. data/features/trema.reset_stats.feature +14 -0
  44. data/features/trema.run.feature +46 -0
  45. data/features/trema.send_packets.feature +56 -0
  46. data/features/trema.show_stats.feature +67 -0
  47. data/features/tutorial.hello_trema.feature +27 -0
  48. data/features/tutorial.packet_in.feature +47 -0
  49. data/features/tutorial.switch_info.feature +55 -0
  50. data/ruby/.gitignore +4 -0
  51. data/ruby/blocker.rb +78 -0
  52. data/ruby/extconf.rb +71 -0
  53. data/ruby/sub-process.rb +291 -0
  54. data/ruby/trema/action-common.c +60 -0
  55. data/ruby/trema/action-common.h +42 -0
  56. data/ruby/trema/action-enqueue.c +161 -0
  57. data/ruby/trema/action-enqueue.h +40 -0
  58. data/ruby/trema/action-output.c +169 -0
  59. data/ruby/trema/action-output.h +42 -0
  60. data/ruby/trema/action-set-dl-dst.c +131 -0
  61. data/ruby/trema/action-set-dl-dst.h +44 -0
  62. data/ruby/trema/action-set-dl-src.c +131 -0
  63. data/ruby/trema/action-set-dl-src.h +44 -0
  64. data/ruby/trema/action-set-nw-dst.c +135 -0
  65. data/ruby/trema/action-set-nw-dst.h +42 -0
  66. data/ruby/trema/action-set-nw-src.c +140 -0
  67. data/ruby/trema/action-set-nw-src.h +42 -0
  68. data/ruby/trema/action-set-nw-tos.c +124 -0
  69. data/ruby/trema/action-set-nw-tos.h +42 -0
  70. data/ruby/trema/action-set-tp-dst.c +122 -0
  71. data/ruby/trema/action-set-tp-dst.h +42 -0
  72. data/ruby/trema/action-set-tp-src.c +124 -0
  73. data/ruby/trema/action-set-tp-src.h +42 -0
  74. data/ruby/trema/action-set-vlan-pcp.c +128 -0
  75. data/ruby/trema/action-set-vlan-pcp.h +42 -0
  76. data/ruby/trema/action-set-vlan-vid.c +125 -0
  77. data/ruby/trema/action-set-vlan-vid.h +42 -0
  78. data/ruby/trema/action-strip-vlan.c +81 -0
  79. data/ruby/trema/action-strip-vlan.h +42 -0
  80. data/ruby/trema/action-vendor.c +121 -0
  81. data/ruby/trema/action-vendor.h +42 -0
  82. data/ruby/trema/aggregate-stats-reply.rb +70 -0
  83. data/ruby/trema/app.rb +112 -0
  84. data/ruby/trema/barrier-reply.c +99 -0
  85. data/ruby/trema/barrier-reply.h +46 -0
  86. data/ruby/trema/barrier-request.c +108 -0
  87. data/ruby/trema/barrier-request.h +44 -0
  88. data/ruby/trema/cli.rb +269 -0
  89. data/ruby/trema/command.rb +40 -0
  90. data/ruby/trema/command/dump_flows.rb +62 -0
  91. data/ruby/trema/command/kill.rb +71 -0
  92. data/ruby/trema/command/killall.rb +56 -0
  93. data/ruby/trema/command/reset_stats.rb +61 -0
  94. data/ruby/trema/command/ruby.rb +55 -0
  95. data/ruby/trema/command/run.rb +120 -0
  96. data/ruby/trema/command/send_packets.rb +130 -0
  97. data/ruby/trema/command/shell.rb +61 -0
  98. data/ruby/trema/command/show_stats.rb +84 -0
  99. data/ruby/trema/command/usage.rb +61 -0
  100. data/ruby/trema/command/version.rb +39 -0
  101. data/ruby/trema/controller.c +595 -0
  102. data/ruby/trema/controller.h +44 -0
  103. data/ruby/trema/controller.rb +81 -0
  104. data/ruby/trema/daemon.rb +167 -0
  105. data/ruby/trema/dsl.rb +34 -0
  106. data/ruby/trema/dsl/configuration.rb +153 -0
  107. data/ruby/trema/dsl/context.rb +71 -0
  108. data/ruby/trema/dsl/link.rb +41 -0
  109. data/ruby/trema/dsl/parser.rb +70 -0
  110. data/ruby/trema/dsl/run.rb +49 -0
  111. data/ruby/trema/dsl/runner.rb +165 -0
  112. data/ruby/trema/dsl/stanza.rb +53 -0
  113. data/ruby/trema/dsl/switch.rb +78 -0
  114. data/ruby/trema/dsl/syntax-error.rb +33 -0
  115. data/ruby/trema/dsl/syntax.rb +109 -0
  116. data/ruby/trema/dsl/vhost.rb +108 -0
  117. data/ruby/trema/dsl/vswitch.rb +47 -0
  118. data/ruby/trema/echo-reply.c +107 -0
  119. data/ruby/trema/echo-reply.h +42 -0
  120. data/ruby/trema/echo-request.c +140 -0
  121. data/ruby/trema/echo-request.h +42 -0
  122. data/ruby/trema/error.c +253 -0
  123. data/ruby/trema/error.h +44 -0
  124. data/ruby/trema/exact-match.rb +36 -0
  125. data/ruby/trema/executables.rb +95 -0
  126. data/ruby/trema/features-reply.c +238 -0
  127. data/ruby/trema/features-reply.h +60 -0
  128. data/ruby/trema/features-request.c +109 -0
  129. data/ruby/trema/features-request.h +44 -0
  130. data/ruby/trema/flow-removed.c +275 -0
  131. data/ruby/trema/flow-removed.h +46 -0
  132. data/ruby/trema/flow-stats-reply.rb +109 -0
  133. data/ruby/trema/flow.rb +56 -0
  134. data/ruby/trema/get-config-reply.c +159 -0
  135. data/ruby/trema/get-config-reply.h +52 -0
  136. data/ruby/trema/get-config-request.c +107 -0
  137. data/ruby/trema/get-config-request.h +44 -0
  138. data/ruby/trema/hello.c +110 -0
  139. data/ruby/trema/hello.h +44 -0
  140. data/ruby/trema/host.rb +257 -0
  141. data/ruby/trema/ip.rb +101 -0
  142. data/ruby/trema/link.rb +176 -0
  143. data/ruby/trema/list-switches-reply.c +46 -0
  144. data/ruby/trema/list-switches-reply.h +40 -0
  145. data/ruby/trema/logger.c +162 -0
  146. data/ruby/trema/logger.h +44 -0
  147. data/ruby/trema/mac.rb +151 -0
  148. data/ruby/trema/match.c +594 -0
  149. data/ruby/trema/match.h +36 -0
  150. data/ruby/trema/monkey-patch/integer.rb +35 -0
  151. data/ruby/trema/monkey-patch/integer/base-conversions.rb +36 -0
  152. data/ruby/trema/monkey-patch/integer/ranges.rb +51 -0
  153. data/ruby/trema/monkey-patch/module.rb +33 -0
  154. data/ruby/trema/monkey-patch/module/deprecation.rb +41 -0
  155. data/ruby/trema/monkey-patch/string.rb +33 -0
  156. data/ruby/trema/monkey-patch/string/inflectors.rb +54 -0
  157. data/ruby/trema/network-component.rb +153 -0
  158. data/ruby/trema/ofctl.rb +62 -0
  159. data/ruby/trema/open-vswitch.rb +154 -0
  160. data/ruby/trema/openflow-error.c +191 -0
  161. data/ruby/trema/openflow-error.h +53 -0
  162. data/ruby/trema/openflow-switch.rb +88 -0
  163. data/ruby/trema/ordered-hash.rb +74 -0
  164. data/ruby/trema/packet-queue.rb +178 -0
  165. data/ruby/trema/packet_in.c +736 -0
  166. data/ruby/trema/packet_in.h +46 -0
  167. data/ruby/trema/packetin-filter.rb +126 -0
  168. data/ruby/trema/path.rb +135 -0
  169. data/ruby/trema/phost.rb +69 -0
  170. data/ruby/trema/port-mod.c +226 -0
  171. data/ruby/trema/port-mod.h +36 -0
  172. data/ruby/trema/port-stats-reply.rb +111 -0
  173. data/ruby/trema/port-status.c +156 -0
  174. data/ruby/trema/port-status.h +45 -0
  175. data/ruby/trema/port.c +295 -0
  176. data/ruby/trema/port.h +47 -0
  177. data/ruby/trema/process.rb +76 -0
  178. data/ruby/trema/queue-get-config-reply.c +200 -0
  179. data/ruby/trema/queue-get-config-reply.h +47 -0
  180. data/ruby/trema/queue-get-config-request.c +141 -0
  181. data/ruby/trema/queue-get-config-request.h +44 -0
  182. data/ruby/trema/queue-stats-reply.rb +78 -0
  183. data/ruby/trema/set-config.c +171 -0
  184. data/ruby/trema/set-config.h +44 -0
  185. data/ruby/trema/shell.rb +39 -0
  186. data/ruby/trema/shell/down.rb +39 -0
  187. data/ruby/trema/shell/killall.rb +40 -0
  188. data/ruby/trema/shell/link.rb +61 -0
  189. data/ruby/trema/shell/reset_stats.rb +50 -0
  190. data/ruby/trema/shell/run.rb +67 -0
  191. data/ruby/trema/shell/send_packets.rb +42 -0
  192. data/ruby/trema/shell/show_stats.rb +49 -0
  193. data/ruby/trema/shell/up.rb +43 -0
  194. data/ruby/trema/shell/vhost.rb +44 -0
  195. data/ruby/trema/shell/vswitch.rb +49 -0
  196. data/ruby/trema/stats-helper.rb +65 -0
  197. data/ruby/trema/stats-reply.c +483 -0
  198. data/ruby/trema/stats-reply.h +53 -0
  199. data/ruby/trema/stats-request.c +634 -0
  200. data/ruby/trema/stats-request.h +42 -0
  201. data/ruby/trema/switch-daemon.rb +74 -0
  202. data/ruby/trema/switch-disconnected.c +40 -0
  203. data/ruby/trema/switch-disconnected.h +38 -0
  204. data/ruby/trema/switch-manager.rb +121 -0
  205. data/ruby/trema/switch.rb +37 -0
  206. data/ruby/trema/table-stats-reply.rb +87 -0
  207. data/ruby/trema/timers.rb +97 -0
  208. data/ruby/trema/trema.c +122 -0
  209. data/ruby/trema/tremashark.rb +39 -0
  210. data/ruby/trema/util.rb +84 -0
  211. data/ruby/trema/vendor-request.c +193 -0
  212. data/ruby/trema/vendor-request.h +44 -0
  213. data/ruby/trema/vendor-stats-reply.rb +62 -0
  214. data/ruby/trema/vendor.c +152 -0
  215. data/ruby/trema/vendor.h +52 -0
  216. data/ruby/trema/version.rb +30 -0
  217. data/spec/spec_helper.rb +153 -0
  218. data/spec/support/openflow-message.rb +94 -0
  219. data/spec/trema/action-enqueue_spec.rb +100 -0
  220. data/spec/trema/action-output_spec.rb +116 -0
  221. data/spec/trema/action-set-dl-dst_spec.rb +95 -0
  222. data/spec/trema/action-set-dl-src_spec.rb +92 -0
  223. data/spec/trema/action-set-nw-dst_spec.rb +96 -0
  224. data/spec/trema/action-set-nw-src_spec.rb +97 -0
  225. data/spec/trema/action-set-nw-tos_spec.rb +88 -0
  226. data/spec/trema/action-set-tp-dst_spec.rb +88 -0
  227. data/spec/trema/action-set-tp-src_spec.rb +88 -0
  228. data/spec/trema/action-set-vlan-pcp_spec.rb +91 -0
  229. data/spec/trema/action-set-vlan-vid_spec.rb +91 -0
  230. data/spec/trema/action-strip-vlan_spec.rb +57 -0
  231. data/spec/trema/action-vendor_spec.rb +90 -0
  232. data/spec/trema/app_spec.rb +90 -0
  233. data/spec/trema/barrier-reply_spec.rb +45 -0
  234. data/spec/trema/barrier-request_spec.rb +83 -0
  235. data/spec/trema/cli_spec.rb +160 -0
  236. data/spec/trema/controller_spec.rb +100 -0
  237. data/spec/trema/dsl/configuration_spec.rb +122 -0
  238. data/spec/trema/dsl/link_spec.rb +54 -0
  239. data/spec/trema/dsl/run_spec.rb +78 -0
  240. data/spec/trema/dsl/runner_spec.rb +239 -0
  241. data/spec/trema/dsl/switch_spec.rb +77 -0
  242. data/spec/trema/dsl/syntax_spec.rb +121 -0
  243. data/spec/trema/dsl/vhost_spec.rb +148 -0
  244. data/spec/trema/dsl/vswitch_spec.rb +90 -0
  245. data/spec/trema/echo-reply_spec.rb +49 -0
  246. data/spec/trema/echo-request_spec.rb +75 -0
  247. data/spec/trema/error_spec.rb +142 -0
  248. data/spec/trema/executables_spec.rb +75 -0
  249. data/spec/trema/features-reply_spec.rb +57 -0
  250. data/spec/trema/features-request_spec.rb +66 -0
  251. data/spec/trema/flow-removed_spec.rb +146 -0
  252. data/spec/trema/get-config-reply_spec.rb +43 -0
  253. data/spec/trema/get-config-request_spec.rb +82 -0
  254. data/spec/trema/hello_spec.rb +49 -0
  255. data/spec/trema/host_spec.rb +193 -0
  256. data/spec/trema/link_spec.rb +64 -0
  257. data/spec/trema/list-switches-reply_spec.rb +48 -0
  258. data/spec/trema/logger_spec.rb +48 -0
  259. data/spec/trema/mac_spec.rb +115 -0
  260. data/spec/trema/match_spec.rb +113 -0
  261. data/spec/trema/open-vswitch_spec.rb +123 -0
  262. data/spec/trema/openflow-error_spec.rb +141 -0
  263. data/spec/trema/openflow-switch_spec.rb +56 -0
  264. data/spec/trema/packet-in_spec.rb +168 -0
  265. data/spec/trema/packet-out_spec.rb +128 -0
  266. data/spec/trema/packetin-filter_spec.rb +41 -0
  267. data/spec/trema/port-mod_spec.rb +101 -0
  268. data/spec/trema/port-status_spec.rb +108 -0
  269. data/spec/trema/port_spec.rb +61 -0
  270. data/spec/trema/process_spec.rb +71 -0
  271. data/spec/trema/queue-get-config-reply_spec.rb +66 -0
  272. data/spec/trema/queue-get-config-request_spec.rb +69 -0
  273. data/spec/trema/set-config_spec.rb +80 -0
  274. data/spec/trema/shell/vhost_spec.rb +57 -0
  275. data/spec/trema/shell/vswitch_spec.rb +89 -0
  276. data/spec/trema/stats-reply_spec.rb +306 -0
  277. data/spec/trema/stats-request_spec.rb +151 -0
  278. data/spec/trema/switch-disconnected_spec.rb +58 -0
  279. data/spec/trema/switch-manager_spec.rb +43 -0
  280. data/spec/trema/tremashark_spec.rb +41 -0
  281. data/spec/trema/util_spec.rb +93 -0
  282. data/spec/trema/vendor-request_spec.rb +79 -0
  283. data/src/examples/cbench_switch/README +21 -0
  284. data/src/examples/cbench_switch/cbench-switch.rb +39 -0
  285. data/src/examples/cbench_switch/cbench_switch.c +68 -0
  286. data/src/examples/dumper/dumper.c +370 -0
  287. data/src/examples/dumper/dumper.conf +7 -0
  288. data/src/examples/dumper/dumper.rb +196 -0
  289. data/src/examples/hello_trema/README +13 -0
  290. data/src/examples/hello_trema/hello_trema.c +51 -0
  291. data/src/examples/hello_trema/hello_trema.conf +3 -0
  292. data/src/examples/hello_trema/hello_trema.rb +35 -0
  293. data/src/examples/learning_switch/README +15 -0
  294. data/src/examples/learning_switch/fdb.rb +112 -0
  295. data/src/examples/learning_switch/learning-switch.rb +88 -0
  296. data/src/examples/learning_switch/learning_switch.c +236 -0
  297. data/src/examples/learning_switch/learning_switch.conf +18 -0
  298. data/src/examples/list_switches/README +19 -0
  299. data/src/examples/list_switches/list-switches.rb +45 -0
  300. data/src/examples/list_switches/list_switches.c +81 -0
  301. data/src/examples/list_switches/list_switches.conf +15 -0
  302. data/src/examples/match_compare/match-compare.conf +30 -0
  303. data/src/examples/match_compare/match-compare.rb +99 -0
  304. data/src/examples/multi_learning_switch/README +14 -0
  305. data/src/examples/multi_learning_switch/multi-learning-switch.rb +96 -0
  306. data/src/examples/multi_learning_switch/multi_learning_switch.c +296 -0
  307. data/src/examples/multi_learning_switch/multi_learning_switch.conf +17 -0
  308. data/src/examples/openflow_message/README +11 -0
  309. data/src/examples/openflow_message/echo-reply.rb +59 -0
  310. data/src/examples/openflow_message/echo-request.rb +58 -0
  311. data/src/examples/openflow_message/echo_reply.c +70 -0
  312. data/src/examples/openflow_message/echo_request.c +70 -0
  313. data/src/examples/openflow_message/example.rb +63 -0
  314. data/src/examples/openflow_message/features-request.rb +97 -0
  315. data/src/examples/openflow_message/features_request.c +168 -0
  316. data/src/examples/openflow_message/hello.c +70 -0
  317. data/src/examples/openflow_message/hello.rb +58 -0
  318. data/src/examples/openflow_message/set-config.rb +59 -0
  319. data/src/examples/openflow_message/set_config.c +70 -0
  320. data/src/examples/packet_in/README +15 -0
  321. data/src/examples/packet_in/packet_in.c +55 -0
  322. data/src/examples/packet_in/packet_in.conf +15 -0
  323. data/src/examples/packet_in/packet_in.rb +34 -0
  324. data/src/examples/packetin_filter_config/README +12 -0
  325. data/src/examples/packetin_filter_config/add_filter.c +73 -0
  326. data/src/examples/packetin_filter_config/delete_filter.c +65 -0
  327. data/src/examples/packetin_filter_config/delete_filter_strict.c +75 -0
  328. data/src/examples/packetin_filter_config/dump_filter.c +65 -0
  329. data/src/examples/packetin_filter_config/dump_filter_strict.c +75 -0
  330. data/src/examples/packetin_filter_config/packetin_filter_config.c +134 -0
  331. data/src/examples/packetin_filter_config/packetin_filter_config.conf +7 -0
  332. data/src/examples/packetin_filter_config/utils.c +102 -0
  333. data/src/examples/packetin_filter_config/utils.h +42 -0
  334. data/src/examples/repeater_hub/README +8 -0
  335. data/src/examples/repeater_hub/repeater-hub.rb +43 -0
  336. data/src/examples/repeater_hub/repeater-hub_spec.rb +156 -0
  337. data/src/examples/repeater_hub/repeater_hub.c +83 -0
  338. data/src/examples/repeater_hub/repeater_hub.conf +28 -0
  339. data/src/examples/switch_info/README +13 -0
  340. data/src/examples/switch_info/switch_info.c +80 -0
  341. data/src/examples/switch_info/switch_info.conf +3 -0
  342. data/src/examples/switch_info/switch_info.rb +46 -0
  343. data/src/examples/switch_monitor/switch-monitor.conf +3 -0
  344. data/src/examples/switch_monitor/switch-monitor.rb +58 -0
  345. data/src/examples/switch_monitor/switch_monitor.c +154 -0
  346. data/src/examples/traffic_monitor/counter.c +74 -0
  347. data/src/examples/traffic_monitor/counter.h +48 -0
  348. data/src/examples/traffic_monitor/counter.rb +46 -0
  349. data/src/examples/traffic_monitor/fdb.c +76 -0
  350. data/src/examples/traffic_monitor/fdb.h +50 -0
  351. data/src/examples/traffic_monitor/fdb.rb +44 -0
  352. data/src/examples/traffic_monitor/traffic-monitor.rb +100 -0
  353. data/src/examples/traffic_monitor/traffic_monitor.c +163 -0
  354. data/src/examples/traffic_monitor/traffic_monitor.conf +16 -0
  355. data/src/lib/arp.h +61 -0
  356. data/src/lib/bool.h +49 -0
  357. data/src/lib/buffer.c +305 -0
  358. data/src/lib/buffer.h +56 -0
  359. data/src/lib/byteorder.c +547 -0
  360. data/src/lib/byteorder.h +110 -0
  361. data/src/lib/checks.h +42 -0
  362. data/src/lib/daemon.c +302 -0
  363. data/src/lib/daemon.h +42 -0
  364. data/src/lib/doubly_linked_list.c +281 -0
  365. data/src/lib/doubly_linked_list.h +88 -0
  366. data/src/lib/ether.c +48 -0
  367. data/src/lib/ether.h +94 -0
  368. data/src/lib/etherip.h +46 -0
  369. data/src/lib/event_handler.c +389 -0
  370. data/src/lib/event_handler.h +64 -0
  371. data/src/lib/hash_table.c +417 -0
  372. data/src/lib/hash_table.h +138 -0
  373. data/src/lib/icmp.h +74 -0
  374. data/src/lib/igmp.h +50 -0
  375. data/src/lib/ipv4.h +50 -0
  376. data/src/lib/linked_list.c +199 -0
  377. data/src/lib/linked_list.h +84 -0
  378. data/src/lib/log.c +402 -0
  379. data/src/lib/log.h +78 -0
  380. data/src/lib/match.h +84 -0
  381. data/src/lib/match_table.c +608 -0
  382. data/src/lib/match_table.h +51 -0
  383. data/src/lib/message_queue.c +143 -0
  384. data/src/lib/message_queue.h +61 -0
  385. data/src/lib/messenger.c +1714 -0
  386. data/src/lib/messenger.h +145 -0
  387. data/src/lib/openflow_application_interface.c +1673 -0
  388. data/src/lib/openflow_application_interface.h +329 -0
  389. data/src/lib/openflow_message.c +4051 -0
  390. data/src/lib/openflow_message.h +288 -0
  391. data/src/lib/openflow_service_interface.h +59 -0
  392. data/src/lib/packet_info.c +230 -0
  393. data/src/lib/packet_info.h +209 -0
  394. data/src/lib/packet_parser.c +502 -0
  395. data/src/lib/packetin_filter_interface.c +294 -0
  396. data/src/lib/packetin_filter_interface.h +127 -0
  397. data/src/lib/persistent_storage.c +480 -0
  398. data/src/lib/persistent_storage.h +46 -0
  399. data/src/lib/stat.c +213 -0
  400. data/src/lib/stat.h +44 -0
  401. data/src/lib/tcp.h +67 -0
  402. data/src/lib/timer.c +350 -0
  403. data/src/lib/timer.h +53 -0
  404. data/src/lib/trema.c +710 -0
  405. data/src/lib/trema.h +79 -0
  406. data/src/lib/trema_private.c +177 -0
  407. data/src/lib/trema_private.h +60 -0
  408. data/src/lib/trema_wrapper.c +56 -0
  409. data/src/lib/trema_wrapper.h +64 -0
  410. data/src/lib/udp.h +43 -0
  411. data/src/lib/utility.c +515 -0
  412. data/src/lib/utility.h +67 -0
  413. data/src/lib/wrapper.c +100 -0
  414. data/src/lib/wrapper.h +76 -0
  415. data/src/packetin_filter/README +17 -0
  416. data/src/packetin_filter/packetin_filter.c +575 -0
  417. data/src/switch_manager/README +20 -0
  418. data/src/switch_manager/cookie_table.c +292 -0
  419. data/src/switch_manager/cookie_table.h +72 -0
  420. data/src/switch_manager/dpid_table.c +110 -0
  421. data/src/switch_manager/dpid_table.h +46 -0
  422. data/src/switch_manager/management_interface.h +44 -0
  423. data/src/switch_manager/ofpmsg_recv.c +482 -0
  424. data/src/switch_manager/ofpmsg_recv.h +42 -0
  425. data/src/switch_manager/ofpmsg_send.c +235 -0
  426. data/src/switch_manager/ofpmsg_send.h +50 -0
  427. data/src/switch_manager/secure_channel_listener.c +281 -0
  428. data/src/switch_manager/secure_channel_listener.h +42 -0
  429. data/src/switch_manager/secure_channel_receiver.c +126 -0
  430. data/src/switch_manager/secure_channel_receiver.h +43 -0
  431. data/src/switch_manager/secure_channel_sender.c +126 -0
  432. data/src/switch_manager/secure_channel_sender.h +43 -0
  433. data/src/switch_manager/service_interface.c +181 -0
  434. data/src/switch_manager/service_interface.h +46 -0
  435. data/src/switch_manager/switch.c +538 -0
  436. data/src/switch_manager/switch.h +51 -0
  437. data/src/switch_manager/switch_manager.c +448 -0
  438. data/src/switch_manager/switch_manager.h +63 -0
  439. data/src/switch_manager/switchinfo.h +72 -0
  440. data/src/switch_manager/xid_table.c +184 -0
  441. data/src/switch_manager/xid_table.h +56 -0
  442. data/src/tremashark/README +78 -0
  443. data/src/tremashark/packet_capture.c +357 -0
  444. data/src/tremashark/pcap_private.h +47 -0
  445. data/src/tremashark/pcap_queue.c +197 -0
  446. data/src/tremashark/pcap_queue.h +58 -0
  447. data/src/tremashark/plugin/.gitignore +6 -0
  448. data/src/tremashark/plugin/packet-trema/.gitignore +5 -0
  449. data/src/tremashark/plugin/packet-trema/Makefile +77 -0
  450. data/src/tremashark/plugin/packet-trema/Makefile.am +110 -0
  451. data/src/tremashark/plugin/packet-trema/Makefile.common +31 -0
  452. data/src/tremashark/plugin/packet-trema/moduleinfo.h +41 -0
  453. data/src/tremashark/plugin/packet-trema/packet-trema.c +1659 -0
  454. data/src/tremashark/plugin/packet-trema/plugin.c +31 -0
  455. data/src/tremashark/plugin/user_dlts +2 -0
  456. data/src/tremashark/queue.c +168 -0
  457. data/src/tremashark/queue.h +60 -0
  458. data/src/tremashark/stdin_relay.c +257 -0
  459. data/src/tremashark/syslog_relay.c +247 -0
  460. data/src/tremashark/tremashark.c +556 -0
  461. data/trema +93 -0
  462. data/trema-config +61 -0
  463. data/unittests/buffer_stubs.c +74 -0
  464. data/unittests/cmockery_trema.c +123 -0
  465. data/unittests/cmockery_trema.h +96 -0
  466. data/unittests/lib/buffer_test.c +370 -0
  467. data/unittests/lib/byteorder_test.c +1717 -0
  468. data/unittests/lib/daemon_test.c +664 -0
  469. data/unittests/lib/doubly_linked_list_test.c +346 -0
  470. data/unittests/lib/ether_test.c +127 -0
  471. data/unittests/lib/hash_table_test.c +278 -0
  472. data/unittests/lib/linked_list_test.c +343 -0
  473. data/unittests/lib/log_test.c +459 -0
  474. data/unittests/lib/match_table_test.c +1509 -0
  475. data/unittests/lib/message_queue_test.c +379 -0
  476. data/unittests/lib/messenger_test.c +438 -0
  477. data/unittests/lib/openflow_application_interface_test.c +3488 -0
  478. data/unittests/lib/openflow_message_test.c +7337 -0
  479. data/unittests/lib/packet_info_test.c +544 -0
  480. data/unittests/lib/packet_parser_test.c +703 -0
  481. data/unittests/lib/packetin_filter_interface_test.c +723 -0
  482. data/unittests/lib/persistent_storage_test.c +802 -0
  483. data/unittests/lib/stat_test.c +291 -0
  484. data/unittests/lib/test_packets/arp_rep.cap +0 -0
  485. data/unittests/lib/test_packets/arp_req.cap +0 -0
  486. data/unittests/lib/test_packets/icmp_echo_rep.cap +0 -0
  487. data/unittests/lib/test_packets/icmp_echo_req.cap +0 -0
  488. data/unittests/lib/test_packets/igmp_query_v2.cap +0 -0
  489. data/unittests/lib/test_packets/ipx.cap +0 -0
  490. data/unittests/lib/test_packets/lldp.cap +0 -0
  491. data/unittests/lib/test_packets/lldp_over_ip.cap +0 -0
  492. data/unittests/lib/test_packets/tcp.cap +0 -0
  493. data/unittests/lib/test_packets/tcp_syn.cap +0 -0
  494. data/unittests/lib/test_packets/udp.cap +0 -0
  495. data/unittests/lib/test_packets/udp_frag_head.cap +0 -0
  496. data/unittests/lib/test_packets/udp_frag_next.cap +0 -0
  497. data/unittests/lib/test_packets/vtag_icmp_echo_rep.cap +0 -0
  498. data/unittests/lib/test_packets/vtag_icmp_echo_req.cap +0 -0
  499. data/unittests/lib/timer_test.c +248 -0
  500. data/unittests/lib/trema_private_test.c +323 -0
  501. data/unittests/lib/trema_test.c +985 -0
  502. data/unittests/lib/utility_test.c +628 -0
  503. data/unittests/lib/wrapper_test.c +201 -0
  504. data/unittests/packetin_filter/packetin_filter_test.c +477 -0
  505. data/unittests/switch_manager/switch_manager_test.c +1178 -0
  506. data/unittests/wrapper_stubs.c +39 -0
  507. data/vendor/.gitignore +6 -0
  508. data/vendor/README +30 -0
  509. data/vendor/cmockery-20110428.tar.gz +0 -0
  510. data/vendor/oflops-0.03.tar.gz +0 -0
  511. data/vendor/oflops_no_snmp+1.0.0.patch +340 -0
  512. data/vendor/openflow-1.0.0.tar.gz +0 -0
  513. data/vendor/openflow.git.tar.gz +0 -0
  514. data/vendor/openvswitch-1.2.2.tar.gz +0 -0
  515. data/vendor/ruby-ifconfig-1.2/COPYING +340 -0
  516. data/vendor/ruby-ifconfig-1.2/Changelog +16 -0
  517. data/vendor/ruby-ifconfig-1.2/INSTALL +239 -0
  518. data/vendor/ruby-ifconfig-1.2/README +38 -0
  519. data/vendor/ruby-ifconfig-1.2/Rakefile +14 -0
  520. data/vendor/ruby-ifconfig-1.2/TODO +8 -0
  521. data/vendor/ruby-ifconfig-1.2/ifconfig_examples/darwin.txt +17 -0
  522. data/vendor/ruby-ifconfig-1.2/ifconfig_examples/dragonflybsd.txt +10 -0
  523. data/vendor/ruby-ifconfig-1.2/ifconfig_examples/dragonflybsd_netstat.txt +14 -0
  524. data/vendor/ruby-ifconfig-1.2/ifconfig_examples/freebsd.txt +17 -0
  525. data/vendor/ruby-ifconfig-1.2/ifconfig_examples/freebsd_netstat.txt +24 -0
  526. data/vendor/ruby-ifconfig-1.2/ifconfig_examples/linux.txt +60 -0
  527. data/vendor/ruby-ifconfig-1.2/ifconfig_examples/linux_ethernet.txt +20 -0
  528. data/vendor/ruby-ifconfig-1.2/ifconfig_examples/netbsd.txt +10 -0
  529. data/vendor/ruby-ifconfig-1.2/ifconfig_examples/openbsd.txt +36 -0
  530. data/vendor/ruby-ifconfig-1.2/ifconfig_examples/sunos.txt +10 -0
  531. data/vendor/ruby-ifconfig-1.2/lib/ifconfig.rb +71 -0
  532. data/vendor/ruby-ifconfig-1.2/lib/ifconfig/bsd/ifconfig.rb +72 -0
  533. data/vendor/ruby-ifconfig-1.2/lib/ifconfig/bsd/interface_types.rb +69 -0
  534. data/vendor/ruby-ifconfig-1.2/lib/ifconfig/bsd/network_types.rb +3 -0
  535. data/vendor/ruby-ifconfig-1.2/lib/ifconfig/common/ifconfig.rb +84 -0
  536. data/vendor/ruby-ifconfig-1.2/lib/ifconfig/common/interface_types.rb +130 -0
  537. data/vendor/ruby-ifconfig-1.2/lib/ifconfig/common/network_types.rb +49 -0
  538. data/vendor/ruby-ifconfig-1.2/lib/ifconfig/linux/ifconfig.rb +43 -0
  539. data/vendor/ruby-ifconfig-1.2/lib/ifconfig/linux/interface_types.rb +112 -0
  540. data/vendor/ruby-ifconfig-1.2/lib/ifconfig/linux/network_types.rb +55 -0
  541. data/vendor/ruby-ifconfig-1.2/lib/ifconfig/sunos/ifconfig.rb +38 -0
  542. data/vendor/ruby-ifconfig-1.2/lib/ifconfig/sunos/interface_types.rb +77 -0
  543. data/vendor/ruby-ifconfig-1.2/lib/ifconfig/sunos/network_types.rb +4 -0
  544. data/vendor/ruby-ifconfig-1.2/setup.rb +1306 -0
  545. data/vendor/ruby-ifconfig-1.2/test/test_bsd.rb +35 -0
  546. data/vendor/ruby-ifconfig-1.2/test/test_darwin.rb +33 -0
  547. data/vendor/ruby-ifconfig-1.2/test/test_dragonflybsd.rb +35 -0
  548. data/vendor/ruby-ifconfig-1.2/test/test_helper.rb +4 -0
  549. data/vendor/ruby-ifconfig-1.2/test/test_linux.rb +31 -0
  550. data/vendor/ruby-ifconfig-1.2/test/test_netbsd.rb +33 -0
  551. data/vendor/ruby-ifconfig-1.2/test/test_openbsd.rb +33 -0
  552. data/vendor/ruby-ifconfig-1.2/test/test_sunos.rb +35 -0
  553. data/vendor/ruby-ifconfig-1.2/test/unit/tc_darwin.rb +40 -0
  554. data/vendor/ruby-ifconfig-1.2/test/unit/tc_dragonflybsd.rb +39 -0
  555. data/vendor/ruby-ifconfig-1.2/test/unit/tc_freebsd.rb +40 -0
  556. data/vendor/ruby-ifconfig-1.2/test/unit/tc_linux.rb +49 -0
  557. data/vendor/ruby-ifconfig-1.2/test/unit/tc_netbsd.rb +39 -0
  558. data/vendor/ruby-ifconfig-1.2/test/unit/tc_openbsd.rb +39 -0
  559. data/vendor/ruby-ifconfig-1.2/test/unit/tc_sunos.rb +44 -0
  560. metadata +856 -0
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --color --format documentation --profile
@@ -0,0 +1,4 @@
1
+ ruby
2
+ -
3
+ features/**/*.feature
4
+
@@ -0,0 +1,1679 @@
1
+ # Doxyfile 1.7.3
2
+
3
+ # This file describes the settings to be used by the documentation system
4
+ # doxygen (www.doxygen.org) for a project.
5
+ #
6
+ # All text after a hash (#) is considered a comment and will be ignored.
7
+ # The format is:
8
+ # TAG = value [value, ...]
9
+ # For lists items can also be appended using:
10
+ # TAG += value [value, ...]
11
+ # Values that contain spaces should be placed between quotes (" ").
12
+
13
+ #---------------------------------------------------------------------------
14
+ # Project related configuration options
15
+ #---------------------------------------------------------------------------
16
+
17
+ # This tag specifies the encoding used for all characters in the config file
18
+ # that follow. The default is UTF-8 which is also the encoding used for all
19
+ # text before the first occurrence of this tag. Doxygen uses libiconv (or the
20
+ # iconv built into libc) for the transcoding. See
21
+ # http://www.gnu.org/software/libiconv for the list of possible encodings.
22
+
23
+ DOXYFILE_ENCODING = UTF-8
24
+
25
+ # The PROJECT_NAME tag is a single word (or a sequence of words surrounded
26
+ # by quotes) that should identify the project.
27
+
28
+ PROJECT_NAME = Trema
29
+
30
+ # The PROJECT_NUMBER tag can be used to enter a project or revision number.
31
+ # This could be handy for archiving the generated documentation or
32
+ # if some version control system is used.
33
+
34
+ PROJECT_NUMBER =
35
+
36
+ # Using the PROJECT_BRIEF tag one can provide an optional one line description for a project that appears at the top of each page and should give viewer a quick idea about the purpose of the project. Keep the description short.
37
+
38
+ PROJECT_BRIEF =
39
+
40
+ # With the PROJECT_LOGO tag one can specify an logo or icon that is
41
+ # included in the documentation. The maximum height of the logo should not
42
+ # exceed 55 pixels and the maximum width should not exceed 200 pixels.
43
+ # Doxygen will copy the logo to the output directory.
44
+
45
+ PROJECT_LOGO =
46
+
47
+ # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
48
+ # base path where the generated documentation will be put.
49
+ # If a relative path is entered, it will be relative to the location
50
+ # where doxygen was started. If left blank the current directory will be used.
51
+
52
+ OUTPUT_DIRECTORY =
53
+
54
+ # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
55
+ # 4096 sub-directories (in 2 levels) under the output directory of each output
56
+ # format and will distribute the generated files over these directories.
57
+ # Enabling this option can be useful when feeding doxygen a huge amount of
58
+ # source files, where putting all generated files in the same directory would
59
+ # otherwise cause performance problems for the file system.
60
+
61
+ CREATE_SUBDIRS = NO
62
+
63
+ # The OUTPUT_LANGUAGE tag is used to specify the language in which all
64
+ # documentation generated by doxygen is written. Doxygen will use this
65
+ # information to generate all constant output in the proper language.
66
+ # The default language is English, other supported languages are:
67
+ # Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
68
+ # Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German,
69
+ # Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English
70
+ # messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian,
71
+ # Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak,
72
+ # Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
73
+
74
+ OUTPUT_LANGUAGE = English
75
+
76
+ # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
77
+ # include brief member descriptions after the members that are listed in
78
+ # the file and class documentation (similar to JavaDoc).
79
+ # Set to NO to disable this.
80
+
81
+ BRIEF_MEMBER_DESC = YES
82
+
83
+ # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
84
+ # the brief description of a member or function before the detailed description.
85
+ # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
86
+ # brief descriptions will be completely suppressed.
87
+
88
+ REPEAT_BRIEF = YES
89
+
90
+ # This tag implements a quasi-intelligent brief description abbreviator
91
+ # that is used to form the text in various listings. Each string
92
+ # in this list, if found as the leading text of the brief description, will be
93
+ # stripped from the text and the result after processing the whole list, is
94
+ # used as the annotated text. Otherwise, the brief description is used as-is.
95
+ # If left blank, the following values are used ("$name" is automatically
96
+ # replaced with the name of the entity): "The $name class" "The $name widget"
97
+ # "The $name file" "is" "provides" "specifies" "contains"
98
+ # "represents" "a" "an" "the"
99
+
100
+ ABBREVIATE_BRIEF =
101
+
102
+ # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
103
+ # Doxygen will generate a detailed section even if there is only a brief
104
+ # description.
105
+
106
+ ALWAYS_DETAILED_SEC = NO
107
+
108
+ # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
109
+ # inherited members of a class in the documentation of that class as if those
110
+ # members were ordinary class members. Constructors, destructors and assignment
111
+ # operators of the base classes will not be shown.
112
+
113
+ INLINE_INHERITED_MEMB = NO
114
+
115
+ # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
116
+ # path before files name in the file list and in the header files. If set
117
+ # to NO the shortest path that makes the file name unique will be used.
118
+
119
+ FULL_PATH_NAMES = YES
120
+
121
+ # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
122
+ # can be used to strip a user-defined part of the path. Stripping is
123
+ # only done if one of the specified strings matches the left-hand part of
124
+ # the path. The tag can be used to show relative paths in the file list.
125
+ # If left blank the directory from which doxygen is run is used as the
126
+ # path to strip.
127
+
128
+ STRIP_FROM_PATH =
129
+
130
+ # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
131
+ # the path mentioned in the documentation of a class, which tells
132
+ # the reader which header file to include in order to use a class.
133
+ # If left blank only the name of the header file containing the class
134
+ # definition is used. Otherwise one should specify the include paths that
135
+ # are normally passed to the compiler using the -I flag.
136
+
137
+ STRIP_FROM_INC_PATH =
138
+
139
+ # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
140
+ # (but less readable) file names. This can be useful if your file system
141
+ # doesn't support long names like on DOS, Mac, or CD-ROM.
142
+
143
+ SHORT_NAMES = NO
144
+
145
+ # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
146
+ # will interpret the first line (until the first dot) of a JavaDoc-style
147
+ # comment as the brief description. If set to NO, the JavaDoc
148
+ # comments will behave just like regular Qt-style comments
149
+ # (thus requiring an explicit @brief command for a brief description.)
150
+
151
+ JAVADOC_AUTOBRIEF = NO
152
+
153
+ # If the QT_AUTOBRIEF tag is set to YES then Doxygen will
154
+ # interpret the first line (until the first dot) of a Qt-style
155
+ # comment as the brief description. If set to NO, the comments
156
+ # will behave just like regular Qt-style comments (thus requiring
157
+ # an explicit \brief command for a brief description.)
158
+
159
+ QT_AUTOBRIEF = NO
160
+
161
+ # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
162
+ # treat a multi-line C++ special comment block (i.e. a block of //! or ///
163
+ # comments) as a brief description. This used to be the default behaviour.
164
+ # The new default is to treat a multi-line C++ comment block as a detailed
165
+ # description. Set this tag to YES if you prefer the old behaviour instead.
166
+
167
+ MULTILINE_CPP_IS_BRIEF = NO
168
+
169
+ # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
170
+ # member inherits the documentation from any documented member that it
171
+ # re-implements.
172
+
173
+ INHERIT_DOCS = YES
174
+
175
+ # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
176
+ # a new page for each member. If set to NO, the documentation of a member will
177
+ # be part of the file/class/namespace that contains it.
178
+
179
+ SEPARATE_MEMBER_PAGES = NO
180
+
181
+ # The TAB_SIZE tag can be used to set the number of spaces in a tab.
182
+ # Doxygen uses this value to replace tabs by spaces in code fragments.
183
+
184
+ TAB_SIZE = 2
185
+
186
+ # This tag can be used to specify a number of aliases that acts
187
+ # as commands in the documentation. An alias has the form "name=value".
188
+ # For example adding "sideeffect=\par Side Effects:\n" will allow you to
189
+ # put the command \sideeffect (or @sideeffect) in the documentation, which
190
+ # will result in a user-defined paragraph with heading "Side Effects:".
191
+ # You can put \n's in the value part of an alias to insert newlines.
192
+
193
+ ALIASES =
194
+
195
+ # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
196
+ # sources only. Doxygen will then generate output that is more tailored for C.
197
+ # For instance, some of the names that are used will be different. The list
198
+ # of all members will be omitted, etc.
199
+
200
+ OPTIMIZE_OUTPUT_FOR_C = YES
201
+
202
+ # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
203
+ # sources only. Doxygen will then generate output that is more tailored for
204
+ # Java. For instance, namespaces will be presented as packages, qualified
205
+ # scopes will look different, etc.
206
+
207
+ OPTIMIZE_OUTPUT_JAVA = NO
208
+
209
+ # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
210
+ # sources only. Doxygen will then generate output that is more tailored for
211
+ # Fortran.
212
+
213
+ OPTIMIZE_FOR_FORTRAN = NO
214
+
215
+ # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
216
+ # sources. Doxygen will then generate output that is tailored for
217
+ # VHDL.
218
+
219
+ OPTIMIZE_OUTPUT_VHDL = NO
220
+
221
+ # Doxygen selects the parser to use depending on the extension of the files it
222
+ # parses. With this tag you can assign which parser to use for a given extension.
223
+ # Doxygen has a built-in mapping, but you can override or extend it using this
224
+ # tag. The format is ext=language, where ext is a file extension, and language
225
+ # is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C,
226
+ # C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make
227
+ # doxygen treat .inc files as Fortran files (default is PHP), and .f files as C
228
+ # (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions
229
+ # you also need to set FILE_PATTERNS otherwise the files are not read by doxygen.
230
+
231
+ EXTENSION_MAPPING =
232
+
233
+ # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
234
+ # to include (a tag file for) the STL sources as input, then you should
235
+ # set this tag to YES in order to let doxygen match functions declarations and
236
+ # definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
237
+ # func(std::string) {}). This also makes the inheritance and collaboration
238
+ # diagrams that involve STL classes more complete and accurate.
239
+
240
+ BUILTIN_STL_SUPPORT = NO
241
+
242
+ # If you use Microsoft's C++/CLI language, you should set this option to YES to
243
+ # enable parsing support.
244
+
245
+ CPP_CLI_SUPPORT = NO
246
+
247
+ # Set the SIP_SUPPORT tag to YES if your project consists of sip sources only.
248
+ # Doxygen will parse them like normal C++ but will assume all classes use public
249
+ # instead of private inheritance when no explicit protection keyword is present.
250
+
251
+ SIP_SUPPORT = NO
252
+
253
+ # For Microsoft's IDL there are propget and propput attributes to indicate getter
254
+ # and setter methods for a property. Setting this option to YES (the default)
255
+ # will make doxygen replace the get and set methods by a property in the
256
+ # documentation. This will only work if the methods are indeed getting or
257
+ # setting a simple type. If this is not the case, or you want to show the
258
+ # methods anyway, you should set this option to NO.
259
+
260
+ IDL_PROPERTY_SUPPORT = YES
261
+
262
+ # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
263
+ # tag is set to YES, then doxygen will reuse the documentation of the first
264
+ # member in the group (if any) for the other members of the group. By default
265
+ # all members of a group must be documented explicitly.
266
+
267
+ DISTRIBUTE_GROUP_DOC = NO
268
+
269
+ # Set the SUBGROUPING tag to YES (the default) to allow class member groups of
270
+ # the same type (for instance a group of public functions) to be put as a
271
+ # subgroup of that type (e.g. under the Public Functions section). Set it to
272
+ # NO to prevent subgrouping. Alternatively, this can be done per class using
273
+ # the \nosubgrouping command.
274
+
275
+ SUBGROUPING = YES
276
+
277
+ # When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum
278
+ # is documented as struct, union, or enum with the name of the typedef. So
279
+ # typedef struct TypeS {} TypeT, will appear in the documentation as a struct
280
+ # with name TypeT. When disabled the typedef will appear as a member of a file,
281
+ # namespace, or class. And the struct will be named TypeS. This can typically
282
+ # be useful for C code in case the coding convention dictates that all compound
283
+ # types are typedef'ed and only the typedef is referenced, never the tag name.
284
+
285
+ TYPEDEF_HIDES_STRUCT = NO
286
+
287
+ # The SYMBOL_CACHE_SIZE determines the size of the internal cache use to
288
+ # determine which symbols to keep in memory and which to flush to disk.
289
+ # When the cache is full, less often used symbols will be written to disk.
290
+ # For small to medium size projects (<1000 input files) the default value is
291
+ # probably good enough. For larger projects a too small cache size can cause
292
+ # doxygen to be busy swapping symbols to and from disk most of the time
293
+ # causing a significant performance penalty.
294
+ # If the system has enough physical memory increasing the cache will improve the
295
+ # performance by keeping more symbols in memory. Note that the value works on
296
+ # a logarithmic scale so increasing the size by one will roughly double the
297
+ # memory usage. The cache size is given by this formula:
298
+ # 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
299
+ # corresponding to a cache size of 2^16 = 65536 symbols
300
+
301
+ SYMBOL_CACHE_SIZE = 0
302
+
303
+ #---------------------------------------------------------------------------
304
+ # Build related configuration options
305
+ #---------------------------------------------------------------------------
306
+
307
+ # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
308
+ # documentation are documented, even if no documentation was available.
309
+ # Private class members and static file members will be hidden unless
310
+ # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
311
+
312
+ EXTRACT_ALL = NO
313
+
314
+ # If the EXTRACT_PRIVATE tag is set to YES all private members of a class
315
+ # will be included in the documentation.
316
+
317
+ EXTRACT_PRIVATE = NO
318
+
319
+ # If the EXTRACT_STATIC tag is set to YES all static members of a file
320
+ # will be included in the documentation.
321
+
322
+ EXTRACT_STATIC = NO
323
+
324
+ # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
325
+ # defined locally in source files will be included in the documentation.
326
+ # If set to NO only classes defined in header files are included.
327
+
328
+ EXTRACT_LOCAL_CLASSES = NO
329
+
330
+ # This flag is only useful for Objective-C code. When set to YES local
331
+ # methods, which are defined in the implementation section but not in
332
+ # the interface are included in the documentation.
333
+ # If set to NO (the default) only methods in the interface are included.
334
+
335
+ EXTRACT_LOCAL_METHODS = NO
336
+
337
+ # If this flag is set to YES, the members of anonymous namespaces will be
338
+ # extracted and appear in the documentation as a namespace called
339
+ # 'anonymous_namespace{file}', where file will be replaced with the base
340
+ # name of the file that contains the anonymous namespace. By default
341
+ # anonymous namespaces are hidden.
342
+
343
+ EXTRACT_ANON_NSPACES = NO
344
+
345
+ # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
346
+ # undocumented members of documented classes, files or namespaces.
347
+ # If set to NO (the default) these members will be included in the
348
+ # various overviews, but no documentation section is generated.
349
+ # This option has no effect if EXTRACT_ALL is enabled.
350
+
351
+ HIDE_UNDOC_MEMBERS = NO
352
+
353
+ # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
354
+ # undocumented classes that are normally visible in the class hierarchy.
355
+ # If set to NO (the default) these classes will be included in the various
356
+ # overviews. This option has no effect if EXTRACT_ALL is enabled.
357
+
358
+ HIDE_UNDOC_CLASSES = NO
359
+
360
+ # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
361
+ # friend (class|struct|union) declarations.
362
+ # If set to NO (the default) these declarations will be included in the
363
+ # documentation.
364
+
365
+ HIDE_FRIEND_COMPOUNDS = NO
366
+
367
+ # If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
368
+ # documentation blocks found inside the body of a function.
369
+ # If set to NO (the default) these blocks will be appended to the
370
+ # function's detailed documentation block.
371
+
372
+ HIDE_IN_BODY_DOCS = NO
373
+
374
+ # The INTERNAL_DOCS tag determines if documentation
375
+ # that is typed after a \internal command is included. If the tag is set
376
+ # to NO (the default) then the documentation will be excluded.
377
+ # Set it to YES to include the internal documentation.
378
+
379
+ INTERNAL_DOCS = NO
380
+
381
+ # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
382
+ # file names in lower-case letters. If set to YES upper-case letters are also
383
+ # allowed. This is useful if you have classes or files whose names only differ
384
+ # in case and if your file system supports case sensitive file names. Windows
385
+ # and Mac users are advised to set this option to NO.
386
+
387
+ CASE_SENSE_NAMES = YES
388
+
389
+ # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
390
+ # will show members with their full class and namespace scopes in the
391
+ # documentation. If set to YES the scope will be hidden.
392
+
393
+ HIDE_SCOPE_NAMES = NO
394
+
395
+ # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
396
+ # will put a list of the files that are included by a file in the documentation
397
+ # of that file.
398
+
399
+ SHOW_INCLUDE_FILES = YES
400
+
401
+ # If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen
402
+ # will list include files with double quotes in the documentation
403
+ # rather than with sharp brackets.
404
+
405
+ FORCE_LOCAL_INCLUDES = NO
406
+
407
+ # If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
408
+ # is inserted in the documentation for inline members.
409
+
410
+ INLINE_INFO = YES
411
+
412
+ # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
413
+ # will sort the (detailed) documentation of file and class members
414
+ # alphabetically by member name. If set to NO the members will appear in
415
+ # declaration order.
416
+
417
+ SORT_MEMBER_DOCS = YES
418
+
419
+ # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
420
+ # brief documentation of file, namespace and class members alphabetically
421
+ # by member name. If set to NO (the default) the members will appear in
422
+ # declaration order.
423
+
424
+ SORT_BRIEF_DOCS = NO
425
+
426
+ # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen
427
+ # will sort the (brief and detailed) documentation of class members so that
428
+ # constructors and destructors are listed first. If set to NO (the default)
429
+ # the constructors will appear in the respective orders defined by
430
+ # SORT_MEMBER_DOCS and SORT_BRIEF_DOCS.
431
+ # This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO
432
+ # and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.
433
+
434
+ SORT_MEMBERS_CTORS_1ST = NO
435
+
436
+ # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the
437
+ # hierarchy of group names into alphabetical order. If set to NO (the default)
438
+ # the group names will appear in their defined order.
439
+
440
+ SORT_GROUP_NAMES = NO
441
+
442
+ # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
443
+ # sorted by fully-qualified names, including namespaces. If set to
444
+ # NO (the default), the class list will be sorted only by class name,
445
+ # not including the namespace part.
446
+ # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
447
+ # Note: This option applies only to the class list, not to the
448
+ # alphabetical list.
449
+
450
+ SORT_BY_SCOPE_NAME = NO
451
+
452
+ # If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper type resolution of all parameters of a function it will reject a
453
+ # match between the prototype and the implementation of a member function even if there is only one candidate or it is obvious which candidate to choose by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen
454
+ # will still accept a match between prototype and implementation in such cases.
455
+
456
+ STRICT_PROTO_MATCHING = NO
457
+
458
+ # The GENERATE_TODOLIST tag can be used to enable (YES) or
459
+ # disable (NO) the todo list. This list is created by putting \todo
460
+ # commands in the documentation.
461
+
462
+ GENERATE_TODOLIST = YES
463
+
464
+ # The GENERATE_TESTLIST tag can be used to enable (YES) or
465
+ # disable (NO) the test list. This list is created by putting \test
466
+ # commands in the documentation.
467
+
468
+ GENERATE_TESTLIST = YES
469
+
470
+ # The GENERATE_BUGLIST tag can be used to enable (YES) or
471
+ # disable (NO) the bug list. This list is created by putting \bug
472
+ # commands in the documentation.
473
+
474
+ GENERATE_BUGLIST = YES
475
+
476
+ # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
477
+ # disable (NO) the deprecated list. This list is created by putting
478
+ # \deprecated commands in the documentation.
479
+
480
+ GENERATE_DEPRECATEDLIST= YES
481
+
482
+ # The ENABLED_SECTIONS tag can be used to enable conditional
483
+ # documentation sections, marked by \if sectionname ... \endif.
484
+
485
+ ENABLED_SECTIONS =
486
+
487
+ # The MAX_INITIALIZER_LINES tag determines the maximum number of lines
488
+ # the initial value of a variable or macro consists of for it to appear in
489
+ # the documentation. If the initializer consists of more lines than specified
490
+ # here it will be hidden. Use a value of 0 to hide initializers completely.
491
+ # The appearance of the initializer of individual variables and macros in the
492
+ # documentation can be controlled using \showinitializer or \hideinitializer
493
+ # command in the documentation regardless of this setting.
494
+
495
+ MAX_INITIALIZER_LINES = 30
496
+
497
+ # Set the SHOW_USED_FILES tag to NO to disable the list of files generated
498
+ # at the bottom of the documentation of classes and structs. If set to YES the
499
+ # list will mention the files that were used to generate the documentation.
500
+
501
+ SHOW_USED_FILES = YES
502
+
503
+ # If the sources in your project are distributed over multiple directories
504
+ # then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
505
+ # in the documentation. The default is NO.
506
+
507
+ SHOW_DIRECTORIES = NO
508
+
509
+ # Set the SHOW_FILES tag to NO to disable the generation of the Files page.
510
+ # This will remove the Files entry from the Quick Index and from the
511
+ # Folder Tree View (if specified). The default is YES.
512
+
513
+ SHOW_FILES = YES
514
+
515
+ # Set the SHOW_NAMESPACES tag to NO to disable the generation of the
516
+ # Namespaces page.
517
+ # This will remove the Namespaces entry from the Quick Index
518
+ # and from the Folder Tree View (if specified). The default is YES.
519
+
520
+ SHOW_NAMESPACES = YES
521
+
522
+ # The FILE_VERSION_FILTER tag can be used to specify a program or script that
523
+ # doxygen should invoke to get the current version for each file (typically from
524
+ # the version control system). Doxygen will invoke the program by executing (via
525
+ # popen()) the command <command> <input-file>, where <command> is the value of
526
+ # the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
527
+ # provided by doxygen. Whatever the program writes to standard output
528
+ # is used as the file version. See the manual for examples.
529
+
530
+ FILE_VERSION_FILTER =
531
+
532
+ # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
533
+ # by doxygen. The layout file controls the global structure of the generated
534
+ # output files in an output format independent way. The create the layout file
535
+ # that represents doxygen's defaults, run doxygen with the -l option.
536
+ # You can optionally specify a file name after the option, if omitted
537
+ # DoxygenLayout.xml will be used as the name of the layout file.
538
+
539
+ LAYOUT_FILE =
540
+
541
+ #---------------------------------------------------------------------------
542
+ # configuration options related to warning and progress messages
543
+ #---------------------------------------------------------------------------
544
+
545
+ # The QUIET tag can be used to turn on/off the messages that are generated
546
+ # by doxygen. Possible values are YES and NO. If left blank NO is used.
547
+
548
+ QUIET = NO
549
+
550
+ # The WARNINGS tag can be used to turn on/off the warning messages that are
551
+ # generated by doxygen. Possible values are YES and NO. If left blank
552
+ # NO is used.
553
+
554
+ WARNINGS = YES
555
+
556
+ # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
557
+ # for undocumented members. If EXTRACT_ALL is set to YES then this flag will
558
+ # automatically be disabled.
559
+
560
+ WARN_IF_UNDOCUMENTED = NO
561
+
562
+ # If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
563
+ # potential errors in the documentation, such as not documenting some
564
+ # parameters in a documented function, or documenting parameters that
565
+ # don't exist or using markup commands wrongly.
566
+
567
+ WARN_IF_DOC_ERROR = YES
568
+
569
+ # The WARN_NO_PARAMDOC option can be enabled to get warnings for
570
+ # functions that are documented, but have no documentation for their parameters
571
+ # or return value. If set to NO (the default) doxygen will only warn about
572
+ # wrong or incomplete parameter documentation, but not about the absence of
573
+ # documentation.
574
+
575
+ WARN_NO_PARAMDOC = NO
576
+
577
+ # The WARN_FORMAT tag determines the format of the warning messages that
578
+ # doxygen can produce. The string should contain the $file, $line, and $text
579
+ # tags, which will be replaced by the file and line number from which the
580
+ # warning originated and the warning text. Optionally the format may contain
581
+ # $version, which will be replaced by the version of the file (if it could
582
+ # be obtained via FILE_VERSION_FILTER)
583
+
584
+ WARN_FORMAT = "$file:$line: $text"
585
+
586
+ # The WARN_LOGFILE tag can be used to specify a file to which warning
587
+ # and error messages should be written. If left blank the output is written
588
+ # to stderr.
589
+
590
+ WARN_LOGFILE =
591
+
592
+ #---------------------------------------------------------------------------
593
+ # configuration options related to the input files
594
+ #---------------------------------------------------------------------------
595
+
596
+ # The INPUT tag can be used to specify the files and/or directories that contain
597
+ # documented source files. You may enter file names like "myfile.cpp" or
598
+ # directories like "/usr/src/myproject". Separate the files or directories
599
+ # with spaces.
600
+
601
+ INPUT = src
602
+
603
+ # This tag can be used to specify the character encoding of the source files
604
+ # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
605
+ # also the default input encoding. Doxygen uses libiconv (or the iconv built
606
+ # into libc) for the transcoding. See http://www.gnu.org/software/libiconv for
607
+ # the list of possible encodings.
608
+
609
+ INPUT_ENCODING = UTF-8
610
+
611
+ # If the value of the INPUT tag contains directories, you can use the
612
+ # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
613
+ # and *.h) to filter out the source-files in the directories. If left
614
+ # blank the following patterns are tested:
615
+ # *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh
616
+ # *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py
617
+ # *.f90 *.f *.for *.vhd *.vhdl
618
+
619
+ FILE_PATTERNS =
620
+
621
+ # The RECURSIVE tag can be used to turn specify whether or not subdirectories
622
+ # should be searched for input files as well. Possible values are YES and NO.
623
+ # If left blank NO is used.
624
+
625
+ RECURSIVE = YES
626
+
627
+ # The EXCLUDE tag can be used to specify files and/or directories that should
628
+ # excluded from the INPUT source files. This way you can easily exclude a
629
+ # subdirectory from a directory tree whose root is specified with the INPUT tag.
630
+
631
+ EXCLUDE =
632
+
633
+ # The EXCLUDE_SYMLINKS tag can be used select whether or not files or
634
+ # directories that are symbolic links (a Unix file system feature) are excluded
635
+ # from the input.
636
+
637
+ EXCLUDE_SYMLINKS = NO
638
+
639
+ # If the value of the INPUT tag contains directories, you can use the
640
+ # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
641
+ # certain files from those directories. Note that the wildcards are matched
642
+ # against the file with absolute path, so to exclude all test directories
643
+ # for example use the pattern */test/*
644
+
645
+ EXCLUDE_PATTERNS =
646
+
647
+ # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
648
+ # (namespaces, classes, functions, etc.) that should be excluded from the
649
+ # output. The symbol name can be a fully qualified name, a word, or if the
650
+ # wildcard * is used, a substring. Examples: ANamespace, AClass,
651
+ # AClass::ANamespace, ANamespace::*Test
652
+
653
+ EXCLUDE_SYMBOLS =
654
+
655
+ # The EXAMPLE_PATH tag can be used to specify one or more files or
656
+ # directories that contain example code fragments that are included (see
657
+ # the \include command).
658
+
659
+ EXAMPLE_PATH =
660
+
661
+ # If the value of the EXAMPLE_PATH tag contains directories, you can use the
662
+ # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
663
+ # and *.h) to filter out the source-files in the directories. If left
664
+ # blank all files are included.
665
+
666
+ EXAMPLE_PATTERNS =
667
+
668
+ # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
669
+ # searched for input files to be used with the \include or \dontinclude
670
+ # commands irrespective of the value of the RECURSIVE tag.
671
+ # Possible values are YES and NO. If left blank NO is used.
672
+
673
+ EXAMPLE_RECURSIVE = NO
674
+
675
+ # The IMAGE_PATH tag can be used to specify one or more files or
676
+ # directories that contain image that are included in the documentation (see
677
+ # the \image command).
678
+
679
+ IMAGE_PATH =
680
+
681
+ # The INPUT_FILTER tag can be used to specify a program that doxygen should
682
+ # invoke to filter for each input file. Doxygen will invoke the filter program
683
+ # by executing (via popen()) the command <filter> <input-file>, where <filter>
684
+ # is the value of the INPUT_FILTER tag, and <input-file> is the name of an
685
+ # input file. Doxygen will then use the output that the filter program writes
686
+ # to standard output.
687
+ # If FILTER_PATTERNS is specified, this tag will be
688
+ # ignored.
689
+
690
+ INPUT_FILTER =
691
+
692
+ # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
693
+ # basis.
694
+ # Doxygen will compare the file name with each pattern and apply the
695
+ # filter if there is a match.
696
+ # The filters are a list of the form:
697
+ # pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
698
+ # info on how filters are used. If FILTER_PATTERNS is empty or if
699
+ # non of the patterns match the file name, INPUT_FILTER is applied.
700
+
701
+ FILTER_PATTERNS =
702
+
703
+ # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
704
+ # INPUT_FILTER) will be used to filter the input files when producing source
705
+ # files to browse (i.e. when SOURCE_BROWSER is set to YES).
706
+
707
+ FILTER_SOURCE_FILES = NO
708
+
709
+ # The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
710
+ # pattern. A pattern will override the setting for FILTER_PATTERN (if any)
711
+ # and it is also possible to disable source filtering for a specific pattern
712
+ # using *.ext= (so without naming a filter). This option only has effect when
713
+ # FILTER_SOURCE_FILES is enabled.
714
+
715
+ FILTER_SOURCE_PATTERNS =
716
+
717
+ #---------------------------------------------------------------------------
718
+ # configuration options related to source browsing
719
+ #---------------------------------------------------------------------------
720
+
721
+ # If the SOURCE_BROWSER tag is set to YES then a list of source files will
722
+ # be generated. Documented entities will be cross-referenced with these sources.
723
+ # Note: To get rid of all source code in the generated output, make sure also
724
+ # VERBATIM_HEADERS is set to NO.
725
+
726
+ SOURCE_BROWSER = NO
727
+
728
+ # Setting the INLINE_SOURCES tag to YES will include the body
729
+ # of functions and classes directly in the documentation.
730
+
731
+ INLINE_SOURCES = NO
732
+
733
+ # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
734
+ # doxygen to hide any special comment blocks from generated source code
735
+ # fragments. Normal C and C++ comments will always remain visible.
736
+
737
+ STRIP_CODE_COMMENTS = YES
738
+
739
+ # If the REFERENCED_BY_RELATION tag is set to YES
740
+ # then for each documented function all documented
741
+ # functions referencing it will be listed.
742
+
743
+ REFERENCED_BY_RELATION = NO
744
+
745
+ # If the REFERENCES_RELATION tag is set to YES
746
+ # then for each documented function all documented entities
747
+ # called/used by that function will be listed.
748
+
749
+ REFERENCES_RELATION = NO
750
+
751
+ # If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
752
+ # and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
753
+ # functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
754
+ # link to the source code.
755
+ # Otherwise they will link to the documentation.
756
+
757
+ REFERENCES_LINK_SOURCE = YES
758
+
759
+ # If the USE_HTAGS tag is set to YES then the references to source code
760
+ # will point to the HTML generated by the htags(1) tool instead of doxygen
761
+ # built-in source browser. The htags tool is part of GNU's global source
762
+ # tagging system (see http://www.gnu.org/software/global/global.html). You
763
+ # will need version 4.8.6 or higher.
764
+
765
+ USE_HTAGS = NO
766
+
767
+ # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
768
+ # will generate a verbatim copy of the header file for each class for
769
+ # which an include is specified. Set to NO to disable this.
770
+
771
+ VERBATIM_HEADERS = YES
772
+
773
+ #---------------------------------------------------------------------------
774
+ # configuration options related to the alphabetical class index
775
+ #---------------------------------------------------------------------------
776
+
777
+ # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
778
+ # of all compounds will be generated. Enable this if the project
779
+ # contains a lot of classes, structs, unions or interfaces.
780
+
781
+ ALPHABETICAL_INDEX = YES
782
+
783
+ # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
784
+ # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
785
+ # in which this list will be split (can be a number in the range [1..20])
786
+
787
+ COLS_IN_ALPHA_INDEX = 5
788
+
789
+ # In case all classes in a project start with a common prefix, all
790
+ # classes will be put under the same header in the alphabetical index.
791
+ # The IGNORE_PREFIX tag can be used to specify one or more prefixes that
792
+ # should be ignored while generating the index headers.
793
+
794
+ IGNORE_PREFIX =
795
+
796
+ #---------------------------------------------------------------------------
797
+ # configuration options related to the HTML output
798
+ #---------------------------------------------------------------------------
799
+
800
+ # If the GENERATE_HTML tag is set to YES (the default) Doxygen will
801
+ # generate HTML output.
802
+
803
+ GENERATE_HTML = YES
804
+
805
+ # The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
806
+ # If a relative path is entered the value of OUTPUT_DIRECTORY will be
807
+ # put in front of it. If left blank `html' will be used as the default path.
808
+
809
+ HTML_OUTPUT = html
810
+
811
+ # The HTML_FILE_EXTENSION tag can be used to specify the file extension for
812
+ # each generated HTML page (for example: .htm,.php,.asp). If it is left blank
813
+ # doxygen will generate files with .html extension.
814
+
815
+ HTML_FILE_EXTENSION = .html
816
+
817
+ # The HTML_HEADER tag can be used to specify a personal HTML header for
818
+ # each generated HTML page. If it is left blank doxygen will generate a
819
+ # standard header.
820
+
821
+ HTML_HEADER =
822
+
823
+ # The HTML_FOOTER tag can be used to specify a personal HTML footer for
824
+ # each generated HTML page. If it is left blank doxygen will generate a
825
+ # standard footer.
826
+
827
+ HTML_FOOTER =
828
+
829
+ # The HTML_STYLESHEET tag can be used to specify a user-defined cascading
830
+ # style sheet that is used by each HTML page. It can be used to
831
+ # fine-tune the look of the HTML output. If the tag is left blank doxygen
832
+ # will generate a default style sheet. Note that doxygen will try to copy
833
+ # the style sheet file to the HTML output directory, so don't put your own
834
+ # stylesheet in the HTML output directory as well, or it will be erased!
835
+
836
+ HTML_STYLESHEET =
837
+
838
+ # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output.
839
+ # Doxygen will adjust the colors in the stylesheet and background images
840
+ # according to this color. Hue is specified as an angle on a colorwheel,
841
+ # see http://en.wikipedia.org/wiki/Hue for more information.
842
+ # For instance the value 0 represents red, 60 is yellow, 120 is green,
843
+ # 180 is cyan, 240 is blue, 300 purple, and 360 is red again.
844
+ # The allowed range is 0 to 359.
845
+
846
+ HTML_COLORSTYLE_HUE = 220
847
+
848
+ # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of
849
+ # the colors in the HTML output. For a value of 0 the output will use
850
+ # grayscales only. A value of 255 will produce the most vivid colors.
851
+
852
+ HTML_COLORSTYLE_SAT = 100
853
+
854
+ # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to
855
+ # the luminance component of the colors in the HTML output. Values below
856
+ # 100 gradually make the output lighter, whereas values above 100 make
857
+ # the output darker. The value divided by 100 is the actual gamma applied,
858
+ # so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2,
859
+ # and 100 does not change the gamma.
860
+
861
+ HTML_COLORSTYLE_GAMMA = 80
862
+
863
+ # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
864
+ # page will contain the date and time when the page was generated. Setting
865
+ # this to NO can help when comparing the output of multiple runs.
866
+
867
+ HTML_TIMESTAMP = YES
868
+
869
+ # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
870
+ # files or namespaces will be aligned in HTML using tables. If set to
871
+ # NO a bullet list will be used.
872
+
873
+ HTML_ALIGN_MEMBERS = YES
874
+
875
+ # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
876
+ # documentation will contain sections that can be hidden and shown after the
877
+ # page has loaded. For this to work a browser that supports
878
+ # JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox
879
+ # Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
880
+
881
+ HTML_DYNAMIC_SECTIONS = NO
882
+
883
+ # If the GENERATE_DOCSET tag is set to YES, additional index files
884
+ # will be generated that can be used as input for Apple's Xcode 3
885
+ # integrated development environment, introduced with OSX 10.5 (Leopard).
886
+ # To create a documentation set, doxygen will generate a Makefile in the
887
+ # HTML output directory. Running make will produce the docset in that
888
+ # directory and running "make install" will install the docset in
889
+ # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find
890
+ # it at startup.
891
+ # See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
892
+ # for more information.
893
+
894
+ GENERATE_DOCSET = NO
895
+
896
+ # When GENERATE_DOCSET tag is set to YES, this tag determines the name of the
897
+ # feed. A documentation feed provides an umbrella under which multiple
898
+ # documentation sets from a single provider (such as a company or product suite)
899
+ # can be grouped.
900
+
901
+ DOCSET_FEEDNAME = "Doxygen generated docs"
902
+
903
+ # When GENERATE_DOCSET tag is set to YES, this tag specifies a string that
904
+ # should uniquely identify the documentation set bundle. This should be a
905
+ # reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen
906
+ # will append .docset to the name.
907
+
908
+ DOCSET_BUNDLE_ID = org.doxygen.Project
909
+
910
+ # When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify
911
+ # the documentation publisher. This should be a reverse domain-name style
912
+ # string, e.g. com.mycompany.MyDocSet.documentation.
913
+
914
+ DOCSET_PUBLISHER_ID = org.doxygen.Publisher
915
+
916
+ # The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher.
917
+
918
+ DOCSET_PUBLISHER_NAME = Publisher
919
+
920
+ # If the GENERATE_HTMLHELP tag is set to YES, additional index files
921
+ # will be generated that can be used as input for tools like the
922
+ # Microsoft HTML help workshop to generate a compiled HTML help file (.chm)
923
+ # of the generated HTML documentation.
924
+
925
+ GENERATE_HTMLHELP = NO
926
+
927
+ # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
928
+ # be used to specify the file name of the resulting .chm file. You
929
+ # can add a path in front of the file if the result should not be
930
+ # written to the html output directory.
931
+
932
+ CHM_FILE =
933
+
934
+ # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
935
+ # be used to specify the location (absolute path including file name) of
936
+ # the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
937
+ # the HTML help compiler on the generated index.hhp.
938
+
939
+ HHC_LOCATION =
940
+
941
+ # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
942
+ # controls if a separate .chi index file is generated (YES) or that
943
+ # it should be included in the master .chm file (NO).
944
+
945
+ GENERATE_CHI = NO
946
+
947
+ # If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING
948
+ # is used to encode HtmlHelp index (hhk), content (hhc) and project file
949
+ # content.
950
+
951
+ CHM_INDEX_ENCODING =
952
+
953
+ # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
954
+ # controls whether a binary table of contents is generated (YES) or a
955
+ # normal table of contents (NO) in the .chm file.
956
+
957
+ BINARY_TOC = NO
958
+
959
+ # The TOC_EXPAND flag can be set to YES to add extra items for group members
960
+ # to the contents of the HTML help documentation and to the tree view.
961
+
962
+ TOC_EXPAND = NO
963
+
964
+ # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
965
+ # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated
966
+ # that can be used as input for Qt's qhelpgenerator to generate a
967
+ # Qt Compressed Help (.qch) of the generated HTML documentation.
968
+
969
+ GENERATE_QHP = NO
970
+
971
+ # If the QHG_LOCATION tag is specified, the QCH_FILE tag can
972
+ # be used to specify the file name of the resulting .qch file.
973
+ # The path specified is relative to the HTML output folder.
974
+
975
+ QCH_FILE =
976
+
977
+ # The QHP_NAMESPACE tag specifies the namespace to use when generating
978
+ # Qt Help Project output. For more information please see
979
+ # http://doc.trolltech.com/qthelpproject.html#namespace
980
+
981
+ QHP_NAMESPACE = org.doxygen.Project
982
+
983
+ # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating
984
+ # Qt Help Project output. For more information please see
985
+ # http://doc.trolltech.com/qthelpproject.html#virtual-folders
986
+
987
+ QHP_VIRTUAL_FOLDER = doc
988
+
989
+ # If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to
990
+ # add. For more information please see
991
+ # http://doc.trolltech.com/qthelpproject.html#custom-filters
992
+
993
+ QHP_CUST_FILTER_NAME =
994
+
995
+ # The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the
996
+ # custom filter to add. For more information please see
997
+ # <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">
998
+ # Qt Help Project / Custom Filters</a>.
999
+
1000
+ QHP_CUST_FILTER_ATTRS =
1001
+
1002
+ # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
1003
+ # project's
1004
+ # filter section matches.
1005
+ # <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">
1006
+ # Qt Help Project / Filter Attributes</a>.
1007
+
1008
+ QHP_SECT_FILTER_ATTRS =
1009
+
1010
+ # If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can
1011
+ # be used to specify the location of Qt's qhelpgenerator.
1012
+ # If non-empty doxygen will try to run qhelpgenerator on the generated
1013
+ # .qhp file.
1014
+
1015
+ QHG_LOCATION =
1016
+
1017
+ # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files
1018
+ # will be generated, which together with the HTML files, form an Eclipse help
1019
+ # plugin. To install this plugin and make it available under the help contents
1020
+ # menu in Eclipse, the contents of the directory containing the HTML and XML
1021
+ # files needs to be copied into the plugins directory of eclipse. The name of
1022
+ # the directory within the plugins directory should be the same as
1023
+ # the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before
1024
+ # the help appears.
1025
+
1026
+ GENERATE_ECLIPSEHELP = NO
1027
+
1028
+ # A unique identifier for the eclipse help plugin. When installing the plugin
1029
+ # the directory name containing the HTML and XML files should also have
1030
+ # this name.
1031
+
1032
+ ECLIPSE_DOC_ID = org.doxygen.Project
1033
+
1034
+ # The DISABLE_INDEX tag can be used to turn on/off the condensed index at
1035
+ # top of each HTML page. The value NO (the default) enables the index and
1036
+ # the value YES disables it.
1037
+
1038
+ DISABLE_INDEX = NO
1039
+
1040
+ # This tag can be used to set the number of enum values (range [0,1..20])
1041
+ # that doxygen will group on one line in the generated HTML documentation.
1042
+ # Note that a value of 0 will completely suppress the enum values from appearing in the overview section.
1043
+
1044
+ ENUM_VALUES_PER_LINE = 4
1045
+
1046
+ # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
1047
+ # structure should be generated to display hierarchical information.
1048
+ # If the tag value is set to YES, a side panel will be generated
1049
+ # containing a tree-like index structure (just like the one that
1050
+ # is generated for HTML Help). For this to work a browser that supports
1051
+ # JavaScript, DHTML, CSS and frames is required (i.e. any modern browser).
1052
+ # Windows users are probably better off using the HTML help feature.
1053
+
1054
+ GENERATE_TREEVIEW = YES
1055
+
1056
+ # By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories,
1057
+ # and Class Hierarchy pages using a tree view instead of an ordered list.
1058
+
1059
+ USE_INLINE_TREES = YES
1060
+
1061
+ # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
1062
+ # used to set the initial width (in pixels) of the frame in which the tree
1063
+ # is shown.
1064
+
1065
+ TREEVIEW_WIDTH = 250
1066
+
1067
+ # When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open
1068
+ # links to external symbols imported via tag files in a separate window.
1069
+
1070
+ EXT_LINKS_IN_WINDOW = NO
1071
+
1072
+ # Use this tag to change the font size of Latex formulas included
1073
+ # as images in the HTML documentation. The default is 10. Note that
1074
+ # when you change the font size after a successful doxygen run you need
1075
+ # to manually remove any form_*.png images from the HTML output directory
1076
+ # to force them to be regenerated.
1077
+
1078
+ FORMULA_FONTSIZE = 10
1079
+
1080
+ # Use the FORMULA_TRANPARENT tag to determine whether or not the images
1081
+ # generated for formulas are transparent PNGs. Transparent PNGs are
1082
+ # not supported properly for IE 6.0, but are supported on all modern browsers.
1083
+ # Note that when changing this option you need to delete any form_*.png files
1084
+ # in the HTML output before the changes have effect.
1085
+
1086
+ FORMULA_TRANSPARENT = YES
1087
+
1088
+ # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax
1089
+ # (see http://www.mathjax.org) which uses client side Javascript for the
1090
+ # rendering instead of using prerendered bitmaps. Use this if you do not
1091
+ # have LaTeX installed or if you want to formulas look prettier in the HTML
1092
+ # output. When enabled you also need to install MathJax separately and
1093
+ # configure the path to it using the MATHJAX_RELPATH option.
1094
+
1095
+ USE_MATHJAX = NO
1096
+
1097
+ # When MathJax is enabled you need to specify the location relative to the
1098
+ # HTML output directory using the MATHJAX_RELPATH option. The destination
1099
+ # directory should contain the MathJax.js script. For instance, if the mathjax
1100
+ # directory is located at the same level as the HTML output directory, then
1101
+ # MATHJAX_RELPATH should be ../mathjax. The default value points to the mathjax.org site, so you can quickly see the result without installing
1102
+ # MathJax, but it is strongly recommended to install a local copy of MathJax
1103
+ # before deployment.
1104
+
1105
+ MATHJAX_RELPATH = http://www.mathjax.org/mathjax
1106
+
1107
+ # When the SEARCHENGINE tag is enabled doxygen will generate a search box
1108
+ # for the HTML output. The underlying search engine uses javascript
1109
+ # and DHTML and should work on any modern browser. Note that when using
1110
+ # HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets
1111
+ # (GENERATE_DOCSET) there is already a search function so this one should
1112
+ # typically be disabled. For large projects the javascript based search engine
1113
+ # can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution.
1114
+
1115
+ SEARCHENGINE = YES
1116
+
1117
+ # When the SERVER_BASED_SEARCH tag is enabled the search engine will be
1118
+ # implemented using a PHP enabled web server instead of at the web client
1119
+ # using Javascript. Doxygen will generate the search PHP script and index
1120
+ # file to put on the web server. The advantage of the server
1121
+ # based approach is that it scales better to large projects and allows
1122
+ # full text search. The disadvantages are that it is more difficult to setup
1123
+ # and does not have live searching capabilities.
1124
+
1125
+ SERVER_BASED_SEARCH = NO
1126
+
1127
+ #---------------------------------------------------------------------------
1128
+ # configuration options related to the LaTeX output
1129
+ #---------------------------------------------------------------------------
1130
+
1131
+ # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
1132
+ # generate Latex output.
1133
+
1134
+ GENERATE_LATEX = NO
1135
+
1136
+ # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
1137
+ # If a relative path is entered the value of OUTPUT_DIRECTORY will be
1138
+ # put in front of it. If left blank `latex' will be used as the default path.
1139
+
1140
+ LATEX_OUTPUT = latex
1141
+
1142
+ # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
1143
+ # invoked. If left blank `latex' will be used as the default command name.
1144
+ # Note that when enabling USE_PDFLATEX this option is only used for
1145
+ # generating bitmaps for formulas in the HTML output, but not in the
1146
+ # Makefile that is written to the output directory.
1147
+
1148
+ LATEX_CMD_NAME = latex
1149
+
1150
+ # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
1151
+ # generate index for LaTeX. If left blank `makeindex' will be used as the
1152
+ # default command name.
1153
+
1154
+ MAKEINDEX_CMD_NAME = makeindex
1155
+
1156
+ # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
1157
+ # LaTeX documents. This may be useful for small projects and may help to
1158
+ # save some trees in general.
1159
+
1160
+ COMPACT_LATEX = NO
1161
+
1162
+ # The PAPER_TYPE tag can be used to set the paper type that is used
1163
+ # by the printer. Possible values are: a4, letter, legal and
1164
+ # executive. If left blank a4wide will be used.
1165
+
1166
+ PAPER_TYPE = a4
1167
+
1168
+ # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
1169
+ # packages that should be included in the LaTeX output.
1170
+
1171
+ EXTRA_PACKAGES =
1172
+
1173
+ # The LATEX_HEADER tag can be used to specify a personal LaTeX header for
1174
+ # the generated latex document. The header should contain everything until
1175
+ # the first chapter. If it is left blank doxygen will generate a
1176
+ # standard header. Notice: only use this tag if you know what you are doing!
1177
+
1178
+ LATEX_HEADER =
1179
+
1180
+ # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
1181
+ # is prepared for conversion to pdf (using ps2pdf). The pdf file will
1182
+ # contain links (just like the HTML output) instead of page references
1183
+ # This makes the output suitable for online browsing using a pdf viewer.
1184
+
1185
+ PDF_HYPERLINKS = YES
1186
+
1187
+ # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
1188
+ # plain latex in the generated Makefile. Set this option to YES to get a
1189
+ # higher quality PDF documentation.
1190
+
1191
+ USE_PDFLATEX = YES
1192
+
1193
+ # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
1194
+ # command to the generated LaTeX files. This will instruct LaTeX to keep
1195
+ # running if errors occur, instead of asking the user for help.
1196
+ # This option is also used when generating formulas in HTML.
1197
+
1198
+ LATEX_BATCHMODE = NO
1199
+
1200
+ # If LATEX_HIDE_INDICES is set to YES then doxygen will not
1201
+ # include the index chapters (such as File Index, Compound Index, etc.)
1202
+ # in the output.
1203
+
1204
+ LATEX_HIDE_INDICES = NO
1205
+
1206
+ # If LATEX_SOURCE_CODE is set to YES then doxygen will include
1207
+ # source code with syntax highlighting in the LaTeX output.
1208
+ # Note that which sources are shown also depends on other settings
1209
+ # such as SOURCE_BROWSER.
1210
+
1211
+ LATEX_SOURCE_CODE = NO
1212
+
1213
+ #---------------------------------------------------------------------------
1214
+ # configuration options related to the RTF output
1215
+ #---------------------------------------------------------------------------
1216
+
1217
+ # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
1218
+ # The RTF output is optimized for Word 97 and may not look very pretty with
1219
+ # other RTF readers or editors.
1220
+
1221
+ GENERATE_RTF = NO
1222
+
1223
+ # The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
1224
+ # If a relative path is entered the value of OUTPUT_DIRECTORY will be
1225
+ # put in front of it. If left blank `rtf' will be used as the default path.
1226
+
1227
+ RTF_OUTPUT = rtf
1228
+
1229
+ # If the COMPACT_RTF tag is set to YES Doxygen generates more compact
1230
+ # RTF documents. This may be useful for small projects and may help to
1231
+ # save some trees in general.
1232
+
1233
+ COMPACT_RTF = NO
1234
+
1235
+ # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
1236
+ # will contain hyperlink fields. The RTF file will
1237
+ # contain links (just like the HTML output) instead of page references.
1238
+ # This makes the output suitable for online browsing using WORD or other
1239
+ # programs which support those fields.
1240
+ # Note: wordpad (write) and others do not support links.
1241
+
1242
+ RTF_HYPERLINKS = NO
1243
+
1244
+ # Load stylesheet definitions from file. Syntax is similar to doxygen's
1245
+ # config file, i.e. a series of assignments. You only have to provide
1246
+ # replacements, missing definitions are set to their default value.
1247
+
1248
+ RTF_STYLESHEET_FILE =
1249
+
1250
+ # Set optional variables used in the generation of an rtf document.
1251
+ # Syntax is similar to doxygen's config file.
1252
+
1253
+ RTF_EXTENSIONS_FILE =
1254
+
1255
+ #---------------------------------------------------------------------------
1256
+ # configuration options related to the man page output
1257
+ #---------------------------------------------------------------------------
1258
+
1259
+ # If the GENERATE_MAN tag is set to YES (the default) Doxygen will
1260
+ # generate man pages
1261
+
1262
+ GENERATE_MAN = NO
1263
+
1264
+ # The MAN_OUTPUT tag is used to specify where the man pages will be put.
1265
+ # If a relative path is entered the value of OUTPUT_DIRECTORY will be
1266
+ # put in front of it. If left blank `man' will be used as the default path.
1267
+
1268
+ MAN_OUTPUT = man
1269
+
1270
+ # The MAN_EXTENSION tag determines the extension that is added to
1271
+ # the generated man pages (default is the subroutine's section .3)
1272
+
1273
+ MAN_EXTENSION = .3
1274
+
1275
+ # If the MAN_LINKS tag is set to YES and Doxygen generates man output,
1276
+ # then it will generate one additional man file for each entity
1277
+ # documented in the real man page(s). These additional files
1278
+ # only source the real man page, but without them the man command
1279
+ # would be unable to find the correct page. The default is NO.
1280
+
1281
+ MAN_LINKS = NO
1282
+
1283
+ #---------------------------------------------------------------------------
1284
+ # configuration options related to the XML output
1285
+ #---------------------------------------------------------------------------
1286
+
1287
+ # If the GENERATE_XML tag is set to YES Doxygen will
1288
+ # generate an XML file that captures the structure of
1289
+ # the code including all documentation.
1290
+
1291
+ GENERATE_XML = NO
1292
+
1293
+ # The XML_OUTPUT tag is used to specify where the XML pages will be put.
1294
+ # If a relative path is entered the value of OUTPUT_DIRECTORY will be
1295
+ # put in front of it. If left blank `xml' will be used as the default path.
1296
+
1297
+ XML_OUTPUT = xml
1298
+
1299
+ # The XML_SCHEMA tag can be used to specify an XML schema,
1300
+ # which can be used by a validating XML parser to check the
1301
+ # syntax of the XML files.
1302
+
1303
+ XML_SCHEMA =
1304
+
1305
+ # The XML_DTD tag can be used to specify an XML DTD,
1306
+ # which can be used by a validating XML parser to check the
1307
+ # syntax of the XML files.
1308
+
1309
+ XML_DTD =
1310
+
1311
+ # If the XML_PROGRAMLISTING tag is set to YES Doxygen will
1312
+ # dump the program listings (including syntax highlighting
1313
+ # and cross-referencing information) to the XML output. Note that
1314
+ # enabling this will significantly increase the size of the XML output.
1315
+
1316
+ XML_PROGRAMLISTING = YES
1317
+
1318
+ #---------------------------------------------------------------------------
1319
+ # configuration options for the AutoGen Definitions output
1320
+ #---------------------------------------------------------------------------
1321
+
1322
+ # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
1323
+ # generate an AutoGen Definitions (see autogen.sf.net) file
1324
+ # that captures the structure of the code including all
1325
+ # documentation. Note that this feature is still experimental
1326
+ # and incomplete at the moment.
1327
+
1328
+ GENERATE_AUTOGEN_DEF = NO
1329
+
1330
+ #---------------------------------------------------------------------------
1331
+ # configuration options related to the Perl module output
1332
+ #---------------------------------------------------------------------------
1333
+
1334
+ # If the GENERATE_PERLMOD tag is set to YES Doxygen will
1335
+ # generate a Perl module file that captures the structure of
1336
+ # the code including all documentation. Note that this
1337
+ # feature is still experimental and incomplete at the
1338
+ # moment.
1339
+
1340
+ GENERATE_PERLMOD = NO
1341
+
1342
+ # If the PERLMOD_LATEX tag is set to YES Doxygen will generate
1343
+ # the necessary Makefile rules, Perl scripts and LaTeX code to be able
1344
+ # to generate PDF and DVI output from the Perl module output.
1345
+
1346
+ PERLMOD_LATEX = NO
1347
+
1348
+ # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
1349
+ # nicely formatted so it can be parsed by a human reader.
1350
+ # This is useful
1351
+ # if you want to understand what is going on.
1352
+ # On the other hand, if this
1353
+ # tag is set to NO the size of the Perl module output will be much smaller
1354
+ # and Perl will parse it just the same.
1355
+
1356
+ PERLMOD_PRETTY = YES
1357
+
1358
+ # The names of the make variables in the generated doxyrules.make file
1359
+ # are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
1360
+ # This is useful so different doxyrules.make files included by the same
1361
+ # Makefile don't overwrite each other's variables.
1362
+
1363
+ PERLMOD_MAKEVAR_PREFIX =
1364
+
1365
+ #---------------------------------------------------------------------------
1366
+ # Configuration options related to the preprocessor
1367
+ #---------------------------------------------------------------------------
1368
+
1369
+ # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
1370
+ # evaluate all C-preprocessor directives found in the sources and include
1371
+ # files.
1372
+
1373
+ ENABLE_PREPROCESSING = YES
1374
+
1375
+ # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
1376
+ # names in the source code. If set to NO (the default) only conditional
1377
+ # compilation will be performed. Macro expansion can be done in a controlled
1378
+ # way by setting EXPAND_ONLY_PREDEF to YES.
1379
+
1380
+ MACRO_EXPANSION = NO
1381
+
1382
+ # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
1383
+ # then the macro expansion is limited to the macros specified with the
1384
+ # PREDEFINED and EXPAND_AS_DEFINED tags.
1385
+
1386
+ EXPAND_ONLY_PREDEF = NO
1387
+
1388
+ # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
1389
+ # in the INCLUDE_PATH (see below) will be search if a #include is found.
1390
+
1391
+ SEARCH_INCLUDES = YES
1392
+
1393
+ # The INCLUDE_PATH tag can be used to specify one or more directories that
1394
+ # contain include files that are not input files but should be processed by
1395
+ # the preprocessor.
1396
+
1397
+ INCLUDE_PATH =
1398
+
1399
+ # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
1400
+ # patterns (like *.h and *.hpp) to filter out the header-files in the
1401
+ # directories. If left blank, the patterns specified with FILE_PATTERNS will
1402
+ # be used.
1403
+
1404
+ INCLUDE_FILE_PATTERNS =
1405
+
1406
+ # The PREDEFINED tag can be used to specify one or more macro names that
1407
+ # are defined before the preprocessor is started (similar to the -D option of
1408
+ # gcc). The argument of the tag is a list of macros of the form: name
1409
+ # or name=definition (no spaces). If the definition and the = are
1410
+ # omitted =1 is assumed. To prevent a macro definition from being
1411
+ # undefined via #undef or recursively expanded use the := operator
1412
+ # instead of the = operator.
1413
+
1414
+ PREDEFINED =
1415
+
1416
+ # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
1417
+ # this tag can be used to specify a list of macro names that should be expanded.
1418
+ # The macro definition that is found in the sources will be used.
1419
+ # Use the PREDEFINED tag if you want to use a different macro definition that overrules the definition found in the source code.
1420
+
1421
+ EXPAND_AS_DEFINED =
1422
+
1423
+ # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
1424
+ # doxygen's preprocessor will remove all references to function-like macros
1425
+ # that are alone on a line, have an all uppercase name, and do not end with a
1426
+ # semicolon, because these will confuse the parser if not removed.
1427
+
1428
+ SKIP_FUNCTION_MACROS = YES
1429
+
1430
+ #---------------------------------------------------------------------------
1431
+ # Configuration::additions related to external references
1432
+ #---------------------------------------------------------------------------
1433
+
1434
+ # The TAGFILES option can be used to specify one or more tagfiles.
1435
+ # Optionally an initial location of the external documentation
1436
+ # can be added for each tagfile. The format of a tag file without
1437
+ # this location is as follows:
1438
+ #
1439
+ # TAGFILES = file1 file2 ...
1440
+ # Adding location for the tag files is done as follows:
1441
+ #
1442
+ # TAGFILES = file1=loc1 "file2 = loc2" ...
1443
+ # where "loc1" and "loc2" can be relative or absolute paths or
1444
+ # URLs. If a location is present for each tag, the installdox tool
1445
+ # does not have to be run to correct the links.
1446
+ # Note that each tag file must have a unique name
1447
+ # (where the name does NOT include the path)
1448
+ # If a tag file is not located in the directory in which doxygen
1449
+ # is run, you must also specify the path to the tagfile here.
1450
+
1451
+ TAGFILES =
1452
+
1453
+ # When a file name is specified after GENERATE_TAGFILE, doxygen will create
1454
+ # a tag file that is based on the input files it reads.
1455
+
1456
+ GENERATE_TAGFILE =
1457
+
1458
+ # If the ALLEXTERNALS tag is set to YES all external classes will be listed
1459
+ # in the class index. If set to NO only the inherited external classes
1460
+ # will be listed.
1461
+
1462
+ ALLEXTERNALS = NO
1463
+
1464
+ # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
1465
+ # in the modules index. If set to NO, only the current project's groups will
1466
+ # be listed.
1467
+
1468
+ EXTERNAL_GROUPS = YES
1469
+
1470
+ # The PERL_PATH should be the absolute path and name of the perl script
1471
+ # interpreter (i.e. the result of `which perl').
1472
+
1473
+ PERL_PATH = /usr/bin/perl
1474
+
1475
+ #---------------------------------------------------------------------------
1476
+ # Configuration options related to the dot tool
1477
+ #---------------------------------------------------------------------------
1478
+
1479
+ # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
1480
+ # generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
1481
+ # or super classes. Setting the tag to NO turns the diagrams off. Note that
1482
+ # this option also works with HAVE_DOT disabled, but it is recommended to
1483
+ # install and use dot, since it yields more powerful graphs.
1484
+
1485
+ CLASS_DIAGRAMS = NO
1486
+
1487
+ # You can define message sequence charts within doxygen comments using the \msc
1488
+ # command. Doxygen will then run the mscgen tool (see
1489
+ # http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the
1490
+ # documentation. The MSCGEN_PATH tag allows you to specify the directory where
1491
+ # the mscgen tool resides. If left empty the tool is assumed to be found in the
1492
+ # default search path.
1493
+
1494
+ MSCGEN_PATH =
1495
+
1496
+ # If set to YES, the inheritance and collaboration graphs will hide
1497
+ # inheritance and usage relations if the target is undocumented
1498
+ # or is not a class.
1499
+
1500
+ HIDE_UNDOC_RELATIONS = YES
1501
+
1502
+ # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
1503
+ # available from the path. This tool is part of Graphviz, a graph visualization
1504
+ # toolkit from AT&T and Lucent Bell Labs. The other options in this section
1505
+ # have no effect if this option is set to NO (the default)
1506
+
1507
+ HAVE_DOT = NO
1508
+
1509
+ # The DOT_NUM_THREADS specifies the number of dot invocations doxygen is
1510
+ # allowed to run in parallel. When set to 0 (the default) doxygen will
1511
+ # base this on the number of processors available in the system. You can set it
1512
+ # explicitly to a value larger than 0 to get control over the balance
1513
+ # between CPU load and processing speed.
1514
+
1515
+ DOT_NUM_THREADS = 0
1516
+
1517
+ # By default doxygen will write a font called Helvetica to the output
1518
+ # directory and reference it in all dot files that doxygen generates.
1519
+ # When you want a differently looking font you can specify the font name
1520
+ # using DOT_FONTNAME. You need to make sure dot is able to find the font,
1521
+ # which can be done by putting it in a standard location or by setting the
1522
+ # DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory
1523
+ # containing the font.
1524
+
1525
+ DOT_FONTNAME = Helvetica
1526
+
1527
+ # The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
1528
+ # The default size is 10pt.
1529
+
1530
+ DOT_FONTSIZE = 10
1531
+
1532
+ # By default doxygen will tell dot to use the output directory to look for the
1533
+ # FreeSans.ttf font (which doxygen will put there itself). If you specify a
1534
+ # different font using DOT_FONTNAME you can set the path where dot
1535
+ # can find it using this tag.
1536
+
1537
+ DOT_FONTPATH =
1538
+
1539
+ # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
1540
+ # will generate a graph for each documented class showing the direct and
1541
+ # indirect inheritance relations. Setting this tag to YES will force the
1542
+ # the CLASS_DIAGRAMS tag to NO.
1543
+
1544
+ CLASS_GRAPH = YES
1545
+
1546
+ # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
1547
+ # will generate a graph for each documented class showing the direct and
1548
+ # indirect implementation dependencies (inheritance, containment, and
1549
+ # class references variables) of the class with other documented classes.
1550
+
1551
+ COLLABORATION_GRAPH = YES
1552
+
1553
+ # If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
1554
+ # will generate a graph for groups, showing the direct groups dependencies
1555
+
1556
+ GROUP_GRAPHS = YES
1557
+
1558
+ # If the UML_LOOK tag is set to YES doxygen will generate inheritance and
1559
+ # collaboration diagrams in a style similar to the OMG's Unified Modeling
1560
+ # Language.
1561
+
1562
+ UML_LOOK = NO
1563
+
1564
+ # If set to YES, the inheritance and collaboration graphs will show the
1565
+ # relations between templates and their instances.
1566
+
1567
+ TEMPLATE_RELATIONS = NO
1568
+
1569
+ # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
1570
+ # tags are set to YES then doxygen will generate a graph for each documented
1571
+ # file showing the direct and indirect include dependencies of the file with
1572
+ # other documented files.
1573
+
1574
+ INCLUDE_GRAPH = YES
1575
+
1576
+ # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
1577
+ # HAVE_DOT tags are set to YES then doxygen will generate a graph for each
1578
+ # documented header file showing the documented files that directly or
1579
+ # indirectly include this file.
1580
+
1581
+ INCLUDED_BY_GRAPH = YES
1582
+
1583
+ # If the CALL_GRAPH and HAVE_DOT options are set to YES then
1584
+ # doxygen will generate a call dependency graph for every global function
1585
+ # or class method. Note that enabling this option will significantly increase
1586
+ # the time of a run. So in most cases it will be better to enable call graphs
1587
+ # for selected functions only using the \callgraph command.
1588
+
1589
+ CALL_GRAPH = NO
1590
+
1591
+ # If the CALLER_GRAPH and HAVE_DOT tags are set to YES then
1592
+ # doxygen will generate a caller dependency graph for every global function
1593
+ # or class method. Note that enabling this option will significantly increase
1594
+ # the time of a run. So in most cases it will be better to enable caller
1595
+ # graphs for selected functions only using the \callergraph command.
1596
+
1597
+ CALLER_GRAPH = NO
1598
+
1599
+ # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
1600
+ # will generate a graphical hierarchy of all classes instead of a textual one.
1601
+
1602
+ GRAPHICAL_HIERARCHY = YES
1603
+
1604
+ # If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
1605
+ # then doxygen will show the dependencies a directory has on other directories
1606
+ # in a graphical way. The dependency relations are determined by the #include
1607
+ # relations between the files in the directories.
1608
+
1609
+ DIRECTORY_GRAPH = YES
1610
+
1611
+ # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
1612
+ # generated by dot. Possible values are png, svg, gif or svg.
1613
+ # If left blank png will be used.
1614
+
1615
+ DOT_IMAGE_FORMAT = png
1616
+
1617
+ # The tag DOT_PATH can be used to specify the path where the dot tool can be
1618
+ # found. If left blank, it is assumed the dot tool can be found in the path.
1619
+
1620
+ DOT_PATH =
1621
+
1622
+ # The DOTFILE_DIRS tag can be used to specify one or more directories that
1623
+ # contain dot files that are included in the documentation (see the
1624
+ # \dotfile command).
1625
+
1626
+ DOTFILE_DIRS =
1627
+
1628
+ # The MSCFILE_DIRS tag can be used to specify one or more directories that
1629
+ # contain msc files that are included in the documentation (see the
1630
+ # \mscfile command).
1631
+
1632
+ MSCFILE_DIRS =
1633
+
1634
+ # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
1635
+ # nodes that will be shown in the graph. If the number of nodes in a graph
1636
+ # becomes larger than this value, doxygen will truncate the graph, which is
1637
+ # visualized by representing a node as a red box. Note that doxygen if the
1638
+ # number of direct children of the root node in a graph is already larger than
1639
+ # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note
1640
+ # that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
1641
+
1642
+ DOT_GRAPH_MAX_NODES = 50
1643
+
1644
+ # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
1645
+ # graphs generated by dot. A depth value of 3 means that only nodes reachable
1646
+ # from the root by following a path via at most 3 edges will be shown. Nodes
1647
+ # that lay further from the root node will be omitted. Note that setting this
1648
+ # option to 1 or 2 may greatly reduce the computation time needed for large
1649
+ # code bases. Also note that the size of a graph can be further restricted by
1650
+ # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
1651
+
1652
+ MAX_DOT_GRAPH_DEPTH = 0
1653
+
1654
+ # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
1655
+ # background. This is disabled by default, because dot on Windows does not
1656
+ # seem to support this out of the box. Warning: Depending on the platform used,
1657
+ # enabling this option may lead to badly anti-aliased labels on the edges of
1658
+ # a graph (i.e. they become hard to read).
1659
+
1660
+ DOT_TRANSPARENT = NO
1661
+
1662
+ # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
1663
+ # files in one run (i.e. multiple -o and -T options on the command line). This
1664
+ # makes dot run faster, but since only newer versions of dot (>1.8.10)
1665
+ # support this, this feature is disabled by default.
1666
+
1667
+ DOT_MULTI_TARGETS = YES
1668
+
1669
+ # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
1670
+ # generate a legend page explaining the meaning of the various boxes and
1671
+ # arrows in the dot generated graphs.
1672
+
1673
+ GENERATE_LEGEND = YES
1674
+
1675
+ # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
1676
+ # remove the intermediate dot files that are used to generate
1677
+ # the various graphs.
1678
+
1679
+ DOT_CLEANUP = YES