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