VR-Vantage 1.4.1 API Class Documentation
event_signal.h
Go to the documentation of this file.
00001 /******************************************************************************
00002 ** Copyright (c) 2009 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 ******************************************************************************/
00005 /******************************************************************************
00006 ** $RCSfile: event_signal.h,v $ $Revision: 1.4 $ $State: Exp $
00007 ******************************************************************************/
00008 
00012 
00013 #ifndef event_signal_H_
00014 #define event_signal_H_
00015 
00016 #include <boost/signals.hpp>
00017 #include <boost/bind.hpp>
00018 #include <boost/type_traits/function_traits.hpp>
00019 #include <vrvUtil/DtEventQueueInterface.h>
00020 
00021 namespace makVrv
00022 {
00023 
00039    template
00040    <
00041       typename Signature,
00042       typename Combiner = boost::last_value<typename boost::function_traits<Signature>::result_type>,
00043       typename Group = int,
00044       typename GroupCompare = std::less<Group>,
00045       typename SlotFunction = boost::function<Signature>
00046    >
00047    class event_signal : public boost::signal<Signature,Combiner,Group,GroupCompare,SlotFunction>
00048    {
00049    public:
00050       typedef event_signal<Signature,Combiner,Group,GroupCompare,SlotFunction> this_type;
00051       typedef boost::function_traits<Signature> traits;
00052       
00054       template <typename ClassType>
00055       event_signal(this_type& (ClassType::*accessor)(), DtEventQueueInterface& i);
00056 
00058       template <typename ClassType>
00059       event_signal(this_type ClassType::*asMemberPointer, DtEventQueueInterface& i);
00060    };
00061     
00062 }
00063 
00064 #define event_signal_INL_
00065 #include <vrvUtil/event_signal.inl>
00066 #undef event_signal_INL_
00067 
00068 #endif
00069 


Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)