Add GDU in Package class. Use classes Origin and Session
authorAdam Dickmeiss <adam@indexdata.dk>
Thu, 13 Oct 2005 10:33:11 +0000 (10:33 +0000)
committerAdam Dickmeiss <adam@indexdata.dk>
Thu, 13 Oct 2005 10:33:11 +0000 (10:33 +0000)
src/package.hpp
src/test_filter2.cpp

index a4924dd..eaa370d 100644 (file)
@@ -3,15 +3,28 @@
 #define PACKAGE_HPP
 
 #include <stdexcept>
+#include <yaz++/gdu.h>
 
+#include "session.hpp"
 
 namespace yp2 {
-  
-  class Package {
-  public:
+    
+    class Origin {
+        enum origin_t {
+            API,
+            UNIX,
+            TCPIP
+        } type;
+        std::string address; // UNIX+TCPIP
+        int port;            // TCPIP only
+    };
+    
+    class Package {
+    public:
       
-      Package(unsigned long int id = 0, bool close = 0) 
-          : m_session_id(id),  m_session_close(close),
+
+      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
@@ -24,16 +37,10 @@ namespace yp2 {
           }
       
 
-      /// 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;
+      /// access session - left val in assignment
+      yp2::Session & session() {
+          return m_session;
       }
-   
 
       /// get function - right val in assignment
       unsigned int data() const {
@@ -52,6 +59,23 @@ namespace yp2 {
       }
       
 
+      /// 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;
       //}
@@ -69,11 +93,17 @@ namespace yp2 {
 
       
   private:
-      unsigned long int m_session_id;
-      bool m_session_close;
+      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;
   };
   
 
index f4a9b3e..e2ee322 100644 (file)
@@ -46,29 +46,30 @@ BOOST_AUTO_TEST_CASE( testfilter2 )
            router1.rule(fc);
            
            router1.rule(fd);
+
+            yp2::Session session;
+            yp2::Origin origin;
+           yp2::Package pack_in(session, origin);
            
-           yp2::Package pack_in;
-           
-           yp2::Package pack_out;
-           
-           pack_out = pack_in.router(router1).move(); 
+           yp2::Package pack_out = pack_in.router(router1).move(); 
            
             BOOST_CHECK (pack_out.data() == 2468);
             
         }
         
         {
-            
            yp2::RouterChain router2;
            
            router2.rule(fd);
            router2.rule(fc);
            
-           yp2::Package pack_in;
-           
-           yp2::Package pack_out;
-           
-           pack_out = pack_in.router(router2).move();
+            yp2::Session session;
+            yp2::Origin origin;
+           yp2::Package pack_in(session, origin);
+        
+           yp2::Package pack_out(session, origin);
+
+            pack_out = pack_in.router(router2).move();
      
             BOOST_CHECK (pack_out.data() == 1234);