# # # save_license_util.cfv # # # # # get_new_license_node_name() # # subroutine(get_new_license_node_name( node licenses), ( # Returns a new license node name int count = num_subnodes(licenses) + 1; string new_license_name = "license_" . count; while (licenses?{new_license_name}) ( count++; new_license_name = "license_" . count; ); # Return new_license_name; )); # # # get_license_key_exists() # # subroutine(get_license_key_exists( node licenses, string license_checksum), ( # Returns true if the given license_checksum already exists in licenses debug_message("\n#### get_license_key_exists() \n"); debug_message("#### license_checksum: " . license_checksum . "\n"); bool license_key_exists = false; node item; foreach item licenses ( if (@item{"checksum"} eq license_checksum) then ( license_key_exists = true; last; ); ); debug_message("#### license_key_exists: " . license_key_exists . "\n"); # Return license_key_exists; )); # # # get_sublicense_exists() # # subroutine(get_sublicense_exists( node lai_licenses, string sublicense_key), ( # This returns true if the sublicense already exists in any license node. bool sublicense_exists = false; node license; foreach license lai_licenses ( if (license?{"sublicenses"}) then ( node sublicenses = license{"sublicenses"}; node sublicense; string existing_sublicense_key; foreach sublicense sublicenses ( existing_sublicense_key = convert_license_node_to_license_string(sublicense); if (existing_sublicense_key eq sublicense_key) then ( sublicense_exists = true; last; ); ); ); ); sublicense_exists; ));