summaryrefslogtreecommitdiff
path: root/TAO/utils/IOR-parser
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/utils/IOR-parser')
-rw-r--r--TAO/utils/IOR-parser/IOR_Parser.dsp101
-rw-r--r--TAO/utils/IOR-parser/IOR_Parser.dsw29
-rw-r--r--TAO/utils/IOR-parser/Makefile88
-rw-r--r--TAO/utils/IOR-parser/Orbix.IOR1
-rw-r--r--TAO/utils/IOR-parser/README23
-rw-r--r--TAO/utils/IOR-parser/Tao.IOR1
-rw-r--r--TAO/utils/IOR-parser/TaoSimple.IOR1
-rw-r--r--TAO/utils/IOR-parser/VisiBroker.IOR1
-rw-r--r--TAO/utils/IOR-parser/ior-handler.cpp610
-rw-r--r--TAO/utils/IOR-parser/ior-handler.h137
-rw-r--r--TAO/utils/IOR-parser/ior-parser.cpp38
11 files changed, 0 insertions, 1030 deletions
diff --git a/TAO/utils/IOR-parser/IOR_Parser.dsp b/TAO/utils/IOR-parser/IOR_Parser.dsp
deleted file mode 100644
index 35a4bc8dfc7..00000000000
--- a/TAO/utils/IOR-parser/IOR_Parser.dsp
+++ /dev/null
@@ -1,101 +0,0 @@
-# Microsoft Developer Studio Project File - Name="IOR Parser" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=IOR Parser - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "IOR_Parser.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "IOR_Parser.mak" CFG="IOR Parser - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "IOR Parser - Win32 Release" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE "IOR Parser - Win32 Debug" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "IOR Parser - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\\" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
-# SUBTRACT CPP /YX
-# ADD BASE RSC /l 0x407 /d "NDEBUG"
-# ADD RSC /l 0x407 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 ace.lib /nologo /subsystem:console /machine:I386 /out:"Release/parseIor.exe" /libpath:"..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "IOR Parser - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\..\\" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
-# SUBTRACT CPP /YX
-# ADD BASE RSC /l 0x407 /d "_DEBUG"
-# ADD RSC /l 0x407 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 aced.lib /nologo /subsystem:console /debug /machine:I386 /out:"parseIor.exe" /pdbtype:sept /libpath:"..\..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "IOR Parser - Win32 Release"
-# Name "IOR Parser - Win32 Debug"
-# Begin Source File
-
-SOURCE="ior-handler.cpp"
-# End Source File
-# Begin Source File
-
-SOURCE="ior-handler.h"
-# End Source File
-# Begin Source File
-
-SOURCE="ior-parser.cpp"
-# End Source File
-# End Target
-# End Project
diff --git a/TAO/utils/IOR-parser/IOR_Parser.dsw b/TAO/utils/IOR-parser/IOR_Parser.dsw
deleted file mode 100644
index 14ece8c7c41..00000000000
--- a/TAO/utils/IOR-parser/IOR_Parser.dsw
+++ /dev/null
@@ -1,29 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "IOR_Parser"="IOR_Parser.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/TAO/utils/IOR-parser/Makefile b/TAO/utils/IOR-parser/Makefile
deleted file mode 100644
index 62087418798..00000000000
--- a/TAO/utils/IOR-parser/Makefile
+++ /dev/null
@@ -1,88 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for the IOR Parser
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-BIN = ior-parser
-
-FILES = ior-handler
-
-LIBNAME = libIOR
-LIB = $(LIBNAME).a
-SHLIB = $(LIBNAME).$(SOEXT)
-
-SRC = $(addsuffix .cpp,$(FILES))
-LSRC = $(addsuffix .cpp,$(FILES))
-OBJ = $(addsuffix .o,$(FILES))
-
-#BUILD = $(VBIN)
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-.obj/ior-handler.o .obj/ior-handler.so .shobj/ior-handler.o .shobj/ior-handler.so: ior-handler.cpp ior-handler.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-sunos5.5.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Log_Record.i
-.obj/ior-handler.o .obj/ior-handler.so .shobj/ior-handler.o .shobj/ior-handler.so: ior-handler.cpp ior-handler.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/config.h \
- $(ACE_ROOT)/ace/config-sunos5.5.h \
- $(ACE_ROOT)/ace/config-g++-common.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Log_Record.i
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/TAO/utils/IOR-parser/Orbix.IOR b/TAO/utils/IOR-parser/Orbix.IOR
deleted file mode 100644
index 7731ac20965..00000000000
--- a/TAO/utils/IOR-parser/Orbix.IOR
+++ /dev/null
@@ -1 +0,0 @@
-IOR:000000000000001249444c3a4563686f54657374733a312e3000000000000001000000000000005600010000000000146c616d6264612e6563652e756373622e6564750006220000000000323a5c6c616d6264612e6563652e756373622e6564753a4563686f5365727665723a303a3a49523a4563686f5465737473003a
diff --git a/TAO/utils/IOR-parser/README b/TAO/utils/IOR-parser/README
deleted file mode 100644
index 44ca61a2fad..00000000000
--- a/TAO/utils/IOR-parser/README
+++ /dev/null
@@ -1,23 +0,0 @@
-// FILENAME : README
-// AUTHOR : Priya Narasimhan <priya@alpha.ece.ucsb.edu>
-// LAST MODIFIED : September 18, 1998
-// DESCRIPTION : Description of the IOR Parser
-
-The "ior-parser" utility parses IORs generated by most ORBs. It has been
-tested with Orbix, VisiBroker and TAO so far.
-
-USAGE: ior-parser <IOR filename>
-
-There are sample IORs (Tao.IOR, Orbix.IOR and Visibroker.IOR) in this
-directory. You can run the "ior-parser" utility against these to see
-what the normal output looks like.
-
-RELEASE NOTES:
-
-The "ior-parser" does not currently work if multi-component profiles are
-embedded in the IOR. Since Visibroker IORs normally contain
-multi-component (LIOP and IIOP) profiles, this version of the IOR Parser
-will work only if the Visibroker server is forced to generate a
-single-component (IIOP) profile by passing it the command-line option
-"-OAlocalIPC 0".
-
diff --git a/TAO/utils/IOR-parser/Tao.IOR b/TAO/utils/IOR-parser/Tao.IOR
deleted file mode 100644
index 830ed119a9c..00000000000
--- a/TAO/utils/IOR-parser/Tao.IOR
+++ /dev/null
@@ -1 +0,0 @@
-IOR:000000000000001649444c3a73696d706c655f6f626a6563743a312e3000000000000001000000000000003600010000000000036d750000aada00000000002250333564623666626130303062383766612f6368696c645f706f612f736572766572 \ No newline at end of file
diff --git a/TAO/utils/IOR-parser/TaoSimple.IOR b/TAO/utils/IOR-parser/TaoSimple.IOR
deleted file mode 100644
index 830ed119a9c..00000000000
--- a/TAO/utils/IOR-parser/TaoSimple.IOR
+++ /dev/null
@@ -1 +0,0 @@
-IOR:000000000000001649444c3a73696d706c655f6f626a6563743a312e3000000000000001000000000000003600010000000000036d750000aada00000000002250333564623666626130303062383766612f6368696c645f706f612f736572766572 \ No newline at end of file
diff --git a/TAO/utils/IOR-parser/VisiBroker.IOR b/TAO/utils/IOR-parser/VisiBroker.IOR
deleted file mode 100644
index 168d2418032..00000000000
--- a/TAO/utils/IOR-parser/VisiBroker.IOR
+++ /dev/null
@@ -1 +0,0 @@
-IOR:002020200000001049444c3a4163636f756e743a312e300000000001000000000000004e00010020000000103132382e3131312e3139332e31323000842920200000002e00504d43000000000000001049444c3a4163636f756e743a312e30000000000e4a61636b20422e20517569636b00
diff --git a/TAO/utils/IOR-parser/ior-handler.cpp b/TAO/utils/IOR-parser/ior-handler.cpp
deleted file mode 100644
index 9d36047089f..00000000000
--- a/TAO/utils/IOR-parser/ior-handler.cpp
+++ /dev/null
@@ -1,610 +0,0 @@
-// $Id$
-
-#include "ior-handler.h"
-
-IorHandler::IorHandler (void)
-{
-}
-
-int
-IorHandler::hexChar2int (char thisChar)
-{
- switch (thisChar)
- {
- case '0': return (0);
- case '1': return (1);
- case '2': return (2);
- case '3': return (3);
- case '4': return (4);
- case '5': return (5);
- case '6': return (6);
- case '7': return (7);
- case '8': return (8);
- case '9': return (9);
- case 'a': return (10);
- case 'b': return (11);
- case 'c': return (12);
- case 'd': return (13);
- case 'e': return (14);
- case 'f': return (15);
- }
- return -1;
-}
-
-u_long
-IorHandler::getOctet8Field (char *readPtr, int *hexCharsRead)
-{
- char octet8Holder[8];
- u_long value;
- int i;
-
- for (i = 0; i < 8; i++)
- octet8Holder[i] = * (readPtr + i);
-
- *hexCharsRead = 8;
-
- value = 16*hexChar2int (octet8Holder[6]) + hexChar2int (octet8Holder[7]);
- return (value);
-}
-
-u_long
-IorHandler::getOctet4Field (char *readPtr, int *hexCharsRead)
-{
- char octet4Holder[4];
- u_long value;
- int i;
-
- for (i = 0; i < 4; i++)
- octet4Holder[i] = * (readPtr + i);
-
- *hexCharsRead = 4;
-
-#ifdef ACE_BIG_ENDIAN
- // On a big endian platform, the MSB is first and the LSB is next
- value = 16*16*16* hexChar2int (octet4Holder[0]) +
- 16*16* hexChar2int (octet4Holder[1]) +
- 16* hexChar2int (octet4Holder[2]) +
- hexChar2int (octet4Holder[3]);
-#endif
-
-
-#ifdef ACE_LITTLE_ENDIAN
- // On a little endian platform, the LSB is first and the MSB is next
- value = 16*16*16* hexChar2int (octet4Holder[2]) +
- 16*16* hexChar2int (octet4Holder[3]) +
- 16* hexChar2int (octet4Holder[0]) +
- hexChar2int (octet4Holder[1]);
-#endif
-
-
- return (value);
-}
-
-u_long
-IorHandler::getOctet2Field (char *readPtr, int *hexCharsRead)
-{
- char octet2Holder[2];
- u_long value;
- int i;
-
- for (i = 0; i < 2; i++)
- octet2Holder[i] = * (readPtr + i);
-
- *hexCharsRead = 2;
-
- value = 16 * hexChar2int (octet2Holder[0]) + hexChar2int (octet2Holder[1]);
- return (value);
-}
-
-void
-IorHandler::skipSpaceIfAny(char *readPtr, int *hexCharsRead)
-{
- char nullOctet[2];
- int offset;
-
- *hexCharsRead = 0;
- offset = 0;
-
- // Some ORBs tend to insert a single space character, ie, ASCII
- // equivalent 20, at the end of certain fields in the IOR. Use
- // skipSpaceIfAny() with care since in certain cases, it might
- // actually represent an unsigned long.
-
- nullOctet[0] = *(readPtr + offset);
- nullOctet[1] = *(readPtr + offset + 1);
-
- if ((nullOctet[0] == '2') && (nullOctet[1] == '0'))
- offset += 2;
-
- *hexCharsRead = offset;
-}
-
-void
-IorHandler::skipNullOctets (char *readPtr, int *hexCharsRead, int expectingStr)
-{
- char nullOctet[4];
- int offset;
-
- *hexCharsRead = 0;
- offset = 0;
-
- // There sometimes occurs a null padding of 2 octets after strings
- // such as the type_id in order to ensure even number of octets.
-
- while (1)
- {
- nullOctet[0] = *(readPtr + offset);
- nullOctet[1] = *(readPtr + offset + 1);
- nullOctet[2] = *(readPtr + offset + 2);
- nullOctet[3] = *(readPtr + offset + 3);
-
- // Some ORBs tend to pad the IORs with double space characters,
- // ie., 2020 in ASCII equivalent
-
- if ((nullOctet[0] == '2') && (nullOctet[1] == '0') &&
- (nullOctet[2] == '2') && (nullOctet[3] == '0'))
- {
- offset += 4;
- continue;
- }
-
- if ((nullOctet[0] == '0') && (nullOctet[1] == '0'))
- offset += 2;
- else
- if ((expectingStr) && (hexChar2int(nullOctet[0]) >= 8))
- offset += 2;
- else
- break;
- }
-
- *hexCharsRead = offset;
-}
-
-int
-IorHandler::findIfVisiIor(char *readPtr, int *hexCharsRead)
-{
- int offset;
- int hasVisiPreamble = 0;
-
- *hexCharsRead = 0;
- offset = 0;
-
- if ((getCharacter(readPtr, &offset) == 'P') &&
- (getCharacter(readPtr, &offset) == 'M') &&
- (getCharacter(readPtr, &offset) == 'C'))
- {
- hasVisiPreamble = 1;
- *hexCharsRead = offset;
- }
-
- return (hasVisiPreamble);
-}
-
-char
-IorHandler::getCharacter (char *readPtr, int *offset)
-{
- char octetPair[2];
- int intEquiv;
-
- octetPair[0] = *(readPtr + *offset);
- octetPair[1] = *(readPtr + *offset + 1);
-
- intEquiv = 16 * hexChar2int(octetPair[0]) + hexChar2int(octetPair[1]);
- *offset += 2;
-
- return ((char) intEquiv);
-}
-
-char *
-IorHandler::getString (char *readPtr, int givenLen)
-{
- static char parsedStr[MAX_IOR_FIELD_LEN];
- char octetPair[2];
- char parsedOctetPair[2];
- int intEquiv;
- int i = 0;
- int j = 0;
-
- // i indexes hexChars while j indexes octet pairs
-
- while (i <= (givenLen - 2))
- {
- octetPair[0] = * (readPtr + i);
- octetPair[1] = * (readPtr + i + 1);
-
- intEquiv = 16 * hexChar2int (octetPair[0]) + hexChar2int (octetPair[1]);
- sprintf (parsedOctetPair, "%c", intEquiv);
- parsedStr[j] = parsedOctetPair[0];
- j ++;
-
- i += 2;
- }
-
- return (parsedStr);
-}
-
-void
-IorHandler::interpretIor (char *thisIor, struct IOR *thisIorInfo)
-{
- int numCharsToSkip;
- int validTypeId = 0;
- int isVisiIor = 0;
- int ulongValue;
-
- // Skip the prefix "IOR:"
- int numHexCharsRead = 4;
-
- // Type ID must be at least 4 bytes in length since type_id is prefixed
- // by the string "IDL:"
- int validTypeIdLen = 0;
-
- while (!validTypeIdLen)
- {
- skipNullOctets((char *)(thisIor + numHexCharsRead), &numCharsToSkip, 1);
- numHexCharsRead += numCharsToSkip;
-
- // Read the length of the type_id field
- ulongValue = getOctet2Field((char *)(thisIor + numHexCharsRead),
- &numCharsToSkip);
-
- if (ulongValue == 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "type_id len seems to be 0 \n"));
- ACE_OS::exit (1);
- }
-
- numHexCharsRead += numCharsToSkip;
-
- if (ulongValue > 4)
- {
- validTypeIdLen = 1;
- thisIorInfo->typeIdLen = ulongValue;
- }
-
- skipNullOctets((char *)(thisIor + numHexCharsRead), &numCharsToSkip, 1);
- numHexCharsRead += numCharsToSkip;
-
- // Read the Type ID
- ACE_OS::strncpy (thisIorInfo->typeId,
- getString((char *)(thisIor + numHexCharsRead),
- 2 * thisIorInfo->typeIdLen),
- thisIorInfo->typeIdLen);
-
- // Confirm that this is a valid TypeId by looking for the IDL
- // interface. Additionally, the IDL interface could be extracted
- // and used for other purposes.
- getIdlInterface(thisIorInfo->typeId, &validTypeId);
-
- if (!validTypeId)
- {
- validTypeIdLen = 0;
- numHexCharsRead -= numCharsToSkip;
- }
- }
-
- numHexCharsRead += 2 * thisIorInfo->typeIdLen;
-
- ACE_DEBUG ((LM_DEBUG,
- "\nTypeId\t\t: %s (%d bytes)\n",
- thisIorInfo->typeId,
- thisIorInfo->typeIdLen));
-
- skipNullOctets((char *)(thisIor + numHexCharsRead), &numCharsToSkip, 0);
- numHexCharsRead += numCharsToSkip;
-
- // Read the 4 octets, which should equal 1 (numTaggedProfiles = 1)
- // for a single-component profile.
- ulongValue = getOctet2Field((char *)(thisIor + numHexCharsRead),
- &numCharsToSkip);
-
- if (ulongValue != 1)
- {
- ACE_DEBUG ((LM_DEBUG,
- "numTaggedProfiles = %d\n",
- ulongValue));
- ACE_OS::exit (1);
- }
-
- numHexCharsRead += numCharsToSkip;
-
- // Read the 4 octets, which should equal 0 (TAG_INTERNET_IOP = 0)
- ulongValue = getOctet8Field((char *)(thisIor + numHexCharsRead),
- &numCharsToSkip);
-
- if (ulongValue != 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "TAG_INTERNET_IOP != 0\n"));
- ACE_OS::exit (1);
- }
-
- numHexCharsRead += numCharsToSkip;
-
- skipNullOctets((char *)(thisIor + numHexCharsRead), &numCharsToSkip, 0);
- numHexCharsRead += numCharsToSkip;
-
- // Read the 4 octets, which represent the length of the ProfileBody
- ulongValue = getOctet2Field((char *)(thisIor + numHexCharsRead),
- &numCharsToSkip);
-
- if (ulongValue == 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "ProfileBody len equals 0\n"));
- ACE_OS::exit (1);
- }
-
- numHexCharsRead += numCharsToSkip;
- thisIorInfo->profileBodyLen = ulongValue;
-
- ACE_DEBUG ((LM_DEBUG,
- "\nTAG_INTERNET_IOP Profile (%d bytes):\n",
- ulongValue));
-
- skipNullOctets((char *)(thisIor + numHexCharsRead), &numCharsToSkip, 1);
- numHexCharsRead += numCharsToSkip;
-
- // Read the 4 octets, which represent the IIOP version number = 1
- // Read the major number of the IIOP Version (should be 1)
- ulongValue = getOctet2Field((char *)(thisIor + numHexCharsRead),
- &numCharsToSkip);
-
- if (ulongValue != 1)
- {
- ACE_DEBUG ((LM_DEBUG,
- "IIOP major version != 1\n"));
- ACE_OS::exit (1);
- }
-
- numHexCharsRead += numCharsToSkip;
- ACE_DEBUG ((LM_DEBUG,
- "IIOP Version: %d.",
- ulongValue));
-
- // Read the minor number of the IIOP Version (can be 0 or 1)
- ulongValue = getOctet2Field((char *)(thisIor + numHexCharsRead),
- &numCharsToSkip);
-
- if ((ulongValue != 0) && (ulongValue != 1))
- {
- ACE_DEBUG ((LM_DEBUG,
- "IIOP minor version != 0 or 1\n"));
- ACE_OS::exit (1);
- }
-
- numHexCharsRead += numCharsToSkip;
- ACE_DEBUG ((LM_DEBUG,
- "%d\n",
- ulongValue));
-
- skipSpaceIfAny((char *)(thisIor + numHexCharsRead), &numCharsToSkip);
- numHexCharsRead += numCharsToSkip;
- skipNullOctets((char *)(thisIor + numHexCharsRead), &numCharsToSkip, 0);
- numHexCharsRead += numCharsToSkip;
-
- // Read the 2 octets, which represent the length of the hostname
- ulongValue = getOctet2Field((char *)(thisIor + numHexCharsRead),
- &numCharsToSkip);
-
- if (ulongValue == 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "hostLen equals 0\n"));
- ACE_OS::exit (1);
- }
-
- numHexCharsRead += numCharsToSkip;
- thisIorInfo->hostLen = ulongValue;
- skipNullOctets((char *)(thisIor + numHexCharsRead), &numCharsToSkip, 1);
- numHexCharsRead += numCharsToSkip;
-
- // Read the hostname and store it
- ACE_OS::strncpy (thisIorInfo->HostName,
- getString((char *)(thisIor + numHexCharsRead),
- 2 * thisIorInfo->hostLen), thisIorInfo->hostLen);
- numHexCharsRead += 2 * thisIorInfo->hostLen;
-
- ACE_DEBUG ((LM_DEBUG,
- " HostName : %s (%d bytes)\n",
- thisIorInfo->HostName,
- thisIorInfo->hostLen));
-
- skipNullOctets((char *)(thisIor + numHexCharsRead), &numCharsToSkip, 0);
- numHexCharsRead += numCharsToSkip;
-
- // Read the port number and store it
- ulongValue = getOctet4Field((char *)(thisIor + numHexCharsRead),
- &numCharsToSkip);
-
- if (ulongValue == 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "port number equals 0\n"));
- ACE_OS::exit (1);
- }
-
- numHexCharsRead += numCharsToSkip;
- thisIorInfo->portNum = ulongValue;
-
- ACE_DEBUG ((LM_DEBUG,
- " Port Number: %d\n",
- thisIorInfo->portNum));
-
- skipNullOctets((char *)(thisIor + numHexCharsRead), &numCharsToSkip, 0);
- numHexCharsRead += numCharsToSkip;
-
- // Read the object key length
- ulongValue = getOctet2Field((char *)(thisIor + numHexCharsRead),
- &numCharsToSkip);
-
- if (ulongValue == 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "objectKeyLen equals 0\n"));
- ACE_OS::exit (1);
- }
-
- numHexCharsRead += numCharsToSkip;
- thisIorInfo->objectKeyLen = ulongValue;
-
- skipNullOctets((char *)(thisIor + numHexCharsRead), &numCharsToSkip, 1);
- numHexCharsRead += numCharsToSkip;
-
- // VisiBroker tends to insert the preamble "PMC" (=> Post Modern
- // Computing), before the "real" object key actually starts. Identify
- // if this is the case.
- isVisiIor = findIfVisiIor((char *)(thisIor + numHexCharsRead),
- &numCharsToSkip);
- if (isVisiIor)
- {
- numHexCharsRead += numCharsToSkip;
- skipNullOctets((char *)(thisIor + numHexCharsRead), &numCharsToSkip, 0);
- numHexCharsRead += numCharsToSkip;
-
- ACE_DEBUG ((LM_DEBUG,
- " ObjectKey : PMC"));
-
- skipNullOctets((char *)(thisIor + numHexCharsRead), &numCharsToSkip, 0);
- numHexCharsRead += numCharsToSkip;
-
- // Read the real object key length and then the real object key
- ulongValue = getOctet2Field((char *)(thisIor + numHexCharsRead),
- &numCharsToSkip);
-
- if (ulongValue == 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "VisiBroker IOR - real objectKeyLen equals 0\n"));
- ACE_OS::exit (1);
- }
-
- numHexCharsRead += numCharsToSkip;
-
- ACE_OS::strncpy (thisIorInfo->objectKey,
- getString((char *)(thisIor + numHexCharsRead),
- 2 * ulongValue), ulongValue);
-
- numHexCharsRead += 2 * ulongValue;
-
- ACE_DEBUG ((LM_DEBUG,
- "%s",
- thisIorInfo->objectKey,
- ulongValue));
-
- skipNullOctets((char *)(thisIor + numHexCharsRead), &numCharsToSkip, 1);
- numHexCharsRead += numCharsToSkip;
-
- // Read the object name length and then the object name
- ulongValue = getOctet2Field((char *)(thisIor + numHexCharsRead),
- &numCharsToSkip);
-
- if (ulongValue == 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "\n[No object name] (%d bytes)\n\n",
- thisIorInfo->objectKeyLen));
- ACE_OS::exit (1);
- }
-
- numHexCharsRead += numCharsToSkip;
-
- ACE_OS::strncpy (thisIorInfo->objectKey,
- getString((char *)(thisIor + numHexCharsRead),
- 2 * ulongValue), ulongValue);
-
- numHexCharsRead += 2 * ulongValue;
-
- ACE_DEBUG ((LM_DEBUG,
- "[object name: %s] (%d bytes)\n\n",
- thisIorInfo->objectKey,
- thisIorInfo->objectKeyLen));
- }
-
- else
- {
- // Non-VisiBroker IOR - Read the object_key and store it
- ACE_OS::strncpy (thisIorInfo->objectKey,
- getString((char *)(thisIor + numHexCharsRead),
- 2 * thisIorInfo->objectKeyLen),
- thisIorInfo->objectKeyLen);
-
- numHexCharsRead += 2 * thisIorInfo->objectKeyLen;
-
- ACE_DEBUG ((LM_DEBUG,
- " ObjectKey : %s (%d bytes)\n\n",
- thisIorInfo->objectKey,
- thisIorInfo->objectKeyLen));
- }
-
-}
-
-
-char *
-IorHandler::getIdlInterface (char *typeId, int *validTypeId)
-{
- static char idlInterface[MAX_TYPE_ID_LEN];
- int lenInterface;
-
- // A sample type_id for an IDL interface name "EchoTests" is
- // IDL:EchoTests:1.0 => the trick is to isolate the parts between
- // the two colons.
- if ((*typeId != 'I') && (*(typeId+1) != 'D') && (*(typeId+2) != 'L'))
- {
- *validTypeId = 0;
- return ((char *)typeId);
- }
-
- char *readStart = strchr(typeId, ':');
-
- if (readStart == NULL)
- {
- ACE_DEBUG ((LM_DEBUG,
- "getIdlInterface: type_id contains no starting :\n"));
- ACE_OS::exit (1);
- }
-
-
- char *readEnd = strrchr (typeId, ':');
-
- if (readEnd == NULL)
- {
- ACE_DEBUG ((LM_DEBUG,
- "getIdlInterface: type_id contains no ending:\n"));
- ACE_OS::exit (1);
- }
-
- // Now, count the number of bytes between the two colons.
- lenInterface = readEnd - readStart - 1;
-
- // Copy the IDL interface part of the type_id.
- ACE_OS::strncpy ((char *)idlInterface,
- readStart+1,
- lenInterface);
- idlInterface[lenInterface] = '\0';
-
- *validTypeId = 1;
- return (char *) idlInterface;
-}
-
-void
-IorHandler::readIorFromFile (char *filename)
-{
- FILE *fp = ACE_OS::fopen (filename, "r");
-
- // Read the real IOR from the file REAL_IOR_FILE.
- if (fp == NULL)
- {
- ACE_ERROR ((LM_ERROR,
- "%p\n",
- "Unable to open file"));
- ACE_OS::exit (1);
- }
-
- fscanf (fp,
- "%s",
- stringIOR);
- ACE_OS::fclose (fp);
-
- interpretIor (stringIOR, &parsedIOR);
-}
diff --git a/TAO/utils/IOR-parser/ior-handler.h b/TAO/utils/IOR-parser/ior-handler.h
deleted file mode 100644
index ff8970d488f..00000000000
--- a/TAO/utils/IOR-parser/ior-handler.h
+++ /dev/null
@@ -1,137 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// TAO/utils/IOR-parser
-//
-// = FILENAME
-// ior-handler.h
-//
-// = DESCRIPTION
-// Provides the definition of a class that parses real (valid) IORs.
-//
-// = AUTHORS
-// Priya Narasimhan <priya@lambda.ece.ucsb.edu>
-//
-// ============================================================================
-
-#ifndef __IORPARSER_H__
-#define __IORPARSER_H__
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Basic_Types.h" // To determine BYTE_ORDER
-
-// Maximum length of the stringified IOR, the type_id, and the
-// object_key and hostname fields. Tentatively assigned.
-#define MAX_IOR_LEN 600
-#define MAX_IOR_FIELD_LEN 200
-#define MAX_TYPE_ID_LEN 100
-#define MAX_OBJ_KEY_LEN 100
-#define MAX_HOSTNAME_LEN 64
-
-
-class IOR
-{
- // = TITLE
- // This is the useful information obtained from parsing an IOR.
- //
- // = DESCRIPTION
- // This structure assumes that the profile_id is
- // TAG_INTERNET_IOP and that there is only one TaggedProfile in
- // the IOR.
-public:
- u_long typeIdLen;
- // The length of the type_id field of the IOR
-
- char typeId[MAX_TYPE_ID_LEN];
- // The string in the type_id field of the IOR
-
- char idlInterface[MAX_TYPE_ID_LEN];
- // The IDL interface of the server that published the IOR (can be extracted
- // from the type_id field)
-
- u_long profileBodyLen;
- // The length of the body of the profile field of the IOR
-
- u_long hostLen;
- // The length of the hostname embedded in the IOR
-
- char HostName[MAX_HOSTNAME_LEN];
- // The server's hostname embedded in the IOR
-
- u_long portNum;
- // The server's port number embedded in the IOR
-
- u_long objectKeyLen;
- // The length of the object_key field of the IOR
-
- char objectKey[MAX_OBJ_KEY_LEN];
- // The object_key field of the IOR
-};
-
-class IorHandler
-{
- // = TITLE
- // This is the class that takes in a real (valid) IOR and
- // parses it.
- //
- // = DESCRIPTION
- // This class prints out the useful information in the
- // IORs generated by VisiBroker, Orbix and TAO
-public:
- IorHandler (void);
- // Constructor
-
- void interpretIor (char *thisIor, struct IOR *thisIorInfo);
- // The main IOR parsing routine
-
- char *getIdlInterface (char *typeId, int *validTypeId);
- // Extracts the IDL interface from the type_id field in the IOR
-
- void readIorFromFile (char *filename);
- // Reads in the IOR from a specified file
-
- char stringIOR[MAX_IOR_LEN];
- // Holds the stringified IOR during parsing
-
- struct IOR parsedIOR;
- // Holds the parsed IOR
-
-private:
- int hexChar2int (char thisChar);
- // Converts a pair of hexadecimal-encoded characters in the stringified
- // IOR into their integer value
-
- u_long getOctet8Field (char *readPtr, int *hexCharsRead);
- // Interpret the next 8 octets into an unsigned long
-
- u_long getOctet4Field (char *readPtr, int *hexCharsRead);
- // Interpret the next 4 octets into an unsigned long
-
- u_long getOctet2Field (char *readPtr, int *hexCharsRead);
- // Interpret the next 2 octets into an unsigned long
-
- void skipSpaceIfAny (char *readPtr, int *hexCharsRead);
- // Skip the space character encountered while parsing the IOR
-
- void skipNullOctets (char *readPtr, int *hexCharsRead, int expectingStr);
- // Skip the null octets encountered while parsing the IOR
-
- int findIfVisiIor (char *readPtr, int *hexCharsRead);
- // Finds out if VisiBroker generated this IOR
-
- char getCharacter (char *readPtr, int *offset);
- // Extracts a single character from the IOR
-
- char *getString (char *readPtr, int givenLen);
- // Extracts a character string of a given length from the IOR
-
-};
-
-#endif /* __IORPARSER_H__ */
diff --git a/TAO/utils/IOR-parser/ior-parser.cpp b/TAO/utils/IOR-parser/ior-parser.cpp
deleted file mode 100644
index 6099966470c..00000000000
--- a/TAO/utils/IOR-parser/ior-parser.cpp
+++ /dev/null
@@ -1,38 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// TAO/utils/IOR-parser
-//
-// = FILENAME
-// ior-parser.cpp
-//
-// = DESCRIPTION
-// Main loop of the IOR Parser.
-//
-// = AUTHORS
-// Priya Narasimhan <priya@lambda.ece.ucsb.edu>
-//
-// ============================================================================
-
-#include "ior-handler.h"
-
-IorHandler parser;
-
-int
-main (int argc, char **argv)
-{
- if (argc <= 1 || argc >= 3)
- ACE_ERROR_RETURN ((LM_ERROR,
- "USAGE: parseIor <IOR filename>\n"),
- 1);
-
- parser.readIorFromFile (argv[1]);
- return 0;
-}
-
-
-
-
-