reSIProcate
SIP stack, Dialog Usage Manager and related libraries
Loading...
Searching...
No Matches
ReproRunner.hxx
Go to the documentation of this file.
1#if !defined(RESIP_REPRORUNNER_HXX)
2#define RESIP_REPRORUNNER_HXX
3
4#include "rutil/Data.hxx"
9#include <memory>
10
12#include "repro/Plugin.hxx"
13
14
15namespace resip
16{
17 class TransactionUser;
18 class SipStack;
19 class Dispatcher;
20 class RegistrationPersistenceManager;
21 class PublicationPersistenceManager;
22 class FdPollGrp;
23 class AsyncProcessHandler;
24 class ThreadIf;
25 class DialogUsageManager;
26 class CongestionManager;
27}
28
29namespace repro
30{
31class ProxyConfig;
32class ProcessorChain;
33class AbstractDb;
34class ProcessorChain;
35class Proxy;
36class WebAdmin;
37class WebAdminThread;
38class Registrar;
39class CertServer;
40class RegSyncClient;
41class RegSyncServer;
42class RegSyncServerThread;
43class CommandServer;
44class CommandServerThread;
45class Processor;
46class PresenceServer;
47
50
51{
52public:
54 virtual ~ReproRunner();
55
56 virtual bool run(int argc, char** argv);
57 virtual void shutdown();
58 virtual void restart(); // brings everydown and then backup again - leaves InMemoryRegistrationDb intact
59 virtual void onReload();
60
61 virtual Proxy* getProxy() { return mProxy; }
62
63 // External Stats handler
65
66protected:
67 virtual void cleanupObjects();
68
69 virtual bool loadPlugins();
70 virtual void setOpenSSLCTXOptionsFromConfig(const resip::Data& configVar, long& opts);
71 virtual bool createSipStack();
72 virtual bool createDatastore();
73 virtual bool createProxy();
74 virtual void populateRegistrations();
75 virtual bool createWebAdmin();
76 virtual void createAuthenticatorFactory();
77 virtual void createDialogUsageManager();
78 virtual void createRegSync();
79 virtual void createCommandServer();
80
81 virtual void initDomainMatcher();
82 virtual void addDomains(resip::TransactionUser& tu);
84 // Override this and examine the processor name to selectively add custom processors before or after the standard ones
85 virtual void addProcessor(repro::ProcessorChain& chain, std::unique_ptr<repro::Processor> processor);
89
92 int mArgc;
93 char** mArgv;
96 bool mUseV4;
97 bool mUseV6;
114 std::list<WebAdmin*> mWebAdminList;
126 std::list<CommandServer*> mCommandServerList;
129#ifdef DSO_PLUGINS
130 std::shared_ptr<ReproPluginManager> mPluginManager;
131#endif
132 typedef std::map<unsigned int, resip::NameAddr> TransportRecordRouteMap;
134 std::shared_ptr<resip::DomainMatcher> mDomainMatcher;
136};
137
138}
139#endif
140
141/* ====================================================================
142 * The Vovida Software License, Version 1.0
143 *
144 * Copyright (c) 2000 Vovida Networks, Inc. All rights reserved.
145 *
146 * Redistribution and use in source and binary forms, with or without
147 * modification, are permitted provided that the following conditions
148 * are met:
149 *
150 * 1. Redistributions of source code must retain the above copyright
151 * notice, this list of conditions and the following disclaimer.
152 *
153 * 2. Redistributions in binary form must reproduce the above copyright
154 * notice, this list of conditions and the following disclaimer in
155 * the documentation and/or other materials provided with the
156 * distribution.
157 *
158 * 3. The names "VOCAL", "Vovida Open Communication Application Library",
159 * and "Vovida Open Communication Application Library (VOCAL)" must
160 * not be used to endorse or promote products derived from this
161 * software without prior written permission. For written
162 * permission, please contact vocal@vovida.org.
163 *
164 * 4. Products derived from this software may not be called "VOCAL", nor
165 * may "VOCAL" appear in their name, without prior written
166 * permission of Vovida Networks, Inc.
167 *
168 * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED
169 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
170 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND
171 * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL VOVIDA
172 * NETWORKS, INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT DAMAGES
173 * IN EXCESS OF $1,000, NOR FOR ANY INDIRECT, INCIDENTAL, SPECIAL,
174 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
175 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
176 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
177 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
178 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
179 * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
180 * DAMAGE.
181 *
182 * ====================================================================
183 *
184 * This software consists of voluntary contributions made by Vovida
185 * Networks, Inc. and many individuals on behalf of Vovida Networks,
186 * Inc. For more information on Vovida Networks, Inc., please see
187 * <http://www.vovida.org/>.
188 *
189 */
virtual void restart()
virtual void shutdown()
virtual bool run(int argc, char **argv)
virtual void createAuthenticatorFactory()
virtual void createCommandServer()
std::map< unsigned int, resip::NameAddr > TransportRecordRouteMap
virtual bool createWebAdmin()
resip::DialogUsageManager * mDum
virtual void setOpenSSLCTXOptionsFromConfig(const resip::Data &configVar, long &opts)
CertServer * mCertServer
std::list< CommandServer * > mCommandServerList
resip::RegistrationPersistenceManager * mRegistrationPersistenceManager
virtual void makeResponseProcessorChain(repro::ProcessorChain &chain)
std::shared_ptr< resip::DomainMatcher > mDomainMatcher
resip::SipStack * mSipStack
virtual Proxy * getProxy()
CommandServerThread * mCommandServerThread
resip::ThreadIf * mStackThread
virtual void addDomains(resip::TransactionUser &tu)
RegSyncServerThread * mRegSyncServerThread
AbstractDb * mAbstractDb
ProxyConfig * mProxyConfig
virtual void makeTargetProcessorChain(repro::ProcessorChain &chain)
virtual void addProcessor(repro::ProcessorChain &chain, std::unique_ptr< repro::Processor > processor)
std::list< WebAdmin * > mWebAdminList
Registrar * mRegistrar
virtual bool loadPlugins()
PresenceServer * mPresenceServer
AuthenticatorFactory * mAuthFactory
virtual void makeRequestProcessorChain(repro::ProcessorChain &chain)
resip::FdPollGrp * mFdPollGrp
resip::CongestionManager * mCongestionManager
resip::Data mHttpRealm
RegSyncServer * mRegSyncServerV6
resip::ThreadIf * mDumThread
resip::Data mDefaultRealm
virtual void onReload()
RegSyncClient * mRegSyncClient
WebAdminThread * mWebAdminThread
RegSyncServer * mRegSyncServerAMQP
virtual bool createProxy()
resip::PublicationPersistenceManager * mPublicationPersistenceManager
ProcessorChain * mMonkeys
ProcessorChain * mLemurs
resip::Dispatcher * mAsyncProcessorDispatcher
RegSyncServer * mRegSyncServerV4
virtual void initDomainMatcher()
ProcessorChain * mBaboons
virtual void cleanupObjects()
virtual bool addTransports(bool &allTransportsSpecifyRecordRoute)
virtual void populateRegistrations()
virtual void createRegSync()
virtual bool createDatastore()
virtual bool createSipStack()
virtual bool operator()(resip::StatisticsMessage &statsMessage)
TransportRecordRouteMap mStartupTransportRecordRoutes
virtual void createDialogUsageManager()
AbstractDb * mRuntimeAbstractDb
resip::AsyncProcessHandler * mAsyncProcessHandler
Abstract base class that provides a basic congestion management interface.
An alternative to std::string, encapsulates an arbitrary buffer of bytes.
Definition Data.hxx:90
A generic thread-bank class.
Interface functor for external stats handling.
Abstract interface of a datastore of all publication documents processed by DUM.
Abstract interface of a datastore of all registered endpoints processed by DUM.
This is the primary point of interaction between the app-layer and the stack.
Definition SipStack.hxx:160
A wrapper class to create and spawn a thread.
Definition ThreadIf.hxx:54
The base-class for an RFC 3261 Transaction User.
This Class is used to implement a primitive form of RPC using loose XML formatting.
dcm! – add UnusedChecking(_enum) below;
void list()
Definition userAdmin.cxx:66