
/*

  KLayout Layout Viewer
  Copyright (C) 2006-2016 Matthias Koefferlein

  This program is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation; either version 2 of the License, or
  (at your option) any later version.

  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with this program; if not, write to the Free Software
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA

*/

/**
*  @file gsiDeclQHostAddress_Enums.h 
*
*  DO NOT EDIT THIS FILE. 
*  This file has been created automatically
*/

#ifndef _HDR_gsiDeclQHostAddress_Enums
#define _HDR_gsiDeclQHostAddress_Enums

#include <QtCore/QFlags>

namespace qt_gsi
{

//  Wrapper class for QFlags<enum QAbstractSocket::NetworkLayerProtocol>
class QAbstractSocket_NetworkLayerProtocol_Enums : public QFlags<enum QAbstractSocket::NetworkLayerProtocol> {
public:
  QAbstractSocket_NetworkLayerProtocol_Enums () : m_flags () { }
  QAbstractSocket_NetworkLayerProtocol_Enums (enum QAbstractSocket::NetworkLayerProtocol v) : m_flags (v) { }
  QAbstractSocket_NetworkLayerProtocol_Enums (const QFlags<enum QAbstractSocket::NetworkLayerProtocol> &v) : m_flags (v) { }
  QFlags<enum QAbstractSocket::NetworkLayerProtocol> flags () const { return m_flags; }
private:
  QFlags<QAbstractSocket::NetworkLayerProtocol> m_flags;
};

//  Wrapper class for enum QAbstractSocket::NetworkLayerProtocol
class QAbstractSocket_NetworkLayerProtocol_Enum : public QAbstractSocket_NetworkLayerProtocol_Enums {
public:
  QAbstractSocket_NetworkLayerProtocol_Enum () { }
  QAbstractSocket_NetworkLayerProtocol_Enum (enum QAbstractSocket::NetworkLayerProtocol v) : QAbstractSocket_NetworkLayerProtocol_Enums (v) { }
  enum QAbstractSocket::NetworkLayerProtocol value () const { return (enum QAbstractSocket::NetworkLayerProtocol) flags ().operator int (); }
};

//  Converter for QFlags<enum QAbstractSocket::NetworkLayerProtocol>
template <>
struct Converter<QFlags<enum QAbstractSocket::NetworkLayerProtocol> >
{
public:
  typedef QFlags<enum QAbstractSocket::NetworkLayerProtocol> source_type;
  typedef QAbstractSocket_NetworkLayerProtocol_Enums target_type;
  static source_type toq (const target_type &c) { return c.flags (); }
  static target_type toc (const source_type &qc) { return target_type (qc); }
};

//  Converter for enum QAbstractSocket::NetworkLayerProtocol
template <>
struct Converter<enum QAbstractSocket::NetworkLayerProtocol>
{
public:
  typedef enum QAbstractSocket::NetworkLayerProtocol source_type;
  typedef QAbstractSocket_NetworkLayerProtocol_Enum target_type;
  static source_type toq (const target_type &c) { return c.value (); }
  static target_type toc (const source_type &qc) { return target_type (qc); }
};

//  Wrapper class for QFlags<enum QHostAddress::SpecialAddress>
class QHostAddress_SpecialAddress_Enums : public QFlags<enum QHostAddress::SpecialAddress> {
public:
  QHostAddress_SpecialAddress_Enums () : m_flags () { }
  QHostAddress_SpecialAddress_Enums (enum QHostAddress::SpecialAddress v) : m_flags (v) { }
  QHostAddress_SpecialAddress_Enums (const QFlags<enum QHostAddress::SpecialAddress> &v) : m_flags (v) { }
  QFlags<enum QHostAddress::SpecialAddress> flags () const { return m_flags; }
private:
  QFlags<QHostAddress::SpecialAddress> m_flags;
};

//  Wrapper class for enum QHostAddress::SpecialAddress
class QHostAddress_SpecialAddress_Enum : public QHostAddress_SpecialAddress_Enums {
public:
  QHostAddress_SpecialAddress_Enum () { }
  QHostAddress_SpecialAddress_Enum (enum QHostAddress::SpecialAddress v) : QHostAddress_SpecialAddress_Enums (v) { }
  enum QHostAddress::SpecialAddress value () const { return (enum QHostAddress::SpecialAddress) flags ().operator int (); }
};

//  Converter for QFlags<enum QHostAddress::SpecialAddress>
template <>
struct Converter<QFlags<enum QHostAddress::SpecialAddress> >
{
public:
  typedef QFlags<enum QHostAddress::SpecialAddress> source_type;
  typedef QHostAddress_SpecialAddress_Enums target_type;
  static source_type toq (const target_type &c) { return c.flags (); }
  static target_type toc (const source_type &qc) { return target_type (qc); }
};

//  Converter for enum QHostAddress::SpecialAddress
template <>
struct Converter<enum QHostAddress::SpecialAddress>
{
public:
  typedef enum QHostAddress::SpecialAddress source_type;
  typedef QHostAddress_SpecialAddress_Enum target_type;
  static source_type toq (const target_type &c) { return c.value (); }
  static target_type toc (const source_type &qc) { return target_type (qc); }
};

}

#endif
