Changeset 5425
- Timestamp:
- 03/17/08 11:53:07 (4 months ago)
- Files:
-
- libwired/trunk/libwired/p7/wi-p7-message.c (modified) (3 diffs)
- libwired/trunk/libwired/p7/wi-p7-message.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
libwired/trunk/libwired/p7/wi-p7-message.c
r5366 r5425 107 107 108 108 109 wi_p7_message_t * wi_p7_message_with_data(wi_data_t *data, wi_p7_serialization_t serialization, wi_p7_spec_t *p7_spec) { 110 return wi_autorelease(wi_p7_message_init_with_data(wi_p7_message_alloc(), data, serialization, p7_spec)); 111 } 112 113 114 109 115 #pragma mark - 110 116 … … 137 143 } 138 144 145 return p7_message; 146 } 147 148 149 150 wi_p7_message_t * wi_p7_message_init_with_data(wi_p7_message_t *p7_message, wi_data_t *data, wi_p7_serialization_t serialization, wi_p7_spec_t *p7_spec) { 151 p7_message->spec = wi_retain(p7_spec); 152 p7_message->serialization = serialization; 153 154 if(serialization == WI_P7_BINARY) { 155 p7_message->binary_size = wi_data_length(data); 156 p7_message->binary_capacity = p7_message->binary_size; 157 p7_message->binary_buffer = wi_malloc(p7_message->binary_capacity); 158 159 memcpy(p7_message->binary_buffer, wi_data_bytes(data), p7_message->binary_size); 160 } else { 161 p7_message->xml_length = wi_data_length(data); 162 p7_message->xml_buffer = wi_malloc(p7_message->xml_length + 1); 163 164 memcpy(p7_message->xml_buffer, wi_data_bytes(data), p7_message->xml_length); 165 166 p7_message->xml_buffer[p7_message->xml_length] = '\0'; 167 } 168 169 wi_p7_message_deserialize(p7_message); 170 171 if(!p7_message->name) { 172 wi_error_set_libwired_error(WI_ERROR_P7_UNKNOWNMESSAGE); 173 174 wi_release(p7_message); 175 176 return NULL; 177 } 178 139 179 return p7_message; 140 180 } … … 990 1030 991 1031 1032 wi_data_t * wi_p7_message_data_with_serialization(wi_p7_message_t *p7_message, wi_p7_serialization_t serialization) { 1033 wi_p7_message_serialize(p7_message, serialization); 1034 1035 if(serialization == WI_P7_BINARY) 1036 return wi_data_with_bytes(p7_message->binary_buffer, p7_message->binary_size); 1037 else 1038 return wi_data_with_bytes(p7_message->xml_buffer, p7_message->xml_length); 1039 } 1040 1041 1042 992 1043 #pragma mark - 993 1044 libwired/trunk/libwired/p7/wi-p7-message.h
r5349 r5425 76 76 77 77 WI_EXPORT wi_p7_message_t * wi_p7_message_with_name(wi_string_t *, wi_p7_spec_t *); 78 WI_EXPORT wi_p7_message_t * wi_p7_message_with_data(wi_data_t *, wi_p7_serialization_t, wi_p7_spec_t *); 78 79 79 80 WI_EXPORT wi_p7_message_t * wi_p7_message_alloc(void); 80 81 WI_EXPORT wi_p7_message_t * wi_p7_message_init_with_name(wi_p7_message_t *, wi_string_t *, wi_p7_spec_t *); 82 WI_EXPORT wi_p7_message_t * wi_p7_message_init_with_data(wi_p7_message_t *, wi_data_t *, wi_p7_serialization_t, wi_p7_spec_t *); 81 83 82 84 WI_EXPORT wi_boolean_t wi_p7_message_set_name(wi_p7_message_t *, wi_string_t *); … … 85 87 WI_EXPORT wi_p7_serialization_t wi_p7_message_serialization(wi_p7_message_t *); 86 88 WI_EXPORT wi_hash_t * wi_p7_message_fields(wi_p7_message_t *); 89 WI_EXPORT wi_data_t * wi_p7_message_data_with_serialization(wi_p7_message_t *, wi_p7_serialization_t); 87 90 88 91 WI_EXPORT wi_boolean_t wi_p7_message_set_bool_for_name(wi_p7_message_t *, wi_p7_boolean_t, wi_string_t *);
