X-Git-Url: http://sru.miketaylor.org.uk/?a=blobdiff_plain;f=src%2Fpackage.hpp;h=69fbcb77084d0f38aef649478b35418157d3d862;hb=6afc47267f76271433a958b94b2f534dd347c18e;hp=a4924ddf39bb46c25b188d7791f62b8edc8b3bb3;hpb=7969e482bd427717e116917116e52958432a9c16;p=metaproxy-moved-to-github.git diff --git a/src/package.hpp b/src/package.hpp index a4924dd..69fbcb7 100644 --- a/src/package.hpp +++ b/src/package.hpp @@ -1,90 +1,107 @@ +/* This file is part of Metaproxy. + Copyright (C) 2005-2010 Index Data -#ifndef PACKAGE_HPP -#define PACKAGE_HPP - -#include - - -namespace yp2 { - - class Package { - public: - - Package(unsigned long int id = 0, bool close = 0) - : m_session_id(id), m_session_close(close), - 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; - } - - - /// get function - right val in assignment - unsigned int session_id() const { - return m_session_id; - } - - /// get function - right val in assignment - unsigned int session_close() const { - return m_session_close; - } - - - /// 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; - } - - - //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: - unsigned long int m_session_id; - bool m_session_close; - const Filter *m_filter; - const Router *m_router; - unsigned int m_data; - }; - - - +Metaproxy is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 2, or (at your option) any later +version. + +Metaproxy is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#ifndef YP2_PACKAGE_HPP +#define YP2_PACKAGE_HPP + +#include + +#include + +#include "router.hpp" +#include "filter.hpp" +#include "session.hpp" +#include "origin.hpp" + +namespace metaproxy_1 { + class Package; } + +namespace std +{ + std::ostream& operator<<(std::ostream& os, metaproxy_1::Package& p); +} + +namespace metaproxy_1 { + + class Package { + public: + Package(); + + ~Package(); + + Package(metaproxy_1::Session &session, + const metaproxy_1::Origin &origin); + + /// shallow copy constructor which only copies the filter chain info + Package & copy_filter(const Package &p); + + /// send Package to it's next Filter defined in Router + void move(); + + /// send Package to other route + void move(std::string route); + + /// access session - left val in assignment + metaproxy_1::Session & session(); + + /// get function - right val in assignment + Origin origin() const; + + /// set function - left val in assignment + Origin & origin(); + + /// set function - can be chained + Package & origin(const Origin & origin); + + /// set function - can be chained + Package & router(const Router &router); + + yazpp_1::GDU &request(); + + yazpp_1::GDU &response(); + + /// get function - right val in assignment + Session session() const; + + private: + Session m_session; + Origin m_origin; + + RoutePos *m_route_pos; + + //int m_data; + + yazpp_1::GDU m_request_gdu; + yazpp_1::GDU m_response_gdu; + }; +} + + + #endif /* * Local variables: * c-basic-offset: 4 + * c-file-style: "Stroustrup" * indent-tabs-mode: nil * End: * vim: shiftwidth=4 tabstop=8 expandtab */ +