hobbes
a language, embedded compiler, and runtime for efficient dynamic expression evaluation, data storage and analysis
process.H
Go to the documentation of this file.
1 
2 #ifndef HOBBES_LANG_TYPEPREDS_PROCESS_PROCESS_HPP_INCLUDED
3 #define HOBBES_LANG_TYPEPREDS_PROCESS_PROCESS_HPP_INCLUDED
4 
6 #include <hobbes/ipc/procman.H>
7 #include <string>
8 
9 namespace hobbes {
10 
11 // resolve process invocation constraints
12 class ProcessP : public Unqualifier {
13 public:
15 
16  static std::string constraintName();
17 
18  // unqualifier interface
20  bool satisfied(const TEnvPtr&,const ConstraintPtr&,Definitions*) const;
21  bool satisfiable(const TEnvPtr&,const ConstraintPtr&,Definitions*) const;
22  void explain(const TEnvPtr& tenv, const ConstraintPtr& cst, const ExprPtr& e, Definitions* ds, annmsgs* msgs);
23  ExprPtr unqualify(const TEnvPtr&,const ConstraintPtr&,const ExprPtr&,Definitions*) const;
24  PolyTypePtr lookup (const std::string& vn) const;
25  SymSet bindings () const;
26  FunDeps dependencies(const ConstraintPtr&) const;
27 private:
29 };
30 
31 }
32 
33 #endif
34 
std::shared_ptr< PolyType > PolyTypePtr
Definition: type.H:23
Definition: tyunqualify.H:20
Definition: process.H:12
Definition: hasfield.H:51
static std::string constraintName()
Definition: process.C:22
SymSet bindings() const
Definition: process.C:115
std::set< std::string > SymSet
Definition: tyunqualify.H:12
Definition: boot.H:7
std::vector< FunDep > FunDeps
Definition: tyunqualify.H:17
Definition: procman.H:10
FunDeps dependencies(const ConstraintPtr &) const
Definition: process.C:121
bool refine(const TEnvPtr &, const ConstraintPtr &, MonoTypeUnifier *, Definitions *)
Definition: process.C:27
Definition: typeinf.H:29
PolyTypePtr lookup(const std::string &vn) const
Definition: process.C:107
std::shared_ptr< Expr > ExprPtr
Definition: expr.H:58
std::shared_ptr< TEnv > TEnvPtr
Definition: type.H:80
ExprPtr unqualify(const TEnvPtr &, const ConstraintPtr &, const ExprPtr &, Definitions *) const
Definition: process.C:103
void explain(const TEnvPtr &tenv, const ConstraintPtr &cst, const ExprPtr &e, Definitions *ds, annmsgs *msgs)
Definition: process.C:65
bool satisfiable(const TEnvPtr &, const ConstraintPtr &, Definitions *) const
Definition: process.C:50
std::vector< Definition > Definitions
Definition: expr.H:62
ProcManager procman
Definition: process.H:28
bool satisfied(const TEnvPtr &, const ConstraintPtr &, Definitions *) const
Definition: process.C:38
std::shared_ptr< Constraint > ConstraintPtr
Definition: type.H:33
ProcessP(FieldVerifier *)
Definition: process.C:9
std::vector< annmsg > annmsgs
Definition: lannotation.H:58