+/* $Id: package.hpp,v 1.14 2006-01-11 11:51:50 adam Exp $
+ Copyright (c) 2005, Index Data.
-#ifndef PACKAGE_HPP
-#define PACKAGE_HPP
+%LICENSE%
+ */
+
+#ifndef YP2_PACKAGE_HPP
+#define YP2_PACKAGE_HPP
#include <iostream>
#include <stdexcept>
public:
Origin() : type(API) {};
};
-
+
class Package {
public:
+ Package();
+
+ ~Package();
- Package(yp2::Session &session, yp2::Origin &origin)
- : m_session(session), m_origin(origin),
- m_filter(0), m_router(0), m_data(0) {}
+ Package(yp2::Session &session, yp2::Origin &origin);
- Package & copy_filter(const Package &p) {
- m_router = p.m_router;
- m_filter = p.m_filter;
- return *this;
- }
+ Package & copy_filter(const Package &p);
/// send Package to it's next Filter defined in Router
- Package & move() {
- m_filter = m_router->move(m_filter, this);
- if (m_filter)
- return m_filter->process(*this);
- else
- return *this;
- }
+ void move();
+
+ /// send Package to other route
+ void move(std::string route);
/// access session - left val in assignment
- yp2::Session & session() {
- return m_session;
- }
+ yp2::Session & session();
/// get function - right val in assignment
- unsigned int data() const {
- return m_data;
- }
-
+ int data() const;
+
/// set function - left val in assignment
- unsigned int & data() {
- return m_data;
- }
+ int & data();
/// set function - can be chained
- Package & data(const unsigned int & data){
- m_data = data;
- return *this;
- }
-
+ Package & data(const int & data);
/// get function - right val in assignment
- Origin origin() const {
- return m_origin;
- }
+ Origin origin() const;
/// set function - left val in assignment
- Origin & origin() {
- return m_origin;
- }
+ Origin & origin();
/// set function - can be chained
- Package & origin(const Origin & origin){
- m_origin = origin;
- return *this;
- }
-
- Package & router(const Router &router){
- m_filter = 0;
- m_router = &router;
- return *this;
- }
-
- yazpp_1::GDU &request() {
- return m_request_gdu;
- }
-
- yazpp_1::GDU &response() {
- return m_response_gdu;
- }
+ Package & origin(const Origin & origin);
+
+ Package & router(const Router &router);
+
+ yazpp_1::GDU &request();
+
+ yazpp_1::GDU &response();
/// get function - right val in assignment
- Session session() const {
- return m_session;
- }
+ Session session() const;
private:
Session m_session;
Origin m_origin;
-
- const Filter *m_filter;
- const Router *m_router;
- unsigned int m_data;
+
+ RoutePos *m_route_pos;
+
+ int m_data;
yazpp_1::GDU m_request_gdu;
yazpp_1::GDU m_response_gdu;
* Local variables:
* c-basic-offset: 4
* indent-tabs-mode: nil
+ * c-file-style: "stroustrup"
* End:
* vim: shiftwidth=4 tabstop=8 expandtab
*/