Commit cd2eb52b761969143b23c8a0e67138fff5ea28b1
1 parent
a63e0cc5
Exists in
master
and in
2 other branches
Adding property methods.
Showing
5 changed files
with
105 additions
and
43 deletions
Show diff stats
src/core/properties/boolean.c
| ... | ... | @@ -222,3 +222,30 @@ |
| 222 | 222 | |
| 223 | 223 | } |
| 224 | 224 | |
| 225 | +int lib3270_set_boolean_property(H3270 *hSession, const char *name, int value, int seconds) | |
| 226 | +{ | |
| 227 | + size_t ix; | |
| 228 | + const LIB3270_INT_PROPERTY * properties; | |
| 229 | + | |
| 230 | + if(seconds) | |
| 231 | + { | |
| 232 | + lib3270_wait_for_ready(hSession, seconds); | |
| 233 | + } | |
| 234 | + | |
| 235 | + properties = lib3270_get_boolean_properties_list(); | |
| 236 | + for(ix = 0; properties[ix].name; ix++) | |
| 237 | + { | |
| 238 | + if(!strcasecmp(name,properties[ix].name)) | |
| 239 | + { | |
| 240 | + if(properties[ix].set) | |
| 241 | + return properties[ix].set(hSession, value); | |
| 242 | + else | |
| 243 | + return errno = EPERM; | |
| 244 | + } | |
| 245 | + | |
| 246 | + } | |
| 247 | + | |
| 248 | + return errno = ENOENT; | |
| 249 | + | |
| 250 | +} | |
| 251 | + | ... | ... |
src/core/properties/signed.c
| ... | ... | @@ -155,50 +155,37 @@ int lib3270_set_int_property(H3270 *hSession, const char *name, int value, int s |
| 155 | 155 | const LIB3270_INT_PROPERTY * properties; |
| 156 | 156 | |
| 157 | 157 | if(seconds) |
| 158 | - { | |
| 159 | 158 | lib3270_wait_for_ready(hSession, seconds); |
| 160 | - } | |
| 161 | 159 | |
| 162 | - // Check for boolean properties | |
| 163 | - properties = lib3270_get_boolean_properties_list(); | |
| 160 | + // Check for INT Properties | |
| 161 | + properties = lib3270_get_int_properties_list(); | |
| 164 | 162 | for(ix = 0; properties[ix].name; ix++) |
| 165 | 163 | { |
| 166 | 164 | if(!strcasecmp(name,properties[ix].name)) |
| 167 | 165 | { |
| 168 | 166 | if(properties[ix].set) |
| 169 | - { | |
| 170 | 167 | return properties[ix].set(hSession, value); |
| 171 | - } | |
| 172 | 168 | else |
| 173 | - { | |
| 174 | - errno = EPERM; | |
| 175 | - return -1; | |
| 176 | - } | |
| 169 | + return errno = EPERM; | |
| 177 | 170 | } |
| 178 | 171 | |
| 179 | 172 | } |
| 180 | 173 | |
| 181 | - // Check for INT Properties | |
| 182 | - properties = lib3270_get_int_properties_list(); | |
| 174 | + // Check for boolean properties | |
| 175 | + properties = lib3270_get_boolean_properties_list(); | |
| 183 | 176 | for(ix = 0; properties[ix].name; ix++) |
| 184 | 177 | { |
| 185 | 178 | if(!strcasecmp(name,properties[ix].name)) |
| 186 | 179 | { |
| 187 | 180 | if(properties[ix].set) |
| 188 | - { | |
| 189 | 181 | return properties[ix].set(hSession, value); |
| 190 | - } | |
| 191 | 182 | else |
| 192 | - { | |
| 193 | - errno = EPERM; | |
| 194 | - return -1; | |
| 195 | - } | |
| 183 | + return errno = EPERM; | |
| 196 | 184 | } |
| 197 | 185 | |
| 198 | 186 | } |
| 199 | 187 | |
| 200 | - errno = ENOENT; | |
| 201 | - return -1; | |
| 188 | + return errno = ENOENT; | |
| 202 | 189 | |
| 203 | 190 | } |
| 204 | 191 | ... | ... |
src/core/properties/string.c
| ... | ... | @@ -224,8 +224,7 @@ int lib3270_set_string_property(H3270 *hSession, const char *name, const char * |
| 224 | 224 | } |
| 225 | 225 | else |
| 226 | 226 | { |
| 227 | - errno = EPERM; | |
| 228 | - return -1; | |
| 227 | + return errno = EPERM; | |
| 229 | 228 | } |
| 230 | 229 | } |
| 231 | 230 | |
| ... | ... | @@ -247,8 +246,7 @@ int lib3270_set_string_property(H3270 *hSession, const char *name, const char * |
| 247 | 246 | } |
| 248 | 247 | else |
| 249 | 248 | { |
| 250 | - errno = EPERM; | |
| 251 | - return -1; | |
| 249 | + return errno = EPERM; | |
| 252 | 250 | } |
| 253 | 251 | } |
| 254 | 252 | |
| ... | ... | @@ -270,8 +268,7 @@ int lib3270_set_string_property(H3270 *hSession, const char *name, const char * |
| 270 | 268 | } |
| 271 | 269 | else |
| 272 | 270 | { |
| 273 | - errno = EPERM; | |
| 274 | - return -1; | |
| 271 | + return errno = EPERM; | |
| 275 | 272 | } |
| 276 | 273 | } |
| 277 | 274 | |
| ... | ... | @@ -293,28 +290,17 @@ int lib3270_set_string_property(H3270 *hSession, const char *name, const char * |
| 293 | 290 | } |
| 294 | 291 | else |
| 295 | 292 | { |
| 296 | - errno = EPERM; | |
| 297 | - return -1; | |
| 293 | + return errno = EPERM; | |
| 298 | 294 | } |
| 299 | 295 | } |
| 300 | 296 | |
| 301 | 297 | } |
| 302 | 298 | } |
| 303 | 299 | |
| 304 | - errno = ENOENT; | |
| 305 | - return -1; | |
| 300 | + return errno = ENOENT; | |
| 306 | 301 | |
| 307 | 302 | } |
| 308 | 303 | |
| 309 | -/* | |
| 310 | -LIB3270_EXPORT int lib3270_set_luname(H3270 *hSession, const char *luname) | |
| 311 | -{ | |
| 312 | - FAIL_IF_ONLINE(hSession); | |
| 313 | - strncpy(hSession->lu.names,luname,LIB3270_LUNAME_LENGTH); | |
| 314 | - return 0; | |
| 315 | -} | |
| 316 | -*/ | |
| 317 | - | |
| 318 | 304 | LIB3270_EXPORT int lib3270_set_lunames(H3270 *hSession, const char *lunames) |
| 319 | 305 | { |
| 320 | 306 | FAIL_IF_ONLINE(hSession); | ... | ... |
src/core/properties/unsigned.c
| ... | ... | @@ -171,4 +171,30 @@ static unsigned int lib3270_get_host_type_number(const H3270 *hSession) |
| 171 | 171 | return properties; |
| 172 | 172 | } |
| 173 | 173 | |
| 174 | +int lib3270_set_uint_property(H3270 *hSession, const char *name, unsigned int value, int seconds) | |
| 175 | +{ | |
| 176 | + size_t ix; | |
| 177 | + const LIB3270_UINT_PROPERTY * properties; | |
| 178 | + | |
| 179 | + if(seconds) | |
| 180 | + lib3270_wait_for_ready(hSession, seconds); | |
| 181 | + | |
| 182 | + // Check for INT Properties | |
| 183 | + properties = lib3270_get_unsigned_properties_list(); | |
| 184 | + | |
| 185 | + for(ix = 0; properties[ix].name; ix++) | |
| 186 | + { | |
| 187 | + if(!strcasecmp(name,properties[ix].name)) | |
| 188 | + { | |
| 189 | + if(properties[ix].set) | |
| 190 | + return properties[ix].set(hSession, value); | |
| 191 | + else | |
| 192 | + return errno = EPERM; | |
| 193 | + } | |
| 194 | + | |
| 195 | + } | |
| 196 | + | |
| 197 | + return errno = ENOENT; | |
| 198 | + | |
| 199 | +} | |
| 174 | 200 | ... | ... |
src/include/lib3270/properties.h
| ... | ... | @@ -131,26 +131,62 @@ |
| 131 | 131 | LIB3270_EXPORT int lib3270_get_int_property(H3270 * hSession, const char *name, int seconds); |
| 132 | 132 | |
| 133 | 133 | /** |
| 134 | - * @brief Set lib3270 integer property by name. | |
| 134 | + * @brief Set lib3270 signed int property by name. | |
| 135 | 135 | * |
| 136 | 136 | * @param name Nome of the property. |
| 137 | 137 | * @param value New property value. |
| 138 | 138 | * @param seconds Time (in seconds) whe should wait for "ready" state (0 = none). |
| 139 | 139 | * |
| 140 | - * @return 0 if ok, -1 in case of error (sets errno). | |
| 140 | + * @return 0 if ok error code if not (sets errno). | |
| 141 | + * | |
| 142 | + * @retval EPERM Property is ready only. | |
| 143 | + * @retval ENOENT Can't find a property with this name. | |
| 141 | 144 | * |
| 142 | 145 | */ |
| 143 | 146 | LIB3270_EXPORT int lib3270_set_int_property(H3270 * hSession, const char *name, int value, int seconds); |
| 144 | 147 | |
| 145 | 148 | /** |
| 146 | - * @brief Set lib3270 integer property by name. | |
| 149 | + * @brief Set lib3270 unsigned int property by name. | |
| 150 | + * | |
| 151 | + * @param name Nome of the property. | |
| 152 | + * @param value New property value. | |
| 153 | + * @param seconds Time (in seconds) whe should wait for "ready" state (0 = none). | |
| 154 | + * | |
| 155 | + * @return 0 if ok error code if not (sets errno). | |
| 156 | + * | |
| 157 | + * @retval EPERM Property is ready only. | |
| 158 | + * @retval ENOENT Can't find a property with this name. | |
| 159 | + * | |
| 160 | + */ | |
| 161 | + LIB3270_EXPORT int lib3270_set_uint_property(H3270 * hSession, const char *name, unsigned int value, int seconds); | |
| 162 | + | |
| 163 | + /** | |
| 164 | + * @brief Set lib3270 boolean property by name. | |
| 165 | + * | |
| 166 | + * @param name Nome of the property. | |
| 167 | + * @param value New property value. | |
| 168 | + * @param seconds Time (in seconds) whe should wait for "ready" state (0 = none). | |
| 169 | + * | |
| 170 | + * @return 0 if ok error code if not (sets errno). | |
| 171 | + * | |
| 172 | + * @retval EPERM Property is ready only. | |
| 173 | + * @retval ENOENT Can't find a property with this name. | |
| 174 | + * | |
| 175 | + */ | |
| 176 | + LIB3270_EXPORT int lib3270_set_boolean_property(H3270 * hSession, const char *name, int value, int seconds); | |
| 177 | + | |
| 178 | + /** | |
| 179 | + * @brief Set lib3270 string property by name. | |
| 147 | 180 | * |
| 148 | 181 | * @param hSession Session handle. |
| 149 | 182 | * @param name Nome of the property. |
| 150 | 183 | * @param value New property value. |
| 151 | 184 | * @param seconds Time (in seconds) whe should wait for "ready" state (0 = none). |
| 152 | 185 | * |
| 153 | - * @return 0 if ok, -1 in case of error (sets errno). | |
| 186 | + * @return 0 if ok error code if not (sets errno). | |
| 187 | + * | |
| 188 | + * @retval EPERM Property is ready only. | |
| 189 | + * @retval ENOENT Can't find a property with this name. | |
| 154 | 190 | * |
| 155 | 191 | */ |
| 156 | 192 | LIB3270_EXPORT int lib3270_set_string_property(H3270 * hSession, const char *name, const char * value, int seconds); | ... | ... |