 /* The smooth Class Library
  * Copyright (C) 1998-2009 Robert Kausch <robert.kausch@gmx.net>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of "The Artistic License, Version 2.0".
  *
  * THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. */

#ifndef H_OBJSMOOTH_NONBLOCKING_INCLUDE
#define H_OBJSMOOTH_NONBLOCKING_INCLUDE

#include "signals.h"
#include "slots.h"
#include "nonblocking/caller_base.h"
#include "nonblocking/nonblocking_base.h"

#define NONBLOCKING_NONBLOCKING_CLASS_NAME	NonBlocking0
#define NONBLOCKING_SIGNAL_CLASS_NAME		Signal0
#define NONBLOCKING_CALLER_CLASS_NAME		Caller0
#define NONBLOCKING_SLOT_BASE_CLASS_NAME	SlotBase0
#define NONBLOCKING_SLOT_GLOBAL_CLASS_NAME	SlotGlobal0
#define NONBLOCKING_SLOT_CLASS_CLASS_NAME	SlotClass0
#define NONBLOCKING_SLOT_SIGNAL_CLASS_NAME	SlotSignal0
#define NONBLOCKING_CONDITIONAL_COMMA
#define NONBLOCKING_ARGUMENT_LIST
#define NONBLOCKING_ARGUMENT_TYPES
#define NONBLOCKING_ARGUMENT_DECLARATIONS
#define NONBLOCKING_ARGUMENT_ASSIGNMENTS
#define NONBLOCKING_ARGUMENT_PARAMETER_LIST
#define NONBLOCKING_ARGUMENT_PARAMETERS

#include "nonblocking/nonblocking.h"

#undef NONBLOCKING_NONBLOCKING_CLASS_NAME
#undef NONBLOCKING_SIGNAL_CLASS_NAME
#undef NONBLOCKING_CALLER_CLASS_NAME
#undef NONBLOCKING_SLOT_BASE_CLASS_NAME
#undef NONBLOCKING_SLOT_GLOBAL_CLASS_NAME
#undef NONBLOCKING_SLOT_CLASS_CLASS_NAME
#undef NONBLOCKING_SLOT_SIGNAL_CLASS_NAME
#undef NONBLOCKING_CONDITIONAL_COMMA
#undef NONBLOCKING_ARGUMENT_LIST
#undef NONBLOCKING_ARGUMENT_TYPES
#undef NONBLOCKING_ARGUMENT_DECLARATIONS
#undef NONBLOCKING_ARGUMENT_ASSIGNMENTS
#undef NONBLOCKING_ARGUMENT_PARAMETER_LIST
#undef NONBLOCKING_ARGUMENT_PARAMETERS

#define NONBLOCKING_NONBLOCKING_CLASS_NAME	NonBlocking1
#define NONBLOCKING_SIGNAL_CLASS_NAME		Signal1
#define NONBLOCKING_CALLER_CLASS_NAME		Caller1
#define NONBLOCKING_SLOT_BASE_CLASS_NAME	SlotBase1
#define NONBLOCKING_SLOT_GLOBAL_CLASS_NAME	SlotGlobal1
#define NONBLOCKING_SLOT_CLASS_CLASS_NAME	SlotClass1
#define NONBLOCKING_SLOT_SIGNAL_CLASS_NAME	SlotSignal1
#define NONBLOCKING_CONDITIONAL_COMMA		,
#define NONBLOCKING_ARGUMENT_LIST		class pt1
#define NONBLOCKING_ARGUMENT_TYPES		pt1
#define NONBLOCKING_ARGUMENT_DECLARATIONS	pt1 p1;
#define NONBLOCKING_ARGUMENT_ASSIGNMENTS	this->p1 = p1;
#define NONBLOCKING_ARGUMENT_PARAMETER_LIST	pt1 p1
#define NONBLOCKING_ARGUMENT_PARAMETERS		p1

