sw_text_record_iterator
		OVERVIEW
		The sw_text_record_iterator functions is a simple class that abstracts away the underlying encoding scheme of DNS text records.  The functions allow developers to iterate through a text record simply, obtaining each constituent key/value pair.
		
		FUNCTION
sw_text_record_iterator_init
SYNOPSIS
sw_result
sw_text_record_iterator_init(
   sw_text_record_iterator * iterator)
		DESCRIPTION
		Creates a new text record iterator.
		
		EXAMPLE
		sw_result
my_resolve_func(
  sw_discovery_resolve_handler handler,
  sw_discovery                 discovery,
  sw_discovery_resolve_id      id,
  sw_const_string               name,
  sw_const_string               type,
  sw_const_string               domain,
  sw_ipv4_address               address,
  sw_port                       port,
  sw_const_string               text_record_string,
  sw_octets                     text_record,
  sw_ulong                      text_record_len,
  sw_opaque                     extra)
{
  sw_text_record_iterator it;
  if (sw_text_record_iterator_init(&it, text_record, text_record_len) != SW_OKAY)
  {
    fprintf(stderr, "init failed\n");
    return SW_E_FAIL;
  }
				
  ...
}
SEE ALSO
		sw_text_record_iterator_fina
		
		
FUNCTION
sw_text_record_iterator_fina
SYNOPSIS
sw_result
sw_text_record_iterator_fina(
   sw_text_record_iterator  iterator)
		DESCRIPTION
		Release all memory resources associated with iterator.  Use of the iterator after calling this function is guaranteed to do something unexpected and undesirable.
		
		
EXAMPLE
sw_result
my_resolve_func(
  sw_discovery_resolve_handler handler,
  sw_discovery                 discovery,
  sw_discovery_resolve_id      id,
  sw_const_string               name,
  sw_const_string               type,
  sw_const_string               domain,
  sw_ipv4_address               address,
  sw_port                       port,
  sw_const_string               text_record_string,
  sw_octets                     text_record,
  sw_ulong                      text_record_len,
  sw_opaque                     extra)
{
  sw_text_record_iterator it;
  if (sw_text_record_iterator_init(&it, text_record, text_record_len) != SW_OKAY)
  {
    fprintf(stderr, "init failed\n");
    return SW_E_FAIL;
  }
  ...
  sw_text_record_iterator_fina(it);
  ...
}
SEE ALSO
		sw_text_record_iterator_init
		
		
FUNCTION
sw_text_record_iterator_next
SYNOPSIS
sw_result
sw_text_record_iterator_next(
   sw_text_record_iterator iterator,
   sw_char                 key[255],
   sw_octet                val[255],
   sw_ulong              * val_len)
DESCRIPTION
Get the next key/value duple in the text record.  The value is returned as an opaque data type with a length.  It is up to the developer to handle any and all byte ordering issues.
EXAMPLE
sw_result
my_resolve_func(
  sw_discovery_resolve_handler handler,
  sw_discovery                 discovery,
  sw_discovery_resolve_id      id,
  sw_const_string               name,
  sw_const_string               type,
  sw_const_string               domain,
  sw_ipv4_address               address,
  sw_port                       port,
  sw_const_string               text_record_string,
  sw_octets                     text_record,
  sw_ulong                      text_record_len,
  sw_opaque                     extra)
{
  sw_text_record_iterator it;
  sw_char                 key[255];
  sw_octet                val[255];
  sw_ulong                val_len;
  if (sw_text_record_iterator_init(&it, text_record, text_record_len) !=- SW_OKAY)
  {
    fprintf(stderr, "init failed\n");
    return SW_E_FAIL;
  }
  while (sw_text_record_iterator_next(it, key, val, &val_len) == SW_OKAY)
  {
    ...
  }
  sw_text_record_iterator_fina(it);
  ...
}
SEE ALSO
		sw_text_record_iterator_init, sw_text_record_iterator_fina