durable_rules 0.34.02 → 0.34.03

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/src/rules/net.h CHANGED
@@ -31,6 +31,7 @@ typedef struct binding {
31
31
  functionHash partitionHash;
32
32
  functionHash timersHash;
33
33
  functionHash updateActionHash;
34
+ functionHash deleteSessionHash;
34
35
  char *sessionHashset;
35
36
  char *factsHashset;
36
37
  char *eventsHashset;
@@ -147,6 +148,9 @@ unsigned int getSession(void *rulesBinding,
147
148
  char *sid,
148
149
  char **state);
149
150
 
151
+ unsigned int deleteSession(void *rulesBinding,
152
+ char *sid);
153
+
150
154
  unsigned int updateAction(void *rulesBinding,
151
155
  char *sid);
152
156
 
data/src/rules/rules.h CHANGED
@@ -183,6 +183,9 @@ unsigned int getState(void *handle,
183
183
  char *sid,
184
184
  char **state);
185
185
 
186
+ unsigned int deleteState(void *handle,
187
+ char *sid);
188
+
186
189
  unsigned int renewActionLease(void *handle,
187
190
  char *sid);
188
191
 
data/src/rules/state.c CHANGED
@@ -410,3 +410,13 @@ unsigned int getState(void *handle, char *sid, char **state) {
410
410
 
411
411
  return getSession(rulesBinding, sid, state);
412
412
  }
413
+
414
+ unsigned int deleteState(void *handle, char *sid) {
415
+ void *rulesBinding = NULL;
416
+ unsigned int result = resolveBinding(handle, sid, &rulesBinding);
417
+ if (result != RULES_OK) {
418
+ return result;
419
+ }
420
+
421
+ return deleteSession(rulesBinding, sid);
422
+ }
data/src/rulesrb/rules.c CHANGED
@@ -714,6 +714,21 @@ static VALUE rbGetState(VALUE self, VALUE handle, VALUE sid) {
714
714
  return output;
715
715
  }
716
716
 
717
+ static VALUE rbDeleteState(VALUE self, VALUE handle, VALUE sid) {
718
+ Check_Type(handle, T_FIXNUM);
719
+ Check_Type(sid, T_STRING);
720
+
721
+ unsigned int result = deleteState((void *)FIX2LONG(handle), RSTRING_PTR(sid));
722
+ if (result != RULES_OK) {
723
+ if (result == ERR_OUT_OF_MEMORY) {
724
+ rb_raise(rb_eNoMemError, "Out of memory");
725
+ } else {
726
+ rb_raise(rb_eException, "Could not delete state, error code: %d", result);
727
+ }
728
+ }
729
+
730
+ return Qnil;
731
+ }
717
732
 
718
733
  static VALUE rbRenewActionLease(VALUE self, VALUE handle, VALUE sid) {
719
734
  Check_Type(handle, T_FIXNUM);
@@ -765,6 +780,7 @@ void Init_rules() {
765
780
  rb_define_singleton_method(rulesModule, "cancel_timer", rbCancelTimer, 3);
766
781
  rb_define_singleton_method(rulesModule, "assert_timers", rbAssertTimers, 1);
767
782
  rb_define_singleton_method(rulesModule, "get_state", rbGetState, 2);
783
+ rb_define_singleton_method(rulesModule, "delete_state", rbDeleteState, 2);
768
784
  rb_define_singleton_method(rulesModule, "renew_action_lease", rbRenewActionLease, 2);
769
785
  }
770
786
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: durable_rules
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.34.02
4
+ version: 0.34.03
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jesus Ruiz
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-05-10 00:00:00.000000000 Z
11
+ date: 2016-05-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake