1 // Copyright 2011 Juri Glass, Mathias Runge, Nadim El Sayed 2 // DAI-Labor, TU-Berlin 3 // 4 // This file is part of libSML. 5 // 6 // libSML is free software: you can redistribute it and/or modify 7 // it under the terms of the GNU General Public License as published by 8 // the Free Software Foundation, either version 3 of the License, or 9 // (at your option) any later version. 10 // 11 // libSML is distributed in the hope that it will be useful, 12 // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 // GNU General Public License for more details. 15 // 16 // You should have received a copy of the GNU General Public License 17 // along with libSML. If not, see <http://www.gnu.org/licenses/>. 18 19 #ifndef SML_GET_PROFILE_PACK_RESPONSE_H_ 20 #define SML_GET_PROFILE_PACK_RESPONSE_H_ 21 22 #include "sml_shared.h" 23 #include "sml_octet_string.h" 24 #include "sml_time.h" 25 #include "sml_list.h" 26 #include "sml_tree.h" 27 28 #ifdef __cplusplus 29 extern "C" { 30 #endif 31 32 typedef struct { 33 octet_string *server_id; 34 sml_time *act_time; // specified by germans (current time was meant) ;) 35 u32 *reg_period; 36 sml_tree_path *parameter_tree_path; 37 sml_sequence *header_list; // list of sml_prof_obj_header_entry 38 sml_sequence *period_list; // list of sml_prof_obj_period_entry 39 octet_string *rawdata; // optional 40 sml_signature *profile_signature; // optional 41 42 } sml_get_profile_pack_response; 43 44 sml_get_profile_pack_response *sml_get_profile_pack_response_init(); 45 sml_get_profile_pack_response *sml_get_profile_pack_response_parse(sml_buffer *buf); 46 void sml_get_profile_pack_response_write(sml_get_profile_pack_response *msg, sml_buffer *buf); 47 void sml_get_profile_pack_response_free(sml_get_profile_pack_response *msg); 48 49 typedef struct { 50 octet_string *obj_name; 51 sml_unit *unit; 52 i8 *scaler; 53 } sml_prof_obj_header_entry; 54 55 sml_prof_obj_header_entry *sml_prof_obj_header_entry_init(); 56 sml_prof_obj_header_entry *sml_prof_obj_header_entry_parse(sml_buffer *buf); 57 void sml_prof_obj_header_entry_write(sml_prof_obj_header_entry *entry, sml_buffer *buf); 58 void sml_prof_obj_header_entry_free(sml_prof_obj_header_entry *entry); 59 60 typedef struct { 61 sml_time *val_time; 62 u64 *status; 63 sml_sequence *value_list; 64 sml_signature *period_signature; 65 } sml_prof_obj_period_entry; 66 67 sml_prof_obj_period_entry *sml_prof_obj_period_entry_init(); 68 sml_prof_obj_period_entry *sml_prof_obj_period_entry_parse(sml_buffer *buf); 69 void sml_prof_obj_period_entry_write(sml_prof_obj_period_entry *entry, sml_buffer *buf); 70 void sml_prof_obj_period_entry_free(sml_prof_obj_period_entry *entry); 71 72 typedef struct { 73 sml_value *value; 74 sml_signature *value_signature; 75 } sml_value_entry; 76 77 sml_value_entry *sml_value_entry_init(); 78 sml_value_entry *sml_value_entry_parse(sml_buffer *buf); 79 void sml_value_entry_write(sml_value_entry *entry, sml_buffer *buf); 80 void sml_value_entry_free(sml_value_entry *entry); 81 82 #ifdef __cplusplus 83 } 84 #endif 85 86 87 #endif /* SML_GET_PROFILE_PACK_RESPONSE_H_ */ 88 89