bindings/ruby/rblm-constants.c
changeset 390 8623ce9ef39d
parent 389 95287bd6f233
child 391 d8b64455b5ee
equal deleted inserted replaced
389:95287bd6f233 390:8623ce9ef39d
     1 #include "rblm.h"
       
     2 
       
     3 VALUE lm_mMessageType;
       
     4 VALUE lm_mMessageSubType;
       
     5 VALUE lm_mDisconnectReason;
       
     6 VALUE lm_mConnectionState;
       
     7 VALUE lm_mProxyType;
       
     8 VALUE lm_mCertificateStatus;
       
     9 VALUE lm_mSSLStatus;
       
    10 VALUE lm_mSSLResponse;
       
    11 
       
    12 LmConnectionState
       
    13 rb_lm_connection_state_from_ruby_object (VALUE obj)
       
    14 {
       
    15 	LmConnectionState state;
       
    16 
       
    17 	state = FIX2INT (obj);
       
    18 	if (state < LM_CONNECTION_STATE_CLOSED ||
       
    19 	    state > LM_CONNECTION_STATE_AUTHENTICATED) {
       
    20 		rb_raise (rb_eArgError,
       
    21 			  "invalid LmConnectionState: %d (expected %d <= LmConnectionState <= %d)",
       
    22 			  state, LM_CONNECTION_STATE_CLOSED, 
       
    23 			  LM_CONNECTION_STATE_AUTHENTICATED);
       
    24 	}
       
    25 
       
    26 	return state;
       
    27 }
       
    28 
       
    29 LmDisconnectReason
       
    30 rb_lm_disconnect_reason_from_ruby_object (VALUE obj)
       
    31 {
       
    32 	LmDisconnectReason reason;
       
    33 
       
    34 	reason = FIX2INT (obj);
       
    35 	if (reason < LM_DISCONNECT_REASON_OK ||
       
    36 	    reason > LM_DISCONNECT_REASON_UNKNOWN) {
       
    37 		rb_raise (rb_eArgError,
       
    38 			  "invalid LmDisconnectReason: %d (expected %d <= LmDisconnectReason <= %d)",
       
    39 			  reason, 
       
    40 			  LM_DISCONNECT_REASON_OK, 
       
    41 			  LM_DISCONNECT_REASON_UNKNOWN);
       
    42 	}
       
    43 
       
    44 	return reason;
       
    45 }
       
    46 
       
    47 LmMessageType
       
    48 rb_lm_message_type_from_ruby_object (VALUE obj)
       
    49 {
       
    50 	LmMessageType type;
       
    51 
       
    52 	type = FIX2INT (obj);
       
    53 	if (type < LM_MESSAGE_TYPE_MESSAGE ||
       
    54 	    type > LM_MESSAGE_TYPE_IQ) {
       
    55 		rb_raise (rb_eArgError,
       
    56 			  "invalid LmMessageType: %d (expected %d <= LmMessageType <= %d)",
       
    57 			  type, LM_MESSAGE_TYPE_MESSAGE,
       
    58 			  LM_MESSAGE_TYPE_IQ);
       
    59 	}
       
    60 
       
    61 	return type;
       
    62 }
       
    63 
       
    64 LmMessageSubType
       
    65 rb_lm_message_sub_type_from_ruby_object (VALUE obj)
       
    66 {
       
    67 	LmMessageSubType type;
       
    68 
       
    69 	type = FIX2INT (obj);
       
    70 	if (type < LM_MESSAGE_SUB_TYPE_AVAILABLE ||
       
    71 	    type > LM_MESSAGE_SUB_TYPE_ERROR) {
       
    72 		rb_raise (rb_eArgError,
       
    73 			  "invalid LmMessageSubType: %d (expected %d <= LmMessageSubType <= %d)",
       
    74 			  type, LM_MESSAGE_SUB_TYPE_AVAILABLE,
       
    75 			  LM_MESSAGE_SUB_TYPE_ERROR);
       
    76 	}
       
    77 
       
    78 	return type;
       
    79 }
       
    80 
       
    81 LmProxyType
       
    82 rb_lm_proxy_type_from_ruby_object (VALUE obj)
       
    83 {
       
    84 	LmProxyType type;
       
    85 
       
    86 	type = FIX2INT (obj);
       
    87 	if (type < LM_PROXY_TYPE_NONE || type > LM_PROXY_TYPE_HTTP) {
       
    88 		rb_raise (rb_eArgError,
       
    89 			  "invalid LmProxyType: %d (expected %d <= LmProxyType <= %d)",
       
    90 			  type, LM_PROXY_TYPE_NONE, LM_PROXY_TYPE_HTTP);
       
    91 	}
       
    92 
       
    93 	return type;
       
    94 }
       
    95 
       
    96 LmCertificateStatus
       
    97 rb_lm_certificate_status_from_ruby_object (VALUE obj)
       
    98 {
       
    99 	LmCertificateStatus status;
       
   100 
       
   101 	status = FIX2INT (obj);
       
   102 	if (status < LM_CERT_INVALID || status > LM_CERT_REVOKED) {
       
   103 		rb_raise (rb_eArgError,
       
   104 			  "invalid LmCertificateStatus: %d (expected %d <= LmCertificateStatus <= %d)",
       
   105 			  status, LM_CERT_INVALID, LM_CERT_REVOKED);
       
   106 	}
       
   107 
       
   108 	return status;
       
   109 }
       
   110 
       
   111 LmSSLStatus 
       
   112 rb_lm_ssl_status_from_ruby_object (VALUE obj)
       
   113 {
       
   114 	LmSSLStatus status;
       
   115 
       
   116 	status = FIX2INT (obj);
       
   117 	if (status < LM_SSL_STATUS_NO_CERT_FOUND || 
       
   118 	    status > LM_SSL_STATUS_GENERIC_ERROR) {
       
   119 		rb_raise (rb_eArgError, 
       
   120 			  "invalid LmSSLStatus: %d (expected %d <= LmSSLStatus <= %d)",
       
   121 			  status, LM_SSL_STATUS_NO_CERT_FOUND, 
       
   122 			  LM_SSL_STATUS_GENERIC_ERROR);
       
   123 	}
       
   124 
       
   125 	return status;
       
   126 }
       
   127 
       
   128 LmSSLResponse
       
   129 rb_lm_ssl_response_from_ruby_object (VALUE obj)
       
   130 {
       
   131 	LmSSLResponse response;
       
   132 	
       
   133 	response = FIX2INT (obj);
       
   134 	if (response < LM_SSL_RESPONSE_CONTINUE || 
       
   135 	    response > LM_SSL_RESPONSE_STOP) {
       
   136 		rb_raise (rb_eArgError,
       
   137 			  "invalid LmSSLResponse: %d (expected %d <= LmSSLResponse <= %d)",
       
   138 			  response,
       
   139 			  LM_SSL_RESPONSE_CONTINUE, LM_SSL_RESPONSE_STOP);
       
   140 	}
       
   141 
       
   142 	return response;
       
   143 }
       
   144 
       
   145 void 
       
   146 Init_lm_constants (VALUE lm_mLM)
       
   147 {
       
   148 	/* LmMessageType */
       
   149 	lm_mMessageType = rb_define_module_under (lm_mLM, "MessageType");
       
   150 
       
   151 	rb_define_const (lm_mMessageType, "MESSAGE",
       
   152 			 INT2FIX (LM_MESSAGE_TYPE_MESSAGE));
       
   153 	rb_define_const (lm_mMessageType, "PRESENCE",
       
   154 			 INT2FIX (LM_MESSAGE_TYPE_PRESENCE));
       
   155 	rb_define_const (lm_mMessageType, "IQ",
       
   156 			 INT2FIX (LM_MESSAGE_TYPE_IQ));
       
   157 
       
   158 	/* LmMessageSubType */
       
   159 	lm_mMessageSubType = rb_define_module_under (lm_mLM, "MessageSubType");
       
   160 
       
   161 	rb_define_const (lm_mMessageSubType, "AVAILABLE",
       
   162 			 INT2FIX (LM_MESSAGE_SUB_TYPE_AVAILABLE));
       
   163 	rb_define_const (lm_mMessageSubType, "NORMAL",
       
   164 			 INT2FIX (LM_MESSAGE_SUB_TYPE_NORMAL));
       
   165 	rb_define_const (lm_mMessageSubType, "CHAT",
       
   166 			 INT2FIX (LM_MESSAGE_SUB_TYPE_CHAT));
       
   167 	rb_define_const (lm_mMessageSubType, "GROUPCHAT",
       
   168 			 INT2FIX (LM_MESSAGE_SUB_TYPE_GROUPCHAT));
       
   169 	rb_define_const (lm_mMessageSubType, "HEADLINE",
       
   170 			 INT2FIX (LM_MESSAGE_SUB_TYPE_HEADLINE));
       
   171 	rb_define_const (lm_mMessageSubType, "UNAVAILABLE",
       
   172 			 INT2FIX (LM_MESSAGE_SUB_TYPE_UNAVAILABLE));
       
   173 	rb_define_const (lm_mMessageSubType, "PROBE",
       
   174 			 INT2FIX (LM_MESSAGE_SUB_TYPE_PROBE));
       
   175 	rb_define_const (lm_mMessageSubType, "SUBSCRIBE",
       
   176 			 INT2FIX (LM_MESSAGE_SUB_TYPE_SUBSCRIBE));
       
   177 	rb_define_const (lm_mMessageSubType, "UNSUBSCRIBE",
       
   178 			 INT2FIX (LM_MESSAGE_SUB_TYPE_UNSUBSCRIBE));
       
   179 	rb_define_const (lm_mMessageSubType, "SUBSCRIBED",
       
   180 			 INT2FIX (LM_MESSAGE_SUB_TYPE_SUBSCRIBED));
       
   181 	rb_define_const (lm_mMessageSubType, "UNSUBSCRIBED",
       
   182 			 INT2FIX (LM_MESSAGE_SUB_TYPE_UNSUBSCRIBED));
       
   183 	rb_define_const (lm_mMessageSubType, "GET",
       
   184 			 INT2FIX (LM_MESSAGE_SUB_TYPE_GET));
       
   185 	rb_define_const (lm_mMessageSubType, "SET",
       
   186 			 INT2FIX (LM_MESSAGE_SUB_TYPE_SET));
       
   187 	rb_define_const (lm_mMessageSubType, "RESULT",
       
   188 			 INT2FIX (LM_MESSAGE_SUB_TYPE_RESULT));
       
   189 	rb_define_const (lm_mMessageSubType, "ERROR",
       
   190 			 INT2FIX (LM_MESSAGE_SUB_TYPE_ERROR));
       
   191 
       
   192 	/* LmDisconnectReason */
       
   193 	lm_mDisconnectReason = rb_define_module_under (lm_mLM, "DisconnectReason");
       
   194 
       
   195 	rb_define_const (lm_mDisconnectReason, "OK",
       
   196 			 INT2FIX (LM_DISCONNECT_REASON_OK));
       
   197 	rb_define_const (lm_mDisconnectReason, "PING_TIME_OUT",
       
   198 			 INT2FIX (LM_DISCONNECT_REASON_PING_TIME_OUT));
       
   199 	rb_define_const (lm_mDisconnectReason, "HUP",
       
   200 			 INT2FIX (LM_DISCONNECT_REASON_HUP));
       
   201 	rb_define_const (lm_mDisconnectReason, "ERROR",
       
   202 			 INT2FIX (LM_DISCONNECT_REASON_ERROR));
       
   203 	rb_define_const (lm_mDisconnectReason, "RESOURCE_CONFLICT",
       
   204 			 INT2FIX (LM_DISCONNECT_REASON_RESOURCE_CONFLICT));
       
   205 	rb_define_const (lm_mDisconnectReason, "INVALID_XML",
       
   206 			 INT2FIX (LM_DISCONNECT_REASON_INVALID_XML));
       
   207 	rb_define_const (lm_mDisconnectReason, "UNKNOWN",
       
   208 			 INT2FIX (LM_DISCONNECT_REASON_UNKNOWN));
       
   209 
       
   210 	/* LmConnectionState */
       
   211 	lm_mConnectionState = rb_define_module_under (lm_mLM, "ConnectionState");
       
   212 	rb_define_const (lm_mConnectionState, "CLOSED",
       
   213 			 INT2FIX (LM_CONNECTION_STATE_CLOSED));
       
   214 	rb_define_const (lm_mConnectionState, "OPENING",
       
   215 			 INT2FIX (LM_CONNECTION_STATE_OPENING));
       
   216 	rb_define_const (lm_mConnectionState, "OPEN",
       
   217 			 INT2FIX (LM_CONNECTION_STATE_OPEN));
       
   218 	rb_define_const (lm_mConnectionState, "AUTHENTICATING",
       
   219 			 INT2FIX (LM_CONNECTION_STATE_AUTHENTICATING));
       
   220 	rb_define_const (lm_mConnectionState, "AUTHENTICATED",
       
   221 			 INT2FIX (LM_CONNECTION_STATE_AUTHENTICATED));
       
   222 
       
   223 	/* LmProxyType */
       
   224 	lm_mProxyType = rb_define_module_under (lm_mLM, "ProxyType");
       
   225 
       
   226 	rb_define_const (lm_mProxyType, "NONE",
       
   227 			 INT2FIX (LM_PROXY_TYPE_NONE));
       
   228 	rb_define_const (lm_mProxyType, "HTTP",
       
   229 			 INT2FIX (LM_PROXY_TYPE_HTTP));
       
   230 
       
   231 	/* LmCertificateStatus */
       
   232 	lm_mCertificateStatus = rb_define_module_under (lm_mLM, 
       
   233 							"CertificateStatus");
       
   234 	rb_define_const (lm_mCertificateStatus, "INVALID",
       
   235 			 INT2FIX (LM_CERT_INVALID));
       
   236 	rb_define_const (lm_mCertificateStatus, "ISSUER_NOT_FOUND",
       
   237 			 INT2FIX (LM_CERT_ISSUER_NOT_FOUND));
       
   238 	rb_define_const (lm_mCertificateStatus, "REVOKED",
       
   239 			 INT2FIX (LM_CERT_REVOKED));
       
   240 
       
   241 	/* LmSSLStatus */
       
   242 	lm_mSSLStatus = rb_define_module_under (lm_mLM, "SSLStatus");
       
   243 
       
   244 	rb_define_const (lm_mSSLStatus, "NO_CERT_FOUND",
       
   245 			 INT2FIX (LM_SSL_STATUS_NO_CERT_FOUND));
       
   246 	rb_define_const (lm_mSSLStatus, "UNTRUSTED_CERT",
       
   247 			 INT2FIX (LM_SSL_STATUS_UNTRUSTED_CERT));
       
   248 	rb_define_const (lm_mSSLStatus, "CERT_EXPIRED",
       
   249 			 INT2FIX (LM_SSL_STATUS_CERT_EXPIRED));
       
   250 	rb_define_const (lm_mSSLStatus, "CERT_NOT_ACTIVATED",
       
   251 			 INT2FIX (LM_SSL_STATUS_CERT_NOT_ACTIVATED));
       
   252 	rb_define_const (lm_mSSLStatus, "CERT_HOSTNAME_MISMATCH",
       
   253 			 INT2FIX (LM_SSL_STATUS_CERT_HOSTNAME_MISMATCH));
       
   254 	rb_define_const (lm_mSSLStatus, "CERT_FINGERPRINT_MISMATCH",
       
   255 			 INT2FIX (LM_SSL_STATUS_CERT_FINGERPRINT_MISMATCH));
       
   256 	rb_define_const (lm_mSSLStatus, "GENERIC_ERROR",
       
   257 			 INT2FIX (LM_SSL_STATUS_GENERIC_ERROR));
       
   258 
       
   259 	/* LmSSLResponse */
       
   260 	lm_mSSLResponse = rb_define_module_under (lm_mLM, "SSLResponse");
       
   261 
       
   262 	rb_define_const (lm_mSSLResponse, "CONTINUE",
       
   263 			 INT2FIX (LM_SSL_RESPONSE_CONTINUE));
       
   264 	rb_define_const (lm_mSSLResponse, "STOP",
       
   265 			 INT2FIX (LM_SSL_RESPONSE_STOP));
       
   266 }