utils/print-introspected-doxygen.cc
author Tom Henderson <tomh@tomh.org>
Thu, 05 Feb 2015 13:02:44 -0800
changeset 11214 103f62fc7d58
parent 11185 7d6c1139be2f
child 11533 6769680336c8
permissions -rw-r--r--
small edits on previous commit
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
10996
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
     1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
     2
/*
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
     3
 * Copyright (c) 2007 INRIA
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
     4
 *
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
     6
 * it under the terms of the GNU General Public License version 2 as
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
     7
 * published by the Free Software Foundation;
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
     8
 *
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
    12
 * GNU General Public License for more details.
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
    13
 *
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
    14
 * You should have received a copy of the GNU General Public License
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
    15
 * along with this program; if not, write to the Free Software
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
    16
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
    17
 *
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
    18
 * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
    19
 */
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
    20
2602
d9262bff6df2 add back support for introspected doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2600
diff changeset
    21
#include <iostream>
6848
1f453ad50ef3 Converts csma, emu, tap-bridge, point-to-point, wifi and wimax modules into modular format
Lalith Suresh <suresh.lalith@gmail.com>
parents: 4641
diff changeset
    22
#include <algorithm>
7519
77e27ba9b9a1 Make the source code introspection program output text
Mitch Watrous <watrous@u.washington.edu>
parents: 7412
diff changeset
    23
#include <map>
11006
310f33c6d77c Fix missing header
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents: 10999
diff changeset
    24
#include <climits>    // CHAR_BIT
9899
2816cb6d8abd Add missing limits.h include to nstime.h and print-introspected-doxygen.cc
Vedran Miletić <rivanvx@gmail.com>
parents: 9873
diff changeset
    25
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
    26
#include "ns3/command-line.h"
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
    27
#include "ns3/config.h"
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
    28
#include "ns3/global-value.h"
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
    29
#include "ns3/log.h"
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
    30
#include "ns3/object-vector.h"
2602
d9262bff6df2 add back support for introspected doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2600
diff changeset
    31
#include "ns3/object.h"
2944
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
    32
#include "ns3/pointer.h"
4513
544c9d637ff1 bug 580: doxygen introspection does not document global values
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4364
diff changeset
    33
#include "ns3/string.h"
6994
4ab8b23631fd repair print-introspected-doxygen
Tom Henderson <tomh@tomh.org>
parents: 6865
diff changeset
    34
#include "ns3/node-container.h"
11185
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
    35
#include "ns3/simple-channel.h"
1368
e75dc1a2a5fb add TraceResolver::PrintAvailable method
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    36
e75dc1a2a5fb add TraceResolver::PrintAvailable method
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    37
using namespace ns3;
e75dc1a2a5fb add TraceResolver::PrintAvailable method
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    38
6994
4ab8b23631fd repair print-introspected-doxygen
Tom Henderson <tomh@tomh.org>
parents: 6865
diff changeset
    39
NS_LOG_COMPONENT_DEFINE ("PrintIntrospectedDoxygen");
2944
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
    40
7519
77e27ba9b9a1 Make the source code introspection program output text
Mitch Watrous <watrous@u.washington.edu>
parents: 7412
diff changeset
    41
namespace
77e27ba9b9a1 Make the source code introspection program output text
Mitch Watrous <watrous@u.washington.edu>
parents: 7412
diff changeset
    42
{
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
    43
  std::string anchor;              ///< hyperlink anchor
11036
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
    44
  std::string argument;            ///< function argument
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
    45
  std::string boldStart;           ///< start of bold span
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
    46
  std::string boldStop;            ///< end of bold span
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
    47
  std::string breakBoth;           ///< linebreak
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
    48
  std::string breakHtmlOnly;       ///< linebreak for html output only
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
    49
  std::string breakTextOnly;       ///< linebreak for text output only
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
    50
  std::string brief;               ///< brief tag
11036
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
    51
  std::string classStart;          ///< start of a class
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
    52
  std::string classStop;           ///< end of a class
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
    53
  std::string codeWord;            ///< format next word as source code
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
    54
  std::string commentStart;        ///< start of code comment
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
    55
  std::string commentStop;         ///< end of code comment
11036
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
    56
  std::string copyDoc;             ///< copy (or refer) to docs elsewhere
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
    57
  std::string flagSpanStart;       ///< start of Attribute flag value
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
    58
  std::string flagSpanStop;        ///< end of Attribute flag value
11036
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
    59
  std::string functionStart;       ///< start of a method/function
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
    60
  std::string functionStop;        ///< end of a method/function
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
    61
  std::string headingStart;        ///< start of section heading (h3)
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
    62
  std::string headingStop;         ///< end of section heading (h3)
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
    63
  std::string indentHtmlOnly;      ///< small indent
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
    64
  std::string listLineStart;       ///< start unordered list item
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
    65
  std::string listLineStop;        ///< end unordered list item
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
    66
  std::string listStart;           ///< start unordered list
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
    67
  std::string listStop;            ///< end unordered list
10996
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
    68
  std::string page;                ///< start a separate page
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
    69
  std::string reference;           ///< reference tag
11036
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
    70
  std::string returns;             ///< the return value
10994
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
    71
  std::string sectionStart;        ///< start of a section or group
11036
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
    72
  std::string seeAlso;             ///< Reference to other docs
10994
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
    73
  std::string subSectionStart;     ///< start a new subsection
11036
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
    74
  std::string variable;            ///< variable or class member
7519
77e27ba9b9a1 Make the source code introspection program output text
Mitch Watrous <watrous@u.washington.edu>
parents: 7412
diff changeset
    75
77e27ba9b9a1 Make the source code introspection program output text
Mitch Watrous <watrous@u.washington.edu>
parents: 7412
diff changeset
    76
} // anonymous namespace
77e27ba9b9a1 Make the source code introspection program output text
Mitch Watrous <watrous@u.washington.edu>
parents: 7412
diff changeset
    77
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
    78
10994
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
    79
/**
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
    80
 * Initialize the markup strings, for either doxygen or text.
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
    81
 *
11036
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
    82
 * \param [in] outputText true for text output, false for doxygen output.
10994
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
    83
 */
2602
d9262bff6df2 add back support for introspected doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2600
diff changeset
    84
void
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
    85
