INET Framework for OMNeT++/OMNEST
inet::utils Namespace Reference

Namespaces

 filters
 

Functions

std::string ltostr (long i)
 Converts an integer to string. More...
 
std::string dtostr (double d)
 Converts a double to string. More...
 
std::string hex (uint16_t l)
 
std::string hex (int16_t l)
 
std::string hex (uint32_t l)
 
std::string hex (int32_t l)
 
std::string hex (uint64_t l)
 
std::string hex (int64_t l)
 
long hex (const char *s)
 
unsigned long uhex (const char *s)
 
double atod (const char *s)
 Converts string to double. More...
 
unsigned long atoul (const char *s)
 Converts string to unsigned long. More...
 
std::string stripnonalnum (const char *s)
 Removes non-alphanumeric characters from the given string. More...
 
std::string stringf (const char *fmt,...)
 Accepts a printf-like argument list, and returns the result in a string. More...
 
std::string vstringf (const char *fmt, va_list &args)
 Accepts a vprintf-like argument list, and returns the result in a string. More...
 
cObject * createOneIfClassIsKnown (const char *className, const char *defaultNamespace=getSimulation() ->getContext() ->getClassName())
 Like cObjectFactory::createOneIfClassIsKnown(), except it starts searching for the class in the given namespace. More...
 
cObject * createOne (const char *className, const char *defaultNamespace=getSimulation() ->getContext() ->getClassName())
 Like cObjectFactory::createOne(), except it starts searching for the class in the given namespace. More...
 
bool fileExists (const char *pathname)
 
void splitFileName (const char *pathname, std::string &dir, std::string &fnameonly)
 
void makePath (const char *pathname)
 
void makePathForFile (const char *filename)
 
int roundUp (int numToRound, int multiple)
 Rounding up to the nearest multiple of a number. More...
 
template<typename T >
TdupPacketAndControlInfo (T *packet)
 Duplicate a packet together with its control info. More...
 
cNEDValue nedf_hasModule (cComponent *context, cNEDValue argv[], int argc)
 
 Define_NED_Function2 (nedf_hasModule, "bool hasModule(string nedTypeName)", "string", "Returns true if the given NED type exists")
 
cNEDValue nedf_haveClass (cComponent *context, cNEDValue argv[], int argc)
 
 Define_NED_Function2 (nedf_haveClass, "bool haveClass(string className)", "string", "Returns true if the given C++ class exists")
 
cNEDValue nedf_moduleListByPath (cComponent *context, cNEDValue argv[], int argc)
 
 Define_NED_Function2 (nedf_moduleListByPath, "string moduleListByPath(string modulePath,...)", "string", "Returns a space-separated list of the modules at the given path(s). " "See cTopology::extractByModulePath().")
 
cNEDValue nedf_moduleListByNedType (cComponent *context, cNEDValue argv[], int argc)
 
 Define_NED_Function2 (nedf_moduleListByNedType, "string moduleListByNedType(string nedTypeName,...)", "string", "Returns a space-separated list of the modules with the given NED type(s). " "See cTopology::extractByNedTypeName().")
 
cNEDValue nedf_select (cComponent *context, cNEDValue argv[], int argc)
 
 Define_NED_Function2 (nedf_select, "any select(int index, ...)", "misc", "Returns the <index>th item from the rest of the argument list; numbering starts from 0.")
 
cNEDValue nedf_absPath (cComponent *context, cNEDValue argv[], int argc)
 
 Define_NED_Function2 (nedf_absPath, "string absPath(string modulePath)", "string", "Returns absolute path of given module")
 
cNEDValue nedf_firstAvailableOrEmpty (cComponent *context, cNEDValue argv[], int argc)
 
 Define_NED_Function2 (nedf_firstAvailableOrEmpty, "string firstAvailableOrEmpty(...)", "misc", "Accepts any number of strings, interprets them as NED type names " "(qualified or unqualified), and returns the first one that exists and " "its C++ implementation class is also available. Returns empty string if " "none of the types are available.")
 
cNEDValue nedf_nanToZero (cComponent *context, cNEDValue argv[], int argc)
 
 Define_NED_Function2 (nedf_nanToZero, "quantity nanToZero(quantity x)", "math", "Returns the argument if it is not NaN, otherwise returns 0.")
 
 Define_NED_Function2 (nedf_intWithUnit, "intquantity intWithUnit(any x)", "conversion", "Converts x to an integer (C++ long), and returns the result. A boolean argument becomes 0 or 1; a double is converted using floor(); a string or an XML argument causes an error.")
 
