00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef LSM_CONVERT_HPP
00020 #define LSM_CONVERT_HPP
00021
00022 #include "lsm_datatypes.hpp"
00023 #include "lsm_ipc.hpp"
00024
00028 const char CLASS_NAME_SYSTEM[] = "System";
00029 const char CLASS_NAME_POOL[] = "Pool";
00030 const char CLASS_NAME_VOLUME[] = "Volume";
00031 const char CLASS_NAME_BLOCK_RANGE[] = "BlockRange";
00032 const char CLASS_NAME_ACCESS_GROUP[] = "AccessGroup";
00033 const char CLASS_NAME_FILE_SYSTEM[] = "FileSystem";
00034 const char CLASS_NAME_DISK[] = "Disk";
00035 const char CLASS_NAME_FS_SNAPSHOT[] = "FsSnapshot";
00036 const char CLASS_NAME_FS_EXPORT[] = "NfsExport";
00037 const char CLASS_NAME_CAPABILITIES[] = "Capabilities";
00038 const char CLASS_NAME_TARGET_PORT[] = "TargetPort";
00039
00040
00041 #define IS_CLASS(x, name) is_expected_object(x, name)
00042
00043 #define IS_CLASS_SYSTEM(x) IS_CLASS(x, CLASS_NAME_SYSTEM)
00044 #define IS_CLASS_POOL(x) IS_CLASS(x, CLASS_NAME_POOL)
00045 #define IS_CLASS_VOLUME(x) IS_CLASS(x, CLASS_NAME_VOLUME)
00046 #define IS_CLASS_BLOCK_RANGE(x) IS_CLASS(x, CLASS_NAME_BLOCK_RANGE)
00047 #define IS_CLASS_ACCESS_GROUP(x) IS_CLASS(x, CLASS_NAME_ACCESS_GROUP)
00048 #define IS_CLASS_FILE_SYSTEM(x) IS_CLASS(x, CLASS_NAME_FILE_SYSTEM)
00049 #define IS_CLASS_FS_SNAPSHOT(x) IS_CLASS(x, CLASS_NAME_FS_SNAPSHOT)
00050 #define IS_CLASS_FS_EXPORT(x) IS_CLASS(x, CLASS_NAME_FS_EXPORT)
00051
00052
00053
00060 bool LSM_DLL_LOCAL is_expected_object(Value & obj, std::string class_name);
00061
00067 lsm_string_list LSM_DLL_LOCAL *value_to_string_list(Value & list);
00068
00074 Value LSM_DLL_LOCAL string_list_to_value(lsm_string_list *sl);
00075
00081 lsm_volume LSM_DLL_LOCAL *value_to_volume(Value & vol);
00082
00088 Value LSM_DLL_LOCAL volume_to_value(lsm_volume *vol);
00089
00090
00098 int LSM_DLL_LOCAL value_array_to_volumes(Value & volume_values,
00099 lsm_volume **volumes[],
00100 uint32_t * count);
00101
00107 lsm_disk LSM_DLL_LOCAL *value_to_disk(Value & disk);
00108
00114 Value LSM_DLL_LOCAL disk_to_value(lsm_disk * disk);
00115
00123 int LSM_DLL_LOCAL value_array_to_disks(Value & disk_values,
00124 lsm_disk **disks[], uint32_t * count);
00125
00131 lsm_pool LSM_DLL_LOCAL *value_to_pool(Value & pool);
00132
00138 Value LSM_DLL_LOCAL pool_to_value(lsm_pool *pool);
00139
00145 lsm_system LSM_DLL_LOCAL *value_to_system(Value & system);
00146
00152 Value LSM_DLL_LOCAL system_to_value(lsm_system *system);
00153
00159 lsm_access_group LSM_DLL_LOCAL *value_to_access_group(Value & group);
00160
00166 Value LSM_DLL_LOCAL access_group_to_value(lsm_access_group *group);
00167
00175 int LSM_DLL_LOCAL value_array_to_access_groups(Value & group,
00176 lsm_access_group **ag_list[],
00177 uint32_t * count);
00178
00185 Value LSM_DLL_LOCAL access_group_list_to_value(lsm_access_group **group,
00186 uint32_t count);
00187
00193 lsm_block_range LSM_DLL_LOCAL *value_to_block_range(Value & br);
00194
00200 Value LSM_DLL_LOCAL block_range_to_value(lsm_block_range *br);
00201
00208 lsm_block_range LSM_DLL_LOCAL **value_to_block_range_list(Value & brl,
00209 uint32_t *count);
00210
00217 Value LSM_DLL_LOCAL block_range_list_to_value(lsm_block_range **brl,
00218 uint32_t count);
00219
00225 lsm_fs LSM_DLL_LOCAL *value_to_fs(Value & fs);
00226
00232 Value LSM_DLL_LOCAL fs_to_value(lsm_fs *fs);
00233
00239 lsm_fs_ss LSM_DLL_LOCAL *value_to_ss(Value & ss);
00240
00246 Value LSM_DLL_LOCAL ss_to_value(lsm_fs_ss *ss);
00247
00253 lsm_nfs_export LSM_DLL_LOCAL *value_to_nfs_export(Value & exp);
00254
00260 Value LSM_DLL_LOCAL nfs_export_to_value(lsm_nfs_export *exp);
00261
00267 lsm_storage_capabilities LSM_DLL_LOCAL *value_to_capabilities(Value & exp);
00268
00274 Value LSM_DLL_LOCAL capabilities_to_value(lsm_storage_capabilities *cap);
00275
00281 lsm_target_port LSM_DLL_LOCAL *value_to_target_port(Value & tp);
00282
00288 Value LSM_DLL_LOCAL target_port_to_value(lsm_target_port *tp);
00289
00293 int LSM_DLL_LOCAL values_to_uint32_array(Value & value,
00294 uint32_t **uint32_array,
00295 uint32_t *count);
00296
00300 Value LSM_DLL_LOCAL uint32_array_to_value(uint32_t *uint32_array,
00301 uint32_t count);
00302
00303 #endif