SetMarkup (bool outputText)
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
    86
{
10999
771294355b2e [Doxygen] Include the size of registered types in the long description for the class.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10996
diff changeset
    87
  NS_LOG_FUNCTION (outputText);
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
    88
  if (outputText)
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
    89
    {
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
    90
      anchor                       = "";
11036
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
    91
      argument                     = "  Arg: ";
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
    92
      boldStart                    = "";
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
    93
      boldStop                     = "";
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
    94
      breakBoth                    = "\n";
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
    95
      breakHtmlOnly                = "";
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
    96
      breakTextOnly                = "\n";
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
    97
      brief                        = "";
11036
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
    98
      classStart                   = "";
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
    99
      classStop                    = "\n\n";
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   100
      codeWord                     = " ";
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   101
      commentStart                 = "===============================================================\n";
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   102
      commentStop                  = "";
11036
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   103
      copyDoc                      = "  See: ";
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   104
      flagSpanStart                = "";
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   105
      flagSpanStop                 = "";
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   106
      functionStart                = "";
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   107
      functionStop                 = "\n\n";
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   108
      headingStart                 = "";
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   109
      headingStop                  = "";
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   110
      indentHtmlOnly               = "";
10996
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
   111
      page                         = "Page ";
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   112
      listStart                    = "";
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   113
      listStop                     = "";
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   114
      listLineStart                = "    * ";
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   115
      listLineStop                 = "";
11036
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   116
      reference                    = " ";
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   117
      returns                      = "  Returns: ";
10994
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   118
      sectionStart                 = "Section ";
11036
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   119
      seeAlso                      = "  See: ";
10994
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   120
      subSectionStart              = "Subsection ";
11036
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   121
      variable                     = "Variable: ";
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   122
    }
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   123
  else
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   124
    {
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   125
      anchor                       = "\\anchor ";
11036
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   126
      argument                     = "\\param ";
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   127
      boldStart                    = "<b>";
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   128
      boldStop                     = "</b>";
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   129
      breakBoth                    = "<br>";
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   130
      breakHtmlOnly                = "<br>";
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   131
      breakTextOnly                = "";
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   132
      brief                        = "\\brief ";
11036
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   133
      classStart                   = "\\class ";
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   134
      classStop                    = "";
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   135
      codeWord                     = "\\p ";
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   136
      commentStart                 = "/*!\n";
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   137
      commentStop                  = "*/\n";
11036
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   138
      copyDoc                      = "\\copydoc ";
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   139
      flagSpanStart                = "<span class=\"mlabel\">";
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   140
      flagSpanStop                 = "</span>";
11036
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   141
      functionStart                = "\\fn ";
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   142
      functionStop                 = "";
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   143
      headingStart                 = "<h3>";
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   144
      headingStop                  = "</h3>";
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   145
      indentHtmlOnly               = "  ";
10996
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
   146
      page                         = "\\page ";
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   147
      listStart                    = "<ul>";
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   148
      listStop                     = "</ul>";
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   149
      listLineStart                = "<li>";
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   150
      listLineStop                 = "</li>";
11036
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   151
      reference                    = " \\ref ";
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   152
      returns                      = "\\returns ";
10994
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   153
      sectionStart                 = "\\ingroup ";
11036
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   154
      seeAlso                      = "\\see ";
10994
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   155
      subSectionStart              = "\\addtogroup ";
11036
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   156
      variable                     = "\\var ";
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   157
    }
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   158
}  // SetMarkup ()
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   159
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   160
11036
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   161
/***************************************************************
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   162
 *        Docs for a single TypeId
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   163
 ***************************************************************/
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   164
10994
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   165
/**
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   166
 * Print direct Attributes for this TypeId.
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   167
 *
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   168
 * Only attributes defined directly by this TypeId will be printed.
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   169
 *
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   170
 * \param [in,out] os The output stream.
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   171
 * \param [in] tid The TypeId to print.
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   172
 */
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   173
void
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   174
PrintAttributesTid (std::ostream &os, const TypeId tid)
2602
d9262bff6df2 add back support for introspected doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2600
diff changeset
   175
{
10999
771294355b2e [Doxygen] Include the size of registered types in the long description for the class.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10996
diff changeset
   176
  NS_LOG_FUNCTION (tid);
7519
77e27ba9b9a1 Make the source code introspection program output text
Mitch Watrous <watrous@u.washington.edu>
parents: 7412
diff changeset
   177
  os << listStart << std::endl;
2693
56e28e34e109 TypeId::GetAttributeListN -> TypeId::GetAttributeN
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2602
diff changeset
   178
  for (uint32_t j = 0; j < tid.GetAttributeN (); j++)
2602
d9262bff6df2 add back support for introspected doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2600
diff changeset
   179
    {
7393
8c3dfe0be54d use new API. kill old one.
Mathieu Lacage <mathieu.lacage@gmail.com>
parents: 7233
diff changeset
   180
      struct TypeId::AttributeInformation info = tid.GetAttribute(j);
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   181
      os << listLineStart
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   182
	 <<   boldStart << info.name << boldStop << ": "
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   183
	 <<   info.help
10994
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   184
	 <<   std::endl;
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   185
      os <<   "  "
10994
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   186
	 <<   listStart << std::endl;
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   187
      os <<     "    "
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   188
	 <<     listLineStart
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   189
	 <<       "Set with class: " << reference
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   190
	 <<       info.checker->GetValueTypeName ()
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   191
	 <<     listLineStop
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   192
	 << std::endl;
7393
8c3dfe0be54d use new API. kill old one.
Mathieu Lacage <mathieu.lacage@gmail.com>
parents: 7233
diff changeset
   193
      if (info.checker->HasUnderlyingTypeInformation ())
2602
d9262bff6df2 add back support for introspected doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2600
diff changeset
   194
	{
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   195
	  os << "    "
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   196
	     << listLineStart
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   197
	     <<   "Underlying type: ";
11036
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   198
          
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   199
          std::string valType = info.checker->GetValueTypeName ();
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   200
          std::string underType = info.checker->GetUnderlyingTypeInformation ();
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   201
	  if ((valType   != "ns3::EnumValue") && (underType != "std::string"))
9140
e4e4a089b802 Fix oxygen errors in doc/introspected-doxygen.h
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9127
diff changeset
   202
	    {
11036
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   203
	      // Indirect cases to handle
10654
0148f9c47331 [doxygen] Make introspected lists more visible, various other doxy
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9906
diff changeset
   204
	      bool handled = false;
11036
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   205
              
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   206
	      if (valType == "ns3::PointerValue")
10654
0148f9c47331 [doxygen] Make introspected lists more visible, various other doxy
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9906
diff changeset
   207
		{
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   208
		  const PointerChecker *ptrChecker =
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   209
		    dynamic_cast<const PointerChecker *> (PeekPointer (info.checker));
10654
0148f9c47331 [doxygen] Make introspected lists more visible, various other doxy
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9906
diff changeset
   210
		  if (ptrChecker != 0)
0148f9c47331 [doxygen] Make introspected lists more visible, various other doxy
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9906
diff changeset
   211
		    {
0148f9c47331 [doxygen] Make introspected lists more visible, various other doxy
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9906
diff changeset
   212
		      os << reference << "ns3::Ptr" << "< "
0148f9c47331 [doxygen] Make introspected lists more visible, various other doxy
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9906
diff changeset
   213
			 << reference << ptrChecker->GetPointeeTypeId ().GetName ()
0148f9c47331 [doxygen] Make introspected lists more visible, various other doxy
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9906
diff changeset
   214
			 << ">";
0148f9c47331 [doxygen] Make introspected lists more visible, various other doxy
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9906
diff changeset
   215
		      handled = true;
0148f9c47331 [doxygen] Make introspected lists more visible, various other doxy
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9906
diff changeset
   216
		    }
0148f9c47331 [doxygen] Make introspected lists more visible, various other doxy
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9906
diff changeset
   217
		}
11036
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   218
	      else if (valType == "ns3::ObjectPtrContainerValue")
10654
0148f9c47331 [doxygen] Make introspected lists more visible, various other doxy
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9906
diff changeset
   219
		{
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   220
		  const ObjectPtrContainerChecker * ptrChecker =
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   221
		    dynamic_cast<const ObjectPtrContainerChecker *> (PeekPointer (info.checker));
10654
0148f9c47331 [doxygen] Make introspected lists more visible, various other doxy
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9906
diff changeset
   222
		  if (ptrChecker != 0)
0148f9c47331 [doxygen] Make introspected lists more visible, various other doxy
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9906
diff changeset
   223
		    {
0148f9c47331 [doxygen] Make introspected lists more visible, various other doxy
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9906
diff changeset
   224
		      os << reference << "ns3::Ptr" << "< "
0148f9c47331 [doxygen] Make introspected lists more visible, various other doxy
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9906
diff changeset
   225
			 << reference << ptrChecker->GetItemTypeId ().GetName ()
0148f9c47331 [doxygen] Make introspected lists more visible, various other doxy
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9906
diff changeset
   226
			 << ">";
0148f9c47331 [doxygen] Make introspected lists more visible, various other doxy
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9906
diff changeset
   227
		      handled = true;
0148f9c47331 [doxygen] Make introspected lists more visible, various other doxy
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9906
diff changeset
   228
		    }
0148f9c47331 [doxygen] Make introspected lists more visible, various other doxy
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9906
diff changeset
   229
		}
11036
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   230
              // Helper to match first part of string
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   231
              class StringBeginMatcher
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   232
              {
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   233
              public:
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   234
                StringBeginMatcher (const std::string s)
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   235
                  : m_string (s) { };
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   236
                bool operator () (const std::string t)
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   237
                {
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   238
                  std::size_t pos = m_string.find (t);
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   239
                  return pos == 0;
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   240
                };
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   241
              private:
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   242
                std::string m_string;
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   243
              };
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   244
              StringBeginMatcher match (underType);
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   245
                  
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   246
              if ( match ("bool")     || match ("double")   ||
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   247
                   match ("int8_t")   || match ("uint8_t")  ||
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   248
                   match ("int16_t")  || match ("uint16_t") ||
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   249
                   match ("int32_t")  || match ("uint32_t") ||
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   250
                   match ("int64_t")  || match ("uint64_t")
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   251
                   )
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   252
                {
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   253
                  os << underType;
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   254
                  handled = true;
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   255
                }
10654
0148f9c47331 [doxygen] Make introspected lists more visible, various other doxy
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9906
diff changeset
   256
	      if (! handled)
0148f9c47331 [doxygen] Make introspected lists more visible, various other doxy
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9906
diff changeset
   257
		{
11036
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   258
		  os << reference << underType;
10654
0148f9c47331 [doxygen] Make introspected lists more visible, various other doxy
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9906
diff changeset
   259
		}
9140
e4e4a089b802 Fix oxygen errors in doc/introspected-doxygen.h
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9127
diff changeset
   260
	    }
10654
0148f9c47331 [doxygen] Make introspected lists more visible, various other doxy
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9906
diff changeset
   261
	  os << listLineStop << std::endl;
2602
d9262bff6df2 add back support for introspected doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2600
diff changeset
   262
	}
7393
8c3dfe0be54d use new API. kill old one.
Mathieu Lacage <mathieu.lacage@gmail.com>
parents: 7233
diff changeset
   263
      if (info.flags & TypeId::ATTR_CONSTRUCT && info.accessor->HasSetter ())
2971
75780f899be3 output the initial value of the attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2969
diff changeset
   264
	{
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   265
	  os << "    "
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   266
	     << listLineStart
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   267
	     <<   "Initial value: "
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   268
	     <<   info.initialValue->SerializeToString (info.checker)
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   269
	     << listLineStop
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   270
	     << std::endl;
2971
75780f899be3 output the initial value of the attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2969
diff changeset
   271
	}
7519
77e27ba9b9a1 Make the source code introspection program output text
Mitch Watrous <watrous@u.washington.edu>
parents: 7412
diff changeset
   272
      os << "    " << listLineStart << "Flags: ";
7393
8c3dfe0be54d use new API. kill old one.
Mathieu Lacage <mathieu.lacage@gmail.com>
parents: 7233
diff changeset
   273
      if (info.flags & TypeId::ATTR_CONSTRUCT && info.accessor->HasSetter ())
2971
75780f899be3 output the initial value of the attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2969
diff changeset
   274
	{
9124
4ee743993c0a Highlight attribute flags in doxygen html
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9116
diff changeset
   275
	  os << flagSpanStart << "construct " << flagSpanStop;
2971
75780f899be3 output the initial value of the attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2969
diff changeset
   276
	}
7393
8c3dfe0be54d use new API. kill old one.
Mathieu Lacage <mathieu.lacage@gmail.com>
parents: 7233
diff changeset
   277
      if (info.flags & TypeId::ATTR_SET && info.accessor->HasSetter ())
2602
d9262bff6df2 add back support for introspected doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2600
diff changeset
   278
	{
9124
4ee743993c0a Highlight attribute flags in doxygen html
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9116
diff changeset
   279
	  os << flagSpanStart << "write " << flagSpanStop;
2602
d9262bff6df2 add back support for introspected doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2600
diff changeset
   280
	}
7393
8c3dfe0be54d use new API. kill old one.
Mathieu Lacage <mathieu.lacage@gmail.com>
parents: 7233
diff changeset
   281
      if (info.flags & TypeId::ATTR_GET && info.accessor->HasGetter ())
2602
d9262bff6df2 add back support for introspected doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2600
diff changeset
   282
	{
9124
4ee743993c0a Highlight attribute flags in doxygen html
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9116
diff changeset
   283
	  os << flagSpanStart << "read " << flagSpanStop;
2602
d9262bff6df2 add back support for introspected doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2600
diff changeset
   284
	}
7519
77e27ba9b9a1 Make the source code introspection program output text
Mitch Watrous <watrous@u.washington.edu>
parents: 7412
diff changeset
   285
      os << listLineStop << std::endl;
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   286
      os << "  "
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   287
	 << listStop
10994
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   288
	 << " " << std::endl;
2602
d9262bff6df2 add back support for introspected doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2600
diff changeset
   289
      
d9262bff6df2 add back support for introspected doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2600
diff changeset
   290
    }
7519
77e27ba9b9a1 Make the source code introspection program output text
Mitch Watrous <watrous@u.washington.edu>
parents: 7412
diff changeset
   291
  os << listStop << std::endl;
11036
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   292
}  // PrintAttributesTid ()
1399
5945e92014e2 move printing to client code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1376
diff changeset
   293
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   294
10994
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   295
/**
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   296
 * Print the Attributes block for tid,
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   297
 * including Attributes declared in base classes.
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   298
 *
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   299
 * All Attributes of this TypeId will be printed,
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   300
 * including those defined in parent classes.
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   301
 *
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   302
 * \param [in,out] os The output stream.
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   303
 * \param [in] tid The TypeId to print.
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   304
 */
2945
8e9f4dc59d8b print list of trace sources
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2944
diff changeset
   305
void
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   306
PrintAttributes (std::ostream & os, const TypeId tid)
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   307
{
10999
771294355b2e [Doxygen] Include the size of registered types in the long description for the class.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10996
diff changeset
   308
  NS_LOG_FUNCTION (tid);
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   309
  if (tid.GetAttributeN () == 0)
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   310
    {
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   311
      os << "No Attributes are defined for this type."
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   312
	 << breakBoth
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   313
	 << std::endl;
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   314
    }
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   315
  else
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   316
    {
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   317
      os << headingStart
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   318
	 <<   "Attributes"
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   319
	 << headingStop
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   320
	 << std::endl;
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   321
      PrintAttributesTid (os, tid);
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   322
    }
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   323
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   324
  // Attributes from base classes
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   325
  TypeId tmp = tid.GetParent ();
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   326
  while (tmp.GetParent () != tmp)
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   327
    {
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   328
      if (tmp.GetAttributeN () != 0)
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   329
	{
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   330
	  os << headingStart
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   331
	     <<   "Attributes defined in parent class "
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   332
	     <<   tmp.GetName ()
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   333
	     << headingStop
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   334
	     << std::endl;
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   335
	  PrintAttributesTid (os, tmp);
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   336
	}
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   337
      tmp = tmp.GetParent ();
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   338
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   339
    }  // Attributes
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   340
} // PrintAttributes ()
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   341
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   342
10994
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   343
/**
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   344
 * Print direct Trace sources for this TypeId.
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   345
 *
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   346
 * Only Trace sources defined directly by this TypeId will be printed.
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   347
 *
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   348
 * \param [in,out] os The output stream.
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   349
 * \param [in] tid The TypeId to print.
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   350
 */
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   351
void
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   352
PrintTraceSourcesTid (std::ostream & os, const TypeId tid)
2945
8e9f4dc59d8b print list of trace sources
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2944
diff changeset
   353
{
10999
771294355b2e [Doxygen] Include the size of registered types in the long description for the class.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10996
diff changeset
   354
  NS_LOG_FUNCTION (tid);
7519
77e27ba9b9a1 Make the source code introspection program output text
Mitch Watrous <watrous@u.washington.edu>
parents: 7412
diff changeset
   355
  os << listStart << std::endl;
2945
8e9f4dc59d8b print list of trace sources
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2944
diff changeset
   356
  for (uint32_t i = 0; i < tid.GetTraceSourceN (); ++i)
8e9f4dc59d8b print list of trace sources
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2944
diff changeset
   357
    {
7395
a1bb24a8ae25 use new API, kill old one.
Mathieu Lacage <mathieu.lacage@gmail.com>
parents: 7394
diff changeset
   358
      struct TypeId::TraceSourceInformation info = tid.GetTraceSource (i);
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   359
      os << listLineStart
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   360
	 <<   boldStart << info.name << boldStop << ": "
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   361
	 <<   info.help << breakBoth
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   362
	//    '%' prevents doxygen from linking to the Callback class...
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   363
	 <<   "%Callback signature: " 
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   364
	 <<   info.callback
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   365
	 <<   std::endl;
7519
77e27ba9b9a1 Make the source code introspection program output text
Mitch Watrous <watrous@u.washington.edu>
parents: 7412
diff changeset
   366
      os << listLineStop << std::endl;
2945
8e9f4dc59d8b print list of trace sources
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2944
diff changeset
   367
    }
7519
77e27ba9b9a1 Make the source code introspection program output text
Mitch Watrous <watrous@u.washington.edu>
parents: 7412
diff changeset
   368
  os << listStop << std::endl;
11036
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   369
}  // PrintTraceSourcesTid ()
2945
8e9f4dc59d8b print list of trace sources
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2944
diff changeset
   370
