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); \
32 IMPRMFEXPORT void add_##names(RMF::NodeHandle fh, const Types& hs); \
37 IMPRMFEXPORT void add_##name(RMF::FileHandle fh, Type hs); \
41 IMPRMFEXPORT Types create_##names cargs; \
52 IMPRMFEXPORT void link_##names(RMF::FileConstHandle fh, const Types& hs)
62 #define IMP_DEFINE_LINKERS(Name, name, names, Type, Types, create_args, \
64 void add_##names(RMF::FileHandle fh, const Types& hs) { \
65 IMP::rmf::internal::add_helper<Name##SaveLink>(fh, hs); \
67 void add_##names(RMF::NodeHandle fh, const Types& hs) { \
68 IMP::rmf::internal::add_helper<Name##SaveLink>(fh.get_file(), hs); \
70 void add_##name(RMF::FileHandle fh, Type hs) { \
71 add_##names(fh, Types(1, hs)); \
73 Types create_##names create_args { \
74 return IMP::rmf::internal::create_helper<Name##LoadLink, Types> \
77 void link_##names(RMF::FileConstHandle fh, const Types& hs) { \
78 IMP::rmf::internal::link_helper<Name##LoadLink>(fh, hs); \
A nullptr-initialized pointer to an IMP Object.
Handle read/write of kernel::Model data from/to files.
Handle read/write of kernel::Model data from/to files.