hobbes
a language, embedded compiler, and runtime for efficient dynamic expression evaluation, data storage and analysis
procman.H
Go to the documentation of this file.
1 
2 #ifndef HOBBES_LANG_TYPEPREDS_PROCESS_PROCMAN_HPP_INCLUDED
3 #define HOBBES_LANG_TYPEPREDS_PROCESS_PROCMAN_HPP_INCLUDED
4 
6 #include <hobbes/ipc/prepl.H>
7 
8 namespace hobbes {
9 
10 class ProcManager : public HFEliminator {
11 public:
12  long spawnedPid(const std::string&);
13  bool isSpawnedPid(const std::string&, long) const;
14 
15  // hf eliminator interface
16  bool satisfied(const TEnvPtr&, const HasField&, Definitions*) const;
17  bool satisfiable(const TEnvPtr&, const HasField&, Definitions*) const;
18  bool refine(const TEnvPtr&, const HasField&, MonoTypeUnifier*, Definitions*);
19  ExprPtr unqualify(const TEnvPtr&, const ConstraintPtr&, const ExprPtr&, Definitions*) const;
20  std::string name() const;
21 private:
22  friend class ProcManUnqualify;
23 
24  typedef std::map<std::string, proc> SpawnedProcs;
25  SpawnedProcs procs;
26 
27  const proc& lp(long) const;
28 };
29 
30 // shorthand for working with process types
31 MonoTypePtr mkPidTy(long pid);
32 const TLong* pidTy(const MonoTypePtr& mty);
33 
34 }
35 
36 #endif
37 
const proc & lp(long) const
Definition: procman.C:13
bool satisfiable(const TEnvPtr &, const HasField &, Definitions *) const
Definition: procman.C:69
std::map< std::string, proc > SpawnedProcs
Definition: procman.H:24
MonoTypePtr mkPidTy(long pid)
Definition: procman.C:242
Definition: hasfield.H:33
Definition: boot.H:7
long spawnedPid(const std::string &)
Definition: prepl.C:117
Definition: procman.C:88
Definition: procman.H:10
MonoType::ptr MonoTypePtr
Definition: type.H:71
SpawnedProcs procs
Definition: procman.H:25
Definition: typeinf.H:29
Definition: type.H:553
bool refine(const TEnvPtr &, const HasField &, MonoTypeUnifier *, Definitions *)
Definition: procman.C:30
std::shared_ptr< Expr > ExprPtr
Definition: expr.H:58
bool satisfied(const TEnvPtr &, const HasField &, Definitions *) const
Definition: procman.C:45
bool isSpawnedPid(const std::string &, long) const
Definition: procman.C:8
std::shared_ptr< TEnv > TEnvPtr
Definition: type.H:80
std::vector< Definition > Definitions
Definition: expr.H:62
std::string name() const
Definition: procman.C:227
Definition: hasfield.H:15
std::shared_ptr< Constraint > ConstraintPtr
Definition: type.H:33
const TLong * pidTy(const MonoTypePtr &mty)
Definition: procman.C:229
ExprPtr unqualify(const TEnvPtr &, const ConstraintPtr &, const ExprPtr &, Definitions *) const
Definition: procman.C:223
Definition: prepl.H:15