8e9f4dc59d8b print list of trace sources
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2944
diff changeset
   371
10994
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   372
/**
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   373
 * Print the Trace sources block for tid,
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   374
 * including Trace sources declared in base classes.
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   375
 *
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   376
 * All Trace sources of this TypeId will be printed,
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   377
 * including those defined in parent classes.
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   378
 *
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   379
 * \param [in,out] os The output stream.
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   380
 * \param [in] tid The TypeId to print.
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   381
 */
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   382
void
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   383
PrintTraceSources (std::ostream & os, const TypeId tid)
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   384
{
10999
771294355b2e [Doxygen] Include the size of registered types in the long description for the class.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10996
diff changeset
   385
  NS_LOG_FUNCTION (tid);
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   386
  if (tid.GetTraceSourceN () == 0)
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   387
    {
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   388
      os << "No TraceSources are defined for this type."
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   389
	 << breakBoth
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   390
	 << std::endl;
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   391
    }
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   392
  else
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   393
    {
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   394
      os << headingStart
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   395
	 <<   "TraceSources"
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   396
	 << headingStop  << std::endl;
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   397
      PrintTraceSourcesTid (os, tid);
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   398
    }
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   399
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   400
  // Trace sources from base classes
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   401
  TypeId tmp = tid.GetParent ();
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   402
  while (tmp.GetParent () != tmp)
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   403
    {
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   404
      if (tmp.GetTraceSourceN () != 0)
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   405
	{
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   406
	  os << headingStart
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   407
	     << "TraceSources defined in parent class "
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   408
	     << tmp.GetName ()
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   409
	     << headingStop << std::endl;
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   410
	  PrintTraceSourcesTid (os, tmp);
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   411
	}
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   412
      tmp = tmp.GetParent ();
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   413
    }
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   414
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   415
}  // PrintTraceSources ()
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   416
10999
771294355b2e [Doxygen] Include the size of registered types in the long description for the class.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10996
diff changeset
   417
/**
771294355b2e [Doxygen] Include the size of registered types in the long description for the class.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10996
diff changeset
   418
 * Print the size of the type represented by this tid.
771294355b2e [Doxygen] Include the size of registered types in the long description for the class.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10996
diff changeset
   419
 *
771294355b2e [Doxygen] Include the size of registered types in the long description for the class.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10996
diff changeset
   420
 * \param [in,out] os The output stream.
771294355b2e [Doxygen] Include the size of registered types in the long description for the class.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10996
diff changeset
   421
 * \param [in] tid The TypeId to print.
771294355b2e [Doxygen] Include the size of registered types in the long description for the class.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10996
diff changeset
   422
 */
771294355b2e [Doxygen] Include the size of registered types in the long description for the class.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10996
diff changeset
   423
void PrintSize (std::ostream & os, const TypeId tid)
771294355b2e [Doxygen] Include the size of registered types in the long description for the class.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10996
diff changeset
   424
{
771294355b2e [Doxygen] Include the size of registered types in the long description for the class.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10996
diff changeset
   425
  NS_LOG_FUNCTION (tid);
771294355b2e [Doxygen] Include the size of registered types in the long description for the class.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10996
diff changeset
   426
  NS_ASSERT_MSG (CHAR_BIT != 0, "CHAR_BIT is zero");
771294355b2e [Doxygen] Include the size of registered types in the long description for the class.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10996
diff changeset
   427
  
771294355b2e [Doxygen] Include the size of registered types in the long description for the class.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10996
diff changeset
   428
  std::size_t arch = (sizeof (void *) * CHAR_BIT);
771294355b2e [Doxygen] Include the size of registered types in the long description for the class.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10996
diff changeset
   429
  
771294355b2e [Doxygen] Include the size of registered types in the long description for the class.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10996
diff changeset
   430
  os << boldStart << "Size" << boldStop
771294355b2e [Doxygen] Include the size of registered types in the long description for the class.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10996
diff changeset
   431
     << " of this type is " << tid.GetSize ()
771294355b2e [Doxygen] Include the size of registered types in the long description for the class.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10996
diff changeset
   432
     << " bytes (on a " << arch << "-bit architecture)."
771294355b2e [Doxygen] Include the size of registered types in the long description for the class.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10996
diff changeset
   433
     << std::endl;
11036
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   434
}  // PrintSize ()
10999
771294355b2e [Doxygen] Include the size of registered types in the long description for the class.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10996
diff changeset
   435
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   436
11036
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   437
/***************************************************************
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   438
 *        Lists of All things
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   439
 ***************************************************************/
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   440
10994
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   441
/**
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   442
 * Print the list of all Attributes.
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   443
 *
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   444
 * \param [in,out] os The output stream.
10999
771294355b2e [Doxygen] Include the size of registered types in the long description for the class.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10996
diff changeset
   445
 */
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   446
void
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   447
PrintAllAttributes (std::ostream & os)
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   448
{
10999
771294355b2e [Doxygen] Include the size of registered types in the long description for the class.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10996
diff changeset
   449
  NS_LOG_FUNCTION_NOARGS ();
10996
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
   450
  os << commentStart << page << "AttributeList All Attributes\n"
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   451
     << std::endl;
11036
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   452
  os << "This is a list of all" << reference << "attribute by class.  "
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   453
     << "For more information see the" << reference << "attribute "
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   454
     << "section of this API documentation and the Attributes sections "
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   455
     << "in the Tutorial and Manual.\n"
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   456
     << std::endl;
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   457
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   458
  for (uint32_t i = 0; i < TypeId::GetRegisteredN (); ++i)
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   459
    {
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   460
      TypeId tid = TypeId::GetRegistered (i);
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   461
      if (tid.GetAttributeN () == 0 ||
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   462
	  tid.MustHideFromDocumentation ())
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   463
	{
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   464
	  continue;
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   465
	}
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   466
      os << boldStart << tid.GetName () << boldStop << breakHtmlOnly
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   467
	 << std::endl;
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   468
      
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   469
      os << listStart << std::endl;
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   470
      for (uint32_t j = 0; j < tid.GetAttributeN (); ++j)
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   471
	{
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   472
	  struct TypeId::AttributeInformation info = tid.GetAttribute(j);
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   473
	  os << listLineStart
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   474
	     <<   boldStart << info.name << boldStop
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   475
	     <<   ": "      << info.help
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   476
	     << listLineStop
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   477
	     << std::endl;
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   478
	}
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   479
      os << listStop << std::endl;
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   480
    }
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   481
  os << commentStop << std::endl;
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   482
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   483
}  // PrintAllAttributes ()
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   484
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   485
10994
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   486
/**
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   487
 * Print the list of all global variables.
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   488
 *
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   489
 * \param [in,out] os The output stream.
75acf4f04bdb [doxygen] print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10993
diff changeset
   490
 */
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   491
void
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   492
PrintAllGlobals (std::ostream & os)
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   493
{
10999
771294355b2e [Doxygen] Include the size of registered types in the long description for the class.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10996
diff changeset
   494
  NS_LOG_FUNCTION_NOARGS ();
10996
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
   495
  os << commentStart << page << "GlobalValueList All GlobalValues\n"
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   496
     << std::endl;
11036
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   497
  os << "This is a list of all" << reference << "ns3::GlobalValue instances.\n"
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   498
     << std::endl;
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   499
  
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   500
  os << listStart << std::endl;
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   501
  for (GlobalValue::Iterator i = GlobalValue::Begin ();
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   502
       i != GlobalValue::End ();
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   503
       ++i)
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   504
    {
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   505
      StringValue val;
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   506
      (*i)->GetValue (val);
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   507
      os << indentHtmlOnly
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   508
	 <<   listLineStart
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   509
	 <<     boldStart
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   510
	 <<       anchor
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   511
	 <<       "GlobalValue" << (*i)->GetName () << " " << (*i)->GetName ()
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   512
	 <<     boldStop
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   513
	 <<     ": "            << (*i)->GetHelp ()
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   514
	 <<     ".  Default value: " << val.Get () << "."
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   515
	 <<   listLineStop
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   516
	 << std::endl;
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   517
    }
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   518
  os << listStop << std::endl;
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   519
  os << commentStop << std::endl;
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   520
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   521
}  // PrintAllGlobals ()
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   522
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   523
9127
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
   524
/**
10996
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
   525
 * Print the list of all LogComponents.
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
   526
 *
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
   527
 * \param [in,out] os The output stream.
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
   528
 */
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
   529
void
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
   530