#include "nonblocking/nonblocking.h"

#undef NONBLOCKING_NONBLOCKING_CLASS_NAME
#undef NONBLOCKING_SIGNAL_CLASS_NAME
#undef NONBLOCKING_CALLER_CLASS_NAME
#undef NONBLOCKING_SLOT_BASE_CLASS_NAME
#undef NONBLOCKING_SLOT_GLOBAL_CLASS_NAME
#undef NONBLOCKING_SLOT_CLASS_CLASS_NAME
#undef NONBLOCKING_SLOT_SIGNAL_CLASS_NAME
#undef NONBLOCKING_CONDITIONAL_COMMA
#undef NONBLOCKING_ARGUMENT_LIST
#undef NONBLOCKING_ARGUMENT_TYPES
#undef NONBLOCKING_ARGUMENT_DECLARATIONS
#undef NONBLOCKING_ARGUMENT_ASSIGNMENTS
#undef NONBLOCKING_ARGUMENT_PARAMETER_LIST
#undef NONBLOCKING_ARGUMENT_PARAMETERS

#define NONBLOCKING_NONBLOCKING_CLASS_NAME	NonBlocking2
#define NONBLOCKING_SIGNAL_CLASS_NAME		Signal2
#define NONBLOCKING_CALLER_CLASS_NAME		Caller2
#define NONBLOCKING_SLOT_BASE_CLASS_NAME	SlotBase2
#define NONBLOCKING_SLOT_GLOBAL_CLASS_NAME	SlotGlobal2
#define NONBLOCKING_SLOT_CLASS_CLASS_NAME	SlotClass2
#define NONBLOCKING_SLOT_SIGNAL_CLASS_NAME	SlotSignal2
#define NONBLOCKING_CONDITIONAL_COMMA		,
#define NONBLOCKING_ARGUMENT_LIST		class pt1, class pt2
#define NONBLOCKING_ARGUMENT_TYPES		pt1, pt2
#define NONBLOCKING_ARGUMENT_DECLARATIONS	pt1 p1; pt2 p2;
#define NONBLOCKING_ARGUMENT_ASSIGNMENTS	this->p1 = p1; this->p2 = p2;
#define NONBLOCKING_ARGUMENT_PARAMETER_LIST	pt1 p1, pt2 p2
#define NONBLOCKING_ARGUMENT_PARAMETERS		p1, p2

#include "nonblocking/nonblocking.h"

#undef NONBLOCKING_NONBLOCKING_CLASS_NAME
#undef NONBLOCKING_SIGNAL_CLASS_NAME
#undef NONBLOCKING_CALLER_CLASS_NAME
#undef NONBLOCKING_SLOT_BASE_CLASS_NAME
#undef NONBLOCKING_SLOT_GLOBAL_CLASS_NAME
#undef NONBLOCKING_SLOT_CLASS_CLASS_NAME
#undef NONBLOCKING_SLOT_SIGNAL_CLASS_NAME
#undef NONBLOCKING_CONDITIONAL_COMMA
#undef NONBLOCKING_ARGUMENT_LIST
#undef NONBLOCKING_ARGUMENT_TYPES
#undef NONBLOCKING_ARGUMENT_DECLARATIONS
#undef NONBLOCKING_ARGUMENT_ASSIGNMENTS
#undef NONBLOCKING_ARGUMENT_PARAMETER_LIST
#undef NONBLOCKING_ARGUMENT_PARAMETERS

