Add LICENSE file and Refer to it from the source. Include license material
[metaproxy-moved-to-github.git] / src / package.cpp
1 /* $Id: package.cpp,v 1.8 2006-06-10 14:29:12 adam Exp $
2    Copyright (c) 2005-2006, Index Data.
3
4    See the LICENSE file for details
5  */
6
7 #include "config.hpp"
8
9 #include "package.hpp"
10
11 namespace mp = metaproxy_1;
12
13 mp::Package::Package() 
14     : m_route_pos(0), m_data(0)
15 {
16 }
17
18 mp::Package::~Package()
19 {
20     delete m_route_pos;
21 }
22
23 mp::Package::Package(mp::Session &session, mp::Origin &origin) 
24     : m_session(session), m_origin(origin),
25       m_route_pos(0), m_data(0)
26 {
27 }
28
29 mp::Package & mp::Package::copy_filter(const Package &p)
30 {
31     m_route_pos = p.m_route_pos->clone();
32     return *this;
33 }
34
35
36 void mp::Package::move()
37 {
38     if (m_route_pos)
39     {
40         const filter::Base *next_filter = m_route_pos->move(0);
41         if (next_filter)
42             next_filter->process(*this);
43     }
44 }
45
46 void mp::Package::move(std::string route)
47 {
48     if (m_route_pos)
49     {
50         const char *r_cstr = route.length() ? route.c_str() : 0;
51         const filter::Base *next_filter = m_route_pos->move(r_cstr);
52         if (next_filter)
53             next_filter->process(*this);
54     }
55 }
56
57
58 mp::Session & mp::Package::session()
59 {
60     return m_session;
61 }
62
63
64 int mp::Package::data() const
65 {
66     return m_data;
67 }
68
69 int & mp::Package::data()
70 {
71     return m_data;
72 }
73         
74 mp::Package & mp::Package::data(const int & data)
75 {
76     m_data = data;
77     return *this;
78 }
79
80 mp::Origin mp::Package::origin() const 
81 {
82     return m_origin;
83 }
84         
85 mp::Origin & mp::Package::origin()
86 {
87     return m_origin;
88 }
89
90 mp::Package & mp::Package::origin(const Origin & origin)
91 {
92     m_origin = origin;
93     return *this;
94 }
95
96 mp::Package & mp::Package::router(const mp::Router &router)
97 {
98     m_route_pos = router.createpos();
99     return *this;
100 }
101
102 yazpp_1::GDU &mp::Package::request()
103 {
104     return m_request_gdu;
105 }
106
107
108 yazpp_1::GDU &mp::Package::response()
109 {
110     return m_response_gdu;
111 }
112
113 mp::Session mp::Package::session() const
114 {
115     return m_session;
116 }
117                 
118 /*
119  * Local variables:
120  * c-basic-offset: 4
121  * indent-tabs-mode: nil
122  * c-file-style: "stroustrup"
123  * End:
124  * vim: shiftwidth=4 tabstop=8 expandtab
125  */