diff --git a/src/server/serverContext.cpp b/src/server/serverContext.cpp index e1a02a9..a747670 100644 --- a/src/server/serverContext.cpp +++ b/src/server/serverContext.cpp @@ -51,13 +51,22 @@ ServerContextImpl::ServerContextImpl(): epicsSignalInstallSigPipeIgnore (); generateGUID(); - initializeLogger(); - loadConfiguration(); + initializeLogger(); } ServerContextImpl::shared_pointer ServerContextImpl::create() { ServerContextImpl::shared_pointer thisPointer(new ServerContextImpl()); + thisPointer->loadConfiguration(); + return thisPointer; +} + +ServerContextImpl::shared_pointer ServerContextImpl::create( + const Configuration::shared_pointer& conf) +{ + ServerContextImpl::shared_pointer thisPointer(new ServerContextImpl()); + thisPointer->configuration = conf; + thisPointer->loadConfiguration(); return thisPointer; } diff --git a/src/server/serverContext.h b/src/server/serverContext.h index 2dc3fa7..80a3987 100644 --- a/src/server/serverContext.h +++ b/src/server/serverContext.h @@ -116,10 +116,11 @@ class epicsShareClass ServerContextImpl : public: typedef std::tr1::shared_ptr shared_pointer; typedef std::tr1::shared_ptr const_shared_pointer; -protected: +private: ServerContextImpl(); public: static shared_pointer create(); + static shared_pointer create(const Configuration::shared_pointer& conf); virtual ~ServerContextImpl();