PrintAllLogComponents (std::ostream & os)
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
   531
{
10999
771294355b2e [Doxygen] Include the size of registered types in the long description for the class.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10996
diff changeset
   532
  NS_LOG_FUNCTION_NOARGS ();
10996
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
   533
  os << commentStart << page << "LogComponentList All LogComponents\n"
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
   534
     << std::endl;
11036
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   535
  os << "This is a list of all" << reference << "ns3::LogComponent instances.\n"
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   536
     << std::endl;
10996
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
   537
11046
e62bccfbe56e [Doxygen] various in src/core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11036
diff changeset
   538
  /**
e62bccfbe56e [Doxygen] various in src/core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11036
diff changeset
   539
   * \todo Switch to a border-less table, so the file links align
e62bccfbe56e [Doxygen] various in src/core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11036
diff changeset
   540
   * See http://www.stack.nl/~dimitri/doxygen/manual/htmlcmds.html
e62bccfbe56e [Doxygen] various in src/core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11036
diff changeset
   541
   */
10996
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
   542
  os << listStart << std::endl;
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
   543
  LogComponent::ComponentList * logs = LogComponent::GetComponentList ();
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
   544
  LogComponent::ComponentList::const_iterator it;
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
   545
  for (it = logs->begin (); it != logs->end (); ++it)
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
   546
    {
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
   547
      std::string file = it->second->File ();
11036
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   548
      // Strip leading "../" related to depth in build directory
11046
e62bccfbe56e [Doxygen] various in src/core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11036
diff changeset
   549
      // since doxygen only sees the path starting with "src/", etc.
11036
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   550
      while (file.find ("../") == 0)
10996
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
   551
        {
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
   552
          file = file.substr (3);
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
   553
        }
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
   554
      
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
   555
      os << listLineStart
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
   556
         <<   boldStart << it->first << boldStop <<   ": " << file
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
   557
         << listLineStop
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
   558
         << std::endl;
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
   559
    }
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
   560
  os << listStop << std::endl;
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
   561
  os << commentStop << std::endl;
11036
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   562
}  // PrintAllLogComponents ()
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   563
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   564
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   565
/**
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   566
 * Print the list of all Trace sources.
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   567
 *
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   568
 * \param [in,out] os The output stream.
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   569
 */
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   570
void
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   571
PrintAllTraceSources (std::ostream & os)
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   572
{
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   573
  NS_LOG_FUNCTION_NOARGS ();
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   574
  os << commentStart << page << "TraceSourceList All TraceSources\n"
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   575
     << std::endl;
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   576
  os << "This is a list of all" << reference << "tracing sources.  "
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   577
     << "For more information see the " << reference << "tracing "
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   578
     << "section of this API documentation and the Tracing sections "
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   579
     << "in the Tutorial and Manual.\n"
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   580
     << std::endl;
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   581
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   582
  for (uint32_t i = 0; i < TypeId::GetRegisteredN (); ++i)
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   583
    {
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   584
      TypeId tid = TypeId::GetRegistered (i);
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   585
      if (tid.GetTraceSourceN () == 0 ||
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   586
	  tid.MustHideFromDocumentation ())
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   587
	{
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   588
	  continue;
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   589
	}
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   590
      os << boldStart << tid.GetName () << boldStop  << breakHtmlOnly
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   591
	 << std::endl;
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   592
      
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   593
      os << listStart << std::endl;
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   594
      for (uint32_t j = 0; j < tid.GetTraceSourceN (); ++j)
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   595
	{
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   596
	  struct TypeId::TraceSourceInformation info = tid.GetTraceSource(j);
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   597
	  os << listLineStart 
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   598
	     <<   boldStart << info.name << boldStop
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   599
	     <<   ": "      << info.help
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   600
	     << listLineStop
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   601
	     << std::endl;
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   602
	}
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   603
      os << listStop << std::endl;
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   604
    }
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   605
  os << commentStop << std::endl;
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   606
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   607
}  // PrintAllTraceSources ()
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   608
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   609
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   610
/***************************************************************
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   611
 *        Docs for Attribute classes
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   612
 ***************************************************************/
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   613
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   614
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   615
/**
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   616
 * Print the section definition for an AttributeValue.
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   617
 *
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   618
 * In doxygen form this will print a comment block with
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   619
 * \verbatim
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   620
 *   \ingroup attribute
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   621
 *   \defgroup attribute_<name>Value <name>Value
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   622
 * \endverbatim
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   623
 *
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   624
 * \param [in,out] os The output stream.
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   625
 * \param [in] name The base name of the resulting AttributeValue type.
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   626
 * \param [in] seeBase Print a "see also" pointing to the base class.
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   627
 */
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   628
void
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   629
PrintAttributeValueSection (std::ostream & os,
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   630
                            const std::string & name,
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   631
                            const bool seeBase = true)
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   632
{
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   633
  NS_LOG_FUNCTION (name);
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   634
  std::string section = "attribute_" + name;
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   635
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   636
  // \ingroup attribute
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   637
  // \defgroup attribute_<name>Value <name> Attribute
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   638
  os << commentStart << sectionStart << "attribute\n"
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   639
     <<   subSectionStart << "attribute_" << name << " "
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   640
     <<     name << " Attribute\n"
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   641
     <<     "Attribute implementation for " << name << "\n";
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   642
  if (seeBase)
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   643
    {
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   644
      // Some classes don't live in ns3::.  Yuck
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   645
      if (name != "IeMeshId")
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   646
        {
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   647
          os << seeAlso << "ns3::" << name << "\n";
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   648
        }
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   649
      else
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   650
        {
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   651
          os << seeAlso << "ns3::dot11s::" << name << "\n";
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   652
        }
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   653
    }
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   654
  os << commentStop;
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   655
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   656
}  // PrintAttributeValueSection ()
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   657
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   658
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   659
/**
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   660
 * Print the AttributeValue documentation for a class.
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   661
 *
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   662
 * This will print documentation for the \p <name>Value class and methods.
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   663
 *
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   664
 * \param [in,out] os The output stream.
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   665
 * \param [in] name The token to use in defining the accessor name.
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   666
 * \param [in] type The underlying type name.
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   667
 * \param [in] header The header file which contains this declaration.
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   668
 */
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   669
void
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   670
PrintAttributeValueWithName (std::ostream & os,
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   671
                             const std::string & name,
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   672
                             const std::string & type,
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   673
                             const std::string & header)
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   674
{
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   675
  NS_LOG_FUNCTION (name << type << header);
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   676
  std::string sectAttr = sectionStart + "attribute_" + name;
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   677
  
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   678
  // \ingroup attribute_<name>Value
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   679
  // \class ns3::<name>Value "header"
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   680
  std::string valClass  = name + "Value";
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   681
  std::string qualClass = " ns3::" + valClass;
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   682
  
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   683
  os << commentStart << sectAttr << std::endl;
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   684
  os <<   classStart << qualClass << " \"" << header << "\"" << std::endl;
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   685
  os <<   "AttributeValue implementation for " << name << "." << std::endl;
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   686
  os <<   seeAlso << "AttributeValue" << std::endl;
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   687
  os << commentStop;
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   688
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   689
  // Copy ctor: <name>Value::<name>Value
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   690
  os << commentStart
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   691
     <<   functionStart << name
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   692
     <<     qualClass << "::" << valClass;
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   693
  if ( (name == "EmptyAttribute") ||
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   694
       (name == "ObjectPtrContainer") )
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   695
    {
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   696
      // Just default constructors.
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   697
      os << "(void)\n";
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   698
    }
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   699
  else
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   700
    {
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   701
      // Copy constructors
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   702
      os << "(const " << type << " & value)\n"
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   703
         << "Copy constructor.\n"
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   704
         << argument << "[in] value The " << name << " value to copy.\n";
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   705
    }
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   706
  os << commentStop;
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   707
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   708
  // <name>Value::Get (void) const
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   709
  os << commentStart
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   710
     <<   functionStart << type
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   711
     <<     qualClass << "::Get (void) const\n"
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   712
     <<   returns << "The " << name << " value.\n"
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   713
     << commentStop;
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   714
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   715
  // <name>Value::GetAccessor (T & value) const
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   716
  os << commentStart
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   717
     <<   functionStart << "bool"
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   718
     <<     qualClass << "::GetAccessor (T & value) const\n"
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   719
     <<   "Access the " << name << " value as type " << codeWord << "T.\n"
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   720
     <<   argument << "[out] value The " << name << " value, as type "
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   721
     <<     codeWord << "T.\n"
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   722
     <<   returns << "true.\n"
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   723
     << commentStop;
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   724
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   725
  // <name>Value::Set (const name & value)
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   726
  if (type != "Callback")  // Yuck
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   727
    {
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   728
      os << commentStart
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   729
         <<   functionStart << "void"
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   730
         <<     qualClass << "::Set (const " << type << " & value)\n"
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   731
         <<   "Set the value.\n"
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   732
         <<   argument << "[in] value The value to adopt.\n"
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   733
         << commentStop;
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   734
    }
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   735
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   736
  // <name>Value::m_value
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   737
  os << commentStart
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   738
     <<   variable << type
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   739
     <<     qualClass << "::m_value\n" 
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   740
     <<   "The stored " << name << " instance.\n"
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   741
     << commentStop
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   742
     << std::endl;
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   743
  
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   744
}  // PrintAttributeValueWithName ()
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   745
10996
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
   746
