Go to the documentation of this file. 1 #ifndef art_Framework_Services_Registry_ServiceMacros_h 2 #define art_Framework_Services_Registry_ServiceMacros_h 91 #define DECLARE_ART_SERVICE(svc, scope) DECLARE_ART_SERVICE_DETAIL(svc, scope) 93 #define DEFINE_ART_SERVICE(svc) \ 94 DEFINE_ART_SH_CREATE(svc) \ 95 CET_PROVIDE_FILE_PATH() \ 96 FHICL_PROVIDE_ALLOWED_CONFIGURATION(svc) 99 #define DECLARE_ART_SERVICE_INTERFACE(svc, scope) \ 101 art::detail::handle_allowed_v<svc>, \ 102 "\n\nart-error: You cannot create a service interface for type " \ 103 "'" ART_DETAIL_STRINGIZED_TYPE(svc) "'.\n" \ 104 " There is a base class of " \ 105 "this type for which a ServiceHandle " \ 107 " be constructed. Please " \ 108 "contact artists@fnal.gov for " \ 110 DECLARE_ART_SERVICE_INTERFACE_DETAIL(svc, scope) 113 #define DECLARE_ART_SERVICE_INTERFACE_IMPL(svc, iface, scope) \ 115 art::detail::handle_allowed_v<svc>, \ 116 "\n\nart-error: You cannot create a service implementation for type " \ 117 "'" ART_DETAIL_STRINGIZED_TYPE(svc) "'.\n" \ 118 " There is a base class of " \ 119 "this type for which a ServiceHandle " \ 121 " be constructed. Please " \ 122 "contact artists@fnal.gov for " \ 124 DECLARE_ART_SERVICE_INTERFACE_IMPL_DETAIL(svc, iface, scope) 126 #define DEFINE_ART_SERVICE_INTERFACE_IMPL(svc, iface) \ 127 DEFINE_ART_SERVICE(svc) \ 128 DEFINE_ART_SIH_CREATE(iface) 141 #define DECLARE_ART_SYSTEM_SERVICE(svc, scope) \ 142 DECLARE_ART_SYSTEM_SERVICE_DETAIL(svc, scope)