BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
Event/GeneratorObject/include/DataModel/DeclareIndexingPolicy.h
Go to the documentation of this file.
1#ifndef DATAMODEL_DECLAREINDEXINGPOLICY_H
2#define DATAMODEL_DECLAREINDEXINGPOLICY_H
3
4/** \file DeclareIndexingPolicy.h
5 * @brief declare to which family the container belongs as far
6 * as its indexing policy is concerned
7
8 * @author Paolo Calfiura - ATLAS Collaboration
9 * $Id: DeclareIndexingPolicy.h,v 1.1 2003/04/07 23:58:32 calaf Exp $
10 */
11
12//<<<<<< INCLUDES >>>>>>
13#ifndef DATAMODEL_TOOLS_DEFAULTINDEXINGPOLICY_H
14# include "DataModel/tools/DefaultIndexingPolicy.h"
15#endif
16
17#ifndef DATAMODEL_TOOLS_FORWARDINDEXINGPOLICY_H
18# include "DataModel/tools/ForwardIndexingPolicy.h"
19#endif
20
21#ifndef DATAMODEL_TOOLS_ASSOCIATIVEINDEXINGPOLICIES_H
22# include "DataModel/tools/AssociativeIndexingPolicies.h"
23#endif
24
25/** \def CONTAINER_INDEXING_POLICY(CONTAINER, POLICY)
26 * @brief declare the indexing polixy to be used for a container
27 * @param CONTAINER ...
28 * @param POLICY the indexing policy for CONTAINER
29 */
30#define CONTAINER_INDEXING_POLICY( CONTAINER, POLICY ) \
31 template <> struct DefaultIndexingPolicy<CONTAINER> { \
32 typedef POLICY<CONTAINER> type; \
33 };
34
35/** \def CONTAINER_IS_SEQUENCE(CONTAINER) \
36 * @brief declare that CONTAINER is a STL sequence (like vector, list)
37 */
38#define CONTAINER_IS_SEQUENCE( CONTAINER ) \
39 CONTAINER_INDEXING_POLICY( CONTAINER, ForwardIndexingPolicy )
40
41/** \def CONTAINER_IS_MAP(CONTAINER) \
42 * @brief declare that CONTAINER behaves like a STL map
43 */
44#define CONTAINER_IS_MAP( CONTAINER ) CONTAINER_INDEXING_POLICY( CONTAINER, MapIndexingPolicy )
45
46/** \def CONTAINER_IS_MAP(CONTAINER) \
47 * @brief declare that CONTAINER behaves like a STL set
48 */
49#define CONTAINER_IS_SET( CONTAINER ) CONTAINER_INDEXING_POLICY( CONTAINER, SetIndexingPolicy )
50
51#endif // STOREGATE_DECLAREINDEXINGPOLICY_H