ATLAS Offline Software
Loading...
Searching...
No Matches
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
15namespace AthenaInterprocess {
16
17class Process {
18public:
19 static Process launch();
20
21public:
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
35private:
39};
40
41} // namespace AthenaInterprocess
42
43#endif // !ATHENAINTERPROCESS_PROCESS_H
int32_t pid_t
IdentifiedSharedQueue m_outbox
Definition Process.h:37
bool connectOut(const IdentifiedSharedQueue &queue)
Definition Process.cxx:78
static Process launch()
Definition Process.cxx:20
bool connectIn(const SharedQueue &queue)
Definition Process.cxx:67
bool schedule(const IMessageDecoder *func, const ScheduledWork *args)
Definition Process.cxx:89
Process & operator=(const Process &other)
Definition Process.cxx:45
int mainloop ATLAS_NOT_THREAD_SAFE()
pid_t getProcessID() const
Definition Process.cxx:62