cNedValue nedf_xmlattr (cComponent *contextComponent, cNedValue argv[], int argc)
 
 Define_NED_Function2 (nedf_xmlattr, "string xmlattr(xml xmlNode, string attributeName, string defaultValue?)", "xml", "Returns the value of the specified XML attribute of xmlNode. " "It returns the defaultValue (or throws an error) if the attribute does not exists.") cNEDValue nedf_findArrayObjectElement(cComponent *context
 
 for (int index=0;index< array->size();index++)
 
return cNEDValue ((cObject *) nullptr)
 
 Define_NED_Function2 (nedf_findArrayObjectElement, "bool findArrayObjectElement(any array, string key, any value, ...)", "misc", "Returns the first object from the array that matches the given set of key-value pairs")
 
cValue nedf_getId (cComponent *contextComponent, cValue argv[], int argc)
 

Variables

cNEDValue argv []
 
cNEDValue int argc
 

Function Documentation

◆ atod()

INET_API double inet::utils::atod ( const char *  s)

Converts string to double.

81 {
82  char *e;
83  double d = ::strtod(s, &e);
84  if (*e)
85  throw cRuntimeError("Invalid cast: '%s' cannot be interpreted as a double", s);
86  return d;
87 }

Referenced by inet::IndicatorLabelFigure::parse(), inet::IndicatorTextFigure::parse(), inet::IndexedImageFigure::parse(), inet::ProgressMeterFigure::parse(), inet::LinearGaugeFigure::parse(), inet::ThermometerFigure::parse(), inet::CounterFigure::parse(), and inet::GaugeFigure::parse().

◆ atoul()

INET_API unsigned long inet::utils::atoul ( const char *  s)

Converts string to unsigned long.

90 {
91  char *e;
92  unsigned long d = ::strtoul(s, &e, 10);
93  if (*e)
94  throw cRuntimeError("Invalid cast: '%s' cannot be interpreted as an unsigned long", s);
95  return d;
96 }

Referenced by inet::Ipv6RoutingTable::configureInterfaceFromXml(), inet::FigureRecorder::init(), inet::queueing::WrrClassifier::initialize(), and inet::queueing::WrrScheduler::initialize().

◆ cNEDValue()

return inet::utils::cNEDValue ( (cObject *)  nullptr)

Referenced by nedf_nanToZero().

◆ createOne()

INET_API cObject * inet::utils::createOne ( const char *  className,
const char *  defaultNamespace 
)

◆ createOneIfClassIsKnown()

INET_API cObject * inet::utils::createOneIfClassIsKnown ( const char *  className,
const char *  defaultNamespace 
)

Like cObjectFactory::createOneIfClassIsKnown(), except it starts searching for the class in the given namespace.

132 {
133  std::string ns = defaultNamespace;
134  do {
135  std::string::size_type found = ns.rfind("::");
136  if (found == std::string::npos)
137  found = 0;
138  ns.erase(found);
139  std::string cn = found ? ns + "::" + className : className;
140  cObject *ret = cObjectFactory::createOneIfClassIsKnown(cn.c_str());
141  if (ret)
142  return ret;
143  } while (!ns.empty());
144  return nullptr;
145 }

Referenced by createOne(), and inet::visualizer::StatisticCanvasVisualizer::createStatisticVisualization().

◆ Define_NED_Function2() [1/11]

inet::utils::Define_NED_Function2 ( nedf_absPath  ,
"string absPath(string modulePath)"  ,
"string"  ,
"Returns absolute path of given module"   
)

◆ Define_NED_Function2() [2/11]

inet::utils::Define_NED_Function2 ( nedf_findArrayObjectElement  ,
"bool findArrayObjectElement(any array, string key, any value, ...)"  ,
"misc"  ,
"Returns the first object from the array that matches the given set of key-value pairs"   
)

◆ Define_NED_Function2() [3/11]

inet::utils::Define_NED_Function2 ( nedf_firstAvailableOrEmpty  ,
"string firstAvailableOrEmpty(...)"  ,
"misc"  ,
"Accepts any number of  strings,
interprets them as NED type names " "  qualified or unqualified,
and returns the first one that exists and " "its C++implementation class is also available. Returns empty string if " "none of the types are available."   
)

◆ Define_NED_Function2() [4/11]

inet::utils::Define_NED_Function2 ( nedf_hasModule  ,
"bool hasModule(string nedTypeName)"  ,
"string"  ,
"Returns true if the given NED type exists"   
)

◆ Define_NED_Function2() [5/11]

inet::utils::Define_NED_Function2 ( nedf_haveClass  ,
"bool haveClass(string className)"  ,
"string"  ,
"Returns true if the given C++ class exists"   
)

◆ Define_NED_Function2() [6/11]

inet::utils::Define_NED_Function2 ( nedf_intWithUnit  ,
"intquantity intWithUnit(any x)"  ,
"conversion"  ,
"Converts x to an integer   C++ long,
and returns the result. A boolean argument becomes 0 or 1;a double is converted using floor();a string or an XML argument causes an error."   
)

◆ Define_NED_Function2() [7/11]

inet::utils::Define_NED_Function2 ( nedf_moduleListByNedType  ,
"string moduleListByNedType(string nedTypeName,...)"  ,
"string"  ,
"Returns a space-separated list of the modules with the given NED type(s). " "See cTopology::extractByNedTypeName()."   
)

◆ Define_NED_Function2() [8/11]

inet::utils::Define_NED_Function2 ( nedf_moduleListByPath  ,
"string moduleListByPath(string modulePath,...)"  ,
"string"  ,
"Returns a space-separated list of the modules at the given path(s). " "See cTopology::extractByModulePath()."   
)

◆ Define_NED_Function2() [9/11]

inet::utils::Define_NED_Function2 ( nedf_nanToZero  ,
"quantity nanToZero(quantity x)"  ,
"math"  ,
"Returns the argument if it is not  NaN,
otherwise returns 0."   
)

◆ Define_NED_Function2() [10/11]

inet::utils::Define_NED_Function2 ( nedf_select  ,
"any select(int index, ...)"  ,
"misc"  ,
"Returns the <index>th item from the rest of the argument list; numbering starts from 0."   
)

◆ Define_NED_Function2() [11/11]

inet::utils::Define_NED_Function2 ( nedf_xmlattr  ,
"string xmlattr(xml xmlNode, string attributeName, string defaultValue?)"  ,
"xml"  ,
"Returns the value of the specified XML attribute of xmlNode. " "It returns the defaultValue (or throws an error) if the attribute does not exists."   
)

◆ dtostr()

INET_API std::string inet::utils::dtostr ( double  d)

Converts a double to string.

22 {
23  std::ostringstream os;
24  os << d;
25  return os.str();
26 }

◆ dupPacketAndControlInfo()

template<typename T >
T* inet::utils::dupPacketAndControlInfo ( T packet)

Duplicate a packet together with its control info.

(cPacket's dup() ignores the control info, it will be nullptr in the returned copy).

87  {
88  T *copy = packet->dup();
89  if (cObject *ctrl = packet->getControlInfo())
90  copy->setControlInfo(ctrl->dup());
91  return copy;
92 }

Referenced by inet::NetworkProtocolBase::sendDown().

◆ fileExists()

INET_API bool inet::utils::fileExists ( const char *  pathname)
158 {
159  // Note: stat("foo/") ==> error, even when "foo" exists and is a directory!
160  struct stat statbuf;
161  return stat(pathname, &statbuf) == 0;
162 }

Referenced by makePath().

◆ for()

inet::utils::for ( int  index = 0; index < array->size(); index++)
229  {
230  cValueMap *map = check_and_cast<cValueMap *>(array->get(index).objectValue());
231  for (int i = 1; i < argc; i += 2)
232  if (map->get(argv[i].stringValue()).intValue() != argv[i + 1].intValue())
233  goto next;
234  return map;
235  next:;
236  }

Referenced by inet::sctp::SctpAssociation::calculateAssocSharedKey(), inet::sctp::SctpAssociation::chunkReschedulingControl(), and inet::ospfv3::Ospfv3Splitter::parseConfig().

◆ hex() [1/7]

INET_API long inet::utils::hex ( const char *  s)
71 {
72  return strtol(s, nullptr, 16);
73 }

Referenced by hex().

◆ hex() [2/7]

INET_API std::string inet::utils::hex ( int16_t  l)
36 {
37  std::ostringstream os;
38  os << std::hex << l;
39  return os.str();
40 }

◆ hex() [3/7]

INET_API std::string inet::utils::hex ( int32_t  l)
50 {
51  std::ostringstream os;
52  os << std::hex << l;
53  return os.str();
54 }

◆ hex() [4/7]

INET_API std::string inet::utils::hex ( int64_t  l)
64 {
65  std::ostringstream os;
66  os << std::hex << l;
67  return os.str();
68 }

◆ hex() [5/7]

INET_API std::string inet::utils::hex ( uint16_t  l)
29 {
30  std::ostringstream os;
31  os << std::hex << l;
32  return os.str();
33 }

Referenced by inet::ospfv3::Ospfv3Area::detailedInfo(), inet::ospfv2::hexCharToByte(), inet::ClnsAddress::str(), and inet::Ipv6Address::str().

◆ hex() [6/7]

INET_API std::string inet::utils::hex ( uint32_t  l)
43 {
44  std::ostringstream os;
45  os << std::hex << l;
46  return os.str();
47 }

◆ hex() [7/7]

INET_API std::string inet::utils::hex ( uint64_t  l)
57 {
58  std::ostringstream os;
59  os << std::hex << l;
60  return os.str();
61 }

◆ ltostr()

INET_API std::string inet::utils::ltostr ( long  i)

Converts an integer to string.

15 {
16  std::ostringstream os;
17  os << i;
18  return os.str();
19 }

Referenced by inet::DiffservUtil::colorToString(), and inet::DiffservUtil::dscpToString().

◆ makePath()

INET_API void inet::utils::makePath ( const char *  pathname)
198 {
199  if (!fileExists(pathname)) {
200  std::string pathprefix, dummy;
201  splitFileName(pathname, pathprefix, dummy);
202  makePath(pathprefix.c_str());
203  // note: anomaly with slash-terminated dirnames: stat("foo/") says
204  // it does not exist, and mkdir("foo/") says cannot create (EEXIST):
205  if (opp_mkdir(pathname, 0755) != 0 && errno != EEXIST)
206  throw cRuntimeError("Cannot create directory '%s': %s", pathname, strerror(errno));
207  }
208 }

Referenced by makePathForFile().

◆ makePathForFile()

INET_API void inet::utils::makePathForFile ( const char *  filename)

◆ nedf_absPath()

cNEDValue inet::utils::nedf_absPath ( cComponent *  context,
cNEDValue  argv[],
int  argc 
)
119 {
120  if (argc != 1)
121  throw cRuntimeError("absPath(): must be one argument instead of %d argument(s)", argc);
122  const char *path = argv[0].stringValue();
123  switch (*path) {
124  case '.':
125  return context->getFullPath() + path;
126 
127  case '^':
128  return context->getFullPath() + '.' + path;
129 
130  default:
131  return argv[0];
132  }
133 }

◆ nedf_firstAvailableOrEmpty()

cNEDValue inet::utils::nedf_firstAvailableOrEmpty ( cComponent *  context,
cNEDValue  argv[],
int  argc 
)
142 {
143  cRegistrationList *types = omnetpp::internal::componentTypes.getInstance();
144  for (int i = 0; i < argc; i++) {
145  if (argv[i].getType() != cNEDValue::STRING)
146  throw cRuntimeError("firstAvailable(): string arguments expected");
147  const char *name = argv[i].stringValue();
148  cComponentType *c;
149  c = dynamic_cast<cComponentType *>(types->lookup(name)); // by qualified name
150  if (c && c->isAvailable())
151  return argv[i];
152  c = dynamic_cast<cComponentType *>(types->find(name)); // by simple name
153  if (c && c->isAvailable())
154  return argv[i];
155  }
156  return "";
157 }

◆ nedf_getId()

cValue inet::utils::nedf_getId ( cComponent *  contextComponent,
cValue  argv[],
int  argc 
)
247 {
248  return contextComponent->getId();
249 }

◆ nedf_hasModule()

cNEDValue inet::utils::nedf_hasModule ( cComponent *  context,
cNEDValue  argv[],
int  argc 
)
16 {
17  cRegistrationList *types = omnetpp::internal::componentTypes.getInstance();
18  if (argv[0].getType() != cNEDValue::STRING)
19  throw cRuntimeError("hasModule(): string arguments expected");
20  const char *name = argv[0].stringValue();
21  cComponentType *c;
22  c = dynamic_cast<cComponentType *>(types->lookup(name)); // by qualified name
23  if (c && c->isAvailable())
24  return true;
25  c = dynamic_cast<cComponentType *>(types->find(name)); // by simple name
26  if (c && c->isAvailable())
27  return true;
28  return false;
29 }

◆ nedf_haveClass()

cNEDValue inet::utils::nedf_haveClass ( cComponent *  context,
cNEDValue  argv[],
int  argc 
)
38 {
39  return omnetpp::internal::classes.getInstance()->lookup(argv[0].stringValue()) != nullptr;
40 }

◆ nedf_moduleListByNedType()

cNEDValue inet::utils::nedf_moduleListByNedType ( cComponent *  context,
cNEDValue  argv[],
int  argc 
)
76 {
77  std::string modulenames;
78  cTopology topo;
79  std::vector<std::string> paths;
80  for (int i = 0; i < argc; i++)
81  paths.push_back(argv[i].stdstringValue());
82 
83  topo.extractByNedTypeName(paths);
84 
85  for (int i = 0; i < topo.getNumNodes(); i++) {
86  std::string path = topo.getNode(i)->getModule()->getFullPath();
87  if (modulenames.length() > 0)
88  modulenames = modulenames + " " + path;
89  else
90  modulenames = path;
91  }
92  return modulenames;
93 }

◆ nedf_moduleListByPath()

cNEDValue inet::utils::nedf_moduleListByPath ( cComponent *  context,
cNEDValue  argv[],
int  argc 
)
49 {
50  std::string modulenames;
51  cTopology topo;
52  std::vector<std::string> paths;
53  for (int i = 0; i < argc; i++)
54  paths.push_back(argv[i].stdstringValue());
55 
56  topo.extractByModulePath(paths);
57 
58  for (int i = 0; i < topo.getNumNodes(); i++) {
59  std::string path = topo.getNode(i)->getModule()->getFullPath();
60  if (modulenames.length() > 0)
61  modulenames = modulenames + " " + path;
62  else
63  modulenames = path;
64  }
65  return modulenames;
66 }

◆ nedf_nanToZero()

cNEDValue inet::utils::nedf_nanToZero ( cComponent *  context,
cNEDValue  argv[],
int  argc 
)
168 {
169  double x = argv[0].doubleValueRaw();
170  const char *unit = argv[0].getUnit();
171  return std::isnan(x) ? cNEDValue(0.0, unit) : argv[0];
172 }

◆ nedf_select()

cNEDValue inet::utils::nedf_select ( cComponent *  context,
cNEDValue  argv[],
int  argc 
)
103 {
104  long index = argv[0];
105  if (index < 0)
106  throw cRuntimeError("select(): negative index %ld", index);
107  if (index >= argc - 1)
108  throw cRuntimeError("select(): index=%ld is too large, max value is %d", index, argc - 1);
109  return argv[index + 1];
110 }

◆ nedf_xmlattr()

cNedValue inet::utils::nedf_xmlattr ( cComponent *  contextComponent,
cNedValue  argv[],
int  argc 
)
204 {
205  if (argv[0].getType() != cNedValue::OBJECT)
206  throw cRuntimeError("xmlattr(): xmlNode argument must be an xml node");
207  if (argv[1].getType() != cNEDValue::STRING)
208  throw cRuntimeError("xmlattr(): attributeName argument must be a string");
209 
210  cXMLElement *node = argv[0].xmlValue();
211  const char *attr = node->getAttribute(argv[1].stdstringValue().c_str());
212  if (attr != nullptr)
213  return cNedValue(attr);
214  if (argc < 3)
215  throw cRuntimeError("Attribute '%s' not found in xml '%s'", argv[1].stdstringValue().c_str(), argv[0].stdstringValue().c_str());
216  return argv[2];
217 }

◆ roundUp()

int inet::utils::roundUp ( int  numToRound,
int  multiple 
)
inline

Rounding up to the nearest multiple of a number.

70 { return ((numToRound + multiple - 1) / multiple) * multiple; }

Referenced by inet::Ipv4Header::calculateHeaderByteLength(), and inet::Gpsr::setGpsrOptionOnNetworkDatagram().

◆ splitFileName()

INET_API void inet::utils::splitFileName ( const char *  pathname,
std::string &  dir,
std::string &  fnameonly 
)
165 {
166  if (!pathname || !*pathname) {
167  dir = ".";
168  fnameonly = "";
169  return;
170  }
171 
172  // find last "/" or "\"
173  const char *s = pathname + strlen(pathname) - 1;
174  s--; // ignore potential trailing "/"
175  while (s > pathname && *s != '\\' && *s != '/')
176  s--;
177  const char *sep = s <= pathname ? nullptr : s;
178 
179  // split along that
180  if (!sep) {
181  // no slash or colon
182  if (strchr(pathname, ':') || strcmp(pathname, ".") == 0 || strcmp(pathname, "..") == 0) {
183  fnameonly = "";
184  dir = pathname;
185  }
186  else {
187  fnameonly = pathname;
188  dir = ".";
189  }
190  }
191  else {
192  fnameonly = s + 1;
193  dir = std::string(pathname, s - pathname + 1);
194  }
195 }

Referenced by makePath(), and makePathForFile().

◆ stringf()

INET_API std::string inet::utils::stringf ( const char *  fmt,
  ... 
)

Accepts a printf-like argument list, and returns the result in a string.

The limit is 1024 chars.

111 {
112  char buf[BUFLEN];
113  va_list va;
114  va_start(va, fmt);
115  vsnprintf(buf, BUFLEN, fmt, va);
116  buf[BUFLEN - 1] = '\0';
117  va_end(va);
118  return buf;
119 }

Referenced by inet::Ipv4RoutingTable::printMulticastRoutingTable(), and inet::Ipv4RoutingTable::printRoutingTable().

◆ stripnonalnum()

INET_API std::string inet::utils::stripnonalnum ( const char *  s)

Removes non-alphanumeric characters from the given string.

99 {
100  std::string result;
101  for (; *s; s++)
102  if (isalnum(*s))
103  result += *s;
104 
105  return result;
106 }

Referenced by inet::NetworkInterface::initialize(), and inet::ieee80211::Ieee80211Mac::isInterfaceRegistered().

◆ uhex()

INET_API unsigned long inet::utils::uhex ( const char *  s)
76 {
77  return strtoul(s, nullptr, 16);
78 }

◆ vstringf()

INET_API std::string inet::utils::vstringf ( const char *  fmt,
va_list &  args 
)

Accepts a vprintf-like argument list, and returns the result in a string.

The limit is 1024 chars.

122 {
123  char buf[BUFLEN];
124  vsnprintf(buf, BUFLEN, fmt, args);
125  buf[BUFLEN - 1] = '\0';
126  return buf;
127 }

Variable Documentation

◆ argc

◆ argv

inet::utils::makePath
void makePath(const char *pathname)
Definition: INETUtils.cc:197
inet::units::units::T
compose< Wb, pow< m, -2 > > T
Definition: Units.h:951
inet::units::constants::c
const value< double, compose< units::m, pow< units::s, -1 > > > c(299792458)
inet::utils::hex
long hex(const char *s)
Definition: INETUtils.cc:70
inet::utils::argv
cNEDValue argv[]
Definition: NedFunctions.cc:226
inet::utils::createOneIfClassIsKnown
cObject * createOneIfClassIsKnown(const char *className, const char *defaultNamespace)
Like cObjectFactory::createOneIfClassIsKnown(), except it starts searching for the class in the given...
Definition: INETUtils.cc:131
inet::units::constants::e
const value< double, units::C > e(1.602176487e-19)
BUFLEN
#define BUFLEN
Definition: INETUtils.cc:108
inet::utils::fileExists
bool fileExists(const char *pathname)
Definition: INETUtils.cc:157
ctrl
removed ctrl
Definition: IUdp-gates.txt:7
inet::units::values::s
value< double, units::s > s
Definition: Units.h:1235
inet::units::unit
pow< internal::none, 0 > unit
Definition: Units.h:72
inet::utils::cNEDValue
return cNEDValue((cObject *) nullptr)
inet::utils::splitFileName
void splitFileName(const char *pathname, std::string &dir, std::string &fnameonly)
Definition: INETUtils.cc:164
copy
MIT License free of to any person obtaining a copy of this software and associated documentation to deal in the Software without including without limitation the rights to copy
Definition: LICENSE.txt:8
inet::units::units::ns
nano< s >::type ns
Definition: Units.h:1074
inet::utils::argc
cNEDValue int argc
Definition: NedFunctions.cc:227