#include <Parser_Registry.h>
Collaboration diagram for TAO_Parser_Registry:
Public Types | |
typedef TAO_IOR_Parser ** | Parser_Iterator |
Public Member Functions | |
TAO_Parser_Registry (void) | |
Default constructor. | |
~TAO_Parser_Registry (void) | |
Dstructor. | |
int | open (TAO_ORB_Core *orb_core) |
TAO_IOR_Parser * | match_parser (const char *ior_string) |
Parser_Iterator | begin (void) const |
Parser_Iterator | end (void) const |
Private Member Functions | |
TAO_Parser_Registry (const TAO_Parser_Registry &) | |
void | operator= (const TAO_Parser_Registry &) |
Private Attributes | |
TAO_IOR_Parser ** | parsers_ |
List of parsers. | |
size_t | size_ |
Number of parsers. |
The ORB dynamically loads a collection of IOR parsers (check the IOR_Parser class). The collection is kept in this class for easy lookup and use.
Definition at line 46 of file Parser_Registry.h.
|
Definition at line 65 of file Parser_Registry.h. Referenced by match_parser(). |
|
Default constructor.
Definition at line 19 of file Parser_Registry.cpp.
|
|
Dstructor.
Definition at line 25 of file Parser_Registry.cpp. References parsers_.
00026 { 00027 delete [] this->parsers_; 00028 } |
|
|
|
Definition at line 8 of file Parser_Registry.i. References parsers_. Referenced by match_parser().
00009 { 00010 return this->parsers_; 00011 } |
|
Definition at line 14 of file Parser_Registry.i. References parsers_. Referenced by match_parser().
|
|
Find the parser that can parse ior_string The lookup is based on the prefix in the string Definition at line 65 of file Parser_Registry.cpp. References begin(), end(), and Parser_Iterator. Referenced by CORBA::ORB::string_to_object().
00066 { 00067 for (Parser_Iterator i = this->begin (); i != this->end (); ++i) 00068 { 00069 if ((*i)->match_prefix (ior_string)) 00070 { 00071 return *i; 00072 } 00073 } 00074 00075 return 0; 00076 } |
|
Initialize the parser registry with the list of known protocols. Invoked by the ORB during startup. Definition at line 31 of file Parser_Registry.cpp. References ACE_NEW_RETURN, TAO_ORB_Core::configuration(), TAO_Resource_Factory::get_parser_names(), ACE_Dynamic_Service< TYPE >::instance(), names, parsers_, and TAO_ORB_Core::resource_factory().
00032 { 00033 char **names; 00034 int number_of_names = 0; 00035 00036 orb_core->resource_factory ()->get_parser_names (names, 00037 number_of_names); 00038 00039 if (number_of_names == 0) 00040 { 00041 return -1; 00042 } 00043 00044 this->size_ = number_of_names; 00045 ACE_NEW_RETURN (this->parsers_, 00046 TAO_IOR_Parser*[this->size_], 00047 -1); 00048 00049 for (size_t i = 0; i != this->size_; ++i) 00050 { 00051 this->parsers_[i] = 00052 ACE_Dynamic_Service<TAO_IOR_Parser>::instance (orb_core->configuration (), 00053 names [i]); 00054 00055 if (this->parsers_[i] == 0) 00056 { 00057 return -1; 00058 } 00059 } 00060 00061 return 0; 00062 } |
|
|
|
List of parsers.
Definition at line 78 of file Parser_Registry.h. Referenced by begin(), end(), open(), and ~TAO_Parser_Registry(). |
|
Number of parsers.
Definition at line 81 of file Parser_Registry.h. |