8 #ifndef IMPRMF_LINK_MACROS_H
9 #define IMPRMF_LINK_MACROS_H
12 #include "internal/link_helpers.h"
14 #include <RMF/FileHandle.h>
22 #define IMP_DECLARE_LINKERS(Name, name, names, Type, Types, cargs, \
23 link_custom_documentation) \
27 IMPRMFEXPORT void add_##names(RMF::FileHandle fh, const Types& hs); \
31 IMPRMFEXPORT void add_##names(RMF::NodeHandle fh, const Types& hs); \
35 IMPRMFEXPORT void add_##name(RMF::FileHandle fh, Type hs); \
39 IMPRMFEXPORT Types create_##names cargs; \
50 IMPRMFEXPORT void link_##names(RMF::FileConstHandle fh, const Types& hs)
60 #define IMP_DEFINE_LINKERS(Name, name, names, Type, Types, create_args, \
62 void add_##names(RMF::FileHandle fh, const Types& hs) { \
63 IMP::rmf::internal::add_helper<Name##SaveLink>(fh, hs); \
65 void add_##names(RMF::NodeHandle nh, const Types& hs) { \
66 IMP::rmf::internal::add_helper<Name##SaveLink>(nh, hs); \
68 void add_##name(RMF::FileHandle fh, Type hs) { \
69 add_##names(fh, Types(1, hs)); \
71 Types create_##names create_args { \
72 return IMP::rmf::internal::create_helper<Name##LoadLink, Types> \
75 void link_##names(RMF::FileConstHandle fh, const Types& hs) { \
76 IMP::rmf::internal::link_helper<Name##LoadLink>(fh, hs); \
Manage links between IMP objects and a part of the RMF file.
Track associations between an RMF file and native objects.
A nullptr-initialized pointer to an IMP Object.