Maintain the collection of known IOR format parsers. More...
#include <Parser_Registry.h>

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. | |
Maintain the collection of known IOR format 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.
| TAO_Parser_Registry::TAO_Parser_Registry | ( | void | ) |
Default constructor.
Definition at line 19 of file Parser_Registry.cpp.
| TAO_Parser_Registry::~TAO_Parser_Registry | ( | void | ) |
| TAO_Parser_Registry::TAO_Parser_Registry | ( | const TAO_Parser_Registry & | ) | [private] |
| TAO_Parser_Registry::Parser_Iterator TAO_Parser_Registry::begin | ( | void | ) | const |
Definition at line 8 of file Parser_Registry.inl.
{
return this->parsers_;
}
| TAO_Parser_Registry::Parser_Iterator TAO_Parser_Registry::end | ( | void | ) | const |
Definition at line 14 of file Parser_Registry.inl.
| TAO_IOR_Parser * TAO_Parser_Registry::match_parser | ( | const char * | ior_string | ) |
Find the parser that can parse ior_string The lookup is based on the prefix in the string
Definition at line 79 of file Parser_Registry.cpp.
{
for (Parser_Iterator i = this->begin (); i != this->end (); ++i)
{
if ((*i)->match_prefix (ior_string))
{
return *i;
}
}
return 0;
}
| int TAO_Parser_Registry::open | ( | TAO_ORB_Core * | orb_core | ) |
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.
{
char **names = 0;
int number_of_names = 0;
if (orb_core->resource_factory () == 0)
{
return -1;
}
orb_core->resource_factory ()->get_parser_names (names, number_of_names);
if (number_of_names == 0)
{
return -1;
}
this->size_ = number_of_names;
ACE_NEW_RETURN (this->parsers_,
TAO_IOR_Parser*[this->size_],
-1);
for (size_t i = 0, index = 0; i != this->size_; ++i)
{
this->parsers_[index] =
ACE_Dynamic_Service<TAO_IOR_Parser>::instance (orb_core->configuration (),
names [i]);
if (this->parsers_[index] == 0)
{
--number_of_names;
if (TAO_debug_level >= 1)
{
ACE_DEBUG ((LM_DEBUG, "TAO (%P|%t) Failed to find Service Object"
" for %C.\n", names[i]));
}
}
else
{
++index;
}
}
this->size_ = number_of_names;
return 0;
}
| void TAO_Parser_Registry::operator= | ( | const TAO_Parser_Registry & | ) | [private] |
TAO_IOR_Parser** TAO_Parser_Registry::parsers_ [private] |
List of parsers.
Definition at line 78 of file Parser_Registry.h.
size_t TAO_Parser_Registry::size_ [private] |
Number of parsers.
Definition at line 81 of file Parser_Registry.h.
1.7.0