IMP  2.0.1
The Integrative Modeling Platform
kernel/key_macros.h File Reference

Various general useful macros for IMP. More...

#include <IMP/kernel/kernel_config.h>
#include <IMP/base/value_macros.h>
#include "Key.h"
+ Include dependency graph for kernel/key_macros.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define IMP_DECLARE_CONTROLLED_KEY_TYPE(Name, Tag)
 
#define IMP_DECLARE_KEY_TYPE(Name, Tag)
 

Detailed Description

Copyright 2007-2013 IMP Inventors. All rights reserved.

Definition in file kernel/key_macros.h.

Macro Definition Documentation

#define IMP_DECLARE_CONTROLLED_KEY_TYPE (   Name,
  Tag 
)
Value:
typedef Key<Tag, false> Name; \
IMP_VALUES(Name, Name##s)

Define a new key non lazy type where new types have to be created explicitly.

See Also
IMP_DECLARE_KEY_TYPE

Definition at line 41 of file kernel/key_macros.h.

#define IMP_DECLARE_KEY_TYPE (   Name,
  Tag 
)
Value:
typedef Key<Tag, true> Name; \
IMP_VALUES(Name, Name##s)

Define a new key type.

It defines two public types: Name, which is an instantiation of KeyBase, and Names which is a vector of Name.

Parameters
[in]NameThe name for the new type.
[in]TagA (hopefully) unique integer to define this key type.
Note
We define a new class rather than use a typedef since SWIG has a bug dealing with names that start with ::. A fix has been commited to SVN for SWIG.
The name in the typedef would have to start with IMP so it could be used out of the IMP namespace.

Definition at line 31 of file kernel/key_macros.h.