#define NONBLOCKING_NONBLOCKING_CLASS_NAME	NonBlocking3
#define NONBLOCKING_SIGNAL_CLASS_NAME		Signal3
#define NONBLOCKING_CALLER_CLASS_NAME		Caller3
#define NONBLOCKING_SLOT_BASE_CLASS_NAME	SlotBase3
#define NONBLOCKING_SLOT_GLOBAL_CLASS_NAME	SlotGlobal3
#define NONBLOCKING_SLOT_CLASS_CLASS_NAME	SlotClass3
#define NONBLOCKING_SLOT_SIGNAL_CLASS_NAME	SlotSignal3
#define NONBLOCKING_CONDITIONAL_COMMA		,
#define NONBLOCKING_ARGUMENT_LIST		class pt1, class pt2, class pt3
#define NONBLOCKING_ARGUMENT_TYPES		pt1, pt2, pt3
#define NONBLOCKING_ARGUMENT_DECLARATIONS	pt1 p1; pt2 p2; pt3 p3;
#define NONBLOCKING_ARGUMENT_ASSIGNMENTS	this->p1 = p1; this->p2 = p2; this->p3 = p3;
#define NONBLOCKING_ARGUMENT_PARAMETER_LIST	pt1 p1, pt2 p2, pt3 p3
#define NONBLOCKING_ARGUMENT_PARAMETERS		p1, p2, p3

#include "nonblocking/nonblocking.h"

#undef NONBLOCKING_NONBLOCKING_CLASS_NAME
#undef NONBLOCKING_SIGNAL_CLASS_NAME
#undef NONBLOCKING_CALLER_CLASS_NAME
#undef NONBLOCKING_SLOT_BASE_CLASS_NAME
#undef NONBLOCKING_SLOT_GLOBAL_CLASS_NAME
#undef NONBLOCKING_SLOT_CLASS_CLASS_NAME
#undef NONBLOCKING_SLOT_SIGNAL_CLASS_NAME
#undef NONBLOCKING_CONDITIONAL_COMMA
#undef NONBLOCKING_ARGUMENT_LIST
#undef NONBLOCKING_ARGUMENT_TYPES
#undef NONBLOCKING_ARGUMENT_DECLARATIONS
#undef NONBLOCKING_ARGUMENT_ASSIGNMENTS
#undef NONBLOCKING_ARGUMENT_PARAMETER_LIST
#undef NONBLOCKING_ARGUMENT_PARAMETERS

#define NONBLOCKING_NONBLOCKING_CLASS_NAME	NonBlocking4
#define NONBLOCKING_SIGNAL_CLASS_NAME		Signal4
#define NONBLOCKING_CALLER_CLASS_NAME		Caller4
#define NONBLOCKING_SLOT_BASE_CLASS_NAME	SlotBase4
#define NONBLOCKING_SLOT_GLOBAL_CLASS_NAME	SlotGlobal4
#define NONBLOCKING_SLOT_CLASS_CLASS_NAME	SlotClass4
#define NONBLOCKING_SLOT_SIGNAL_CLASS_NAME	SlotSignal4
#define NONBLOCKING_CONDITIONAL_COMMA		,
#define NONBLOCKING_ARGUMENT_LIST		class pt1, class pt2, class pt3, class pt4
#define NONBLOCKING_ARGUMENT_TYPES		pt1, pt2, pt3, pt4
#define NONBLOCKING_ARGUMENT_DECLARATIONS	pt1 p1; pt2 p2; pt3 p3; pt4 p4;
#define NONBLOCKING_ARGUMENT_ASSIGNMENTS	this->p1 = p1; this->p2 = p2; this->p3 = p3; this->p4 = p4;
#define NONBLOCKING_ARGUMENT_PARAMETER_LIST	pt1 p1, pt2 p2, pt3 p3, pt4 p4
#define NONBLOCKING_ARGUMENT_PARAMETERS		p1, p2, p3, p4

#include "nonblocking/nonblocking.h"

