chiark / gitweb /
loopback-setup: correctly set flags and scope for ipv6 address
[elogind.git] / src / core / condition.h
index 03954e40b3c00160d1917161ca408df1aacef4a9..1813b735a5b6c241335f26ac01607a959d69a440 100644 (file)
@@ -40,6 +40,7 @@ typedef enum ConditionType {
         CONDITION_SECURITY,
         CONDITION_CAPABILITY,
         CONDITION_HOST,
+        CONDITION_AC_POWER,
         CONDITION_NULL,
         _CONDITION_TYPE_MAX,
         _CONDITION_TYPE_INVALID = -1
@@ -47,11 +48,14 @@ typedef enum ConditionType {
 
 typedef struct Condition {
         ConditionType type;
-        char *parameter;
 
         bool trigger:1;
         bool negate:1;
 
+        char *parameter;
+
+        int state;
+
         LIST_FIELDS(struct Condition, conditions);
 } Condition;
 
@@ -59,11 +63,10 @@ Condition* condition_new(ConditionType type, const char *parameter, bool trigger
 void condition_free(Condition *c);
 void condition_free_list(Condition *c);
 
-bool condition_test(Condition *c);
-bool condition_test_list(Condition *c);
+bool condition_test_list(const char *unit, Condition *c);
 
 void condition_dump(Condition *c, FILE *f, const char *prefix);
 void condition_dump_list(Condition *c, FILE *f, const char *prefix);
 
-const char* condition_type_to_string(ConditionType t);
-int condition_type_from_string(const char *s);
+const char* condition_type_to_string(ConditionType t) _const_;
+int condition_type_from_string(const char *s) _pure_;