![]() |
|
|||
File indexing completed on 2025-03-13 09:09:58
0001 /***********************************************************************************\ 0002 * (c) Copyright 1998-2019 CERN for the benefit of the LHCb and ATLAS collaborations * 0003 * * 0004 * This software is distributed under the terms of the Apache version 2 licence, * 0005 * copied verbatim in the file "LICENSE". * 0006 * * 0007 * In applying this licence, CERN does not waive the privileges and immunities * 0008 * granted to it by virtue of its status as an Intergovernmental Organization * 0009 * or submit itself to any jurisdiction. * 0010 \***********************************************************************************/ 0011 #ifndef GAUDIKERNEL_IADDRESSCREATOR_H 0012 #define GAUDIKERNEL_IADDRESSCREATOR_H 0013 0014 // Framework include files 0015 #include "GaudiKernel/ClassID.h" 0016 #include "GaudiKernel/IInterface.h" 0017 0018 // C++ include files 0019 #include <string> 0020 0021 // Forward declarations 0022 class IOpaqueAddress; 0023 0024 /** @class IAddressCreator IAddressCreator.h GaudiKernel/IAddressCreator.h 0025 0026 IAddressCreator interface definition. 0027 The address creator allows to: 0028 <UL> 0029 <LI> Create persistent address representations for a given 0030 conversion service using this service itself. The aim is to 0031 allow address creation without coupling directly to the service. 0032 </UL> 0033 0034 0035 @author Markus Frank 0036 @version 1.0 0037 */ 0038 class GAUDI_API IAddressCreator : virtual public IInterface { 0039 public: 0040 /// InterfaceID 0041 DeclareInterfaceID( IAddressCreator, 3, 0 ); 0042 0043 /** Create a Generic address using explicit arguments to 0044 identify a single object. 0045 @param svc_type Technology identifier encapsulated 0046 in this address. 0047 @param clid Class identifier of the DataObject 0048 represented by the opaque address 0049 @param par Array of strings needed to 0050 construct the opaque address. 0051 @param ipar Array of integers needed to 0052 construct the opaque address. 0053 @param refpAddress Reference to pointer to the address where the created 0054 Address should be stored. 0055 @return Status code indicating success or failure. 0056 */ 0057 virtual StatusCode createAddress( long svc_type, const CLID& clid, const std::string* par, const unsigned long* ipar, 0058 IOpaqueAddress*& refpAddress ) = 0; 0059 0060 /** Convert an address to string form 0061 @param pAddress Input address. 0062 @param refAddress Output address in string form. 0063 @return Status code indicating success or failure. 0064 */ 0065 virtual StatusCode convertAddress( const IOpaqueAddress* pAddress, std::string& refAddress ) = 0; 0066 0067 /** Creates an address in string form to object form 0068 @param svc_type Technology identifier encapsulated 0069 in this address. 0070 @param clid Class identifier of the DataObject 0071 represented by the opaque address 0072 @param address Input address. 0073 @param refpAddress Output address in string form. 0074 @return Status code indicating success or failure. 0075 */ 0076 virtual StatusCode createAddress( long svc_type, const CLID& clid, const std::string& refAddress, 0077 IOpaqueAddress*& refpAddress ) = 0; 0078 }; 0079 0080 #endif // GAUDIKERNEL_IADDRESSCREATOR_H
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |