Reformat: delete trailing whitespace
[metaproxy-moved-to-github.git] / include / metaproxy / package.hpp
index 69fbcb7..ffb1f6e 100644 (file)
@@ -1,5 +1,5 @@
 /* This file is part of Metaproxy.
-   Copyright (C) 2005-2010 Index Data
+   Copyright (C) 2005-2012 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,15 +27,16 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 #include "filter.hpp"
 #include "session.hpp"
 #include "origin.hpp"
+#include <boost/shared_ptr.hpp>
 
 namespace metaproxy_1 {
     class Package;
 }
 
 
-namespace std 
+namespace std
 {
-    std::ostream& operator<<(std::ostream& os, metaproxy_1::Package& p);
+    std::ostream& operator<<(std::ostream& os, const metaproxy_1::Package& p);
 }
 
 namespace metaproxy_1 {
@@ -45,30 +46,30 @@ 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 & origin(const Origin & origin);
 
         /// set function - can be chained
         Package & router(const Router &router);
@@ -76,25 +77,31 @@ namespace metaproxy_1 {
         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, ...);
+        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<PackageLogger> 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: