X-Git-Url: http://sru.miketaylor.org.uk/?a=blobdiff_plain;f=src%2Fpackage.hpp;h=8545c437d7a27e4db0ee5f7af2e021c081a369bc;hb=f82b19f2b93707657fee804bd1242f2548d51ada;hp=719aaf593ad2a2055a5402b50ddc4592d846e676;hpb=c3c716e784b76e911dcb43cff74fa11af6d8853b;p=metaproxy-moved-to-github.git diff --git a/src/package.hpp b/src/package.hpp index 719aaf5..8545c43 100644 --- a/src/package.hpp +++ b/src/package.hpp @@ -1,7 +1,13 @@ +/* $Id: package.hpp,v 1.9 2005-10-15 14:09:09 adam Exp $ + Copyright (c) 2005, Index Data. + +%LICENSE% + */ #ifndef PACKAGE_HPP #define PACKAGE_HPP +#include #include #include @@ -25,18 +31,24 @@ namespace yp2 { class Package { public: + Package() + : m_filter(0), m_router(0), m_data(0) {} Package(yp2::Session &session, yp2::Origin &origin) : m_session(session), m_origin(origin), m_filter(0), m_router(0), m_data(0) {} - + + Package & copy_filter(const Package &p) { + m_router = p.m_router; + m_filter = p.m_filter; + return *this; + } + /// send Package to it's next Filter defined in Router - Package & move() { + void move() { m_filter = m_router->move(m_filter, this); if (m_filter) - return m_filter->process(*this); - else - return *this; + m_filter->process(*this); } /// access session - left val in assignment @@ -82,12 +94,25 @@ namespace yp2 { m_router = &router; return *this; } + + yazpp_1::GDU &request() { + return m_request_gdu; + } + + yazpp_1::GDU &response() { + return m_response_gdu; + } + /// get function - right val in assignment + Session session() const { + return m_session; + } + private: Session m_session; Origin m_origin; - const Filter *m_filter; + const filter::Base *m_filter; const Router *m_router; unsigned int m_data; @@ -101,6 +126,7 @@ namespace yp2 { * Local variables: * c-basic-offset: 4 * indent-tabs-mode: nil + * c-file-style: "stroustrup" * End: * vim: shiftwidth=4 tabstop=8 expandtab */