src/core/type-id-default-value.h
author Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
Sun, 02 Mar 2008 21:00:37 +0100
changeset 2531 b451b5fc8b57
parent 2254 81fc1ce2d7bd
permissions -rw-r--r--
implement context-based trace connection
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2242
972b35e48f75 a replacement for ClassIdDefaultValue
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     1
#ifndef INTERFACE_ID_DEFAULT_VALUE_H
972b35e48f75 a replacement for ClassIdDefaultValue
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     2
#define INTERFACE_ID_DEFAULT_VALUE_H
972b35e48f75 a replacement for ClassIdDefaultValue
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     3
972b35e48f75 a replacement for ClassIdDefaultValue
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     4
#include "default-value.h"
972b35e48f75 a replacement for ClassIdDefaultValue
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     5
#include "object.h"
972b35e48f75 a replacement for ClassIdDefaultValue
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     6
972b35e48f75 a replacement for ClassIdDefaultValue
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     7
namespace ns3 {
972b35e48f75 a replacement for ClassIdDefaultValue
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     8
2250
18f432098389 InterfaceId -> TypeId
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2242
diff changeset
     9
class TypeIdDefaultValue : public DefaultValueBase
2242
972b35e48f75 a replacement for ClassIdDefaultValue
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    10
{
972b35e48f75 a replacement for ClassIdDefaultValue
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    11
public:
972b35e48f75 a replacement for ClassIdDefaultValue
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    12
  /**
972b35e48f75 a replacement for ClassIdDefaultValue
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    13
   * \param name the name of this default value.
972b35e48f75 a replacement for ClassIdDefaultValue
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    14
   * \param help the help text associated to this default value
2252
80595448707a iid -> tid
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2250
diff changeset
    15
   * \param tid the interface id which all objects created
2242
972b35e48f75 a replacement for ClassIdDefaultValue
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    16
   *        through this "default value" must support.
972b35e48f75 a replacement for ClassIdDefaultValue
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    17
   * \param defaultValue the name of the object to create
972b35e48f75 a replacement for ClassIdDefaultValue
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    18
   *        by default.
972b35e48f75 a replacement for ClassIdDefaultValue
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    19
   */
2250
18f432098389 InterfaceId -> TypeId
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2242
diff changeset
    20
  TypeIdDefaultValue (std::string name, 
2242
972b35e48f75 a replacement for ClassIdDefaultValue
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    21
			   std::string help,
2252
80595448707a iid -> tid
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2250
diff changeset
    22
			   TypeId tid,
2242
972b35e48f75 a replacement for ClassIdDefaultValue
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    23
			   std::string defaultValue);
972b35e48f75 a replacement for ClassIdDefaultValue
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    24
  /**
2250
18f432098389 InterfaceId -> TypeId
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2242
diff changeset
    25
   * \returns the TypeId of the object selected by the user.
2242
972b35e48f75 a replacement for ClassIdDefaultValue
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    26
   */
2250
18f432098389 InterfaceId -> TypeId
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2242
diff changeset
    27
  TypeId GetValue (void) const;
2242
972b35e48f75 a replacement for ClassIdDefaultValue
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    28
  /**
972b35e48f75 a replacement for ClassIdDefaultValue
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    29
   * \param interfaceId the new ClassId selected.
972b35e48f75 a replacement for ClassIdDefaultValue
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    30
   *
972b35e48f75 a replacement for ClassIdDefaultValue
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    31
   * Override the currently-selected value.
972b35e48f75 a replacement for ClassIdDefaultValue
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    32
   */
2250
18f432098389 InterfaceId -> TypeId
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2242
diff changeset
    33
  void SetValue (TypeId interfaceId);
2242
972b35e48f75 a replacement for ClassIdDefaultValue
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    34
  /**
972b35e48f75 a replacement for ClassIdDefaultValue
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    35
   * \param name the new object selected.
972b35e48f75 a replacement for ClassIdDefaultValue
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    36
   *
972b35e48f75 a replacement for ClassIdDefaultValue
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    37
   * Override the currently-selected value.
972b35e48f75 a replacement for ClassIdDefaultValue
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    38
   */
972b35e48f75 a replacement for ClassIdDefaultValue
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    39
  void SetValue (std::string name);
972b35e48f75 a replacement for ClassIdDefaultValue
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    40
private:
972b35e48f75 a replacement for ClassIdDefaultValue
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    41
  virtual bool DoParseValue (const std::string &value);
972b35e48f75 a replacement for ClassIdDefaultValue
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    42
  virtual std::string DoGetType (void) const;
972b35e48f75 a replacement for ClassIdDefaultValue
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    43
  virtual std::string DoGetDefaultValue (void) const;
972b35e48f75 a replacement for ClassIdDefaultValue
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    44
  std::string m_defaultName;
972b35e48f75 a replacement for ClassIdDefaultValue
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    45
  std::string m_name;
2250
18f432098389 InterfaceId -> TypeId
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2242
diff changeset
    46
  TypeId m_interfaceId;
2242
972b35e48f75 a replacement for ClassIdDefaultValue
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    47
};
972b35e48f75 a replacement for ClassIdDefaultValue
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    48
972b35e48f75 a replacement for ClassIdDefaultValue
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    49
} // namespace ns3
972b35e48f75 a replacement for ClassIdDefaultValue
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    50
972b35e48f75 a replacement for ClassIdDefaultValue
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    51
#endif /* INTERFACE_ID_DEFAULT_VALUE_H */