From 4ab94fce61e32ef3e7c62f53e01cbdd0495bb351 Mon Sep 17 00:00:00 2001 From: doccvs Date: Sat, 24 Jun 2000 00:14:50 +0000 Subject: ChangeLogTag: Fri Jun 23 17:10:59 2000 Priyanka Gontla --- TAO/tao/ior_corbaloc/CORBALOC_Parser.cpp | 141 +++++++++++++++++++ TAO/tao/ior_corbaloc/CORBALOC_Parser.h | 61 ++++++++ TAO/tao/ior_corbaloc/CORBALOC_Parser.i | 6 + TAO/tao/ior_corbaloc/Makefile | 217 +++++++++++++++++++++++++++++ TAO/tao/ior_corbaloc/ior_corbaloc_export.h | 40 ++++++ TAO/tao/ior_file/FILE_Parser.cpp | 13 +- 6 files changed, 472 insertions(+), 6 deletions(-) create mode 100644 TAO/tao/ior_corbaloc/CORBALOC_Parser.cpp create mode 100644 TAO/tao/ior_corbaloc/CORBALOC_Parser.h create mode 100644 TAO/tao/ior_corbaloc/CORBALOC_Parser.i create mode 100644 TAO/tao/ior_corbaloc/Makefile create mode 100644 TAO/tao/ior_corbaloc/ior_corbaloc_export.h diff --git a/TAO/tao/ior_corbaloc/CORBALOC_Parser.cpp b/TAO/tao/ior_corbaloc/CORBALOC_Parser.cpp new file mode 100644 index 00000000000..429cd6b60de --- /dev/null +++ b/TAO/tao/ior_corbaloc/CORBALOC_Parser.cpp @@ -0,0 +1,141 @@ +// $Id$ + +#include "CORBALOC_Parser.h" +#include "tao/ior_dll/Object_Loader.h" +#include "tao/Object.h" +#include "tao/ORB.h" +#include "tao/Exception.h" +#include "tao/Environment.h" +#include "ace/Read_Buffer.h" + +#if !defined(__ACE_INLINE__) +#include "CORBALOC_Parser.i" +#endif /* __ACE_INLINE__ */ + +ACE_RCSID(tao, CORBALOC_Parser, "$Id$") + +TAO_CORBALOC_Parser::~TAO_CORBALOC_Parser (void) +{ +} + + +static const char corbaloc_prefix[] = "corbaloc:"; + +int +TAO_CORBALOC_Parser::match_prefix (const char *ior_string) const +{ + cout << "in match prefix" << endl; + return (ACE_OS::strncmp (ior_string, + corbaloc_prefix, + sizeof corbaloc_prefix - 1) == 0); +} + +CORBA::Object_ptr +TAO_CORBALOC_Parser::parse_string (const char *ior, + CORBA::ORB_ptr orb, + CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + + // Skip the prefix, we know it is there because this method in only + // called if returns 1. + const char *corbaloc_name = + ior + sizeof corbaloc_prefix - 1; + + cout << "After removing the prefix: the string is" << corbaloc_name + << endl; + // What does this function do ???? + // First separates each from the list of the obj_addr + // Then concatenates the obj. key to the end of each one and tries + // to find a binding ......... + // First seperate ... + + // Find the position where '/' seperator btn and + // + + CORBA::ULong count_addr = 0; + CORBA::ULong pos = 0; + CORBA::Boolean start_key_string = 1; + + cout << "It is coming here" << endl; + + char *key_string = CORBA::string_alloc (sizeof (corbaloc_name)); + char *key_stringPtr = key_string; + + + for (const char *i = corbaloc_name; *i != '\0'; ++i) + { + if (*i == ',') + { + // Increment the count of the addresses in the list + ++count_addr; + } + + if (*i == '/' && *(i-1) != '/') + { + // This is the last addr and will not be terminated with a + // ',' ..but need to count it too. + ++count_addr; + start_key_string = 0; + } + + if (start_key_string == 1) + { + ++pos; + } + else + { + *key_stringPtr = *i; + ++key_stringPtr; + } + + } + + cout << "The position of the seperation btn obj_list and key_string + is" << pos << endl; + + // Copy the to cloc_name. + char *cloc_name = CORBA::string_alloc (pos+1); + cloc_name = ACE_OS::strncpy (cloc_name, corbaloc_name, pos); + + ACE_DEBUG ((LM_DEBUG, "The obj_addr_list is %s\n", cloc_name)); + + // Declare an array of addr. + char *addr [count_addr]; + + CORBA::ULong current_addr = 0; + + addr [current_addr] = CORBA::string_alloc (pos); + addr [current_addr] = ACE_OS::strtok (cloc_name, ","); + addr [current_addr] = ACE_OS::strcat (addr [current_addr], key_string); + cout << "The addr[0] is " << addr [current_addr] << endl; + + while ( addr [current_addr] != NULL) + { + ++current_addr; + + addr [current_addr] = CORBA::string_alloc (pos); + + // Now that presumably I have seperated the fields ... append the + // at the end of each of them. + addr [current_addr] = ACE_OS::strcat (addr [current_addr], key_string); + addr [current_addr] = ACE_OS::strtok (NULL, ","); + ACE_DEBUG ((LM_DEBUG, "The obj_addr %d is %s\n", current_addr, + addr [current_addr])); + + } + + + CORBA::Object_ptr object = CORBA::Object::_nil (); + + return object; + +} + +ACE_FACTORY_DEFINE (TAO_IOR_CORBALOC, TAO_CORBALOC_Parser) + +#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) + +#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) + +#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/tao/ior_corbaloc/CORBALOC_Parser.h b/TAO/tao/ior_corbaloc/CORBALOC_Parser.h new file mode 100644 index 00000000000..fe0637e5ab4 --- /dev/null +++ b/TAO/tao/ior_corbaloc/CORBALOC_Parser.h @@ -0,0 +1,61 @@ +// $Id$ + +// ============================================================================ +// +// = LIBRARY +// TAO +// +// = FILENAME +// CORBALOC_Parser.h +// +// = AUTHOR +// Carlos O'Ryan (coryan@cs.wustl.edu) +// +// ============================================================================ + +#ifndef TAO_CORBALOC_PARSER_H +#define TAO_CORBALOC_PARSER_H +#include "ace/pre.h" + +#include "tao/IOR_Parser.h" +#include "ior_corbaloc_export.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +class TAO_IOR_CORBALOC_Export TAO_CORBALOC_Parser : public TAO_IOR_Parser +{ + // = TITLE + // Implements the IOR format + // + // = DESCRIPTION + // This class implements the IOR format. + // It is dynamically loaded by the ORB and used to parse the + // string to separate the individual from the list of object + // addresses . + // +public: + TAO_CORBALOC_Parser (void); + // Constructor + + virtual ~TAO_CORBALOC_Parser (void); + // The destructor + + // = The IOR_Parser methods, please read the documentation in + // IOR_Parser.h + virtual int match_prefix (const char *ior_string) const; + virtual CORBA::Object_ptr parse_string (const char *ior, + CORBA::ORB_ptr orb, + CORBA::Environment &) + ACE_THROW_SPEC ((CORBA::SystemException)); +}; + +#if defined (__ACE_INLINE__) +# include "CORBALOC_Parser.i" +#endif /* __ACE_INLINE__ */ + +ACE_FACTORY_DECLARE (TAO_IOR_CORBALOC, TAO_CORBALOC_Parser) + +#include "ace/post.h" +#endif /* TAO_CORBALOC_PARSER_H */ diff --git a/TAO/tao/ior_corbaloc/CORBALOC_Parser.i b/TAO/tao/ior_corbaloc/CORBALOC_Parser.i new file mode 100644 index 00000000000..679b6208536 --- /dev/null +++ b/TAO/tao/ior_corbaloc/CORBALOC_Parser.i @@ -0,0 +1,6 @@ +// $Id$ + +ACE_INLINE +TAO_CORBALOC_Parser::TAO_CORBALOC_Parser (void) +{ +} diff --git a/TAO/tao/ior_corbaloc/Makefile b/TAO/tao/ior_corbaloc/Makefile new file mode 100644 index 00000000000..a821c4b9bd9 --- /dev/null +++ b/TAO/tao/ior_corbaloc/Makefile @@ -0,0 +1,217 @@ +#---------------------------------------------------------------------------- +# +# $Id$ +# +#---------------------------------------------------------------------------- + +MAKEFILE = Makefile +LIBNAME = libTAO_IOR_CORBALOC +LIB = $(LIBNAME).a +SHLIB = $(LIBNAME).$(SOEXT) + +ifndef TAO_ROOT +TAO_ROOT = $(ACE_ROOT)/TAO +endif + +# These are headers for things which are exported and must be +# installed. (Currently not used). +PUB_HDRS = \ + CORBALOC_Parser +FILES= \ + CORBALOC_Parser + +LSRC = $(addsuffix .cpp,$(FILES)) + +DEFS = $(addsuffix .h,$(PUB_HDRS)) + +ACE_SHLIBS = -lACE + +#---------------------------------------------------------------------------- +# Include macros and targets +#---------------------------------------------------------------------------- + +include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU +include $(TAO_ROOT)/rules.tao.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.local.GNU +include $(TAO_ROOT)/taoconfig.mk + +#---------------------------------------------------------------------------- +# Local targets (and local hacks) +#---------------------------------------------------------------------------- + +#---------------------------------------------------------------------------- +# Dependencies +#---------------------------------------------------------------------------- + +# DO NOT DELETE THIS LINE -- g++dep uses it. +# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. + + +.obj/CORBALOC_Parser.o .obj/CORBALOC_Parser.so .shobj/CORBALOC_Parser.o .shobj/CORBALOC_Parser.so: CORBALOC_Parser.cpp CORBALOC_Parser.h \ + $(ACE_ROOT)/ace/pre.h \ + $(TAO_ROOT)/tao/IOR_Parser.h \ + $(TAO_ROOT)/tao/corbafwd.h \ + $(ACE_ROOT)/ace/CDR_Stream.h \ + $(ACE_ROOT)/ace/Message_Block.h \ + $(ACE_ROOT)/ace/ACE.h \ + $(ACE_ROOT)/ace/OS.h \ + $(ACE_ROOT)/ace/post.h \ + $(ACE_ROOT)/ace/ace_wchar.h \ + $(ACE_ROOT)/ace/ACE_export.h \ + $(ACE_ROOT)/ace/svc_export.h \ + $(ACE_ROOT)/ace/OS_Dirent.h \ + $(ACE_ROOT)/ace/OS_Export.h \ + $(ACE_ROOT)/ace/OS_Dirent.inl \ + $(ACE_ROOT)/ace/OS_String.h \ + $(ACE_ROOT)/ace/OS_String.inl \ + $(ACE_ROOT)/ace/OS_Memory.h \ + $(ACE_ROOT)/ace/OS_Memory.inl \ + $(ACE_ROOT)/ace/OS_TLI.h \ + $(ACE_ROOT)/ace/OS_TLI.inl \ + $(ACE_ROOT)/ace/Min_Max.h \ + $(ACE_ROOT)/ace/streams.h \ + $(ACE_ROOT)/ace/Basic_Types.h \ + $(ACE_ROOT)/ace/Basic_Types.i \ + $(ACE_ROOT)/ace/Trace.h \ + $(ACE_ROOT)/ace/OS.i \ + $(ACE_ROOT)/ace/Log_Msg.h \ + $(ACE_ROOT)/ace/Log_Record.h \ + $(ACE_ROOT)/ace/Log_Priority.h \ + $(ACE_ROOT)/ace/Log_Record.i \ + $(ACE_ROOT)/ace/ACE.i \ + $(ACE_ROOT)/ace/Malloc.h \ + $(ACE_ROOT)/ace/Malloc_Base.h \ + $(ACE_ROOT)/ace/Based_Pointer_T.h \ + $(ACE_ROOT)/ace/Based_Pointer_T.i \ + $(ACE_ROOT)/ace/Based_Pointer_T.cpp \ + $(ACE_ROOT)/ace/Based_Pointer_Repository.h \ + $(ACE_ROOT)/ace/Singleton.h \ + $(ACE_ROOT)/ace/Synch.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ + $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ + $(ACE_ROOT)/ace/Synch.i \ + $(ACE_ROOT)/ace/Synch_T.h \ + $(ACE_ROOT)/ace/Event_Handler.h \ + $(ACE_ROOT)/ace/Event_Handler.i \ + $(ACE_ROOT)/ace/Synch_T.i \ + $(ACE_ROOT)/ace/Thread.h \ + $(ACE_ROOT)/ace/Thread.i \ + $(ACE_ROOT)/ace/Atomic_Op.i \ + $(ACE_ROOT)/ace/Synch_T.cpp \ + $(ACE_ROOT)/ace/Singleton.i \ + $(ACE_ROOT)/ace/Singleton.cpp \ + $(ACE_ROOT)/ace/Object_Manager.h \ + $(ACE_ROOT)/ace/Object_Manager.i \ + $(ACE_ROOT)/ace/Managed_Object.h \ + $(ACE_ROOT)/ace/Managed_Object.i \ + $(ACE_ROOT)/ace/Managed_Object.cpp \ + $(ACE_ROOT)/ace/Malloc.i \ + $(ACE_ROOT)/ace/Malloc_T.h \ + $(ACE_ROOT)/ace/Free_List.h \ + $(ACE_ROOT)/ace/Free_List.i \ + $(ACE_ROOT)/ace/Free_List.cpp \ + $(ACE_ROOT)/ace/Malloc_T.i \ + $(ACE_ROOT)/ace/Malloc_T.cpp \ + $(ACE_ROOT)/ace/Memory_Pool.h \ + $(ACE_ROOT)/ace/Signal.h \ + $(ACE_ROOT)/ace/Containers.h \ + $(ACE_ROOT)/ace/Containers.i \ + $(ACE_ROOT)/ace/Containers_T.h \ + $(ACE_ROOT)/ace/Containers_T.i \ + $(ACE_ROOT)/ace/Containers_T.cpp \ + $(ACE_ROOT)/ace/Signal.i \ + $(ACE_ROOT)/ace/Mem_Map.h \ + $(ACE_ROOT)/ace/Mem_Map.i \ + $(ACE_ROOT)/ace/Memory_Pool.i \ + $(ACE_ROOT)/ace/Message_Block.i \ + $(ACE_ROOT)/ace/Message_Block_T.h \ + $(ACE_ROOT)/ace/Message_Block_T.i \ + $(ACE_ROOT)/ace/Message_Block_T.cpp \ + $(ACE_ROOT)/ace/SString.h \ + $(ACE_ROOT)/ace/SString.i \ + $(ACE_ROOT)/ace/CDR_Stream.i \ + $(TAO_ROOT)/tao/try_macros.h \ + $(TAO_ROOT)/tao/orbconf.h \ + $(ACE_ROOT)/ace/CORBA_macros.h \ + $(TAO_ROOT)/tao/varbase.h \ + $(TAO_ROOT)/tao/corbafwd.i \ + $(ACE_ROOT)/ace/Service_Object.h \ + $(ACE_ROOT)/ace/Shared_Object.h \ + $(ACE_ROOT)/ace/Shared_Object.i \ + $(ACE_ROOT)/ace/Service_Object.i \ + $(TAO_ROOT)/tao/IOR_Parser.i \ + ior_corbaloc_export.h CORBALOC_Parser.i \ + $(TAO_ROOT)/tao/ior_dll/Object_Loader.h \ + $(TAO_ROOT)/tao/ior_dll/ior_dll_export.h \ + $(TAO_ROOT)/tao/ior_dll/Object_Loader.i \ + $(TAO_ROOT)/tao/Object.h \ + $(TAO_ROOT)/tao/Object.i \ + $(TAO_ROOT)/tao/ORB.h \ + $(TAO_ROOT)/tao/Exception.h \ + $(TAO_ROOT)/tao/Exception.i \ + $(TAO_ROOT)/tao/IOR_LookupTable.h \ + $(ACE_ROOT)/ace/Hash_Map_Manager.h \ + $(ACE_ROOT)/ace/Functor.h \ + $(ACE_ROOT)/ace/Functor.i \ + $(ACE_ROOT)/ace/Functor_T.h \ + $(ACE_ROOT)/ace/Functor_T.i \ + $(ACE_ROOT)/ace/Functor_T.cpp \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \ + $(ACE_ROOT)/ace/Service_Config.h \ + $(ACE_ROOT)/ace/Service_Config.i \ + $(ACE_ROOT)/ace/Reactor.h \ + $(ACE_ROOT)/ace/Handle_Set.h \ + $(ACE_ROOT)/ace/Handle_Set.i \ + $(ACE_ROOT)/ace/Timer_Queue.h \ + $(ACE_ROOT)/ace/Timer_Queue_T.h \ + $(ACE_ROOT)/ace/Timer_Queue_T.i \ + $(ACE_ROOT)/ace/Timer_Queue_T.cpp \ + $(ACE_ROOT)/ace/Reactor.i \ + $(ACE_ROOT)/ace/Reactor_Impl.h \ + $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ + $(TAO_ROOT)/tao/Services.h \ + $(TAO_ROOT)/tao/Sequence.h \ + $(TAO_ROOT)/tao/Managed_Types.h \ + $(TAO_ROOT)/tao/Managed_Types.i \ + $(TAO_ROOT)/tao/Sequence.i \ + $(TAO_ROOT)/tao/Sequence_T.h \ + $(TAO_ROOT)/tao/Sequence_T.i \ + $(TAO_ROOT)/tao/Sequence_T.cpp \ + $(TAO_ROOT)/tao/Services.i \ + $(TAO_ROOT)/tao/IORManipulation.h \ + $(TAO_ROOT)/tao/IORS.h \ + $(TAO_ROOT)/tao/IORC.h \ + $(TAO_ROOT)/tao/Environment.h \ + $(TAO_ROOT)/tao/Environment.i \ + $(TAO_ROOT)/tao/CDR.h \ + $(TAO_ROOT)/tao/CDR.i \ + $(TAO_ROOT)/tao/IORC.i \ + $(TAO_ROOT)/tao/Servant_Base.h \ + $(TAO_ROOT)/tao/POAC.h \ + $(TAO_ROOT)/tao/PolicyC.h \ + $(TAO_ROOT)/tao/CurrentC.h \ + $(TAO_ROOT)/tao/CurrentC.i \ + $(TAO_ROOT)/tao/Encodable.h \ + $(TAO_ROOT)/tao/PolicyC.i \ + $(TAO_ROOT)/tao/POAC.i \ + $(TAO_ROOT)/tao/Servant_Base.i \ + $(TAO_ROOT)/tao/IORS.i \ + $(TAO_ROOT)/tao/Interceptor.h \ + $(TAO_ROOT)/tao/InterceptorC.h \ + $(TAO_ROOT)/tao/IOPC.h \ + $(TAO_ROOT)/tao/IOPC.i \ + $(TAO_ROOT)/tao/InterceptorC.i \ + $(TAO_ROOT)/tao/Interceptor.i \ + $(TAO_ROOT)/tao/ORB.i \ + $(ACE_ROOT)/ace/Read_Buffer.h \ + $(ACE_ROOT)/ace/Read_Buffer.i + +# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/tao/ior_corbaloc/ior_corbaloc_export.h b/TAO/tao/ior_corbaloc/ior_corbaloc_export.h new file mode 100644 index 00000000000..501e2e53530 --- /dev/null +++ b/TAO/tao/ior_corbaloc/ior_corbaloc_export.h @@ -0,0 +1,40 @@ +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by +// generate_export_file.pl +// ------------------------------ +#if !defined (TAO_IOR_CORBALOC_EXPORT_H) +#define TAO_IOR_CORBALOC_EXPORT_H + +#include "ace/config-all.h" + +#if !defined (TAO_IOR_CORBALOC_HAS_DLL) +#define TAO_IOR_CORBALOC_HAS_DLL 1 +#endif /* ! TAO_IOR_CORBALOC_HAS_DLL */ + +#if defined (TAO_IOR_CORBALOC_HAS_DLL) +# if (TAO_IOR_CORBALOC_HAS_DLL == 1) +# if defined (TAO_IOR_CORBALOC_BUILD_DLL) +# define TAO_IOR_CORBALOC_Export ACE_Proper_Export_Flag +# define TAO_IOR_CORBALOC_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define TAO_IOR_CORBALOC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else +# define TAO_IOR_CORBALOC_Export ACE_Proper_Import_Flag +# define TAO_IOR_CORBALOC_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define TAO_IOR_CORBALOC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* TAO_IOR_CORBALOC_BUILD_DLL */ +# else +# define TAO_IOR_CORBALOC_Export +# define TAO_IOR_CORBALOC_SINGLETON_DECLARATION(T) +# define TAO_IOR_CORBALOC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* ! TAO_IOR_CORBALOC_HAS_DLL == 1 */ +#else +# define TAO_IOR_CORBALOC_Export +# define TAO_IOR_CORBALOC_SINGLETON_DECLARATION(T) +# define TAO_IOR_CORBALOC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* TAO_IOR_CORBALOC_HAS_DLL */ + +#endif /* TAO_IOR_CORBALOC_EXPORT_H */ + +// End of auto generated file. diff --git a/TAO/tao/ior_file/FILE_Parser.cpp b/TAO/tao/ior_file/FILE_Parser.cpp index 400e7d526e9..b1182f4b81a 100644 --- a/TAO/tao/ior_file/FILE_Parser.cpp +++ b/TAO/tao/ior_file/FILE_Parser.cpp @@ -1,8 +1,9 @@ // $Id$ #include "FILE_Parser.h" -#include "Object_Loader.h" +#include "tao/ior_dll/Object_Loader.h" #include "tao/Object.h" +#include "tao/ORB.h" #include "tao/Exception.h" #include "tao/Environment.h" #include "ace/Read_Buffer.h" @@ -22,9 +23,9 @@ static const char file_prefix[] = "file:"; int TAO_FILE_Parser::match_prefix (const char *ior_string) const { - return (ACE_OS::strncmp (str, - file_prefix, - sizeof file_prefix - 1) == 0); + return (ACE_OS::strncmp (ior_string, + ::file_prefix, + sizeof (::file_prefix) - 1) == 0); } CORBA::Object_ptr @@ -36,7 +37,7 @@ TAO_FILE_Parser::parse_string (const char *ior, // Skip the prefix, we know it is there because this method in only // called if returns 1. const char *filename = - ior + sizeof file_prefix - 1; + ior + sizeof (::file_prefix)+1; FILE* file = ACE_OS::fopen (filename, "r"); @@ -53,7 +54,7 @@ TAO_FILE_Parser::parse_string (const char *ior, CORBA::Object_ptr object = CORBA::Object::_nil (); ACE_TRY { - object = this->string_to_object (string, ACE_TRY_ENV); + object = orb->string_to_object (string, ACE_TRY_ENV); ACE_TRY_CHECK; reader.alloc ()->free (string); -- cgit v1.2.1