Source Code (Use browser search to find items of interest.)

Class Index

kdelibs'InterfaceRepo (./kdelibs/arts/mcop/core.h:338)

class InterfaceRepo : public SmartWrapper {
private:
	static Object_base* _Creator();
	InterfaceRepo_base *_cache;
	inline InterfaceRepo_base *_method_call() {
		_pool->checkcreate();
		if(_pool->base) {
			_cache=(InterfaceRepo_base *)_pool->base->_cast(InterfaceRepo_base::_IID);
			assert(_cache);
		}
		return _cache;
	}

public:
	inline InterfaceRepo() : SmartWrapper(_Creator), _cache(0) {}
	inline InterfaceRepo(const SubClass& s) :
		SmartWrapper(InterfaceRepo_base::_create(s.string())), _cache(0) {}
	inline InterfaceRepo(const Reference &r) :
		SmartWrapper(r.isString()?(InterfaceRepo_base::_fromString(r.string())):(InterfaceRepo_base::_fromReference(r.reference(),true))), _cache(0) {}
	inline InterfaceRepo(InterfaceRepo_base* b) : SmartWrapper(b), _cache(0) {}
	inline InterfaceRepo(const InterfaceRepo& target) : SmartWrapper(target._pool), _cache(target._cache) {}
	inline InterfaceRepo(SmartWrapper::Pool& p) : SmartWrapper(p), _cache(0) {}
	inline InterfaceRepo& operator=(const InterfaceRepo& target) {
		if (_pool == target._pool) return *this;
		_pool->Dec();
		_pool = target._pool;
		_cache = target._cache;
		_pool->Inc();
		return *this;
	}
	inline operator Object() const { return Object(*_pool); }
	inline InterfaceRepo_base* _base() {return _cache?_cache:_method_call();}

	inline long insertModule(const ModuleDef& newModule) {return _cache?_cache->insertModule(newModule):_method_call()->insertModule(newModule);}
	inline void removeModule(long moduleID) {return _cache?_cache->removeModule(moduleID):_method_call()->removeModule(moduleID);}
	inline InterfaceDef* queryInterface(const std::string& name) {return _cache?_cache->queryInterface(name):_method_call()->queryInterface(name);}
	inline TypeDef* queryType(const std::string& name) {return _cache?_cache->queryType(name):_method_call()->queryType(name);}
};


kdelibs'InterfaceRepo::_Creator() (./kdelibs/arts/mcop/core.cc:942)

Object_base* InterfaceRepo::_Creator() {
	return InterfaceRepo_base::_create();
}


kdelibs'InterfaceRepo::queryType() (./kdelibs/arts/mcop/core.h:374)

	inline TypeDef* queryType(const std::string& name) {return _cache?_cache->queryType(name):_method_call()->queryType(name);}
};