24 #ifndef __LLUF_STARTUP_SYNCHRONIZER_H__
25 #define __LLUF_STARTUP_SYNCHRONIZER_H__
28 #ifdef lluf_startup_synchronizer_EXPORTS
29 #define LLUF_SS_API __declspec(dllexport)
31 #define LLUF_SS_API __declspec(dllimport)
32 #pragma comment(lib , "lluf_startup_synchronizer.lib")
34 #elif defined __GNUC__
38 #include <boost/noncopyable.hpp>
39 #include <boost/shared_ptr.hpp>
44 #pragma warning (push)
45 #pragma warning (disable: 4275)
54 class StartupSynchronizerImpl;
83 virtual void Use() = 0;
111 private boost::noncopyable
144 #pragma warning (push)
145 #pragma warning (disable: 4251)
148 boost::shared_ptr<StartupSynchronizerImpl> m_impl;
151 #pragma warning (pop)
163 #pragma warning (pop)
virtual void Use()=0
All processes will get a call to Use, even the one that got the Create callback.
virtual ~Synchronized()
Definition: StartupSynchronizer.h:65
This class can be used to synchronize creation and opening of a resource that is shared between multi...
Definition: StartupSynchronizer.h:110
virtual void Create()=0
Guarantees are that only one call to Create in all processes will be made.
virtual void Destroy()=0
This callback will be called when the last process destroys its StartupSynchronizer.
Interface for a synchronized object.
Definition: StartupSynchronizer.h:62