11036
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   747
/**
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   748
 * Print the AttributeValue MakeAccessor documentation for a class.
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   749
 *
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   750
 * This will print documentation for the \p Make<name>Accessor functions.
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   751
 *
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   752
 * \param [in,out] os The output stream.
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   753
 * \param [in] name The token to use in defining the accessor name.
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   754
 */
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   755
void
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   756
PrintMakeAccessors (std::ostream & os, const std::string & name)
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   757
{
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   758
  NS_LOG_FUNCTION (name);
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   759
  std::string sectAttr = sectionStart + "attribute_" + name + "\n";
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   760
  std::string make = "ns3::Make" + name + "Accessor ";
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   761
  
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   762
  // \ingroup attribute_<name>Value
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   763
  // Make<name>Accessor (T1 a1)
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   764
  os << commentStart << sectAttr
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   765
     <<   functionStart << "ns3::Ptr<const ns3::AttributeAccessor> "
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   766
     <<     make << "(T1 a1)\n"
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   767
     <<   copyDoc << "ns3::MakeAccessorHelper(T1)\n"
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   768
     <<   seeAlso << "AttributeAccessor\n"
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   769
     << commentStop;
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   770
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   771
  // \ingroup attribute_<name>Value
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   772
  // Make<name>Accessor (T1 a1)
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   773
  os << commentStart << sectAttr
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   774
     <<   functionStart << "ns3::Ptr<const ns3::AttributeAccessor> "
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   775
     <<     make << "(T1 a1, T2 a2)\n"
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   776
     <<   copyDoc << "ns3::MakeAccessorHelper(T1,T2)\n"
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   777
     <<   seeAlso << "AttributeAccessor\n"
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   778
     << commentStop;
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   779
}  // PrintMakeAccessors ()
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   780
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   781
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   782
/**
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   783
 * Print the AttributeValue MakeChecker documentation for a class.
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   784
 *
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   785
 * This will print documentation for the \p Make<name>Checker function.
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   786
 *
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   787
 * \param [in,out] os The output stream.
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   788
 * \param [in] name The token to use in defining the accessor name.
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   789
 * \param [in] header The header file which contains this declaration.
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   790
 */
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   791
void
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   792
PrintMakeChecker (std::ostream & os,
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   793
                  const std::string & name,
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   794
                  const std::string & header)
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   795
{
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   796
  NS_LOG_FUNCTION (name << header);
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   797
  std::string sectAttr = sectionStart + "attribute_" + name + "\n";
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   798
  std::string make = "ns3::Make" + name + "Checker ";
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   799
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   800
  // \ingroup attribute_<name>Value
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   801
  // class <name>Checker
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   802
  os << commentStart << sectAttr << std::endl;
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   803
  os <<   classStart << " ns3::" << name << "Checker"
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   804
     <<   " \"" << header << "\"" << std::endl;
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   805
  os <<   "AttributeChecker implementation for " << name << "Value." << std::endl;
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   806
  os <<   seeAlso << "AttributeChecker" << std::endl;
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   807
  os << commentStop;
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   808
    
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   809
  // \ingroup attribute_<name>Value
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   810
  // Make<name>Checker (void)
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   811
  os << commentStart << sectAttr
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   812
     <<   functionStart << "ns3::Ptr<const ns3::AttributeChecker> "
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   813
     <<     make << "(void)\n"
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   814
     <<   returns << "The AttributeChecker.\n"
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   815
     <<   seeAlso << "AttributeChecker\n"
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   816
     << commentStop;
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   817
}  // PrintMakeChecker ()
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   818
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   819
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   820
/**Descriptor for an AttributeValue. */
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   821
typedef struct {
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   822
  const std::string m_name;   //!< The base name of the resulting AttributeValue type.
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   823
  const std::string m_type;   //!< The name of the underlying type.
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   824
  const bool m_seeBase;       //!< Print a "see also" pointing to the base class.
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   825
  const std::string m_header; //!< The header file name.
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   826
} AttributeDescriptor;
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   827
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   828
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   829
/**
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   830
 * Print documentation corresponding to use of the
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   831
 * ATTRIBUTE_HELPER_HEADER macro or
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   832
 * ATTRIBUTE_VALUE_DEFINE_WITH_NAME macro.
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   833
 *
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   834
 * \param [in,out] os The output stream.
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   835
 * \param [in] attr The AttributeDescriptor.
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   836
 */
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   837
void
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   838
PrintAttributeHelper (std::ostream & os,
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   839
                      const AttributeDescriptor & attr)
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   840
{
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   841
  NS_LOG_FUNCTION (attr.m_name << attr.m_type << attr.m_seeBase <<
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   842
                   attr.m_header);
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   843
  PrintAttributeValueSection  (os, attr.m_name, attr.m_seeBase);
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   844
  PrintAttributeValueWithName (os, attr.m_name, attr.m_type, attr.m_header);
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   845
  PrintMakeAccessors          (os, attr.m_name);
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   846
  PrintMakeChecker            (os, attr.m_name, attr.m_header);
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   847
}  // PrintAttributeHelper ()
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   848
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   849
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   850
/**
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   851
 * Print documentation for Attribute implementations.
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   852
 */
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   853
void
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   854
PrintAttributeImplementations (std::ostream & os)
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   855
{
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   856
  NS_LOG_FUNCTION_NOARGS ();
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   857
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   858
  const AttributeDescriptor attributes [] =
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   859
    {
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   860
      // Users of ATTRIBUTE_HELPER_HEADER
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   861
      //
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   862
      { "Address",        "Address",        true,  "address.h"          },
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   863
      { "Box",            "Box",            true,  "box.h"              },
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   864
      { "DataRate",       "DataRate",       true,  "data-rate.h"        },
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   865
      { "HtCapabilities", "HtCapabilities", true,  "ht-capabilities.h"  },
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   866
      { "IeMeshId",       "IeMeshId",       true,  "id-dot11s-id.h"     },
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   867
      { "Ipv4Address",    "Ipv4Address",    true,  "ipv4-address.h"     },
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   868
      { "Ipv4Mask",       "Ipv4Mask",       true,  "ipv4-address.h"     },
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   869
      { "Ipv6Address",    "Ipv6Address",    true,  "ipv6-address.h"     },
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   870
      { "Ipv6Prefix",     "Ipv6Prefix",     true,  "ipv6-address.h"     },
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   871
      { "Mac16Address",   "Mac16Address",   true,  "mac16-address.h"    },
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   872
      { "Mac48Address",   "Mac48Address",   true,  "mac48-address.h"    },
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   873
      { "Mac64Address",   "Mac64Address",   true,  "mac64-address.h"    },
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   874
      { "ObjectFactory",  "ObjectFactory",  true,  "object-factory.h"   },
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   875
      { "OrganizationIdentifier",
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   876
                          "OrganizationIdentifier",
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   877
                                            true,  "vendor-specific-action.h" },
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   878
      { "Rectangle",      "Rectangle",      true,  "rectangle.h"        },
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   879
      { "Ssid",           "Ssid",           true,  "ssid.h"             },
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   880
      { "TypeId",         "TypeId",         true,  "type-id.h"          },
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   881
      { "UanModesList",   "UanModesList",   true,  "uan-tx-mode.h"      },
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   882
      { "ValueClassTest", "ValueClassTest", false, "" /* outside ns3 */ },
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   883
      { "Vector2D",       "Vector2D",       true,  "vector.h"           },
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   884
      { "Vector3D",       "Vector3D",       true,  "vector.h"           },
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   885
      { "Waypoint",       "Waypoint",       true,  "waypoint.h"         },
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   886
      { "WifiMode",       "WifiMode",       true,  "wifi-mode.h"        },
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   887
      
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   888
      // All three (Value, Access and Checkers) defined, but custom
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   889
      { "Boolean",        "Boolean",        false, "boolean.h"          },
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   890
      { "Callback",       "Callback",       true,  "callback.h"         },
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   891
      { "Double",         "double",         false, "double.h"           },
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   892
      { "Enum",           "int",            false, "enum.h"             },
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   893
      { "Integer",        "int64_t",        false, "integer.h"          },
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   894
      { "Pointer",        "Pointer",        false, "pointer.h"          },
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   895
      { "RandomVariable", "RandomVariable", true,  "random-variable.h"  },
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   896
      { "String",         "std::string",    false, "string.h"           },
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   897
      { "Time",           "Time",           true,  "nstime.h"           },
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   898
      { "Uinteger",       "uint64_t",       false, "uinteger.h"         },
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   899
      { "",               "",               false, "last placeholder"   }
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   900
    };
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   901
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   902
  int i = 0;
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   903
  while (attributes[i].m_name != "")
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   904
    {
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   905
      PrintAttributeHelper (os, attributes[i]);
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   906
      ++i;
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   907
    }
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   908
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   909
  // Special cases
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   910
  PrintAttributeValueSection  (os, "EmptyAttribute", false);
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   911
  PrintAttributeValueWithName (os, "EmptyAttribute", "EmptyAttribute",
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   912
                                   "attribute.h");
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   913
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   914
  PrintAttributeValueSection  (os, "ObjectPtrContainer", false);
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   915
  PrintAttributeValueWithName (os, "ObjectPtrContainer", "ObjectPtrContainer", "object-ptr-container.h");
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   916
  PrintMakeChecker            (os, "ObjectPtrContainer",  "object-ptr-container.h");
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   917
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   918
  PrintAttributeValueSection  (os, "ObjectVector", false);
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   919
  PrintMakeAccessors          (os, "ObjectVector");
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   920
  PrintMakeChecker            (os, "ObjectVector", "object-vector.h");
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   921
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   922
  PrintAttributeValueSection  (os, "ObjectMap", false);
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   923
  PrintMakeAccessors          (os, "ObjectMap");
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   924
  PrintMakeChecker            (os, "ObjectMap", "object-map.h");
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   925
  
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   926
}  // PrintAttributeImplementations ()
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   927
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   928
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   929
/***************************************************************
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   930
 *        Aggregation and configuration paths
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
   931
 ***************************************************************/
10996
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
   932
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
   933
/**
9127
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
   934
 * Gather aggregation and configuration path information from registered types.
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
   935
 */
2944
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
   936
