00001 // -*- C++ -*- 00002 00003 //============================================================================= 00004 /** 00005 * @file IOR_Parser.h 00006 * 00007 * IOR_Parser.h,v 1.13 2005/11/02 07:13:03 ossama Exp 00008 * 00009 * @author Carlos O'Ryan (coryan@cs.wustl.edu) 00010 */ 00011 //============================================================================= 00012 00013 00014 #ifndef TAO_IOR_PARSER_H 00015 #define TAO_IOR_PARSER_H 00016 00017 #include /**/ "ace/pre.h" 00018 #include "ace/Service_Object.h" 00019 00020 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00021 # pragma once 00022 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00023 00024 #include "tao/SystemException.h" 00025 00026 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00027 00028 namespace CORBA 00029 { 00030 class Object; 00031 typedef Object *Object_ptr; 00032 00033 class ORB; 00034 typedef ORB *ORB_ptr; 00035 } 00036 00037 /** 00038 * @class TAO_IOR_Parser 00039 * 00040 * @brief Defines the interface for the pluggable IOR parser components 00041 * 00042 * The ORB is able to dynamically load the list of IOR formats it 00043 * understands. That allow us to integrate formats such as 00044 * corbaname:, http: or ftp: only when required. 00045 * This class provides a uniform interface for all the IOR parsers 00046 */ 00047 class TAO_Export TAO_IOR_Parser : public ACE_Service_Object 00048 { 00049 public: 00050 /// The destructor 00051 virtual ~TAO_IOR_Parser (void); 00052 00053 /// Return 1 if @a ior_string starts with a prefix known to this IOR 00054 /// parser 00055 virtual int match_prefix (const char *ior_string) const = 0; 00056 00057 /** 00058 * Parse the @a ior argument and return an object reference. 00059 * The call may raise the standard system exceptions (NO_MEMORY, 00060 * INV_OBJREF, etc.) 00061 */ 00062 virtual CORBA::Object_ptr parse_string (const char *ior, 00063 CORBA::ORB_ptr orb 00064 ACE_ENV_ARG_DECL) 00065 ACE_THROW_SPEC ((CORBA::SystemException)) = 0; 00066 }; 00067 00068 TAO_END_VERSIONED_NAMESPACE_DECL 00069 00070 #include /**/ "ace/post.h" 00071 #endif /* TAO_IOR_PARSER_H */