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