libinvdb/source/include/dbassocobject.hh

44 lines
1.5 KiB
C++

#ifndef INVENTORY_DBASSOCHIERARCHY_HH_
#define INVENTORY_DBASSOCHIERARCHY_HH_
#include "dbcontainer.hh"
#include "dbobjectvec.hh"
#include "dbobjectptr.hh"
#include "dbobject.hh"
namespace inventory {
namespace datamodel {
template<class Object, class Derived>
class DBAssocObject : public DBNamedObject<Derived> {
public:
template<template<class> class Container = datamodel::DBObjectVector>
datamodel::DBContainerPtr<Object, Container> get_objects(
db::DBSession &session,
datamodel::DBObjectInserter<Object, Container> inserter =
datamodel::DBObjectInserterImpl<Object, Container>::inserter,
datamodel::DBContainerPtr<Object, Container> pcontainer = {},
int offset = 0, int limit = -1) const;
template<template<class> class Container = datamodel::DBObjectVector>
static datamodel::DBContainerPtr<Derived, Container> get_assoc(
db::DBSession &session, const Object& object,
datamodel::DBObjectInserter<Derived, Container> inserter =
datamodel::DBObjectInserterImpl<Derived, Container>::inserter,
datamodel::DBContainerPtr<Derived, Container> pcontainer = {},
int offset = 0, int limit = -1);
protected:
static void create_membership_table(db::DBSession &session);
};
template<class Object, class Derived>
class DBAssocHierarchicalObject : public DBAssocObject<Object, Derived>,
public DBHierarchicalObject<Derived> {
public:
};
}
}
#endif