#include <Dynamic_Service_Base.h>
Inheritance diagram for ACE_Dynamic_Service_Base:

Public Member Functions | |
| void | dump (void) const |
| Dump the current static of the object. | |
Protected Member Functions | |
| ACE_Dynamic_Service_Base (void) | |
| No need to create, or assign instances of this class. | |
| ~ACE_Dynamic_Service_Base (void) | |
| const ACE_Dynamic_Service_Base & | operator= (const ACE_Dynamic_Service_Base &) |
Static Protected Member Functions | |
| void * | instance (const ACE_TCHAR *name) |
| Return instance using name to search the (default) Service_Repository. | |
| void * | instance (const ACE_TCHAR *name, bool no_global) |
| Perform the default repo search, but optionally skip searching the global repo. | |
| void * | instance (const ACE_Service_Gestalt *repo, const ACE_TCHAR *name) |
| Return instance using name to search the specific repo instance. | |
| void * | instance (const ACE_Service_Gestalt *repo, const ACE_TCHAR *name, bool no_global) |
Static Private Member Functions | |
| const ACE_Service_Type * | find_i (const ACE_Service_Gestalt *&repo, const ACE_TCHAR *name, bool no_global) |
Friends | |
| class | ACE_Dynamic_Service_Dependency |
Factors out common code shared by all ACE_Dynamic_Service instantiations, this avoid code bloat.
Definition at line 38 of file Dynamic_Service_Base.h.
|
|
No need to create, or assign instances of this class.
|
|
|
|
|
|
Dump the current static of the object.
Definition at line 17 of file Dynamic_Service_Base.cpp. References ACE_BEGIN_DUMP, ACE_DEBUG, ACE_END_DUMP, ACE_LIB_TEXT, ACE_TRACE, and LM_DEBUG.
|
|
||||||||||||||||
|
Implement the service search policy, i.e. "look for the service first locally and then globally" Definition at line 50 of file Dynamic_Service_Base.cpp. References ACE_TCHAR, ACE_TRACE, ACE_Service_Gestalt::find(), and ACE_Service_Config::global(). Referenced by ACE_Dynamic_Service_Dependency::init(), and instance().
00053 {
00054 ACE_TRACE ("ACE_Dynamic_Service_Base::find_i");
00055 const ACE_Service_Type *svc_rec = 0;
00056
00057 ACE_Service_Gestalt* global = ACE_Service_Config::global ();
00058
00059 for ( ; (repo->find (name, &svc_rec) == -1) && !no_global; repo = global)
00060 {
00061 // Check the static repo, too if different
00062 if (repo == global)
00063 break;
00064 }
00065
00066 return svc_rec;
00067 }
|
|
||||||||||||||||
|
Reimplemented in ACE_Dynamic_Service< TYPE >. Definition at line 73 of file Dynamic_Service_Base.cpp. References ACE_DEBUG, ACE_LIB_TEXT, ACE_TCHAR, ACE_TRACE, ACE::debug(), find_i(), LM_DEBUG, ACE_Service_Type_Impl::object(), ACE_Service_Gestalt::repo_, and ACE_Service_Type::type().
00076 {
00077 ACE_TRACE ("ACE_Dynamic_Service_Base::instance");
00078
00079 void *obj = 0;
00080 const ACE_Service_Type_Impl *type = 0;
00081
00082 const ACE_Service_Gestalt* repo_found = repo;
00083
00084 const ACE_Service_Type *svc_rec = find_i (repo_found, name, no_global);
00085 if (svc_rec != 0)
00086 {
00087 type = svc_rec->type ();
00088 if (type != 0)
00089 obj = type->object ();
00090 }
00091
00092 if (ACE::debug ())
00093 {
00094 ACE_DEBUG ((LM_DEBUG,
00095 ACE_LIB_TEXT ("(%P|%t) DSB::instance, repo=%@, name=%s, ")
00096 ACE_LIB_TEXT ("type=%@ => %@"),
00097 repo->repo_, name, type, obj));
00098
00099 if (repo->repo_ != repo_found->repo_)
00100 ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT (" [in repo=%@]\n"),
00101 repo_found->repo_));
00102 else
00103 ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\n")));
00104
00105 }
00106
00107 return obj;
00108 }
|
|
||||||||||||
|
Return instance using name to search the specific repo instance.
Reimplemented in ACE_Dynamic_Service< TYPE >. Definition at line 114 of file Dynamic_Service_Base.cpp. References ACE_TCHAR, and instance().
00116 {
00117 return instance(repo,name,false);
00118 }
|
|
||||||||||||
|
Perform the default repo search, but optionally skip searching the global repo.
Reimplemented in ACE_Dynamic_Service< TYPE >. Definition at line 32 of file Dynamic_Service_Base.cpp. References ACE_TCHAR, ACE_TRACE, and instance().
|
|
|
Return instance using name to search the (default) Service_Repository.
Reimplemented in ACE_Dynamic_Service< TYPE >. Definition at line 40 of file Dynamic_Service_Base.cpp. References ACE_TCHAR, and ACE_TRACE. Referenced by instance(), and ACE_Dynamic_Service< TYPE >::instance().
|
|
|
|
|
|
The dependency declaration class needs access to the service search policy, implemented by find_i() Definition at line 73 of file Dynamic_Service_Base.h. |
1.3.6