00001
00002
00003
00004
00005 #ifndef DBUSCXXOBJECT_H
00006 #define DBUSCXXOBJECT_H
00007
00008 #include <sigc++/sigc++.h>
00009
00010 #include <string>
00011 #include <map>
00012
00013 #include <dbus-cxx/objectpathhandler.h>
00014 #include <dbus-cxx/interface.h>
00015
00016 namespace DBus
00017 {
00069 class Connection;
00070
00079 class Object: public ObjectPathHandler
00080 {
00081 protected:
00082
00083 Object( const std::string& path, PrimaryFallback pf=PRIMARY );
00084
00085 public:
00086
00087 typedef DBusCxxPointer<Object> pointer;
00088
00089 typedef std::multimap<std::string, Interface::pointer> Interfaces;
00090
00091 typedef std::map<std::string, Object::pointer> Children;
00092
00093 static pointer create( const std::string& path = std::string(), PrimaryFallback pf=PRIMARY );
00094
00095 virtual ~Object();
00096
00098 virtual bool register_with_connection(DBusCxxPointer<Connection> conn);
00099
00100 const Interfaces& interfaces() const;
00101
00103 Interface::pointer interface( const std::string& name ) const;
00104
00106 bool add_interface( Interface::pointer interface );
00107
00113 Interface::pointer create_interface( const std::string& name );
00114
00118 template <class T_return>
00119 DBusCxxPointer<Method<T_return> > create_method( const std::string& method_name, sigc::slot0<T_return> slot )
00120 {
00121 if ( not m_default_interface )
00122 {
00123 this->create_interface("");
00124 this->set_default_interface("");
00125 }
00126
00127
00128 DBusCxxPointer< Method<T_return> > method;
00129 method = m_default_interface->create_method<T_return>(method_name);
00130 method->set_method( slot );
00131 return method;
00132 }
00133
00137 template <class T_return, class T_arg1>
00138 DBusCxxPointer<Method<T_return, T_arg1> > create_method( const std::string& method_name, sigc::slot1<T_return, T_arg1> slot )
00139 {
00140 if ( not m_default_interface )
00141 {
00142 this->create_interface("");
00143 this->set_default_interface("");
00144 }
00145
00146
00147 DBusCxxPointer< Method<T_return, T_arg1> > method;
00148 method = m_default_interface->create_method<T_return, T_arg1>(method_name);
00149 method->set_method( slot );
00150 return method;
00151 }
00152
00156 template <class T_return, class T_arg1,class T_arg2>
00157 DBusCxxPointer<Method<T_return, T_arg1,T_arg2> > create_method( const std::string& method_name, sigc::slot2<T_return, T_arg1,T_arg2> slot )
00158 {
00159 if ( not m_default_interface )
00160 {
00161 this->create_interface("");
00162 this->set_default_interface("");
00163 }
00164
00165
00166 DBusCxxPointer< Method<T_return, T_arg1,T_arg2> > method;
00167 method = m_default_interface->create_method<T_return, T_arg1,T_arg2>(method_name);
00168 method->set_method( slot );
00169 return method;
00170 }
00171
00175 template <class T_return, class T_arg1,class T_arg2,class T_arg3>
00176 DBusCxxPointer<Method<T_return, T_arg1,T_arg2,T_arg3> > create_method( const std::string& method_name, sigc::slot3<T_return, T_arg1,T_arg2,T_arg3> slot )
00177 {
00178 if ( not m_default_interface )
00179 {
00180 this->create_interface("");
00181 this->set_default_interface("");
00182 }
00183
00184
00185 DBusCxxPointer< Method<T_return, T_arg1,T_arg2,T_arg3> > method;
00186 method = m_default_interface->create_method<T_return, T_arg1,T_arg2,T_arg3>(method_name);
00187 method->set_method( slot );
00188 return method;
00189 }
00190
00194 template <class T_return, class T_arg1,class T_arg2,class T_arg3,class T_arg4>
00195 DBusCxxPointer<Method<T_return, T_arg1,T_arg2,T_arg3,T_arg4> > create_method( const std::string& method_name, sigc::slot4<T_return, T_arg1,T_arg2,T_arg3,T_arg4> slot )
00196 {
00197 if ( not m_default_interface )
00198 {
00199 this->create_interface("");
00200 this->set_default_interface("");
00201 }
00202
00203
00204 DBusCxxPointer< Method<T_return, T_arg1,T_arg2,T_arg3,T_arg4> > method;
00205 method = m_default_interface->create_method<T_return, T_arg1,T_arg2,T_arg3,T_arg4>(method_name);
00206 method->set_method( slot );
00207 return method;
00208 }
00209
00213 template <class T_return, class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5>
00214 DBusCxxPointer<Method<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5> > create_method( const std::string& method_name, sigc::slot5<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5> slot )
00215 {
00216 if ( not m_default_interface )
00217 {
00218 this->create_interface("");
00219 this->set_default_interface("");
00220 }
00221
00222
00223 DBusCxxPointer< Method<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5> > method;
00224 method = m_default_interface->create_method<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5>(method_name);
00225 method->set_method( slot );
00226 return method;
00227 }
00228
00232 template <class T_return, class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5,class T_arg6>
00233 DBusCxxPointer<Method<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6> > create_method( const std::string& method_name, sigc::slot6<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6> slot )
00234 {
00235 if ( not m_default_interface )
00236 {
00237 this->create_interface("");
00238 this->set_default_interface("");
00239 }
00240
00241
00242 DBusCxxPointer< Method<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6> > method;
00243 method = m_default_interface->create_method<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6>(method_name);
00244 method->set_method( slot );
00245 return method;
00246 }
00247
00251 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>
00252 DBusCxxPointer<Method<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7> > create_method( const std::string& method_name, sigc::slot7<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7> slot )
00253 {
00254 if ( not m_default_interface )
00255 {
00256 this->create_interface("");
00257 this->set_default_interface("");
00258 }
00259
00260
00261 DBusCxxPointer< Method<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7> > method;
00262 method = m_default_interface->create_method<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7>(method_name);
00263 method->set_method( slot );
00264 return method;
00265 }
00266
00267
00268 template <class T_return>
00269 DBusCxxPointer<Method<T_return> > create_method( const std::string& interface_name, const std::string& method_name, sigc::slot0<T_return> slot )
00270 {
00271 Interface::pointer interface;
00272 interface = this->interface(interface_name);
00273 if ( not interface ) interface = this->create_interface(interface_name);
00274
00275
00276 DBusCxxPointer< Method<T_return> > method;
00277 method = interface->create_method<T_return>(method_name);
00278 method->set_method( slot );
00279 return method;
00280 }
00281
00282 template <class T_return, class T_arg1>
00283 DBusCxxPointer<Method<T_return, T_arg1> > create_method( const std::string& interface_name, const std::string& method_name, sigc::slot1<T_return, T_arg1> slot )
00284 {
00285 Interface::pointer interface;
00286 interface = this->interface(interface_name);
00287 if ( not interface ) interface = this->create_interface(interface_name);
00288
00289
00290 DBusCxxPointer< Method<T_return, T_arg1> > method;
00291 method = interface->create_method<T_return, T_arg1>(method_name);
00292 method->set_method( slot );
00293 return method;
00294 }
00295
00296 template <class T_return, class T_arg1,class T_arg2>
00297 DBusCxxPointer<Method<T_return, T_arg1,T_arg2> > create_method( const std::string& interface_name, const std::string& method_name, sigc::slot2<T_return, T_arg1,T_arg2> slot )
00298 {
00299 Interface::pointer interface;
00300 interface = this->interface(interface_name);
00301 if ( not interface ) interface = this->create_interface(interface_name);
00302
00303
00304 DBusCxxPointer< Method<T_return, T_arg1,T_arg2> > method;
00305 method = interface->create_method<T_return, T_arg1,T_arg2>(method_name);
00306 method->set_method( slot );
00307 return method;
00308 }
00309
00310 template <class T_return, class T_arg1,class T_arg2,class T_arg3>
00311 DBusCxxPointer<Method<T_return, T_arg1,T_arg2,T_arg3> > create_method( const std::string& interface_name, const std::string& method_name, sigc::slot3<T_return, T_arg1,T_arg2,T_arg3> slot )
00312 {
00313 Interface::pointer interface;
00314 interface = this->interface(interface_name);
00315 if ( not interface ) interface = this->create_interface(interface_name);
00316
00317
00318 DBusCxxPointer< Method<T_return, T_arg1,T_arg2,T_arg3> > method;
00319 method = interface->create_method<T_return, T_arg1,T_arg2,T_arg3>(method_name);
00320 method->set_method( slot );
00321 return method;
00322 }
00323
00324 template <class T_return, class T_arg1,class T_arg2,class T_arg3,class T_arg4>
00325 DBusCxxPointer<Method<T_return, T_arg1,T_arg2,T_arg3,T_arg4> > create_method( const std::string& interface_name, const std::string& method_name, sigc::slot4<T_return, T_arg1,T_arg2,T_arg3,T_arg4> slot )
00326 {
00327 Interface::pointer interface;
00328 interface = this->interface(interface_name);
00329 if ( not interface ) interface = this->create_interface(interface_name);
00330
00331
00332 DBusCxxPointer< Method<T_return, T_arg1,T_arg2,T_arg3,T_arg4> > method;
00333 method = interface->create_method<T_return, T_arg1,T_arg2,T_arg3,T_arg4>(method_name);
00334 method->set_method( slot );
00335 return method;
00336 }
00337
00338 template <class T_return, class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5>
00339 DBusCxxPointer<Method<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5> > create_method( const std::string& interface_name, const std::string& method_name, sigc::slot5<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5> slot )
00340 {
00341 Interface::pointer interface;
00342 interface = this->interface(interface_name);
00343 if ( not interface ) interface = this->create_interface(interface_name);
00344
00345
00346 DBusCxxPointer< Method<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5> > method;
00347 method = interface->create_method<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5>(method_name);
00348 method->set_method( slot );
00349 return method;
00350 }
00351
00352 template <class T_return, class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5,class T_arg6>
00353 DBusCxxPointer<Method<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6> > create_method( const std::string& interface_name, const std::string& method_name, sigc::slot6<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6> slot )
00354 {
00355 Interface::pointer interface;
00356 interface = this->interface(interface_name);
00357 if ( not interface ) interface = this->create_interface(interface_name);
00358
00359
00360 DBusCxxPointer< Method<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6> > method;
00361 method = interface->create_method<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6>(method_name);
00362 method->set_method( slot );
00363 return method;
00364 }
00365
00366 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>
00367 DBusCxxPointer<Method<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7> > create_method( const std::string& interface_name, const std::string& method_name, sigc::slot7<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7> slot )
00368 {
00369 Interface::pointer interface;
00370 interface = this->interface(interface_name);
00371 if ( not interface ) interface = this->create_interface(interface_name);
00372
00373
00374 DBusCxxPointer< Method<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7> > method;
00375 method = interface->create_method<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7>(method_name);
00376 method->set_method( slot );
00377 return method;
00378 }
00379
00380
00382 void remove_interface( const std::string& name );
00383
00384 bool has_interface( const std::string& name );
00385
00386 Interface::pointer default_interface() const;
00387
00388 bool set_default_interface( const std::string& new_default_name );
00389
00390 void remove_default_interface();
00391
00392 template <class T_return>
00393 DBusCxxPointer<signal<T_return> > create_signal( const std::string& name )
00394 {
00395 DBusCxxPointer<DBus::signal<T_return> > sig;
00396 Interface::pointer iface = this->default_interface();
00397 if ( not iface ) iface = this->create_interface("");
00398 sig = iface->create_signal<T_return>(name);
00399 return sig;
00400 }
00401
00402 template <class T_return, class T_arg1>
00403 DBusCxxPointer<signal<T_return, T_arg1> > create_signal( const std::string& name )
00404 {
00405 DBusCxxPointer<DBus::signal<T_return, T_arg1> > sig;
00406 Interface::pointer iface = this->default_interface();
00407 if ( not iface ) iface = this->create_interface("");
00408 sig = iface->create_signal<T_return, T_arg1>(name);
00409 return sig;
00410 }
00411
00412 template <class T_return, class T_arg1,class T_arg2>
00413 DBusCxxPointer<signal<T_return, T_arg1,T_arg2> > create_signal( const std::string& name )
00414 {
00415 DBusCxxPointer<DBus::signal<T_return, T_arg1,T_arg2> > sig;
00416 Interface::pointer iface = this->default_interface();
00417 if ( not iface ) iface = this->create_interface("");
00418 sig = iface->create_signal<T_return, T_arg1,T_arg2>(name);
00419 return sig;
00420 }
00421
00422 template <class T_return, class T_arg1,class T_arg2,class T_arg3>
00423 DBusCxxPointer<signal<T_return, T_arg1,T_arg2,T_arg3> > create_signal( const std::string& name )
00424 {
00425 DBusCxxPointer<DBus::signal<T_return, T_arg1,T_arg2,T_arg3> > sig;
00426 Interface::pointer iface = this->default_interface();
00427 if ( not iface ) iface = this->create_interface("");
00428 sig = iface->create_signal<T_return, T_arg1,T_arg2,T_arg3>(name);
00429 return sig;
00430 }
00431
00432 template <class T_return, class T_arg1,class T_arg2,class T_arg3,class T_arg4>
00433 DBusCxxPointer<signal<T_return, T_arg1,T_arg2,T_arg3,T_arg4> > create_signal( const std::string& name )
00434 {
00435 DBusCxxPointer<DBus::signal<T_return, T_arg1,T_arg2,T_arg3,T_arg4> > sig;
00436 Interface::pointer iface = this->default_interface();
00437 if ( not iface ) iface = this->create_interface("");
00438 sig = iface->create_signal<T_return, T_arg1,T_arg2,T_arg3,T_arg4>(name);
00439 return sig;
00440 }
00441
00442 template <class T_return, class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5>
00443 DBusCxxPointer<signal<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5> > create_signal( const std::string& name )
00444 {
00445 DBusCxxPointer<DBus::signal<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5> > sig;
00446 Interface::pointer iface = this->default_interface();
00447 if ( not iface ) iface = this->create_interface("");
00448 sig = iface->create_signal<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5>(name);
00449 return sig;
00450 }
00451
00452 template <class T_return, class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5,class T_arg6>
00453 DBusCxxPointer<signal<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6> > create_signal( const std::string& name )
00454 {
00455 DBusCxxPointer<DBus::signal<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6> > sig;
00456 Interface::pointer iface = this->default_interface();
00457 if ( not iface ) iface = this->create_interface("");
00458 sig = iface->create_signal<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6>(name);
00459 return sig;
00460 }
00461
00462 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>
00463 DBusCxxPointer<signal<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7> > create_signal( const std::string& name )
00464 {
00465 DBusCxxPointer<DBus::signal<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7> > sig;
00466 Interface::pointer iface = this->default_interface();
00467 if ( not iface ) iface = this->create_interface("");
00468 sig = iface->create_signal<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7>(name);
00469 return sig;
00470 }
00471
00472
00473 template <class T_return>
00474 DBusCxxPointer<signal<T_return> > create_signal( const std::string& iface, const std::string& name )
00475 {
00476 DBusCxxPointer<DBus::signal<T_return> > sig;
00477 if ( not has_interface(iface) ) this->create_interface(iface);
00478 sig = this->interface(iface)->create_signal<T_return>(name);
00479 return sig;
00480 }
00481
00482 template <class T_return, class T_arg1>
00483 DBusCxxPointer<signal<T_return, T_arg1> > create_signal( const std::string& iface, const std::string& name )
00484 {
00485 DBusCxxPointer<DBus::signal<T_return, T_arg1> > sig;
00486 if ( not has_interface(iface) ) this->create_interface(iface);
00487 sig = this->interface(iface)->create_signal<T_return, T_arg1>(name);
00488 return sig;
00489 }
00490
00491 template <class T_return, class T_arg1,class T_arg2>
00492 DBusCxxPointer<signal<T_return, T_arg1,T_arg2> > create_signal( const std::string& iface, const std::string& name )
00493 {
00494 DBusCxxPointer<DBus::signal<T_return, T_arg1,T_arg2> > sig;
00495 if ( not has_interface(iface) ) this->create_interface(iface);
00496 sig = this->interface(iface)->create_signal<T_return, T_arg1,T_arg2>(name);
00497 return sig;
00498 }
00499
00500 template <class T_return, class T_arg1,class T_arg2,class T_arg3>
00501 DBusCxxPointer<signal<T_return, T_arg1,T_arg2,T_arg3> > create_signal( const std::string& iface, const std::string& name )
00502 {
00503 DBusCxxPointer<DBus::signal<T_return, T_arg1,T_arg2,T_arg3> > sig;
00504 if ( not has_interface(iface) ) this->create_interface(iface);
00505 sig = this->interface(iface)->create_signal<T_return, T_arg1,T_arg2,T_arg3>(name);
00506 return sig;
00507 }
00508
00509 template <class T_return, class T_arg1,class T_arg2,class T_arg3,class T_arg4>
00510 DBusCxxPointer<signal<T_return, T_arg1,T_arg2,T_arg3,T_arg4> > create_signal( const std::string& iface, const std::string& name )
00511 {
00512 DBusCxxPointer<DBus::signal<T_return, T_arg1,T_arg2,T_arg3,T_arg4> > sig;
00513 if ( not has_interface(iface) ) this->create_interface(iface);
00514 sig = this->interface(iface)->create_signal<T_return, T_arg1,T_arg2,T_arg3,T_arg4>(name);
00515 return sig;
00516 }
00517
00518 template <class T_return, class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5>
00519 DBusCxxPointer<signal<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5> > create_signal( const std::string& iface, const std::string& name )
00520 {
00521 DBusCxxPointer<DBus::signal<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5> > sig;
00522 if ( not has_interface(iface) ) this->create_interface(iface);
00523 sig = this->interface(iface)->create_signal<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5>(name);
00524 return sig;
00525 }
00526
00527 template <class T_return, class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5,class T_arg6>
00528 DBusCxxPointer<signal<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6> > create_signal( const std::string& iface, const std::string& name )
00529 {
00530 DBusCxxPointer<DBus::signal<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6> > sig;
00531 if ( not has_interface(iface) ) this->create_interface(iface);
00532 sig = this->interface(iface)->create_signal<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6>(name);
00533 return sig;
00534 }
00535
00536 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>
00537 DBusCxxPointer<signal<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7> > create_signal( const std::string& iface, const std::string& name )
00538 {
00539 DBusCxxPointer<DBus::signal<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7> > sig;
00540 if ( not has_interface(iface) ) this->create_interface(iface);
00541 sig = this->interface(iface)->create_signal<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7>(name);
00542 return sig;
00543 }
00544
00545
00546
00547 const Children& children() const;
00548
00549 Object::pointer child(const std::string& name) const;
00550
00551 bool add_child(const std::string& name, Object::pointer child);
00552
00553 bool remove_child(const std::string& name);
00554
00555 bool has_child(const std::string& name) const;
00556
00558 std::string introspect(int space_depth=0) const;
00559
00560 sigc::signal<void,Interface::pointer> signal_interface_added();
00561
00562 sigc::signal<void,Interface::pointer> signal_interface_removed();
00563
00564 sigc::signal<void,Interface::pointer,Interface::pointer> signal_default_interface_changed();
00565
00566 virtual HandlerResult handle_message( DBusCxxPointer<Connection>, Message::const_pointer );
00567
00568 protected:
00569
00570 Children m_children;
00571
00572 mutable pthread_rwlock_t m_interfaces_rwlock;
00573
00574 pthread_mutex_t m_name_mutex;
00575
00576 Interfaces m_interfaces;
00577
00578 Interface::pointer m_default_interface;
00579
00580 sigc::signal<void,Interface::pointer,Interface::pointer> m_signal_default_interface_changed;
00581
00582 sigc::signal<void,Interface::pointer> m_signal_interface_added;
00583
00584 sigc::signal<void,Interface::pointer> m_signal_interface_removed;
00585
00586 typedef std::map<Interface::pointer,sigc::connection> InterfaceSignalNameConnections;
00587
00588 InterfaceSignalNameConnections m_interface_signal_name_connections;
00589
00590 void on_interface_name_changed(const std::string& oldname, const std::string& newname, Interface::pointer interface);
00591
00592 };
00593
00594 }
00595
00596 #endif