#undef NONBLOCKING_NONBLOCKING_CLASS_NAME
#undef NONBLOCKING_SIGNAL_CLASS_NAME
#undef NONBLOCKING_CALLER_CLASS_NAME
#undef NONBLOCKING_SLOT_BASE_CLASS_NAME
#undef NONBLOCKING_SLOT_GLOBAL_CLASS_NAME
#undef NONBLOCKING_SLOT_CLASS_CLASS_NAME
#undef NONBLOCKING_SLOT_SIGNAL_CLASS_NAME
#undef NONBLOCKING_CONDITIONAL_COMMA
#undef NONBLOCKING_ARGUMENT_LIST
#undef NONBLOCKING_ARGUMENT_TYPES
#undef NONBLOCKING_ARGUMENT_DECLARATIONS
#undef NONBLOCKING_ARGUMENT_ASSIGNMENTS
#undef NONBLOCKING_ARGUMENT_PARAMETER_LIST
#undef NONBLOCKING_ARGUMENT_PARAMETERS

#define NONBLOCKING_NONBLOCKING_CLASS_NAME	NonBlocking5
#define NONBLOCKING_SIGNAL_CLASS_NAME		Signal5
#define NONBLOCKING_CALLER_CLASS_NAME		Caller5
#define NONBLOCKING_SLOT_BASE_CLASS_NAME	SlotBase5
#define NONBLOCKING_SLOT_GLOBAL_CLASS_NAME	SlotGlobal5
#define NONBLOCKING_SLOT_CLASS_CLASS_NAME	SlotClass5
#define NONBLOCKING_SLOT_SIGNAL_CLASS_NAME	SlotSignal5
#define NONBLOCKING_CONDITIONAL_COMMA		,
#define NONBLOCKING_ARGUMENT_LIST		class pt1, class pt2, class pt3, class pt4, class pt5
#define NONBLOCKING_ARGUMENT_TYPES		pt1, pt2, pt3, pt4, pt5
#define NONBLOCKING_ARGUMENT_DECLARATIONS	pt1 p1; pt2 p2; pt3 p3; pt4 p4; pt5 p5;
#define NONBLOCKING_ARGUMENT_ASSIGNMENTS	this->p1 = p1; this->p2 = p2; this->p3 = p3; this->p4 = p4; this->p5 = p5;
#define NONBLOCKING_ARGUMENT_PARAMETER_LIST	pt1 p1, pt2 p2, pt3 p3, pt4 p4, pt5 p5
#define NONBLOCKING_ARGUMENT_PARAMETERS		p1, p2, p3, p4, p5

#include "nonblocking/nonblocking.h"

#undef NONBLOCKING_NONBLOCKING_CLASS_NAME
#undef NONBLOCKING_SIGNAL_CLASS_NAME
#undef NONBLOCKING_CALLER_CLASS_NAME
#undef NONBLOCKING_SLOT_BASE_CLASS_NAME
#undef NONBLOCKING_SLOT_GLOBAL_CLASS_NAME
#undef NONBLOCKING_SLOT_CLASS_CLASS_NAME
#undef NONBLOCKING_SLOT_SIGNAL_CLASS_NAME
#undef NONBLOCKING_CONDITIONAL_COMMA
#undef NONBLOCKING_ARGUMENT_LIST
#undef NONBLOCKING_ARGUMENT_TYPES
#undef NONBLOCKING_ARGUMENT_DECLARATIONS
#undef NONBLOCKING_ARGUMENT_ASSIGNMENTS
#undef NONBLOCKING_ARGUMENT_PARAMETER_LIST
#undef NONBLOCKING_ARGUMENT_PARAMETERS

