20 #define DATASVC_REGISTRYENTRY_CPP
40 #define CAST_REGENTRY(x,y) dynamic_cast<x>(y)
58 if ( sep != std::string::npos ) {
68 if ( 0 != m_pObject ) {
69 if ( !m_isSoft ) m_pObject->setRegistry(0);
72 if ( 0 != m_pAddress ) {
73 if ( !m_isSoft ) m_pAddress->setRegistry(0);
74 m_pAddress->release();
80 unsigned long cnt = --m_refCount;
81 if ( 0 == m_refCount ) {
91 assemblePath(m_fullpath);
106 setAddress(pAddress);
113 if ( 0 != m_pObject ) {
114 m_pObject->setRegistry(
this);
116 if ( 0 != m_pAddress ) {
117 m_pAddress->setRegistry(
this);
124 setAddress(pAddress);
129 if ( 0 != pAddress ) {
133 if ( 0 != m_pAddress ) m_pAddress->release();
134 m_pAddress = pAddress;
139 if ( 0 != pObject ) {
143 if ( 0 != m_pObject ) m_pObject->release();
152 if (i != m_store.end()) {
154 m_store.erase( i, m_store.end() );
158 return m_store.size();
170 if ( nam == (*i)->name() ) {
187 if ( nam == (*i)->name() ) {
199 m_store.push_back(pEntry);
207 return m_store.size();
241 m_store.erase(m_store.begin(), m_store.end());
248 return (i==m_store.end()) ? 0 : (*i);
255 thePath.insert(thePath.begin(),
SEPARATOR);
256 return i_find(thePath);
268 if ( path.compare(0, len2, nam) == 0 ) {
270 if ( loc1 != std::string::npos ) {
288 if ( path.compare(0, len2, m_path) == 0 ) {
291 return i_find(search_path);
301 if ( key == m_pObject ) {
306 if ( 0 != result )
return result;
311 if( 0 != (result = entry->
i_find(key)) )
322 bool go_down = pAgent->
analyse(
this, level);
340 if ( m_pParent != 0 ) {
341 m_pParent->assemblePath(buffer);