#ifndef REVEAL_CALLBACK_STUB_1_H
#define REVEAL_CALLBACK_STUB_1_H

#include "reveal/callback/callback_1.h"

namespace Reveal {
    namespace Callback {

// Forward;
template < class T > class CallbackStub1Functor;


/*!
	\brief todo
*/
template < class T >
Callback1< void, T > CallbackStub1()
{
	return Callback1< void, T >( CallbackStub1Functor< T >() );
}

//! \internal
template < class T >
class CallbackStub1Functor
{
    // Default copy ctor and assigment op are ok;

private:
    friend Callback1< void, T > CallbackStub1< T >();
    
    // Private because only the friend can construct this;
	explicit CallbackStub1Functor() {}
    
public:
       
    void operator () ( T ) { /* does nothing */ }
};


    } // Namespace Callback;
} // Namespace Reveal;

#endif	// REVEAL_CALLBACK_STUB_1_H
