44 lines
1.5 KiB
C++
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
|