QuISP
Loading...
Searching...
No Matches
Rule.h
Go to the documentation of this file.
1
5#pragma once
6#include <omnetpp.h>
7#include <stdio.h>
8#include <memory>
9
10#include <nlohmann/json.hpp>
11
12#include "Action.h"
13#include "Condition.h"
14
15using json = nlohmann::json;
16
17namespace quisp::rules {
18class Rule {
19 public:
20 Rule(){};
21 Rule(int partner_address, int send_tag, int receive_tag);
22 Rule(std::vector<int> partner_address, int send_tag, int receive_tag);
23 Rule(json serialized) { deserialize_json(serialized); };
26 std::vector<QnicInterface> qnic_interfaces;
27 std::string name;
28 std::unique_ptr<Condition> condition;
29 std::unique_ptr<Action> action;
30
31 void setCondition(std::unique_ptr<Condition> condition);
32 void setAction(std::unique_ptr<Action> action);
33 void setName(std::string rule_name) { name = rule_name; };
34 json serialize_json();
35 void deserialize_json(json serialized);
36};
37
38} // namespace quisp::rules
Definition Rule.h:18
void setAction(std::unique_ptr< Action > action)
Definition Rule.cc:15
json serialize_json()
Definition Rule.cc:17
int receive_tag
RuleEngine will assign a message with this tag to this rule.
Definition Rule.h:25
int send_tag
used to denote which rules should receive this message
Definition Rule.h:24
std::unique_ptr< Action > action
Definition Rule.h:29
void setName(std::string rule_name)
Definition Rule.h:33
Rule(json serialized)
Definition Rule.h:23
Rule()
Definition Rule.h:20
std::vector< QnicInterface > qnic_interfaces
Definition Rule.h:26
std::string name
Definition Rule.h:27
void setCondition(std::unique_ptr< Condition > condition)
Definition Rule.cc:13
void deserialize_json(json serialized)
Definition Rule.cc:32
std::unique_ptr< Condition > condition
Condition includes a set of clauses.
Definition Rule.h:28
Definition Action.cc:3