#define NONBLOCKING_NONBLOCKING_CLASS_NAME	NonBlocking6
#define NONBLOCKING_SIGNAL_CLASS_NAME		Signal6
#define NONBLOCKING_CALLER_CLASS_NAME		Caller6
#define NONBLOCKING_SLOT_BASE_CLASS_NAME	SlotBase6
#define NONBLOCKING_SLOT_GLOBAL_CLASS_NAME	SlotGlobal6
#define NONBLOCKING_SLOT_CLASS_CLASS_NAME	SlotClass6
#define NONBLOCKING_SLOT_SIGNAL_CLASS_NAME	SlotSignal6
#define NONBLOCKING_CONDITIONAL_COMMA		,
#define NONBLOCKING_ARGUMENT_LIST		class pt1, class pt2, class pt3, class pt4, class pt5, class pt6
#define NONBLOCKING_ARGUMENT_TYPES		pt1, pt2, pt3, pt4, pt5, pt6
#define NONBLOCKING_ARGUMENT_DECLARATIONS	pt1 p1; pt2 p2; pt3 p3; pt4 p4; pt5 p5; pt6 p6;
#define NONBLOCKING_ARGUMENT_ASSIGNMENTS	this->p1 = p1; this->p2 = p2; this->p3 = p3; this->p4 = p4; this->p5 = p5; this->p6 = p6;
#define NONBLOCKING_ARGUMENT_PARAMETER_LIST	pt1 p1, pt2 p2, pt3 p3, pt4 p4, pt5 p5, pt6 p6
#define NONBLOCKING_ARGUMENT_PARAMETERS		p1, p2, p3, p4, p5, p6

#include "nonblocking/nonblocking.h"

#undef NONBLOCKING_NONBLOCKING_CLASS_NAME
#undef NONBLOCKING_SIGNAL_CLASS_NAME
#undef NONBLOCKING_CALLER_CLASS_NAME
#undef NONBLOCKING_SLOT_BASE_CLASS_NAME
#undef NONBLOCKING_SLOT_GLOBAL_CLASS_NAME
#undef NONBLOCKING_SLOT_CLASS_CLASS_NAME
#undef NONBLOCKING_SLOT_SIGNAL_CLASS_NAME
#undef NONBLOCKING_CONDITIONAL_COMMA
#undef NONBLOCKING_ARGUMENT_LIST
#undef NONBLOCKING_ARGUMENT_TYPES
#undef NONBLOCKING_ARGUMENT_DECLARATIONS
#undef NONBLOCKING_ARGUMENT_ASSIGNMENTS
#undef NONBLOCKING_ARGUMENT_PARAMETER_LIST
#undef NONBLOCKING_ARGUMENT_PARAMETERS

#define NONBLOCKING_NONBLOCKING_CLASS_NAME	NonBlocking7
#define NONBLOCKING_SIGNAL_CLASS_NAME		Signal7
#define NONBLOCKING_CALLER_CLASS_NAME		Caller7
#define NONBLOCKING_SLOT_BASE_CLASS_NAME	SlotBase7
#define NONBLOCKING_SLOT_GLOBAL_CLASS_NAME	SlotGlobal7
#define NONBLOCKING_SLOT_CLASS_CLASS_NAME	SlotClass7
#define NONBLOCKING_SLOT_SIGNAL_CLASS_NAME	SlotSignal7
#define NONBLOCKING_CONDITIONAL_COMMA		,
#define NONBLOCKING_ARGUMENT_LIST		class pt1, class pt2, class pt3, class pt4, class pt5, class pt6, class pt7
#define NONBLOCKING_ARGUMENT_TYPES		pt1, pt2, pt3, pt4, pt5, pt6, pt7
#define NONBLOCKING_ARGUMENT_DECLARATIONS	pt1 p1; pt2 p2; pt3 p3; pt4 p4; pt5 p5; pt6 p6; pt7 p7;
#define NONBLOCKING_ARGUMENT_ASSIGNMENTS	this->p1 = p1; this->p2 = p2; this->p3 = p3; this->p4 = p4; this->p5 = p5; this->p6 = p6; this->p7 = p7;
#define NONBLOCKING_ARGUMENT_PARAMETER_LIST	pt1 p1, pt2 p2, pt3 p3, pt4 p4, pt5 p5, pt6 p6, pt7 p7
#define NONBLOCKING_ARGUMENT_PARAMETERS		p1, p2, p3, p4, p5, p6, p7

#include "nonblocking/nonblocking.h"

