Added functions to transform from ruby object to enum values
authorMikael Hallendal <micke@imendio.com>
Wed, 09 Apr 2008 23:40:46 +0200
changeset 368 5fbd160d38d8
parent 367 d35e28c0838a
child 369 a416922c533d
Added functions to transform from ruby object to enum values
bindings/ruby/rblm-constants.c
--- a/bindings/ruby/rblm-constants.c	Wed Apr 09 23:20:01 2008 +0200
+++ b/bindings/ruby/rblm-constants.c	Wed Apr 09 23:40:46 2008 +0200
@@ -5,6 +5,75 @@
 VALUE lm_mDisconnectReason;
 VALUE lm_mConnectionState;
 
+LmConnectionState
+rb_lm_connection_state_from_ruby_object (VALUE obj)
+{
+	LmConnectionState state;
+
+	state = FIX2INT (obj);
+	if (state < LM_CONNECTION_STATE_CLOSED ||
+	    state > LM_CONNECTION_STATE_AUTHENTICATED) {
+		rb_raise (rb_eArgError,
+			  "invalid LmConnectionState: %d (expected %d <= LmConnectionState <= %d)",
+			  state, LM_CONNECTION_STATE_CLOSED, 
+			  LM_CONNECTION_STATE_AUTHENTICATED);
+	}
+
+	return state;
+}
+
+LmDisconnectReason
+rb_lm_disconnect_reason_from_ruby_object (VALUE obj)
+{
+	LmDisconnectReason reason;
+
+	reason = FIX2INT (obj);
+	if (reason < LM_DISCONNECT_REASON_OK ||
+	    reason > LM_DISCONNECT_REASON_UNKNOWN) {
+		rb_raise (rb_eArgError,
+			  "invalid LmDisconnectReason: %d (expected %d <= LmDisconnectReason <= %d)",
+			  reason, 
+			  LM_DISCONNECT_REASON_OK, 
+			  LM_DISCONNECT_REASON_UNKNOWN);
+	}
+
+	return reason;
+}
+
+LmMessageType
+rb_lm_message_type_from_ruby_object (VALUE obj)
+{
+	LmMessageType type;
+
+	type = FIX2INT (obj);
+	if (type < LM_MESSAGE_TYPE_MESSAGE ||
+	    type > LM_MESSAGE_TYPE_IQ) {
+		rb_raise (rb_eArgError,
+			  "invalid LmMessageType: %d (expected %d <= LmMessageType <= %d)",
+			  type, LM_MESSAGE_TYPE_MESSAGE,
+			  LM_MESSAGE_TYPE_IQ);
+	}
+
+	return type;
+}
+
+LmMessageSubType
+rb_lm_message_sub_type_from_ruby_object (VALUE obj)
+{
+	LmMessageSubType type;
+
+	type = FIX2INT (obj);
+	if (type < LM_MESSAGE_SUB_TYPE_AVAILABLE ||
+	    type > LM_MESSAGE_SUB_TYPE_ERROR) {
+		rb_raise (rb_eArgError,
+			  "invalid LmMessageSubType: %d (expected %d <= LmMessageSubType <= %d)",
+			  type, LM_MESSAGE_SUB_TYPE_AVAILABLE,
+			  LM_MESSAGE_SUB_TYPE_ERROR);
+	}
+
+	return type;
+}
+
 void 
 Init_lm_constants (VALUE lm_mLM)
 {