class StaticInformation
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
   937
{
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
   938
public:
9127
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
   939
  /**
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
   940
   * Record the a -> b aggregation relation.
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
   941
   *
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
   942
   * \param a [in] the source(?) TypeId name
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
   943
   * \param b [in] the destination(?) TypeId name
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
   944
   */
2944
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
   945
  void RecordAggregationInfo (std::string a, std::string b);
9127
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
   946
  /**
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
   947
   * Gather aggregation and configuration path information for tid
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
   948
   *
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
   949
   * \param tid [in] the TypeId to gather information from
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
   950
   */
2944
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
   951
  void Gather (TypeId tid);
9127
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
   952
  /**
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
   953
   * Print output in "a -> b" form on std::cout
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
   954
   */
2944
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
   955
  void Print (void) const;
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
   956
9127
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
   957
  /**
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
   958
   * \return the configuration paths for tid
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
   959
   *
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
   960
   * \param tid [in] the TypeId to return information for
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
   961
   */
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
   962
  std::vector<std::string> Get (TypeId tid) const;
2944
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
   963
11185
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
   964
  /**
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
   965
   * \return the type names we couldn't aggregate.
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
   966
   */
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
   967
  std::vector<std::string> GetNoTypeIds (void) const;
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
   968
2944
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
   969
private:
9127
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
   970
  /**
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
   971
   * \return the current configuration path
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
   972
   */
2944
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
   973
  std::string GetCurrentPath (void) const;
9127
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
   974
  /**
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
   975
   * Gather attribute, configuration path information for tid
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
   976
   *
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
   977
   * \param tid [in] the TypeId to gather information from
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
   978
   */
2944
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
   979
  void DoGather (TypeId tid);
9127
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
   980
  /**
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
   981
   *  Record the current config path for tid.
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
   982
   *
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
   983
   * \param tid [in] the TypeId to record.
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
   984
   */
2944
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
   985
  void RecordOutput (TypeId tid);
9127
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
   986
  /**
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
   987
   * \return whether the tid has already been processed
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
   988
   *
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
   989
   * \param tid [in] the TypeId to check.
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
   990
   */
2944
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
   991
  bool HasAlreadyBeenProcessed (TypeId tid) const;
9127
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
   992
  /**
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
   993
   * Configuration path for each TypeId
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
   994
   */
2944
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
   995
  std::vector<std::pair<TypeId,std::string> > m_output;
9127
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
   996
  /**
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
   997
   * Current configuration path
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
   998
   */
2944
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
   999
  std::vector<std::string> m_currentPath;
9127
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
  1000
  /**
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
  1001
   * List of TypeIds we've already processed
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
  1002
   */
2944
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1003
  std::vector<TypeId> m_alreadyProcessed;
9127
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
  1004
  /**
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
  1005
   * List of aggregation relationships.
a35540de51a0 Doxygenate print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9124
diff changeset
  1006
   */
2944
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1007
  std::vector<std::pair<TypeId,TypeId> > m_aggregates;
11185
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1008
  /**
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1009
   * List of type names without TypeIds, because those modules aren't enabled.
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1010
   *
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1011
   * This is mutable because GetNoTypeIds sorts and uniquifies this list
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1012
   * before returning it.
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1013
   */
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1014
  mutable std::vector<std::string> m_noTids;
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1015
  
11036
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
  1016
};  // class StaticInformation
2944
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1017
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1018
2944
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1019
void 
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1020
StaticInformation::RecordAggregationInfo (std::string a, std::string b)
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1021
{
10999
771294355b2e [Doxygen] Include the size of registered types in the long description for the class.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10996
diff changeset
  1022
  NS_LOG_FUNCTION (this << a << b);
11185
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1023
  TypeId aTid;
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1024
  bool found = TypeId::LookupByNameFailSafe (a, &aTid);
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1025
  if (!found)
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1026
    {
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1027
      m_noTids.push_back (a);
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1028
      return;
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1029
    }
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1030
  TypeId bTid;
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1031
  found = TypeId::LookupByNameFailSafe (b, &bTid);
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1032
  if (!found)
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1033
    {
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1034
      m_noTids.push_back (b);
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1035
      return;
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1036
    }
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1037
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1038
  m_aggregates.push_back (std::make_pair (aTid, bTid));
2944
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1039
}
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1040
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1041
2944
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1042
void 
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1043
StaticInformation::Print (void) const
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1044
{
10999
771294355b2e [Doxygen] Include the size of registered types in the long description for the class.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10996
diff changeset
  1045
  NS_LOG_FUNCTION (this);
2944
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1046
  for (std::vector<std::pair<TypeId,std::string> >::const_iterator i = m_output.begin (); i != m_output.end (); ++i)
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1047
    {
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1048
      std::pair<TypeId,std::string> item = *i;
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1049
      std::cout << item.first.GetName () << " -> " << item.second << std::endl;
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1050
    }
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1051
}
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1052
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1053
2944
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1054
std::string
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1055
StaticInformation::GetCurrentPath (void) const
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1056
{
10999
771294355b2e [Doxygen] Include the size of registered types in the long description for the class.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10996
diff changeset
  1057
  NS_LOG_FUNCTION (this);
2944
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1058
  std::ostringstream oss;
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1059
  for (std::vector<std::string>::const_iterator i = m_currentPath.begin (); i != m_currentPath.end (); ++i)
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1060
    {
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1061
      std::string item = *i;
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1062
      oss << "/" << item;
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1063
    }
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1064
  return oss.str ();
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1065
}
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1066
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1067
2944
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1068
void
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1069
StaticInformation::RecordOutput (TypeId tid)
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1070
{
10999
771294355b2e [Doxygen] Include the size of registered types in the long description for the class.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10996
diff changeset
  1071
  NS_LOG_FUNCTION (this << tid);
2944
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1072
  m_output.push_back (std::make_pair (tid, GetCurrentPath ()));
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1073
}
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1074
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1075
2944
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1076
bool
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1077
StaticInformation::HasAlreadyBeenProcessed (TypeId tid) const
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1078
{
10999
771294355b2e [Doxygen] Include the size of registered types in the long description for the class.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10996
diff changeset
  1079
  NS_LOG_FUNCTION (this << tid);
2944
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1080
  for (uint32_t i = 0; i < m_alreadyProcessed.size (); ++i)
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1081
    {
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1082
      if (m_alreadyProcessed[i] == tid)
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1083
	{
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1084
	  return true;
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1085
	}
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1086
    }
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1087
  return false;
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1088
}
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1089
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1090
2944
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1091
std::vector<std::string> 
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1092
StaticInformation::Get (TypeId tid) const
2944
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1093
{
10999
771294355b2e [Doxygen] Include the size of registered types in the long description for the class.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10996
diff changeset
  1094
  NS_LOG_FUNCTION (this << tid);
2944
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1095
  std::vector<std::string> paths;
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1096
  for (uint32_t i = 0; i < m_output.size (); ++i)
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1097
    {
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1098
      std::pair<TypeId,std::string> tmp = m_output[i];
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1099
      if (tmp.first == tid)
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1100
	{
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1101
	  paths.push_back (tmp.second);
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1102
	}
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1103
    }
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1104
  return paths;
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1105
}
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1106
11185
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1107
/**
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1108
 * Helper to keep only the unique items in a container.
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1109
 *
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1110
 * The container is modified in place; the elements end up sorted.
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1111
 *
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1112
 * The container must support \c begin(), \c end() and \c erase(),
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1113
 * which, among the STL containers, limits this to
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1114
 * \c std::vector, \c std::dequeue and \c std::list.
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1115
 *
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1116
 * The container elements must support \c operator< (for \c std::sort)
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1117
 * and \c operator== (for \c std::unique).
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1118
 *
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1119
 * \tparam T The container type.
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1120
 * \param t The container.
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1121
 */
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1122
template <typename T>
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1123
void
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1124
Uniquefy (T t)
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1125
{
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1126
  std::sort (t.begin (), t.end ());
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1127
  t.erase (std::unique (t.begin (), t.end ()), t.end ());
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1128
}
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1129
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1130
std::vector<std::string>
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1131
StaticInformation::GetNoTypeIds (void) const
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1132
{
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1133
  NS_LOG_FUNCTION (this);
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1134
  Uniquefy (m_noTids);
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1135
  return m_noTids;
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1136
}
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1137
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1138
2944
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1139
void
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1140
StaticInformation::Gather (TypeId tid)
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1141
{
10999
771294355b2e [Doxygen] Include the size of registered types in the long description for the class.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10996
diff changeset
  1142
  NS_LOG_FUNCTION (this << tid);
2944
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1143
  DoGather (tid);
11185
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1144
  Uniquefy (m_output);
2944
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1145
}
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1146
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1147
2944
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1148
void 
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1149
StaticInformation::DoGather (TypeId tid)
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1150
{
10999
771294355b2e [Doxygen] Include the size of registered types in the long description for the class.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10996
diff changeset
  1151
  NS_LOG_FUNCTION (this << tid);
2944
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1152
  if (HasAlreadyBeenProcessed (tid))
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1153
    {
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1154
      return;
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1155
    }
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1156
  RecordOutput (tid);
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1157
  for (uint32_t i = 0; i < tid.GetAttributeN (); ++i)
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1158
    {
7393
8c3dfe0be54d use new API. kill old one.
Mathieu Lacage <mathieu.lacage@gmail.com>
parents: 7233
diff changeset
  1159
      struct TypeId::AttributeInformation info = tid.GetAttribute(i);
8c3dfe0be54d use new API. kill old one.
Mathieu Lacage <mathieu.lacage@gmail.com>
parents: 7233
diff changeset
  1160
      const PointerChecker *ptrChecker = dynamic_cast<const PointerChecker *> (PeekPointer (info.checker));
2944
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1161
      if (ptrChecker != 0)
4580
8092e3e83487 Bug 456: doxygen introspection for trace source config paths is wrong
fmoatamr
parents: 4513
diff changeset
  1162
        {
8092e3e83487 Bug 456: doxygen introspection for trace source config paths is wrong
fmoatamr
parents: 4513
diff changeset
  1163
          TypeId pointee = ptrChecker->GetPointeeTypeId ();
7870
059b1b83e29b Bug 962 - list of paths to reach objects contains bogus entries
Mitch Watrous <watrous@u.washington.edu>
parents: 7575
diff changeset
  1164
059b1b83e29b Bug 962 - list of paths to reach objects contains bogus entries
Mitch Watrous <watrous@u.washington.edu>
parents: 7575
diff changeset
  1165
	  // See if this is a pointer to an Object.
059b1b83e29b Bug 962 - list of paths to reach objects contains bogus entries
Mitch Watrous <watrous@u.washington.edu>
parents: 7575
diff changeset
  1166
	  Ptr<Object> object = CreateObject<Object> ();
059b1b83e29b Bug 962 - list of paths to reach objects contains bogus entries
Mitch Watrous <watrous@u.washington.edu>
parents: 7575
diff changeset
  1167
	  TypeId objectTypeId = object->GetTypeId ();
059b1b83e29b Bug 962 - list of paths to reach objects contains bogus entries
Mitch Watrous <watrous@u.washington.edu>
parents: 7575
diff changeset
  1168
	  if (objectTypeId == pointee)
059b1b83e29b Bug 962 - list of paths to reach objects contains bogus entries
Mitch Watrous <watrous@u.washington.edu>
parents: 7575
diff changeset
  1169
	    {
059b1b83e29b Bug 962 - list of paths to reach objects contains bogus entries
Mitch Watrous <watrous@u.washington.edu>
parents: 7575
diff changeset
  1170
	      // Stop the recursion at this attribute if it is a
059b1b83e29b Bug 962 - list of paths to reach objects contains bogus entries
Mitch Watrous <watrous@u.washington.edu>
parents: 7575
diff changeset
  1171
	      // pointer to an Object, which create too many spurious
059b1b83e29b Bug 962 - list of paths to reach objects contains bogus entries
Mitch Watrous <watrous@u.washington.edu>
parents: 7575
diff changeset
  1172
	      // paths in the list of attribute paths because any
059b1b83e29b Bug 962 - list of paths to reach objects contains bogus entries
Mitch Watrous <watrous@u.washington.edu>
parents: 7575
diff changeset
  1173
	      // Object can be in that part of the path.
059b1b83e29b Bug 962 - list of paths to reach objects contains bogus entries
Mitch Watrous <watrous@u.washington.edu>
parents: 7575
diff changeset
  1174
	      continue;
059b1b83e29b Bug 962 - list of paths to reach objects contains bogus entries
Mitch Watrous <watrous@u.washington.edu>
parents: 7575
diff changeset
  1175
	    }
059b1b83e29b Bug 962 - list of paths to reach objects contains bogus entries
Mitch Watrous <watrous@u.washington.edu>
parents: 7575
diff changeset
  1176
7393
8c3dfe0be54d use new API. kill old one.
Mathieu Lacage <mathieu.lacage@gmail.com>
parents: 7233
diff changeset
  1177
          m_currentPath.push_back (info.name);
4580
8092e3e83487 Bug 456: doxygen introspection for trace source config paths is wrong
fmoatamr
parents: 4513
diff changeset
  1178
          m_alreadyProcessed.push_back (tid);
8092e3e83487 Bug 456: doxygen introspection for trace source config paths is wrong
fmoatamr
parents: 4513
diff changeset
  1179
          DoGather (pointee);
8092e3e83487 Bug 456: doxygen introspection for trace source config paths is wrong
fmoatamr
parents: 4513
diff changeset
  1180
          m_alreadyProcessed.pop_back ();
8092e3e83487 Bug 456: doxygen introspection for trace source config paths is wrong
fmoatamr
parents: 4513
diff changeset
  1181
          m_currentPath.pop_back ();
8092e3e83487 Bug 456: doxygen introspection for trace source config paths is wrong
fmoatamr
parents: 4513
diff changeset
  1182
          continue;
8092e3e83487 Bug 456: doxygen introspection for trace source config paths is wrong
fmoatamr
parents: 4513
diff changeset
  1183
        }
2944
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1184
      // attempt to cast to an object vector.
7412
d79278c6e51c refactor ObjectVector generic code into a separate file and introduce ObjectMap.
Mathieu Lacage <mathieu.lacage@gmail.com>
parents: 7395
diff changeset
  1185
      const ObjectPtrContainerChecker *vectorChecker = dynamic_cast<const ObjectPtrContainerChecker *> (PeekPointer (info.checker));
2944
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1186
      if (vectorChecker != 0)
4580
8092e3e83487 Bug 456: doxygen introspection for trace source config paths is wrong
fmoatamr
parents: 4513
diff changeset
  1187
        {
8092e3e83487 Bug 456: doxygen introspection for trace source config paths is wrong
fmoatamr
parents: 4513
diff changeset
  1188
          TypeId item = vectorChecker->GetItemTypeId ();
7393
8c3dfe0be54d use new API. kill old one.
Mathieu Lacage <mathieu.lacage@gmail.com>
parents: 7233
diff changeset
  1189
          m_currentPath.push_back (info.name + "/[i]");
4580
8092e3e83487 Bug 456: doxygen introspection for trace source config paths is wrong
fmoatamr
parents: 4513
diff changeset
  1190
          m_alreadyProcessed.push_back (tid);
8092e3e83487 Bug 456: doxygen introspection for trace source config paths is wrong
fmoatamr
parents: 4513
diff changeset
  1191
          DoGather (item);
8092e3e83487 Bug 456: doxygen introspection for trace source config paths is wrong
fmoatamr
parents: 4513
diff changeset
  1192
          m_alreadyProcessed.pop_back ();
8092e3e83487 Bug 456: doxygen introspection for trace source config paths is wrong
fmoatamr
parents: 4513
diff changeset
  1193
          m_currentPath.pop_back ();
8092e3e83487 Bug 456: doxygen introspection for trace source config paths is wrong
fmoatamr
parents: 4513
diff changeset
  1194
          continue;
8092e3e83487 Bug 456: doxygen introspection for trace source config paths is wrong
fmoatamr
parents: 4513
diff changeset
  1195
        }
2944
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1196
    }
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1197
  for (uint32_t j = 0; j < TypeId::GetRegisteredN (); j++)
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1198
    {
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1199
      TypeId child = TypeId::GetRegistered (j);
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1200
      if (child.IsChildOf (tid))
4580
8092e3e83487 Bug 456: doxygen introspection for trace source config paths is wrong
fmoatamr
parents: 4513
diff changeset
  1201
        {
11080
5a41f780e361 [Bug 2022] Spurious characters in config paths
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11070
diff changeset
  1202
          std::string childName = "$" + child.GetName ();
4580
8092e3e83487 Bug 456: doxygen introspection for trace source config paths is wrong
fmoatamr
parents: 4513
diff changeset
  1203
          m_currentPath.push_back (childName);
8092e3e83487 Bug 456: doxygen introspection for trace source config paths is wrong
fmoatamr
parents: 4513
diff changeset
  1204
          m_alreadyProcessed.push_back (tid);
8092e3e83487 Bug 456: doxygen introspection for trace source config paths is wrong
fmoatamr
parents: 4513
diff changeset
  1205
          DoGather (child);
8092e3e83487 Bug 456: doxygen introspection for trace source config paths is wrong
fmoatamr
parents: 4513
diff changeset
  1206
          m_alreadyProcessed.pop_back ();
8092e3e83487 Bug 456: doxygen introspection for trace source config paths is wrong
fmoatamr
parents: 4513
diff changeset
  1207
          m_currentPath.pop_back ();
8092e3e83487 Bug 456: doxygen introspection for trace source config paths is wrong
fmoatamr
parents: 4513
diff changeset
  1208
        }
2944
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1209
    }
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1210
  for (uint32_t k = 0; k < m_aggregates.size (); ++k)
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1211
    {
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1212
      std::pair<TypeId,TypeId> tmp = m_aggregates[k];
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1213
      if (tmp.first == tid || tmp.second == tid)
4580
8092e3e83487 Bug 456: doxygen introspection for trace source config paths is wrong
fmoatamr
parents: 4513
diff changeset
  1214
        {
8092e3e83487 Bug 456: doxygen introspection for trace source config paths is wrong
fmoatamr
parents: 4513
diff changeset
  1215
          TypeId other;
8092e3e83487 Bug 456: doxygen introspection for trace source config paths is wrong
fmoatamr
parents: 4513
diff changeset
  1216
          if (tmp.first == tid)
8092e3e83487 Bug 456: doxygen introspection for trace source config paths is wrong
fmoatamr
parents: 4513
diff changeset
  1217
            {
8092e3e83487 Bug 456: doxygen introspection for trace source config paths is wrong
fmoatamr
parents: 4513
diff changeset
  1218
              other = tmp.second;
8092e3e83487 Bug 456: doxygen introspection for trace source config paths is wrong
fmoatamr
parents: 4513
diff changeset
  1219
            }
8092e3e83487 Bug 456: doxygen introspection for trace source config paths is wrong
fmoatamr
parents: 4513
diff changeset
  1220
          if (tmp.second == tid)
8092e3e83487 Bug 456: doxygen introspection for trace source config paths is wrong
fmoatamr
parents: 4513
diff changeset
  1221
            {
8092e3e83487 Bug 456: doxygen introspection for trace source config paths is wrong
fmoatamr
parents: 4513
diff changeset
  1222
              other = tmp.first;
8092e3e83487 Bug 456: doxygen introspection for trace source config paths is wrong
fmoatamr
parents: 4513
diff changeset
  1223
            }
11080
5a41f780e361 [Bug 2022] Spurious characters in config paths
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11070
diff changeset
  1224
          std::string name = "$" + other.GetName ();
4580
8092e3e83487 Bug 456: doxygen introspection for trace source config paths is wrong
fmoatamr
parents: 4513
diff changeset
  1225
          m_currentPath.push_back (name);
8092e3e83487 Bug 456: doxygen introspection for trace source config paths is wrong
fmoatamr
parents: 4513
diff changeset
  1226
          m_alreadyProcessed.push_back (tid);
8092e3e83487 Bug 456: doxygen introspection for trace source config paths is wrong
fmoatamr
parents: 4513
diff changeset
  1227
          DoGather (other);
8092e3e83487 Bug 456: doxygen introspection for trace source config paths is wrong
fmoatamr
parents: 4513
diff changeset
  1228
          m_alreadyProcessed.pop_back ();
8092e3e83487 Bug 456: doxygen introspection for trace source config paths is wrong
fmoatamr
parents: 4513
diff changeset
  1229
          m_currentPath.pop_back ();	  
8092e3e83487 Bug 456: doxygen introspection for trace source config paths is wrong
fmoatamr
parents: 4513
diff changeset
  1230
        }
8092e3e83487 Bug 456: doxygen introspection for trace source config paths is wrong
fmoatamr
parents: 4513
diff changeset
  1231
    }
11036
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
  1232
}  // StaticInformation::DoGather ()
4580
8092e3e83487 Bug 456: doxygen introspection for trace source config paths is wrong
fmoatamr
parents: 4513
diff changeset
  1233
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1234
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1235
StaticInformation
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1236
GetTypicalAggregations ()
1368
e75dc1a2a5fb add TraceResolver::PrintAvailable method
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
  1237
{
10999
771294355b2e [Doxygen] Include the size of registered types in the long description for the class.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10996
diff changeset
  1238
  NS_LOG_FUNCTION_NOARGS ();
9222
b72fd6e6a4b5 Bug 1520 - config paths not documented in Doxygen for CsmaChannel
Mitch Watrous <watrous@u.washington.edu>
parents: 9208
diff changeset
  1239
  // The below statements register typical aggregation relationships
b72fd6e6a4b5 Bug 1520 - config paths not documented in Doxygen for CsmaChannel
Mitch Watrous <watrous@u.washington.edu>
parents: 9208
diff changeset
  1240
  // in ns-3 programs, that otherwise aren't picked up automatically
b72fd6e6a4b5 Bug 1520 - config paths not documented in Doxygen for CsmaChannel
Mitch Watrous <watrous@u.washington.edu>
parents: 9208
diff changeset
  1241
  // by the creation of the above node.  To manually list other common
b72fd6e6a4b5 Bug 1520 - config paths not documented in Doxygen for CsmaChannel
Mitch Watrous <watrous@u.washington.edu>
parents: 9208
diff changeset
  1242
  // aggregation relationships that you would like to see show up in
b72fd6e6a4b5 Bug 1520 - config paths not documented in Doxygen for CsmaChannel
Mitch Watrous <watrous@u.washington.edu>
parents: 9208
diff changeset
  1243
  // the list of configuration paths in the doxygen, add additional
b72fd6e6a4b5 Bug 1520 - config paths not documented in Doxygen for CsmaChannel
Mitch Watrous <watrous@u.washington.edu>
parents: 9208
diff changeset
  1244
  // statements below.
2944
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1245
  StaticInformation info;
3132
b0b0abb911cd move Tcp to TcpSocketFactory
Tom Henderson <tomh@tomh.org>
parents: 3125
diff changeset
  1246
  info.RecordAggregationInfo ("ns3::Node", "ns3::TcpSocketFactory");
3125
d2d8a36cfd23 s/ns3::Udp/ns3::UdpSocketFactory
Tom Henderson <tomh@tomh.org>
parents: 2989
diff changeset
  1247
  info.RecordAggregationInfo ("ns3::Node", "ns3::UdpSocketFactory");
2944
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1248
  info.RecordAggregationInfo ("ns3::Node", "ns3::PacketSocketFactory");
4364
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3588
diff changeset
  1249
  info.RecordAggregationInfo ("ns3::Node", "ns3::olsr::RoutingProtocol");
2944
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1250
  info.RecordAggregationInfo ("ns3::Node", "ns3::MobilityModel");
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1251
  info.RecordAggregationInfo ("ns3::Node", "ns3::Ipv4L3Protocol");
11070
1d5abc727f83 record Doxygen aggregation info for additional classes
Tom Henderson <tomh@tomh.org>
parents: 11046
diff changeset
  1252
  info.RecordAggregationInfo ("ns3::Node", "ns3::Ipv4NixVectorRouting");
1d5abc727f83 record Doxygen aggregation info for additional classes
Tom Henderson <tomh@tomh.org>
parents: 11046
diff changeset
  1253
  info.RecordAggregationInfo ("ns3::Node", "ns3::Icmpv4L4Protocol");
2944
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1254
  info.RecordAggregationInfo ("ns3::Node", "ns3::ArpL3Protocol");
9174
bb6bbda68e97 Bug 1520 (More partially) - config paths not documented
Mitch Watrous <watrous@u.washington.edu>
parents: 9166
diff changeset
  1255
  info.RecordAggregationInfo ("ns3::Node", "ns3::Icmpv4L4Protocol");
bb6bbda68e97 Bug 1520 (More partially) - config paths not documented
Mitch Watrous <watrous@u.washington.edu>
parents: 9166
diff changeset
  1256
  info.RecordAggregationInfo ("ns3::Node", "ns3::UdpL4Protocol");
bb6bbda68e97 Bug 1520 (More partially) - config paths not documented
Mitch Watrous <watrous@u.washington.edu>
parents: 9166
diff changeset
  1257
  info.RecordAggregationInfo ("ns3::Node", "ns3::Ipv6L3Protocol");
bb6bbda68e97 Bug 1520 (More partially) - config paths not documented
Mitch Watrous <watrous@u.washington.edu>
parents: 9166
diff changeset
  1258
  info.RecordAggregationInfo ("ns3::Node", "ns3::Icmpv6L4Protocol");
bb6bbda68e97 Bug 1520 (More partially) - config paths not documented
Mitch Watrous <watrous@u.washington.edu>
parents: 9166
diff changeset
  1259
  info.RecordAggregationInfo ("ns3::Node", "ns3::TcpL4Protocol");
11070
1d5abc727f83 record Doxygen aggregation info for additional classes
Tom Henderson <tomh@tomh.org>
parents: 11046
diff changeset
  1260
  info.RecordAggregationInfo ("ns3::Node", "ns3::RipNg");
1d5abc727f83 record Doxygen aggregation info for additional classes
Tom Henderson <tomh@tomh.org>
parents: 11046
diff changeset
  1261
  info.RecordAggregationInfo ("ns3::Node", "ns3::GlobalRouter");
1d5abc727f83 record Doxygen aggregation info for additional classes
Tom Henderson <tomh@tomh.org>
parents: 11046
diff changeset
  1262
  info.RecordAggregationInfo ("ns3::Node", "ns3::aodv::RoutingProtocol");
1d5abc727f83 record Doxygen aggregation info for additional classes
Tom Henderson <tomh@tomh.org>
parents: 11046
diff changeset
  1263
  info.RecordAggregationInfo ("ns3::Node", "ns3::dsdv::RoutingProtocol");
1d5abc727f83 record Doxygen aggregation info for additional classes
Tom Henderson <tomh@tomh.org>
parents: 11046
diff changeset
  1264
  info.RecordAggregationInfo ("ns3::Node", "ns3::dsr::DsrRouting");
1d5abc727f83 record Doxygen aggregation info for additional classes
Tom Henderson <tomh@tomh.org>
parents: 11046
diff changeset
  1265
  info.RecordAggregationInfo ("ns3::Node", "ns3::olsr::RoutingProtocol");
1d5abc727f83 record Doxygen aggregation info for additional classes
Tom Henderson <tomh@tomh.org>
parents: 11046
diff changeset
  1266
  info.RecordAggregationInfo ("ns3::Node", "ns3::EnergyHarvesterContainer");
1d5abc727f83 record Doxygen aggregation info for additional classes
Tom Henderson <tomh@tomh.org>
parents: 11046
diff changeset
  1267
  info.RecordAggregationInfo ("ns3::Node", "ns3::EnergySourceContainer");
2944
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1268
9166
1d2a0119e60c Bug 152 (Partially)- config paths not documented
Mitch Watrous <watrous@u.washington.edu>
parents: 9140
diff changeset
  1269
  // Create a channel object so that channels appear in the namespace
1d2a0119e60c Bug 152 (Partially)- config paths not documented
Mitch Watrous <watrous@u.washington.edu>
parents: 9140
diff changeset
  1270
  // paths that will be generated here.
11185
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1271
  Ptr<SimpleChannel> simpleChannel;
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1272
  simpleChannel = CreateObject<SimpleChannel> ();
9166
1d2a0119e60c Bug 152 (Partially)- config paths not documented
Mitch Watrous <watrous@u.washington.edu>
parents: 9140
diff changeset
  1273
2944
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1274
  for (uint32_t i = 0; i < Config::GetRootNamespaceObjectN (); ++i)
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1275
    {
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1276
      Ptr<Object> object = Config::GetRootNamespaceObject (i);
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1277
      info.Gather (object->GetInstanceTypeId ());
d8806baadedb generate path information for each type.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2931
diff changeset
  1278
    }
1368
e75dc1a2a5fb add TraceResolver::PrintAvailable method
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
  1279
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1280
  return info;
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1281
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1282
}  // GetTypicalAggregations ()
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1283
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1284
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1285
// Map from TypeId name to tid
11185
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1286
typedef std::map< std::string, int32_t> NameMap;
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1287
typedef NameMap::const_iterator         NameMapIterator;
7519
77e27ba9b9a1 Make the source code introspection program output text
Mitch Watrous <watrous@u.washington.edu>
parents: 7412
diff changeset
  1288
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1289
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1290
// Create a map from the class names to their index in the vector of
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1291
// TypeId's so that the names will end up in alphabetical order.
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1292
NameMap
11185
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1293
GetNameMap (const StaticInformation & info)
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1294
{
10999
771294355b2e [Doxygen] Include the size of registered types in the long description for the class.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10996
diff changeset
  1295
  NS_LOG_FUNCTION_NOARGS ();
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1296
  NameMap nameMap;
11185
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1297
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1298
  // Registered types
2602
d9262bff6df2 add back support for introspected doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2600
diff changeset
  1299
  for (uint32_t i = 0; i < TypeId::GetRegisteredN (); i++)
d9262bff6df2 add back support for introspected doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2600
diff changeset
  1300
    {
d9262bff6df2 add back support for introspected doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2600
diff changeset
  1301
      TypeId tid = TypeId::GetRegistered (i);
d9262bff6df2 add back support for introspected doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2600
diff changeset
  1302
      if (tid.MustHideFromDocumentation ())
d9262bff6df2 add back support for introspected doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2600
diff changeset
  1303
	{
d9262bff6df2 add back support for introspected doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2600
diff changeset
  1304
	  continue;
d9262bff6df2 add back support for introspected doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2600
diff changeset
  1305
	}
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1306
      
7519
77e27ba9b9a1 Make the source code introspection program output text
Mitch Watrous <watrous@u.washington.edu>
parents: 7412
diff changeset
  1307
      // Capitalize all of letters in the name so that it sorts
77e27ba9b9a1 Make the source code introspection program output text
Mitch Watrous <watrous@u.washington.edu>
parents: 7412
diff changeset
  1308
      // correctly in the map.
77e27ba9b9a1 Make the source code introspection program output text
Mitch Watrous <watrous@u.washington.edu>
parents: 7412
diff changeset
  1309
      std::string name = tid.GetName ();
77e27ba9b9a1 Make the source code introspection program output text
Mitch Watrous <watrous@u.washington.edu>
parents: 7412
diff changeset
  1310
      for (uint32_t j = 0; j < name.length (); j++)
77e27ba9b9a1 Make the source code introspection program output text
Mitch Watrous <watrous@u.washington.edu>
parents: 7412
diff changeset
  1311
	{
77e27ba9b9a1 Make the source code introspection program output text
Mitch Watrous <watrous@u.washington.edu>
parents: 7412
diff changeset
  1312
	  name[j] = toupper (name[j]);
77e27ba9b9a1 Make the source code introspection program output text
Mitch Watrous <watrous@u.washington.edu>
parents: 7412
diff changeset
  1313
	}
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1314
      
7519
77e27ba9b9a1 Make the source code introspection program output text
Mitch Watrous <watrous@u.washington.edu>
parents: 7412
diff changeset
  1315
      // Save this name's index.
77e27ba9b9a1 Make the source code introspection program output text
Mitch Watrous <watrous@u.washington.edu>
parents: 7412
diff changeset
  1316
      nameMap[name] = i;
77e27ba9b9a1 Make the source code introspection program output text
Mitch Watrous <watrous@u.washington.edu>
parents: 7412
diff changeset
  1317
    }
11185
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1318
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1319
  // Type names without TypeIds
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1320
  std::vector<std::string> noTids = info.GetNoTypeIds ();
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1321
  for (std::vector<std::string>::const_iterator i = noTids.begin ();
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1322
       i != noTids.end ();
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1323
       ++i)
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1324
    {
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1325
      nameMap[*i] = -1;
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1326
    }
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1327
       
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1328
  return nameMap;
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1329
}  // GetNameMap ()
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1330
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1331
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1332
void
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1333
PrintConfigPaths (std::ostream & os, const StaticInformation & info,
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1334
		  const TypeId tid)
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1335
{
10999
771294355b2e [Doxygen] Include the size of registered types in the long description for the class.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10996
diff changeset
  1336
  NS_LOG_FUNCTION (tid);
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1337
  std::vector<std::string> paths = info.Get (tid);
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1338
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1339
  // Config --------------
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1340
  if (paths.empty ())
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1341
    {
11185
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1342
      os << "Introspection did not find any typical Config paths."
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1343
	 << breakBoth
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1344
	 << std::endl;
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1345
    }
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1346
  else
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1347
    {
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1348
      os << headingStart
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1349
	 <<   "Config Paths"
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1350
	 << headingStop
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1351
	 << std::endl;
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1352
      os << std::endl;
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1353
      os << tid.GetName ()
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1354
	 << " is accessible through the following paths"
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1355
	 << " with Config::Set and Config::Connect:"
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1356
	 << std::endl;
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1357
      os << listStart << std::endl;
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1358
      for (uint32_t k = 0; k < paths.size (); ++k)
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1359
	{
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1360
	  std::string path = paths[k];
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1361
	  os << listLineStart
11080
5a41f780e361 [Bug 2022] Spurious characters in config paths
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11070
diff changeset
  1362
             <<   "\"" << path << "\""
5a41f780e361 [Bug 2022] Spurious characters in config paths
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11070
diff changeset
  1363
	     <<  listLineStop 
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1364
	     << breakTextOnly
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1365
	     << std::endl;
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1366
	}
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1367
      os << listStop << std::endl;
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1368
    }
11036
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
  1369
}  // PrintConfigPaths ()
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1370
      
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1371
11036
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
  1372
