Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-02-21 10:00:32

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_IPUBLISH_H
0012 #define GAUDIKERNEL_IPUBLISH_H
0013 
0014 #include "GaudiKernel/IInterface.h"
0015 #include <string>
0016 
0017 /** @class IPublishSvc IPublishSvc.h GaudiKernel/IPublishSvc.h
0018 
0019     Definition of the IPublishSvc interface, which publishes variables
0020     to outside monitoring processes.
0021 
0022     @author Beat Jost
0023 */
0024 class GAUDI_API IPublishSvc : virtual public IInterface {
0025 public:
0026   /// InterfaceID
0027   DeclareInterfaceID( IPublishSvc, 1, 0 );
0028 
0029   /** Declare publishing information
0030     @param name Information name knwon to the external system
0031     @param var address of the published entity
0032    */
0033   virtual void declarePubItem( const std::string& name, const bool& var )        = 0;
0034   virtual void declarePubItem( const std::string& name, const int& var )         = 0;
0035   virtual void declarePubItem( const std::string& name, const long& var )        = 0;
0036   virtual void declarePubItem( const std::string& name, const double& var )      = 0;
0037   virtual void declarePubItem( const std::string& name, const std::string& var ) = 0;
0038 
0039   /** Undeclare publishing information
0040     @param name publishing information name known to the external system
0041    */
0042 
0043   virtual void undeclarePubItem( const std::string& name ) = 0;
0044   /** Undeclare all publishing information
0045    */
0046 
0047   virtual void undeclarePubAll() = 0;
0048   /** Update pblishing information
0049       @param name publishing information name known to the external system
0050    */
0051 
0052   virtual void updateItem( const std::string& name ) = 0;
0053 
0054   /** Update all declared publishing items
0055    */
0056   virtual void updateAll() = 0;
0057 };
0058 
0059 #endif // GAUDIKERNEL_IPUBLISH_H