/**
 * \file BGDNetConnRef.h
 * \brief Объявление класса ConnRef
 */

#ifndef __BGDNetConnRef_h__
#define __BGDNetConnRef_h__

#include "BGDNetConfig.h"

#include <nwclxcon.h>

namespace BGDNet
{

/**
 * \class ConnRef
 * \brief Класс "Ссылка на Соединение"
 * 
 * Ссылка позволяет поддерживать связь с соединением не имея его дескриптора.
 * Это полезно в тех случаях, когда возникает необходимость частого открытия
 * и закрытия соединений. При наличии ссылки на соединение получение его
 * дескриптора происходит значительно быстрее. Тем не менее, при отсутствии
 * дескриптора соединение может быть закрыто клиентом Novell без ведома
 * пользователя.
 */
class BGDNET_API ConnRef
{
public:

  ConnRef( void );
  /**<
   * \brief Конструктор по умолчанию
   * Созданная таким образом ссылка указывает на первичное соединение. Первичное
   * соединение идентифицирует сервер, на котором пользователь изначально
   * зарегистрировался.
   */

  explicit ConnRef( nuint32 ref );
  /**<
   * \brief Конструктор
   * @param ref Реальная ссылка на соединение
   */

  operator nuint32( void ) const;
  /**<
   * \brief Оператор преобразования к типу реальной ссылки на соединение
   */

private:

  nuint32 m_ref;
  /**<
   * \brief Реальная ссылка на соединение
   */
};

} // namespace BGDNet

#endif //__BGDNetConnRef_h__