/***************************************************************
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
  1373
 *        Main
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
  1374
 ***************************************************************/
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
  1375
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1376
int main (int argc, char *argv[])
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1377
{
10999
771294355b2e [Doxygen] Include the size of registered types in the long description for the class.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10996
diff changeset
  1378
  NS_LOG_FUNCTION_NOARGS ();
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1379
  bool outputText = false;
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1380
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1381
  CommandLine cmd;
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1382
  cmd.Usage ("Generate documentation for all ns-3 registered types, "
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1383
	     "trace sources, attributes and global variables.");
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1384
  cmd.AddValue ("output-text", "format output as plain text", outputText);
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1385
  cmd.Parse (argc, argv);
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1386
    
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1387
  SetMarkup (outputText);
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1388
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1389
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1390
  // Create a Node, to force linking and instantiation of our TypeIds
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1391
  NodeContainer c;
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1392
  c.Create (1);
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1393
10996
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
  1394
  // mode-line:  helpful when debugging introspected-doxygen.h
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
  1395
  if (!outputText)
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
  1396
    {
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
  1397
      std::cout << "/* -*- Mode:C++; c-file-style:\"gnu\"; "
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
  1398
	           "indent-tabs-mode:nil; -*- */\n"
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
  1399
		<< std::endl;
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
  1400
    }
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
  1401
    
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1402
  // Get typical aggregation relationships.
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1403
  StaticInformation info = GetTypicalAggregations ();
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1404
  
11185
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1405
  NameMap nameMap = GetNameMap (info);
7519
77e27ba9b9a1 Make the source code introspection program output text
Mitch Watrous <watrous@u.washington.edu>
parents: 7412
diff changeset
  1406
77e27ba9b9a1 Make the source code introspection program output text
Mitch Watrous <watrous@u.washington.edu>
parents: 7412
diff changeset
  1407
  // Iterate over the map, which will print the class names in
77e27ba9b9a1 Make the source code introspection program output text
Mitch Watrous <watrous@u.washington.edu>
parents: 7412
diff changeset
  1408
  // alphabetical order.
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1409
  for (NameMapIterator nameMapIterator = nameMap.begin ();
9124
4ee743993c0a Highlight attribute flags in doxygen html
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9116
diff changeset
  1410
       nameMapIterator != nameMap.end ();
4ee743993c0a Highlight attribute flags in doxygen html
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9116
diff changeset
  1411
       nameMapIterator++)
7519
77e27ba9b9a1 Make the source code introspection program output text
Mitch Watrous <watrous@u.washington.edu>
parents: 7412
diff changeset
  1412
    {
77e27ba9b9a1 Make the source code introspection program output text
Mitch Watrous <watrous@u.washington.edu>
parents: 7412
diff changeset
  1413
      // Get the class's index out of the map;
11185
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1414
      std::string name = nameMapIterator->first;
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1415
      int32_t i = nameMapIterator->second;
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1416
      TypeId tid;
7519
77e27ba9b9a1 Make the source code introspection program output text
Mitch Watrous <watrous@u.washington.edu>
parents: 7412
diff changeset
  1417
11185
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1418
      if (i >= 0)
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1419
        {
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1420
          tid = TypeId::GetRegistered (i);
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1421
          if (tid.MustHideFromDocumentation ())
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1422
            {
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1423
              continue;
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1424
            }
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1425
          name = tid.GetName ();
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1426
        }
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1427
      
7519
77e27ba9b9a1 Make the source code introspection program output text
Mitch Watrous <watrous@u.washington.edu>
parents: 7412
diff changeset
  1428
      std::cout << commentStart << std::endl;
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1429
      
11185
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1430
      std::cout << classStart << name << std::endl;
9116
c2c846c432d2 Move attribute, config, trace docs to class description.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 8749
diff changeset
  1431
      std::cout << std::endl;
9124
4ee743993c0a Highlight attribute flags in doxygen html
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9116
diff changeset
  1432
11185
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1433
      if (i >= 0)
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1434
        {
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1435
          PrintConfigPaths (std::cout, info, tid);
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1436
          PrintAttributes (std::cout, tid);
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1437
          PrintTraceSources (std::cout, tid);
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1438
          PrintSize (std::cout, tid);
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1439
        }
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1440
      else
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1441
        {
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1442
          std::cout << "Introspection could not find Config paths for " << name
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1443
                    << " in this build because the parent module"
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1444
                    << " was not included in the waf configuration."
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1445
                    << breakBoth
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1446
                    << std::endl;
7d6c1139be2f bug 2043: print-introspected-doxygen crashes when some modules are disabled
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11080
diff changeset
  1447
        }
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1448
      
7519
77e27ba9b9a1 Make the source code introspection program output text
Mitch Watrous <watrous@u.washington.edu>
parents: 7412
diff changeset
  1449
      std::cout << commentStop << std::endl;
9124
4ee743993c0a Highlight attribute flags in doxygen html
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 9116
diff changeset
  1450
    }  // class documentation
1368
e75dc1a2a5fb add TraceResolver::PrintAvailable method
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
  1451
1853
e2d7985a5938 print default value list in trace source list doxygen output.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1538
diff changeset
  1452
10993
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1453
  PrintAllAttributes (std::cout);
cda613753f94 Refactor print-introspected-doxygen.cc
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10977
diff changeset
  1454
  PrintAllGlobals (std::cout);
10996
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
  1455
  PrintAllLogComponents (std::cout);
4f369a4a89c1 Generate doxygen list of all LogComponents
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 10994
diff changeset
  1456
  PrintAllTraceSources (std::cout);
11036
1e03af4311bd [Doxygen] Attribute implementations.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11006
diff changeset
  1457
  PrintAttributeImplementations (std::cout);
4513
544c9d637ff1 bug 580: doxygen introspection does not document global values
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 4364
diff changeset
  1458
1368
e75dc1a2a5fb add TraceResolver::PrintAvailable method
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
  1459
  return 0;
e75dc1a2a5fb add TraceResolver::PrintAvailable method
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
  1460
}