23 #include <vlutil/vlPrint.h>
24 #include <vlutil/vlFilename.h>
25 #include <vlutil/vlUtil.h>
26 #include <vlutil/vlPrint.h>
27 #include <vlutil/vlExceptions.h>
28 #include <vlutil/vlString.h>
29 #include <vlutil/vlInetAddr.h>
34 #include <netinet/if_ether.h>
49 #define MAK_STATIC static
63 const MAKRti::DtString& searchPath =
"" );
76 const MAKRti::DtString& fileName, MAKRti::DtFilename& resolvedFilePath);
81 const MAKRti::DtString& fileName,
bool makeUnique, MAKRti::DtFilename& resolvedFilePath);
121 char** fileBuffer,
unsigned int* fileSize);
152 DT_DLL_RTIUTIL void getRegKey( MAKRti::DtString& val, HKEY rootKey,
153 const MAKRti::DtString& keyPath,
const MAKRti::DtString& keyName );
154 DT_DLL_RTIUTIL void setRegKey(
const MAKRti::DtString& keyVal, HKEY rootKey,
155 const MAKRti::DtString& keyPath,
const MAKRti::DtString& keyName,
157 DT_DLL_RTIUTIL void removeRegKey( HKEY rootKey,
const MAKRti::DtString& keyPath,
158 const MAKRti::DtString& keyName );
160 DT_DLL_RTIUTIL void setEnvVar(
const MAKRti::DtString &val,
const MAKRti::DtString& name,
161 bool isSystem,
bool expand ) ;
162 DT_DLL_RTIUTIL void getEnvVar( MAKRti::DtString& val,
const MAKRti::DtString& name,
bool isSystem );
163 DT_DLL_RTIUTIL void removeEnvVar(
const MAKRti::DtString& name,
bool isSystem );
172 DT_DLL_RTIUTIL void getSystemRunLocation(HKEY& rootKey, MAKRti::DtString& regPath);
173 DT_DLL_RTIUTIL void getUserRunLocation(HKEY& rootKey, MAKRti::DtString& regPath);
178 , std::pair< void*, void* > & resultInfo );
216 #define DtRtiFatal DtRtiOutputStream( MAKRti::DtNlFatal )
217 #define DtRtiWarn DtRtiOutputStream( MAKRti::DtNlWarn )
218 #define DtRtiInfo DtRtiOutputStream( MAKRti::DtNlInfo )
219 #define DtRtiVerbose DtRtiOutputStream( MAKRti::DtNlVerbose )
220 #define DtRtiDebug DtRtiOutputStream( MAKRti::DtNlDebug )
223 #define DtIsMember(container, element) (container.find(element) != container.end())
230 typename T::iterator iter = pointerVector.begin();
231 while (iter != pointerVector.end())
234 iter = pointerVector.erase(iter);
262 myVector.push_back(
new T(*element));
273 typename T::iterator iter = pointerSet.begin();
274 while (iter != pointerSet.end())
277 pointerSet.erase(iter);
278 iter = pointerSet.begin();
304 mySet.insert(element);
308 mySet.insert(
new T(*element));
328 typename std::map<T*, Y>::iterator iter =
myMap.begin();
329 typename std::map<T*, Y>::iterator theEnd =
myMap.end();
330 for ( ; iter != theEnd; ++iter )
342 myMap.insert(element);
346 myMap.insert(std::make_pair(
new T(*element.first), element.second));
355 template<
typename T,
typename TContainer >
358 typename TContainer::iterator pos = std::find( container.begin(), container.end(), value );
359 if ( pos != container.end() )
366 container.insert( pos, value );
372 #ifdef DtTHROW_PROPAGATE
373 #undef DtTHROW_PROPAGATE
375 #define DtTHROW_PROPAGATE(exceptionClass,errorMsg, exPtr) \
376 throw exceptionClass(MAKRti::DtString(#exceptionClass": ") + errorMsg, __DtFUNC__, MAKRti::DtFilename::stripPath(__FILE__), __LINE__, exPtr)
385 typedef MAKRti::DtTemplatedException<DtRtiExceptionDesignatorDefault>
DtRtiException;
400 bool ignoreLoopback);
Definition: rtiUtil.h:380
void operator()(T *element)
Function operator.
Definition: rtiUtil.h:254
DT_DLL_RTIUTIL MAKRti::DtInetAddr DtDefaultInterfaceAddr()
Get's the address of the default network interface on this machine.
std::pair< MAKRti::DtInetAddr, int > DtInetAddrAndPort
Definition: rtiUtil.h:147
DT_DLL_RTIUTIL void DtSetNotifyLevel(unsigned int notifyLevel)
DT_DLL_RTIUTIL MAKRti::DtFilename & DtResolveAbsoluteFileLocation(const MAKRti::DtString &path, const MAKRti::DtString &fileName, MAKRti::DtFilename &resolvedFilePath)
Returns the absolute file location Returns the constructed file name in the file name given as a para...
void operator()(const std::pair< T *const, Y > element)
Function operator.
Definition: rtiUtil.h:338
DT_DLL_RTIUTIL int DtGetKey()
Returns a single character of input from stdin.
Definition: rtiUtil.h:204
DT_DLL_RTIUTIL void DtRtiAttachNotificationPrinter(MAKRti::DtNotifyLevelType level, MAKRti::DtPrinter *printer)
Windows only: Attach a MAKRti::DtPrinter to the RTI .dll's internal notification stream, since they are not exported.
Definition: rtiUtil.h:189
std::map< T *, Y > & myMap
Definition: rtiUtil.h:322
Definition: rtiUtil.h:382
DT_DLL_RTIUTIL void shutdownAssistant(bool force)
DT_DLL_RTIUTIL bool DtNonBlockingPollInputLine(MAKRti::DtString &buffer)
Polls line-buffered standard input without blocking execution.
DT_DLL_RTIUTIL MAKRti::DtString DtGetProcessName()
Return the process name of the current process.
DT_DLL_RTIUTIL void startupAssistant()
bool DtUNIQUE_INSERT(const T &value, TContainer &container)
Insert a copy of a value into a container IF that value is not already in the container If the value ...
Definition: rtiUtil.h:356
Definition: rtiUtil.h:190
DT_DLL_RTIUTIL MAKRti::DtString DtPerformDNSLookup(MAKRti::DtInetAddr addr)
Could be costly operation.
DT_DLL_RTIUTIL int DtBitsRequiredToRepresent(unsigned long x)
Return the number of bits required to represent the given value as an unsigned integer.
DT_DLL_RTIUTIL void writeMessageToStdErrPipe(const MAKRti::DtString &msg)
Write the given message to a stdErr pipe.
DtDeepCopyPointerIntoMap(std::map< T *, Y > &targetMap)
Constructor.
Definition: rtiUtil.h:325
Definition: rtiUtil.h:193
std::set< T * > & mySet
Definition: rtiUtil.h:290
DT_DLL_RTIUTIL MAKRti::DtString timeString(const MAKRti::DtClock &clock)
Return a string representing elapsed time and absolute time in seconds from clock wall clock time fro...
void DtDeleteVectorOfPointers(T &pointerVector)
Delete elements of a vector of pointers.
Definition: rtiUtil.h:226
Deep copy a vector pointer entry into the provided target vector This helper functor is used in for_e...
Definition: rtiUtil.h:241
const unsigned int DtGreatestValidPortNumber
Definition: rtiUtil.h:52
void operator()(T *element)
Function operator.
Definition: rtiUtil.h:300
int targetFedexHandle
Definition: rtiUtil.h:197
DtRtiAssistantCommandEnum
Definition: rtiUtil.h:184
DT_DLL_RTIUTIL bool DtReadFile(FILE *fileHandle, char **fileBuffer, unsigned int *fileSize)
Read an opened file into a new buffer of returned size.
Definition: rtiUtil.h:188
DT_DLL_RTIUTIL int DtKBHit()
Detect if there has been a button press on stdin.
DT_DLL_RTIUTIL MAKRti::DtException const & DtInitialException(MAKRti::DtException const &ex)
Return the initial exception if exceptions were chained or this one if not.
DT_DLL_RTIUTIL MAKRti::DtFilename DtRtiLibPath(const MAKRti::DtString &searchPath="")
Search the system path for the RTI library and return the path to it If searchPath isn't specified...
MAKRti::DtTemplatedException< DtRtiExceptionDesignatorDefault > DtRtiException
Definition: rtiUtil.h:385
DtRtiExceptionDesignator
Definition: rtiUtil.h:378
DT_DLL_RTIUTIL MAKRti::DtString addrAndPortToString(const DtInetAddrAndPort &addrPort)
DT_DLL_RTIUTIL typedef std::set< MAKRti::DtInetAddr > DtInetAddrSet
Definition: rtiUtil.h:389
Definition: rtiUtil.h:381
DT_DLL_RTIUTIL int DtEnumerateInterfaces(std::vector< MAKRti::DtInetAddr > &addresses, bool ignoreLoopback)
Populate addresses with the IPs of local NICs.
std::vector< T * > & myVector
Definition: rtiUtil.h:244
DtRtiAssistantStartupRequest
Definition: rtiUtil.h:201
DT_DLL_RTIUTIL bool changeAssistantStartup(DtRtiAssistantStartupRequest desiredState)
DT_DLL_RTIUTIL MAKRti::DtString & DtMakeFileNameUnique(MAKRti::DtString &fileName)
Given the filepath, append unique characters to base file name to make it unique Returns the submitte...
Deep copy a map pointer entry into the provided target map This helper functor is used in for_each to...
Definition: rtiUtil.h:319
DT_DLL_RTIUTIL const MAKRti::DtString & DtGetLocalHostName()
Returns the local hostname. Not threadsafe.
DT_DLL_RTIUTIL MAKRti::DtFilename & DtMakeLogFilePath(const MAKRti::DtString &baseFilePath, const MAKRti::DtString &fileName, bool makeUnique, MAKRti::DtFilename &resolvedFilePath)
Makes a log file name from the given path and file name.
DtDeepCopyPointerIntoVector(std::vector< T * > &targetVector)
Constructor.
Definition: rtiUtil.h:247
Definition: rtiUtil.h:205
DT_DLL_RTIUTIL bool DtLocateConfigFile(MAKRti::DtFilename const &fileName, MAKRti::DtFilename &locatedFileName)
Locate a configuration file in the following order.
DT_DLL_RTIUTIL void queryAssistantStartup(bool &isStartupItem, bool &isUserStartupItem)
DtDeepCopyPointerIntoSet(std::set< T * > &targetSet)
Constructor.
Definition: rtiUtil.h:293
Definition: rtiUtil.h:187
DT_DLL_RTIUTIL unsigned long long DtFirstHostMACAddr()
Definition: rtiUtil.h:203
int assistantHandle
Definition: rtiUtil.h:196
DT_DLL_RTIUTIL MAKRti::DtFilename DtRtiSearchPathList(const MAKRti::DtFilename &libName, const MAKRti::DtString &searchPath="")
Search the system path for the specified library by name, and return the path to it If searchPath isn...
MAKRti::DtTemplatedException< DtRtiExceptionDesignatorPopup > DtRtiExceptionPopup
Definition: rtiUtil.h:386
DT_DLL_RTIUTIL bool removeAssistantStartup()
MAKRti::DtTemplatedException< DtRtiExceptionDesignatorInvalidRidExpression > DtRtiExceptionInvalidRidExpression
Definition: rtiUtil.h:387
#define DT_DLL_RTIUTIL
Definition: rtiMsConfig.h:127
DT_DLL_RTIUTIL bool DtIsIpOfLocalInterface(const MAKRti::DtInetAddr &addrInQuestion, bool refresh=false)
returns true for isAnyAddr, and if DtInetaddr matches ip of a local interface.
DT_DLL_RTIUTIL void DtRtiDetachNotificationPrinter(MAKRti::DtNotifyLevelType level, MAKRti::DtPrinter *printer)
Windows only: Detach a MAKRti::DtPrinter from the RTI .dll's internal notification stream...
void DtDeleteSetOfPointers(T &pointerSet)
Delete elements of a set of pointers.
Definition: rtiUtil.h:269
Definition: rtiUtil.h:186
int targetFederateHandle
Definition: rtiUtil.h:198
DT_DLL_RTIUTIL MAKRti::DtOutputStream & DtRtiOutputStream(MAKRti::DtNotifyLevelType level)
Return a reference to the RTI's MAKRti::DtOutputStream objects so plugins and applications can log to...
Deep copy a set pointer entry into the provided target set This helper functor is used in for_each to...
Definition: rtiUtil.h:287
Definition: rtiUtil.h:206
DtRtiAssistantCommandEnum commType
Definition: rtiUtil.h:195