X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=include%2Fmetaproxy%2Fpackage.hpp;h=caea95071232dc4210a38afcbf60983457e31e40;hb=699075159011e4fd3e0e37f58579201b4630de46;hp=d256bc7b2ed084da7bb170a94758600d26b1c467;hpb=f1593e31882800fcfc3dad7d3ec42e709754128d;p=metaproxy-moved-to-github.git diff --git a/include/metaproxy/package.hpp b/include/metaproxy/package.hpp index d256bc7..caea950 100644 --- a/include/metaproxy/package.hpp +++ b/include/metaproxy/package.hpp @@ -1,5 +1,5 @@ /* This file is part of Metaproxy. - Copyright (C) 2005-2011 Index Data + Copyright (C) 2005-2013 Index 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 @@ -27,13 +27,14 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #include "filter.hpp" #include "session.hpp" #include "origin.hpp" +#include namespace metaproxy_1 { class Package; } -namespace std +namespace std { std::ostream& operator<<(std::ostream& os, const metaproxy_1::Package& p); } @@ -45,51 +46,62 @@ namespace metaproxy_1 { Package(); ~Package(); - - Package(metaproxy_1::Session &session, + + Package(metaproxy_1::Session &session, const metaproxy_1::Origin &origin); - /// shallow copy constructor which only copies the filter chain info + /// copy constructor which copies route pos + logger Package & copy_filter(const Package &p); + /// copy constructor which only copies the filter chain info + void copy_route(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 & router(const Router &router); yazpp_1::GDU &request(); yazpp_1::GDU &response(); - + /// get function - right val in assignment Session session() const; - void log(const char *module, int level, const char *fmt, ...) const; + void log(const char *module, int level, const char *fmt, ...); + void log_write(const char *buf, size_t sz); + void log_enable(void); + void log_reset(std::string &res); + + class PackageLogger; + typedef boost::shared_ptr PackageLoggerPtr; + private: Session m_session; Origin m_origin; RoutePos *m_route_pos; - //int m_data; - + PackageLoggerPtr p_logger; + yazpp_1::GDU m_request_gdu; yazpp_1::GDU m_response_gdu; }; } - - #endif /* * Local variables: