36 #include "mongo/base/disallow_copying.h" 37 #include "mongo/db/operation_context.h" 39 #include "mongo/stdx/mutex.h" stdx::condition_variable _releasedSessionNotifier
Definition: mobile_session_pool.h:101
MONGO_DISALLOW_COPYING(MobileDelayedOpQueue)
MobileDelayedOpQueue failedDropsQueue
Definition: mobile_session_pool.h:91
std::string _path
Definition: mobile_session_pool.h:103
std::unique_ptr< MobileSession > getSession(OperationContext *opCtx)
Returns a smart pointer to a previously released session for reuse, or creates a new session.
Definition: mobile_session_pool.cpp:104
Copyright (C) 2014 MongoDB Inc.
Definition: bson_collection_catalog_entry.cpp:38
MobileDelayedOpQueue()
Definition: mobile_session_pool.cpp:50
~MobileSessionPool()
Definition: mobile_session_pool.cpp:100
std::queue< std::string > _opQueryQueue
Definition: mobile_session_pool.h:60
This class manages a queue of operations delayed for some reason.
Definition: mobile_session_pool.h:47
bool _shuttingDown
Definition: mobile_session_pool.h:110
stdx::mutex _queueMutex
Definition: mobile_session_pool.h:59
void shutDown()
Transitions the pool to shutting down mode.
Definition: mobile_session_pool.cpp:145
MONGO_DISALLOW_COPYING(MobileSessionPool)
bool isEmpty()
Definition: mobile_session_pool.cpp:93
This class manages a SQLite database connection object.
Definition: mobile_session.h:43
MobileSessionPool(const std::string &path, std::uint64_t maxPoolSize=80)
Definition: mobile_session_pool.cpp:97
void releaseSession(MobileSession *session)
Returns a session to the pool for later reuse.
Definition: mobile_session_pool.cpp:135
This class manages a pool of open sqlite3* objects.
Definition: mobile_session_pool.h:66
std::vector< sqlite3 * > SessionPool
Definition: mobile_session_pool.h:112
stdx::mutex _mutex
Definition: mobile_session_pool.h:100
std::uint64_t _curPoolSize
Definition: mobile_session_pool.h:109
SessionPool _sessions
Definition: mobile_session_pool.h:113
sqlite3 * _popSession_inlock()
Gets the front element from _sessions and then pops it off the queue.
Definition: mobile_session_pool.cpp:181
void execAndDequeueOp(MobileSession *session)
Definition: mobile_session_pool.cpp:62
void execAndDequeueAllOps(MobileSession *session)
Definition: mobile_session_pool.cpp:87
Collection *const OperationContext *const opCtx
Definition: collection_impl.cpp:80
std::uint64_t _maxPoolSize
PoolSize is the number of open sessions associated with the session pool.
Definition: mobile_session_pool.h:108
AtomicBool _isEmpty
Definition: mobile_session_pool.h:58
void enqueueOp(std::string &opQuery)
Definition: mobile_session_pool.cpp:52