ATLAS Offline Software
Process.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef ATHENAINTERPROCESS_PROCESS_H
6 #define ATHENAINTERPROCESS_PROCESS_H
7 
11 
12 #include <string>
13 #include <unistd.h>
14 
15 namespace AthenaInterprocess {
16 
17 class Process {
18 public:
19  static Process launch();
20 
21 public:
22  explicit Process(pid_t pid);
23  Process( const Process& other );
24  Process& operator=( const Process& other );
25  virtual ~Process();
26 
27  pid_t getProcessID() const;
28 
29  bool connectIn( const SharedQueue& queue );
30  bool connectOut( const IdentifiedSharedQueue& queue );
31  bool schedule(const IMessageDecoder* func, const ScheduledWork* args);
32 
33  int mainloop ATLAS_NOT_THREAD_SAFE ();
34 
35 private:
39 };
40 
41 } // namespace AthenaInterprocess
42 
43 #endif // !ATHENAINTERPROCESS_PROCESS_H
AthenaInterprocess::Process::connectOut
bool connectOut(const IdentifiedSharedQueue &queue)
Definition: Process.cxx:78
pid_t
int32_t pid_t
Definition: FPGATrackSimTypes.h:19
AthenaInterprocess
Definition: FdsRegistry.h:11
IMessageDecoder.h
IdentifiedSharedQueue.h
AthenaInterprocess::ScheduledWork
Definition: IMessageDecoder.h:12
AthenaInterprocess::Process::~Process
virtual ~Process()
Definition: Process.cxx:55
AthenaInterprocess::Process::schedule
bool schedule(const IMessageDecoder *func, const ScheduledWork *args)
Definition: Process.cxx:89
AthenaInterprocess::SharedQueue
Definition: SharedQueue.h:21
AthenaInterprocess::Process::getProcessID
pid_t getProcessID() const
Definition: Process.cxx:62
AthenaInterprocess::Process::launch
static Process launch()
Definition: Process.cxx:20
AthenaInterprocess::Process::m_outbox
IdentifiedSharedQueue m_outbox
Definition: Process.h:37
AthenaInterprocess::Process::Process
Process(pid_t pid)
Definition: Process.cxx:34
ParticleGun_EoverP_Config.pid
pid
Definition: ParticleGun_EoverP_Config.py:62
AthenaInterprocess::Process::m_pid
pid_t m_pid
Definition: Process.h:38
beamspotman.queue
string queue
Definition: beamspotman.py:347
AthenaInterprocess::Process::m_inbox
SharedQueue m_inbox
Definition: Process.h:36
AthenaInterprocess::IMessageDecoder
Definition: IMessageDecoder.h:18
AthenaInterprocess::Process::operator=
Process & operator=(const Process &other)
Definition: Process.cxx:45
AthenaInterprocess::Process
Definition: Process.h:17
AthenaInterprocess::Process::connectIn
bool connectIn(const SharedQueue &queue)
Definition: Process.cxx:67
InDetDD::other
@ other
Definition: InDetDD_Defs.h:16
AthenaInterprocess::IdentifiedSharedQueue
Definition: IdentifiedSharedQueue.h:14
SharedQueue.h
python.CaloScaleNoiseConfig.args
args
Definition: CaloScaleNoiseConfig.py:80
AthenaInterprocess::Process::ATLAS_NOT_THREAD_SAFE
int mainloop ATLAS_NOT_THREAD_SAFE()