superflous member int m_data removed from Package class
[metaproxy-moved-to-github.git] / src / package.hpp
1 /* $Id: package.hpp,v 1.23 2006-09-14 19:53:57 marc Exp $
2    Copyright (c) 2005-2006, Index Data.
3
4    See the LICENSE file for details
5  */
6
7 #ifndef YP2_PACKAGE_HPP
8 #define YP2_PACKAGE_HPP
9
10 #include <iosfwd>
11 #include <stdexcept>
12 #include <yazpp/gdu.h>
13
14 #include "router.hpp"
15 #include "filter.hpp"
16 #include "session.hpp"
17
18 namespace metaproxy_1
19 {
20     class Origin;
21     class Package;
22 }
23
24
25 namespace std 
26 {
27     std::ostream& operator<<(std::ostream& os, metaproxy_1::Origin& o);
28     std::ostream& operator<<(std::ostream& os, metaproxy_1::Package& p);
29 }
30
31 namespace metaproxy_1 {
32     
33     class Origin {
34         friend std::ostream& 
35         std::operator<<(std::ostream& os,  metaproxy_1::Origin& o);
36
37         enum origin_t {
38             API,
39             UNIX,
40             TCPIP
41         } type;
42         std::string address; // UNIX+TCPIP
43         unsigned long origin_id;
44     public:
45         Origin();
46         void set_tcpip_address(std::string addr, unsigned long id);
47     };
48
49     class Package {
50     public:
51         Package();
52
53         ~Package();
54         
55         Package(metaproxy_1::Session &session, 
56                 const metaproxy_1::Origin &origin);
57
58         Package & copy_filter(const Package &p);
59
60         /// send Package to it's next Filter defined in Router
61         void move();
62
63         /// send Package to other route
64         void move(std::string route);
65         
66         /// access session - left val in assignment
67         metaproxy_1::Session & session();
68         
69         /// get function - right val in assignment
70         Origin origin() const;
71         
72         /// set function - left val in assignment
73         Origin & origin();
74         
75         /// set function - can be chained
76         Package & origin(const Origin & origin);
77
78         Package & router(const Router &router);
79
80         yazpp_1::GDU &request();
81
82         yazpp_1::GDU &response();
83                 
84         /// get function - right val in assignment
85         Session session() const;
86         
87     private:
88         Session m_session;
89         Origin m_origin;
90
91         RoutePos *m_route_pos;
92
93         //int m_data;
94         
95         yazpp_1::GDU m_request_gdu;
96         yazpp_1::GDU m_response_gdu;
97     };
98 }
99
100
101
102 #endif
103 /*
104  * Local variables:
105  * c-basic-offset: 4
106  * indent-tabs-mode: nil
107  * c-file-style: "stroustrup"
108  * End:
109  * vim: shiftwidth=4 tabstop=8 expandtab
110  */