metaproxy 1.22.4
metaproxy_1::RouterFleXML Class Reference

#include <router_flexml.hpp>

Inheritance diagram for metaproxy_1::RouterFleXML:
Inheritance graph
Collaboration diagram for metaproxy_1::RouterFleXML:
Collaboration graph

Classes

class  Route
class  Rep
class  Pos

Public Member Functions

 RouterFleXML (std::string xmlconf, metaproxy_1::FactoryFilter &factory, bool test_only)
 RouterFleXML (xmlDocPtr doc, metaproxy_1::FactoryFilter &factory, bool test_only, const char *file_include_path)
 ~RouterFleXML ()
virtual RoutePos * createpos () const
void start ()
void stop (int signo)

Private Attributes

boost::scoped_ptr< Rep > m_p

Detailed Description

Definition at line 32 of file router_flexml.hpp.

Constructor & Destructor Documentation

◆ RouterFleXML() [1/2]

metaproxy_1::RouterFleXML::RouterFleXML ( std::string xmlconf,
metaproxy_1::FactoryFilter & factory,
bool test_only )

Definition at line 428 of file router_flexml.cpp.

430 : m_p(new Rep)
431{
432 xmlDocPtr doc = xmlParseMemory(xmlconf.c_str(),
433 xmlconf.size());
434 if (!doc)
435 throw mp::XMLError("xmlParseMemory failed");
436 else
437 {
438 m_p->base(doc, factory, test_only, 0);
439 xmlFreeDoc(doc);
440 }
441}
boost::scoped_ptr< Rep > m_p

References m_p.

◆ RouterFleXML() [2/2]

metaproxy_1::RouterFleXML::RouterFleXML ( xmlDocPtr doc,
metaproxy_1::FactoryFilter & factory,
bool test_only,
const char * file_include_path )

Definition at line 421 of file router_flexml.cpp.

423 : m_p(new Rep)
424{
425 m_p->base(doc, factory, test_only, file_include_path);
426}

References m_p.

◆ ~RouterFleXML()

metaproxy_1::RouterFleXML::~RouterFleXML ( )

Definition at line 443 of file router_flexml.cpp.

444{
445}

Member Function Documentation

◆ createpos()

mp::RoutePos * metaproxy_1::RouterFleXML::createpos ( ) const
virtual

Definition at line 466 of file router_flexml.cpp.

467{
468 mp::RouterFleXML::Pos *p = new mp::RouterFleXML::Pos;
469
470 p->m_route_it = m_p->m_routes.find(m_p->m_start_route);
471 if (p->m_route_it == m_p->m_routes.end())
472 {
473 delete p;
474 return 0;
475 }
476 p->m_filter_it = p->m_route_it->second.m_list.begin();
477 p->m_p = m_p.get();
478 return p;
479}
mp::RouterFleXML::Rep * m_p
std::list< boost::shared_ptr< constmp::filter::Base > >::iterator m_filter_it
std::map< std::string, RouterFleXML::Route >::iterator m_route_it

References metaproxy_1::RouterFleXML::Pos::m_filter_it, m_p, metaproxy_1::RouterFleXML::Pos::m_p, and metaproxy_1::RouterFleXML::Pos::m_route_it.

◆ start()

void metaproxy_1::RouterFleXML::start ( )

Definition at line 495 of file router_flexml.cpp.

496{
497 std::map<std::string,RouterFleXML::Route>::iterator route_it;
498
499 route_it = m_p->m_routes.begin();
500 while (route_it != m_p->m_routes.end())
501 {
502 RouterFleXML::Route route = route_it->second;
503
504 std::list<boost::shared_ptr<const mp::filter::Base> >::iterator it;
505
506 for (it = route.m_list.begin(); it != route.m_list.end(); it++)
507 (*it)->start();
508 route_it++;
509 }
510}

References metaproxy_1::RouterFleXML::Route::m_list, and m_p.

◆ stop()

void metaproxy_1::RouterFleXML::stop ( int signo)

Definition at line 512 of file router_flexml.cpp.

513{
514 std::map<std::string,RouterFleXML::Route>::iterator route_it;
515
516 route_it = m_p->m_routes.begin();
517 while (route_it != m_p->m_routes.end())
518 {
519 RouterFleXML::Route route = route_it->second;
520
521 std::list<boost::shared_ptr<const mp::filter::Base> >::iterator it;
522
523 for (it = route.m_list.begin(); it != route.m_list.end(); it++)
524 (*it)->stop(signo);
525 route_it++;
526 }
527}

References metaproxy_1::RouterFleXML::Route::m_list, and m_p.

Member Data Documentation

◆ m_p

boost::scoped_ptr<Rep> metaproxy_1::RouterFleXML::m_p
private

Definition at line 49 of file router_flexml.hpp.

Referenced by createpos(), RouterFleXML(), RouterFleXML(), start(), and stop().


The documentation for this class was generated from the following files: