2 Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
7 * @file StoreGate/UpdateHandleKey.icc
8 * @author scott snyder <snyder@bnl.gov>
10 * @brief Property holding a SG store/key/clid from which an UpdateHandle is made.
19 * @param key The StoreGate key for the object.
20 * @param storeName Name to use for the store, if it's not encoded in sgkey.
22 * The provided key may actually start with the name of the store,
23 * separated by a "+": "MyStore+Obj". If no "+" is present
24 * the store named by @c storeName is used.
27 UpdateHandleKey<T>::UpdateHandleKey (const std::string& key /*= ""*/,
28 const std::string& storeName /*= "StoreGateSvc"*/)
29 : VarHandleKey (ClassID_traits<T>::ID(), key,
30 Gaudi::DataHandle::Reader,
36 * @brief auto-declaring Property Constructor.
37 * @param owner Owning component.
38 * @param name name of the Property
39 * @param key default StoreGate key for the object.
40 * @param doc Documentation string.
42 * will associate the named Property with this WHK via declareProperty
44 * The provided key may actually start with the name of the store,
45 * separated by a "+": "MyStore+Obj". If no "+" is present
46 * the store named by @c storeName is used.
49 template <class OWNER,
50 typename /*= typename std::enable_if<std::is_base_of<IProperty, OWNER>::value>::type*/>
52 UpdateHandleKey<T>::UpdateHandleKey( OWNER* owner,
54 const std::string& key /*= {}*/,
55 std::string doc /*= ""*/)
56 : UpdateHandleKey<T> (key)
58 auto p = owner->declareProperty(std::move(name), *this, std::move(doc));
59 p->template setOwnerType<OWNER>();
65 * @brief Change the key of the object to which we're referring.
66 * @param sgkey The StoreGate key for the object.
68 * The provided key may actually start with the name of the store,
69 * separated by a "+": "MyStore+Obj". If no "+" is present,
70 * the store is not changed.
73 UpdateHandleKey<T>& UpdateHandleKey<T>::operator= (const std::string& sgkey)
75 VarHandleKey::operator= (sgkey);