| 
									
										
										
										
											2009-06-24 01:38:48 +09:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * MessagePack unpacking routine template | 
					
						
							|  |  |  |  * | 
					
						
							| 
									
										
										
										
											2012-06-26 13:21:10 +09:00
										 |  |  |  * Copyright (C) 2008-2010 FURUHASHI Sadayuki | 
					
						
							| 
									
										
										
										
											2009-06-24 01:38:48 +09:00
										 |  |  |  * | 
					
						
							|  |  |  |  *    Licensed under the Apache License, Version 2.0 (the "License"); | 
					
						
							|  |  |  |  *    you may not use this file except in compliance with the License. | 
					
						
							|  |  |  |  *    You may obtain a copy of the License at | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  *        http://www.apache.org/licenses/LICENSE-2.0
 | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  *    Unless required by applicable law or agreed to in writing, software | 
					
						
							|  |  |  |  *    distributed under the License is distributed on an "AS IS" BASIS, | 
					
						
							|  |  |  |  *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
					
						
							|  |  |  |  *    See the License for the specific language governing permissions and | 
					
						
							|  |  |  |  *    limitations under the License. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | #ifndef MSGPACK_UNPACK_DEFINE_H__
 | 
					
						
							|  |  |  | #define MSGPACK_UNPACK_DEFINE_H__
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-06-26 13:21:10 +09:00
										 |  |  | #include "msgpack/sysdep.h"
 | 
					
						
							|  |  |  | #include <stdlib.h>
 | 
					
						
							| 
									
										
										
										
											2009-06-24 01:38:48 +09:00
										 |  |  | #include <string.h>
 | 
					
						
							|  |  |  | #include <assert.h>
 | 
					
						
							|  |  |  | #include <stdio.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef __cplusplus
 | 
					
						
							|  |  |  | extern "C" { | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-06-26 13:21:10 +09:00
										 |  |  | #ifndef MSGPACK_EMBED_STACK_SIZE
 | 
					
						
							|  |  |  | #define MSGPACK_EMBED_STACK_SIZE 32
 | 
					
						
							| 
									
										
										
										
											2009-06-24 01:38:48 +09:00
										 |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-17 08:35:08 +09:00
										 |  |  | // CS is first byte & 0x1f
 | 
					
						
							| 
									
										
										
										
											2009-06-24 01:38:48 +09:00
										 |  |  | typedef enum { | 
					
						
							| 
									
										
										
										
											2013-02-27 21:24:25 +09:00
										 |  |  |     CS_HEADER            = 0x00,  // nil
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     //CS_                = 0x01,
 | 
					
						
							|  |  |  |     //CS_                = 0x02,  // false
 | 
					
						
							|  |  |  |     //CS_                = 0x03,  // true
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-17 08:35:08 +09:00
										 |  |  |     CS_BIN_8             = 0x04, | 
					
						
							|  |  |  |     CS_BIN_16            = 0x05, | 
					
						
							|  |  |  |     CS_BIN_32            = 0x06, | 
					
						
							| 
									
										
										
										
											2013-02-27 21:24:25 +09:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-19 18:04:30 +02:00
										 |  |  |     CS_EXT_8             = 0x07, | 
					
						
							|  |  |  |     CS_EXT_16            = 0x08, | 
					
						
							|  |  |  |     CS_EXT_32            = 0x09, | 
					
						
							| 
									
										
										
										
											2013-10-20 15:08:31 +09:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-02-27 21:24:25 +09:00
										 |  |  |     CS_FLOAT             = 0x0a, | 
					
						
							|  |  |  |     CS_DOUBLE            = 0x0b, | 
					
						
							|  |  |  |     CS_UINT_8            = 0x0c, | 
					
						
							|  |  |  |     CS_UINT_16           = 0x0d, | 
					
						
							|  |  |  |     CS_UINT_32           = 0x0e, | 
					
						
							|  |  |  |     CS_UINT_64           = 0x0f, | 
					
						
							|  |  |  |     CS_INT_8             = 0x10, | 
					
						
							|  |  |  |     CS_INT_16            = 0x11, | 
					
						
							|  |  |  |     CS_INT_32            = 0x12, | 
					
						
							|  |  |  |     CS_INT_64            = 0x13, | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-19 18:04:30 +02:00
										 |  |  |     //CS_FIXEXT1           = 0x14,
 | 
					
						
							|  |  |  |     //CS_FIXEXT2           = 0x15,
 | 
					
						
							|  |  |  |     //CS_FIXEXT4           = 0x16,
 | 
					
						
							|  |  |  |     //CS_FIXEXT8           = 0x17,
 | 
					
						
							|  |  |  |     //CS_FIXEXT16          = 0x18,
 | 
					
						
							| 
									
										
										
										
											2013-10-19 17:27:16 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-17 08:35:08 +09:00
										 |  |  |     CS_RAW_8             = 0x19, | 
					
						
							| 
									
										
										
										
											2013-02-27 21:24:25 +09:00
										 |  |  |     CS_RAW_16            = 0x1a, | 
					
						
							|  |  |  |     CS_RAW_32            = 0x1b, | 
					
						
							|  |  |  |     CS_ARRAY_16          = 0x1c, | 
					
						
							|  |  |  |     CS_ARRAY_32          = 0x1d, | 
					
						
							|  |  |  |     CS_MAP_16            = 0x1e, | 
					
						
							|  |  |  |     CS_MAP_32            = 0x1f, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     ACS_RAW_VALUE, | 
					
						
							| 
									
										
										
										
											2013-10-17 08:35:08 +09:00
										 |  |  |     ACS_BIN_VALUE, | 
					
						
							| 
									
										
										
										
											2013-10-19 17:27:16 +02:00
										 |  |  |     ACS_EXT_VALUE, | 
					
						
							| 
									
										
										
										
											2009-06-24 01:38:48 +09:00
										 |  |  | } msgpack_unpack_state; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef enum { | 
					
						
							| 
									
										
										
										
											2013-02-27 21:24:25 +09:00
										 |  |  |     CT_ARRAY_ITEM, | 
					
						
							|  |  |  |     CT_MAP_KEY, | 
					
						
							|  |  |  |     CT_MAP_VALUE, | 
					
						
							| 
									
										
										
										
											2009-06-24 01:38:48 +09:00
										 |  |  | } msgpack_container_type; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef __cplusplus
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif /* msgpack/unpack_define.h */
 |