#ifdef WIN32
# define _CRT_SECURE_NO_DEPRECATE 1
# define _CRT_NONSTDC_NO_DEPRECATE 1
+# define _SCL_SECURE_NO_WARNINGS 1
#endif
// Export public APIs.
#include "XMLToolingConfig.h"
#include "util/ParserPool.h"
+#include <map>
+#include <string>
#include <vector>
+
#ifndef XMLTOOLING_NO_XMLSEC
#include <xsec/framework/XSECProvider.hpp>
#endif
Lockable* lock();
void unlock();
+ // named mutexes to limit lock scope
+ Mutex& getNamedMutex(const char* name);
+
// configuration
bool load_library(const char* path, void* context=nullptr);
bool log_config(const char* config=nullptr);
private:
int m_initCount;
- Mutex* m_lock;
+ std::auto_ptr<Mutex> m_lock;
+ std::map<std::string,Mutex*> m_namedLocks;
std::vector<void*> m_libhandles;
ParserPool* m_parserPool;
ParserPool* m_validatingPool;