X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=src%2Fpackage.hpp;h=8545c437d7a27e4db0ee5f7af2e021c081a369bc;hb=c5f2b2f7158164cc047cdaf9935e27a33dcf4e5a;hp=eaa370da13c9af894128fdb76a4c243c945355ad;hpb=283537fd130e56aa77410b47092dea16be47b108;p=metaproxy-moved-to-github.git diff --git a/src/package.hpp b/src/package.hpp index eaa370d..8545c43 100644 --- a/src/package.hpp +++ b/src/package.hpp @@ -1,10 +1,18 @@ +/* $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 +#include "router.hpp" +#include "filter.hpp" #include "session.hpp" namespace yp2 { @@ -17,97 +25,100 @@ namespace yp2 { } type; std::string address; // UNIX+TCPIP int port; // TCPIP only + public: + Origin() : type(API) {}; }; class Package { public: - - - Package(yp2::Session &session, yp2::Origin &origin) - : m_session(session), m_origin(origin), - m_filter(0), m_router(0), m_data(0) {} - - /// send Package to it's next Filter defined in Router - Package & move() { - m_filter = m_router->move(m_filter, this); - if (m_filter) - return m_filter->process(*this); - else - return *this; - } - - - /// access session - left val in assignment - yp2::Session & session() { - return m_session; - } - - /// get function - right val in assignment - unsigned int data() const { - return m_data; - } - - /// set function - left val in assignment - unsigned int & data() { - return m_data; - } - - /// set function - can be chained - Package & data(const unsigned int & data){ - m_data = data; - return *this; - } - - - /// get function - right val in assignment - Origin origin() const { - return m_origin; - } - - /// set function - left val in assignment - Origin & origin() { - return m_origin; - } - - /// set function - can be chained - Package & origin(const Origin & origin){ - m_origin = origin; - return *this; - } - - - //Router router() const { - // return m_router; - //} - - //Router & router() { - // return m_router; - //} - - /// set function - can be chained - Package & router(const Router &router){ - m_filter = 0; - m_router = &router; - return *this; - } - - - private: - Session m_session; -// unsigned long int m_session_id; -// bool m_session_close; - Origin m_origin; - - const Filter *m_filter; - const Router *m_router; - unsigned int m_data; - - yazpp_1::GDU m_request_gdu; - yazpp_1::GDU m_response_gdu; - }; - - - + 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 + void move() { + m_filter = m_router->move(m_filter, this); + if (m_filter) + m_filter->process(*this); + } + + /// access session - left val in assignment + yp2::Session & session() { + return m_session; + } + + /// get function - right val in assignment + unsigned int data() const { + return m_data; + } + + /// set function - left val in assignment + unsigned int & data() { + return m_data; + } + + /// set function - can be chained + Package & data(const unsigned int & data){ + m_data = data; + return *this; + } + + + /// get function - right val in assignment + Origin origin() const { + return m_origin; + } + + /// set function - left val in assignment + Origin & origin() { + return m_origin; + } + + /// set function - can be chained + Package & origin(const Origin & origin){ + m_origin = origin; + return *this; + } + + Package & router(const Router &router){ + m_filter = 0; + 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::Base *m_filter; + const Router *m_router; + unsigned int m_data; + + yazpp_1::GDU m_request_gdu; + yazpp_1::GDU m_response_gdu; + }; } #endif @@ -115,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 */