Source Code (Use browser search to find items of interest.)
Class Index
kdelibs'InterfaceRepo_impl (./kdelibs/arts/mcop/ifacerepo_impl.h:28)
class InterfaceRepo_impl : virtual public InterfaceRepo_skel {
class TypeEntry : public TypeDef {
public:
long moduleID;
TypeEntry(Buffer& stream, long moduleID) :TypeDef(stream)
{
this->moduleID = moduleID;
}
};
class InterfaceEntry : public InterfaceDef {
public:
long moduleID;
InterfaceEntry(Buffer& stream, long moduleID) :InterfaceDef(stream)
{
this->moduleID = moduleID;
}
};
std::list<TypeEntry *> types;
std::list<InterfaceEntry *> interfaces;
long nextModuleID;
public:
InterfaceRepo_impl();
long insertModule(const ModuleDef& newModule);
void removeModule(long moduleID);
InterfaceDef* queryInterface(const std::string& name);
TypeDef* queryType(const std::string& name);
};
kdelibs'InterfaceRepo_impl::InterfaceRepo_impl() (./kdelibs/arts/mcop/ifacerepo_impl.cc:27)
InterfaceRepo_impl::InterfaceRepo_impl()
{
nextModuleID = 1;
}
kdelibs'InterfaceRepo_impl::insertModule() (./kdelibs/arts/mcop/ifacerepo_impl.cc:32)
long InterfaceRepo_impl::insertModule(const ModuleDef& newModule)
{
long moduleID = nextModuleID++;
vector<InterfaceDef *>::const_iterator ii;
for(ii=newModule.interfaces.begin();
ii != newModule.interfaces.end();ii++)
{
Buffer b;
(*ii)->writeType(b);
interfaces.push_back(new InterfaceEntry(b,moduleID));
}
vector<TypeDef *>::const_iterator ti;
for(ti=newModule.types.begin();
ti != newModule.types.end();ti++)
{
Buffer b;
(*ti)->writeType(b);
types.push_back(new TypeEntry(b,moduleID));
}
return moduleID;
}
kdelibs'InterfaceRepo_impl::removeModule() (./kdelibs/arts/mcop/ifacerepo_impl.cc:57)
void InterfaceRepo_impl::removeModule(long moduleID)
{
list<TypeEntry *>::iterator ti;
/* erase types */
ti = types.begin();
while(ti != types.end())
{
if((*ti)->moduleID == moduleID)
{
delete (*ti);
types.erase(ti);
ti = types.begin();
}
else ti++;
}
/* erase interfaces */
list<InterfaceEntry *>::iterator ii;
ii = interfaces.begin();
while(ii != interfaces.end())
{
if((*ii)->moduleID == moduleID)
{
delete (*ii);
interfaces.erase(ii);
ii = interfaces.begin();
}
else ii++;
}
}
kdelibs'InterfaceRepo_impl::queryInterface() (./kdelibs/arts/mcop/ifacerepo_impl.cc:89)
InterfaceDef* InterfaceRepo_impl::queryInterface(const string& name)
{
list<InterfaceEntry *>::iterator ii;
for(ii = interfaces.begin();ii != interfaces.end();ii++)
{
if((*ii)->name == name) /* TODO: namespace! */
{
Buffer b;
(*ii)->writeType(b);
return new InterfaceDef(b);
}
}
/* TODO: what happens here? */
assert(false);
return 0;
}
kdelibs'InterfaceRepo_impl::queryType() (./kdelibs/arts/mcop/ifacerepo_impl.cc:107)
TypeDef* InterfaceRepo_impl::queryType(const string& name)
{
list<TypeEntry *>::iterator ti;
for(ti = types.begin();ti != types.end();ti++)
{
if((*ti)->name == name) /* TODO: namespace! */
{
Buffer b;
(*ti)->writeType(b);
return new TypeDef(b);
}
}
/* TODO: what happens here? */
assert(false);
return 0;
}