dbus-cxx logo

interface.h

Go to the documentation of this file.
00001 
00002 // -*- c++ -*-
00003 /* Do not edit! -- generated file */
00004 
00005 /***************************************************************************
00006  *   Copyright (C) 2009 by Rick L. Vinyard, Jr.                            *
00007  *   rvinyard@cs.nmsu.edu                                                  *
00008  *                                                                         *
00009  *   This file is part of the dbus-cxx library.                            *
00010  *                                                                         *
00011  *   The dbus-cxx library is free software; you can redistribute it and/or *
00012  *   modify it under the terms of the GNU General Public License           *
00013  *   version 3 as published by the Free Software Foundation.               *
00014  *                                                                         *
00015  *   The dbus-cxx library is distributed in the hope that it will be       *
00016  *   useful, but WITHOUT ANY WARRANTY; without even the implied warranty   *
00017  *   of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU   *
00018  *   General Public License for more details.                              *
00019  *                                                                         *
00020  *   You should have received a copy of the GNU General Public License     *
00021  *   along with this software. If not see <http://www.gnu.org/licenses/>.  *
00022  ***************************************************************************/
00023 #include <sigc++/sigc++.h>
00024 
00025 #include <string>
00026 #include <map>
00027 #include <set>
00028 
00029 #include <dbus-cxx/forward_decls.h>
00030 #include <dbus-cxx/methodbase.h>
00031 #include <dbus-cxx/dbus_signal.h>
00032 
00033 #ifndef DBUSCXX_INTERFACE_H
00034 #define DBUSCXX_INTERFACE_H
00035 
00036 namespace DBus {
00037 
00046   class Interface
00047   {
00048     protected:
00053       Interface(const std::string& name);
00054 
00055     public:
00061       typedef DBusCxxPointer<Interface> pointer;
00062 
00068       typedef DBusCxxWeakPointer<Interface> weak_pointer;
00069       
00079       typedef std::multimap<std::string, MethodBase::pointer> Methods;
00080 
00088       typedef std::set<signal_base::pointer> Signals;
00089 
00094       static pointer create( const std::string& name = std::string() );
00095 
00096       virtual ~Interface();
00097 
00104       Object* object() const;
00105 
00107       Path path() const;
00108 
00110       DBusCxxPointer<Connection> connection() const;
00111 
00124       HandlerResult handle_call_message( DBusCxxPointer<Connection> connection, CallMessage::const_pointer message );
00125 
00127       const std::string& name() const;
00128 
00130       void set_name( const std::string& new_name );
00131 
00133       const Methods& methods() const;
00134 
00136       MethodBase::pointer method( const std::string& name ) const;
00137 
00143       template <class T_return>
00144       DBusCxxPointer<Method<T_return> >
00145       create_method( const std::string& name );
00146 
00152       template <class T_return, class T_arg1>
00153       DBusCxxPointer<Method<T_return, T_arg1> >
00154       create_method( const std::string& name );
00155 
00161       template <class T_return, class T_arg1,class T_arg2>
00162       DBusCxxPointer<Method<T_return, T_arg1,T_arg2> >
00163       create_method( const std::string& name );
00164 
00170       template <class T_return, class T_arg1,class T_arg2,class T_arg3>
00171       DBusCxxPointer<Method<T_return, T_arg1,T_arg2,T_arg3> >
00172       create_method( const std::string& name );
00173 
00179       template <class T_return, class T_arg1,class T_arg2,class T_arg3,class T_arg4>
00180       DBusCxxPointer<Method<T_return, T_arg1,T_arg2,T_arg3,T_arg4> >
00181       create_method( const std::string& name );
00182 
00188       template <class T_return, class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5>
00189       DBusCxxPointer<Method<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5> >
00190       create_method( const std::string& name );
00191 
00197       template <class T_return, class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5,class T_arg6>
00198       DBusCxxPointer<Method<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6> >
00199       create_method( const std::string& name );
00200 
00206       template <class T_return, class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5,class T_arg6,class T_arg7>
00207       DBusCxxPointer<Method<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7> >
00208       create_method( const std::string& name );
00209 
00210 
00211 
00220       template <class T_return>
00221       DBusCxxPointer<Method<T_return> >
00222       create_method( const std::string& name, sigc::slot0<T_return> slot );
00223 
00232       template <class T_return, class T_arg1>
00233       DBusCxxPointer<Method<T_return, T_arg1> >
00234       create_method( const std::string& name, sigc::slot1<T_return, T_arg1> slot );
00235 
00244       template <class T_return, class T_arg1,class T_arg2>
00245       DBusCxxPointer<Method<T_return, T_arg1,T_arg2> >
00246       create_method( const std::string& name, sigc::slot2<T_return, T_arg1,T_arg2> slot );
00247 
00256       template <class T_return, class T_arg1,class T_arg2,class T_arg3>
00257       DBusCxxPointer<Method<T_return, T_arg1,T_arg2,T_arg3> >
00258       create_method( const std::string& name, sigc::slot3<T_return, T_arg1,T_arg2,T_arg3> slot );
00259 
00268       template <class T_return, class T_arg1,class T_arg2,class T_arg3,class T_arg4>
00269       DBusCxxPointer<Method<T_return, T_arg1,T_arg2,T_arg3,T_arg4> >
00270       create_method( const std::string& name, sigc::slot4<T_return, T_arg1,T_arg2,T_arg3,T_arg4> slot );
00271 
00280       template <class T_return, class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5>
00281       DBusCxxPointer<Method<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5> >
00282       create_method( const std::string& name, sigc::slot5<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5> slot );
00283 
00292       template <class T_return, class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5,class T_arg6>
00293       DBusCxxPointer<Method<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6> >
00294       create_method( const std::string& name, sigc::slot6<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6> slot );
00295 
00304       template <class T_return, class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5,class T_arg6,class T_arg7>
00305       DBusCxxPointer<Method<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7> >
00306       create_method( const std::string& name, sigc::slot7<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7> slot );
00307 
00308 
00310       bool add_method( MethodBase::pointer method );
00311 
00313       void remove_method( const std::string& name );
00314 
00316       bool has_method( const std::string& name ) const;
00317 
00322       bool add_signal( signal_base::pointer signal );
00323 
00330       bool remove_signal( signal_base::pointer signal );
00331 
00335       bool remove_signal( const std::string& name );
00336 
00340       bool has_signal( signal_base::pointer signal ) const;
00341 
00343       bool has_signal( const std::string& name ) const;
00344 
00350       template <class T_return>
00351       DBusCxxPointer<signal<T_return> >
00352       create_signal( const std::string& name );
00353 
00359       template <class T_return, class T_arg1>
00360       DBusCxxPointer<signal<T_return, T_arg1> >
00361       create_signal( const std::string& name );
00362 
00368       template <class T_return, class T_arg1,class T_arg2>
00369       DBusCxxPointer<signal<T_return, T_arg1,T_arg2> >
00370       create_signal( const std::string& name );
00371 
00377       template <class T_return, class T_arg1,class T_arg2,class T_arg3>
00378       DBusCxxPointer<signal<T_return, T_arg1,T_arg2,T_arg3> >
00379       create_signal( const std::string& name );
00380 
00386       template <class T_return, class T_arg1,class T_arg2,class T_arg3,class T_arg4>
00387       DBusCxxPointer<signal<T_return, T_arg1,T_arg2,T_arg3,T_arg4> >
00388       create_signal( const std::string& name );
00389 
00395       template <class T_return, class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5>
00396       DBusCxxPointer<signal<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5> >
00397       create_signal( const std::string& name );
00398 
00404       template <class T_return, class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5,class T_arg6>
00405       DBusCxxPointer<signal<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6> >
00406       create_signal( const std::string& name );
00407 
00413       template <class T_return, class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5,class T_arg6,class T_arg7>
00414       DBusCxxPointer<signal<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7> >
00415       create_signal( const std::string& name );
00416 
00417 
00418 
00420       const Signals& signals();
00421 
00427       signal_base::pointer signal(const std::string& signal_name);
00428 
00430       sigc::signal<void,const std::string&/*old name*/,const std::string&/*new name*/> signal_name_changed();
00431 
00433       sigc::signal<void,MethodBase::pointer> signal_method_added();
00434 
00436       sigc::signal<void,MethodBase::pointer> signal_method_removed();
00437 
00439       std::string introspect(int space_depth=0) const;
00440 
00441     private:
00442 
00443       Object* m_object;
00444       
00445     protected:
00446 
00447       friend class Object;
00448 
00449       void set_object( Object* object );
00450 
00451       std::string m_name;
00452       
00453       Methods m_methods;
00454 
00455       Signals m_signals;
00456 
00457       mutable pthread_rwlock_t m_methods_rwlock;
00458 
00459       mutable pthread_rwlock_t m_signals_rwlock;
00460 
00462       pthread_mutex_t m_name_mutex;
00463 
00464       sigc::signal<void,const std::string&,const std::string&> m_signal_name_changed;
00465       
00466       sigc::signal<void,MethodBase::pointer> m_signal_method_added;
00467       
00468       sigc::signal<void,MethodBase::pointer> m_signal_method_removed;
00469 
00470       typedef std::map<MethodBase::pointer,sigc::connection> MethodSignalNameConnections;
00471 
00472       MethodSignalNameConnections m_method_signal_name_connections;
00473 
00478       void on_method_name_changed(const std::string& oldname, const std::string& newname, MethodBase::pointer method);
00479 
00480       void set_connection(DBusCxxPointer<Connection> conn);
00481 
00482       void set_path( const std::string& new_path );
00483 
00484   };
00485 
00486 }
00487 
00488 #include <dbus-cxx/method.h>
00489 
00490 namespace DBus {
00491 
00492       template <class T_return>
00493       DBusCxxPointer<Method<T_return> >
00494       Interface::create_method( const std::string& name )
00495       {
00496         DBusCxxPointer< Method<T_return> > method;
00497         method = Method<T_return>::create(name);
00498         this->add_method( method );
00499         return method;
00500       }
00501 
00502       template <class T_return, class T_arg1>
00503       DBusCxxPointer<Method<T_return, T_arg1> >
00504       Interface::create_method( const std::string& name )
00505       {
00506         DBusCxxPointer< Method<T_return, T_arg1> > method;
00507         method = Method<T_return, T_arg1>::create(name);
00508         this->add_method( method );
00509         return method;
00510       }
00511 
00512       template <class T_return, class T_arg1,class T_arg2>
00513       DBusCxxPointer<Method<T_return, T_arg1,T_arg2> >
00514       Interface::create_method( const std::string& name )
00515       {
00516         DBusCxxPointer< Method<T_return, T_arg1,T_arg2> > method;
00517         method = Method<T_return, T_arg1,T_arg2>::create(name);
00518         this->add_method( method );
00519         return method;
00520       }
00521 
00522       template <class T_return, class T_arg1,class T_arg2,class T_arg3>
00523       DBusCxxPointer<Method<T_return, T_arg1,T_arg2,T_arg3> >
00524       Interface::create_method( const std::string& name )
00525       {
00526         DBusCxxPointer< Method<T_return, T_arg1,T_arg2,T_arg3> > method;
00527         method = Method<T_return, T_arg1,T_arg2,T_arg3>::create(name);
00528         this->add_method( method );
00529         return method;
00530       }
00531 
00532       template <class T_return, class T_arg1,class T_arg2,class T_arg3,class T_arg4>
00533       DBusCxxPointer<Method<T_return, T_arg1,T_arg2,T_arg3,T_arg4> >
00534       Interface::create_method( const std::string& name )
00535       {
00536         DBusCxxPointer< Method<T_return, T_arg1,T_arg2,T_arg3,T_arg4> > method;
00537         method = Method<T_return, T_arg1,T_arg2,T_arg3,T_arg4>::create(name);
00538         this->add_method( method );
00539         return method;
00540       }
00541 
00542       template <class T_return, class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5>
00543       DBusCxxPointer<Method<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5> >
00544       Interface::create_method( const std::string& name )
00545       {
00546         DBusCxxPointer< Method<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5> > method;
00547         method = Method<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5>::create(name);
00548         this->add_method( method );
00549         return method;
00550       }
00551 
00552       template <class T_return, class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5,class T_arg6>
00553       DBusCxxPointer<Method<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6> >
00554       Interface::create_method( const std::string& name )
00555       {
00556         DBusCxxPointer< Method<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6> > method;
00557         method = Method<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6>::create(name);
00558         this->add_method( method );
00559         return method;
00560       }
00561 
00562       template <class T_return, class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5,class T_arg6,class T_arg7>
00563       DBusCxxPointer<Method<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7> >
00564       Interface::create_method( const std::string& name )
00565       {
00566         DBusCxxPointer< Method<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7> > method;
00567         method = Method<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7>::create(name);
00568         this->add_method( method );
00569         return method;
00570       }
00571 
00572 
00573 
00574       template <class T_return>
00575       DBusCxxPointer<Method<T_return> >
00576       Interface::create_method( const std::string& name, sigc::slot0<T_return> slot )
00577       {
00578         DBusCxxPointer< Method<T_return> > method;
00579         method = Method<T_return>::create(name);
00580         method->set_method( slot );
00581         this->add_method( method );
00582         return method;
00583       }
00584 
00585       template <class T_return, class T_arg1>
00586       DBusCxxPointer<Method<T_return, T_arg1> >
00587       Interface::create_method( const std::string& name, sigc::slot1<T_return, T_arg1> slot )
00588       {
00589         DBusCxxPointer< Method<T_return, T_arg1> > method;
00590         method = Method<T_return, T_arg1>::create(name);
00591         method->set_method( slot );
00592         this->add_method( method );
00593         return method;
00594       }
00595 
00596       template <class T_return, class T_arg1,class T_arg2>
00597       DBusCxxPointer<Method<T_return, T_arg1,T_arg2> >
00598       Interface::create_method( const std::string& name, sigc::slot2<T_return, T_arg1,T_arg2> slot )
00599       {
00600         DBusCxxPointer< Method<T_return, T_arg1,T_arg2> > method;
00601         method = Method<T_return, T_arg1,T_arg2>::create(name);
00602         method->set_method( slot );
00603         this->add_method( method );
00604         return method;
00605       }
00606 
00607       template <class T_return, class T_arg1,class T_arg2,class T_arg3>
00608       DBusCxxPointer<Method<T_return, T_arg1,T_arg2,T_arg3> >
00609       Interface::create_method( const std::string& name, sigc::slot3<T_return, T_arg1,T_arg2,T_arg3> slot )
00610       {
00611         DBusCxxPointer< Method<T_return, T_arg1,T_arg2,T_arg3> > method;
00612         method = Method<T_return, T_arg1,T_arg2,T_arg3>::create(name);
00613         method->set_method( slot );
00614         this->add_method( method );
00615         return method;
00616       }
00617 
00618       template <class T_return, class T_arg1,class T_arg2,class T_arg3,class T_arg4>
00619       DBusCxxPointer<Method<T_return, T_arg1,T_arg2,T_arg3,T_arg4> >
00620       Interface::create_method( const std::string& name, sigc::slot4<T_return, T_arg1,T_arg2,T_arg3,T_arg4> slot )
00621       {
00622         DBusCxxPointer< Method<T_return, T_arg1,T_arg2,T_arg3,T_arg4> > method;
00623         method = Method<T_return, T_arg1,T_arg2,T_arg3,T_arg4>::create(name);
00624         method->set_method( slot );
00625         this->add_method( method );
00626         return method;
00627       }
00628 
00629       template <class T_return, class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5>
00630       DBusCxxPointer<Method<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5> >
00631       Interface::create_method( const std::string& name, sigc::slot5<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5> slot )
00632       {
00633         DBusCxxPointer< Method<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5> > method;
00634         method = Method<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5>::create(name);
00635         method->set_method( slot );
00636         this->add_method( method );
00637         return method;
00638       }
00639 
00640       template <class T_return, class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5,class T_arg6>
00641       DBusCxxPointer<Method<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6> >
00642       Interface::create_method( const std::string& name, sigc::slot6<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6> slot )
00643       {
00644         DBusCxxPointer< Method<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6> > method;
00645         method = Method<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6>::create(name);
00646         method->set_method( slot );
00647         this->add_method( method );
00648         return method;
00649       }
00650 
00651       template <class T_return, class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5,class T_arg6,class T_arg7>
00652       DBusCxxPointer<Method<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7> >
00653       Interface::create_method( const std::string& name, sigc::slot7<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7> slot )
00654       {
00655         DBusCxxPointer< Method<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7> > method;
00656         method = Method<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7>::create(name);
00657         method->set_method( slot );
00658         this->add_method( method );
00659         return method;
00660       }
00661 
00662 
00663 
00664       template <class T_return>
00665       DBusCxxPointer<signal<T_return> >
00666       Interface::create_signal( const std::string& name )
00667       {
00668         DBusCxxPointer<DBus::signal<T_return> > sig;
00669         sig = DBus::signal<T_return>::create(m_name, name);
00670         if ( this->add_signal(sig) ) return sig;
00671         return DBusCxxPointer<DBus::signal<T_return> >();
00672       }
00673 
00674       template <class T_return, class T_arg1>
00675       DBusCxxPointer<signal<T_return, T_arg1> >
00676       Interface::create_signal( const std::string& name )
00677       {
00678         DBusCxxPointer<DBus::signal<T_return, T_arg1> > sig;
00679         sig = DBus::signal<T_return, T_arg1>::create(m_name, name);
00680         if ( this->add_signal(sig) ) return sig;
00681         return DBusCxxPointer<DBus::signal<T_return, T_arg1> >();
00682       }
00683 
00684       template <class T_return, class T_arg1,class T_arg2>
00685       DBusCxxPointer<signal<T_return, T_arg1,T_arg2> >
00686       Interface::create_signal( const std::string& name )
00687       {
00688         DBusCxxPointer<DBus::signal<T_return, T_arg1,T_arg2> > sig;
00689         sig = DBus::signal<T_return, T_arg1,T_arg2>::create(m_name, name);
00690         if ( this->add_signal(sig) ) return sig;
00691         return DBusCxxPointer<DBus::signal<T_return, T_arg1,T_arg2> >();
00692       }
00693 
00694       template <class T_return, class T_arg1,class T_arg2,class T_arg3>
00695       DBusCxxPointer<signal<T_return, T_arg1,T_arg2,T_arg3> >
00696       Interface::create_signal( const std::string& name )
00697       {
00698         DBusCxxPointer<DBus::signal<T_return, T_arg1,T_arg2,T_arg3> > sig;
00699         sig = DBus::signal<T_return, T_arg1,T_arg2,T_arg3>::create(m_name, name);
00700         if ( this->add_signal(sig) ) return sig;
00701         return DBusCxxPointer<DBus::signal<T_return, T_arg1,T_arg2,T_arg3> >();
00702       }
00703 
00704       template <class T_return, class T_arg1,class T_arg2,class T_arg3,class T_arg4>
00705       DBusCxxPointer<signal<T_return, T_arg1,T_arg2,T_arg3,T_arg4> >
00706       Interface::create_signal( const std::string& name )
00707       {
00708         DBusCxxPointer<DBus::signal<T_return, T_arg1,T_arg2,T_arg3,T_arg4> > sig;
00709         sig = DBus::signal<T_return, T_arg1,T_arg2,T_arg3,T_arg4>::create(m_name, name);
00710         if ( this->add_signal(sig) ) return sig;
00711         return DBusCxxPointer<DBus::signal<T_return, T_arg1,T_arg2,T_arg3,T_arg4> >();
00712       }
00713 
00714       template <class T_return, class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5>
00715       DBusCxxPointer<signal<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5> >
00716       Interface::create_signal( const std::string& name )
00717       {
00718         DBusCxxPointer<DBus::signal<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5> > sig;
00719         sig = DBus::signal<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5>::create(m_name, name);
00720         if ( this->add_signal(sig) ) return sig;
00721         return DBusCxxPointer<DBus::signal<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5> >();
00722       }
00723 
00724       template <class T_return, class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5,class T_arg6>
00725       DBusCxxPointer<signal<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6> >
00726       Interface::create_signal( const std::string& name )
00727       {
00728         DBusCxxPointer<DBus::signal<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6> > sig;
00729         sig = DBus::signal<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6>::create(m_name, name);
00730         if ( this->add_signal(sig) ) return sig;
00731         return DBusCxxPointer<DBus::signal<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6> >();
00732       }
00733 
00734       template <class T_return, class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5,class T_arg6,class T_arg7>
00735       DBusCxxPointer<signal<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7> >
00736       Interface::create_signal( const std::string& name )
00737       {
00738         DBusCxxPointer<DBus::signal<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7> > sig;
00739         sig = DBus::signal<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7>::create(m_name, name);
00740         if ( this->add_signal(sig) ) return sig;
00741         return DBusCxxPointer<DBus::signal<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7> >();
00742       }
00743 
00744 
00745 
00746 } /* namespace DBus */
00747 
00748 #endif /* DBUS_CXX_INTERFACE_H */
00749 

Generated on Thu Mar 18 09:30:54 2010 for dbus-cxx by doxygen 1.6.1