1
#if !defined(RESIP_REQUEST_PROCESSOR_CHAIN_HXX)
2
#define RESIP_REQUEST_PROCESSOR_CHAIN_HXX
6
#include "repro/Processor.hxx"
7
#include "rutil/resipfaststreams.hxx"
11
class ProcessorChain : public Processor
14
ProcessorChain(ChainType type);
15
virtual ~ProcessorChain();
17
void addProcessor(std::auto_ptr<Processor>);
19
virtual processor_action_t process(RequestContext &);
21
typedef std::vector<Processor*> Chain;
23
virtual void setChainType(ChainType type);
25
virtual void pushAddress(const std::vector<short>& address);
26
virtual void pushAddress(const short address);
31
friend EncodeStream &operator<<(EncodeStream &os, const repro::ProcessorChain &pc);
34
EncodeStream &operator<<(EncodeStream &os, const repro::ProcessorChain &pc);
38
/* ====================================================================
39
* The Vovida Software License, Version 1.0
41
* Copyright (c) 2000 Vovida Networks, Inc. All rights reserved.
43
* Redistribution and use in source and binary forms, with or without
44
* modification, are permitted provided that the following conditions
47
* 1. Redistributions of source code must retain the above copyright
48
* notice, this list of conditions and the following disclaimer.
50
* 2. Redistributions in binary form must reproduce the above copyright
51
* notice, this list of conditions and the following disclaimer in
52
* the documentation and/or other materials provided with the
55
* 3. The names "VOCAL", "Vovida Open Communication Application Library",
56
* and "Vovida Open Communication Application Library (VOCAL)" must
57
* not be used to endorse or promote products derived from this
58
* software without prior written permission. For written
59
* permission, please contact vocal@vovida.org.
61
* 4. Products derived from this software may not be called "VOCAL", nor
62
* may "VOCAL" appear in their name, without prior written
63
* permission of Vovida Networks, Inc.
65
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED
66
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
67
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND
68
* NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL VOVIDA
69
* NETWORKS, INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT DAMAGES
70
* IN EXCESS OF $1,000, NOR FOR ANY INDIRECT, INCIDENTAL, SPECIAL,
71
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
72
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
73
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
74
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
75
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
76
* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
79
* ====================================================================
81
* This software consists of voluntary contributions made by Vovida
82
* Networks, Inc. and many individuals on behalf of Vovida Networks,
83
* Inc. For more information on Vovida Networks, Inc., please see
84
* <http://www.vovida.org/>.