#undef NONBLOCKING_NONBLOCKING_CLASS_NAME
#undef NONBLOCKING_SIGNAL_CLASS_NAME
#undef NONBLOCKING_CALLER_CLASS_NAME
#undef NONBLOCKING_SLOT_BASE_CLASS_NAME
#undef NONBLOCKING_SLOT_GLOBAL_CLASS_NAME
#undef NONBLOCKING_SLOT_CLASS_CLASS_NAME
#undef NONBLOCKING_SLOT_SIGNAL_CLASS_NAME
#undef NONBLOCKING_CONDITIONAL_COMMA
#undef NONBLOCKING_ARGUMENT_LIST
#undef NONBLOCKING_ARGUMENT_TYPES
#undef NONBLOCKING_ARGUMENT_DECLARATIONS
#undef NONBLOCKING_ARGUMENT_ASSIGNMENTS
#undef NONBLOCKING_ARGUMENT_PARAMETER_LIST
#undef NONBLOCKING_ARGUMENT_PARAMETERS

#define NONBLOCKING_NONBLOCKING_CLASS_NAME	NonBlocking8
#define NONBLOCKING_SIGNAL_CLASS_NAME		Signal8
#define NONBLOCKING_CALLER_CLASS_NAME		Caller8
#define NONBLOCKING_SLOT_BASE_CLASS_NAME	SlotBase8
#define NONBLOCKING_SLOT_GLOBAL_CLASS_NAME	SlotGlobal8
#define NONBLOCKING_SLOT_CLASS_CLASS_NAME	SlotClass8
#define NONBLOCKING_SLOT_SIGNAL_CLASS_NAME	SlotSignal8
#define NONBLOCKING_CONDITIONAL_COMMA		,
#define NONBLOCKING_ARGUMENT_LIST		class pt1, class pt2, class pt3, class pt4, class pt5, class pt6, class pt7, class pt8
#define NONBLOCKING_ARGUMENT_TYPES		pt1, pt2, pt3, pt4, pt5, pt6, pt7, pt8
#define NONBLOCKING_ARGUMENT_DECLARATIONS	pt1 p1; pt2 p2; pt3 p3; pt4 p4; pt5 p5; pt6 p6; pt7 p7; pt8 p8;
#define NONBLOCKING_ARGUMENT_ASSIGNMENTS	this->p1 = p1; this->p2 = p2; this->p3 = p3; this->p4 = p4; this->p5 = p5; this->p6 = p6; this->p7 = p7; this->p8 = p8;
#define NONBLOCKING_ARGUMENT_PARAMETER_LIST	pt1 p1, pt2 p2, pt3 p3, pt4 p4, pt5 p5, pt6 p6, pt7 p7, pt8 p8
#define NONBLOCKING_ARGUMENT_PARAMETERS		p1, p2, p3, p4, p5, p6, p7, p8

#include "nonblocking/nonblocking.h"

#undef NONBLOCKING_NONBLOCKING_CLASS_NAME
#undef NONBLOCKING_SIGNAL_CLASS_NAME
#undef NONBLOCKING_CALLER_CLASS_NAME
#undef NONBLOCKING_SLOT_BASE_CLASS_NAME
#undef NONBLOCKING_SLOT_GLOBAL_CLASS_NAME
#undef NONBLOCKING_SLOT_CLASS_CLASS_NAME
#undef NONBLOCKING_SLOT_SIGNAL_CLASS_NAME
#undef NONBLOCKING_CONDITIONAL_COMMA
#undef NONBLOCKING_ARGUMENT_LIST
#undef NONBLOCKING_ARGUMENT_TYPES
#undef NONBLOCKING_ARGUMENT_DECLARATIONS
#undef NONBLOCKING_ARGUMENT_ASSIGNMENTS
#undef NONBLOCKING_ARGUMENT_PARAMETER_LIST
#undef NONBLOCKING_ARGUMENT_PARAMETERS

#endif
