-
- // send package to it's next filter defined in chain
- void move() {
- Filter oldfilter;
- Filter nextfilter = m_router.route(oldfilter, *this);
- nextfilter.process(*this);
- }
-
-
- // get function - returns copy and keeps object const,
- // thus is right val in assignment
- unsigned int data() const {
- return m_data;
- }
- // set function - returns reference and changes object,
- // thus is left val in assignment
- unsigned int & data() {
- return m_data;
- }
-
- // more traditional set function, taking const reference
- // or copy (here const ref for demo), returning ref to object
- // can be chained with other similar functions!
- Package & data(const unsigned int & data){
- m_data = data;
- return *this;
- }
-
- // get function - returns copy and keeps object const,
- // thus is right val in assignment
- Router router() const {
- return m_router;
- }
- // set function - returns reference and changes object,
- // thus is left val in assignment
- Router & router() {
- return m_router;
- }
- // more traditional set function, taking const reference
- // or copy (here const ref for demo), returning ref to object
- // can be chained with other similar functions!
- Package & router(const Router & router){
- m_router = router;
- return *this;
- }
-
+
+ Package(unsigned long int id = 0, bool close = 0)
+ : m_session_id(id), m_session_close(close),
+ m_filter(0), m_router(0), m_data(0) {}
+
+ /// 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;
+ }
+
+
+ /// 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;
+ }
+
+
+ /// get function - right val in assignment
+ unsigned int data() const {
+ return m_data;
+ }
+
+ /// set function - left val in assignment
+ unsigned int & data() {
+ return m_data;
+ }
+
+ /// set function - can be chained
+ Package & data(const unsigned int & data){
+ m_data = data;
+ return *this;
+ }
+
+
+ //Router router() const {
+ // return m_router;
+ //}
+
+ //Router & router() {
+ // return m_router;
+ //}
+
+ /// set function - can be chained
+ Package & router(const Router &router){
+ m_filter = 0;
+ m_router = &router;
+ return *this;
+ }
+
+