Loading...
Searching...
No Matches
LockableDObject.h
Go to the documentation of this file.
/* ***********************************************************************
//
// Copyright (C) 2025 -- The 4D-STAR Collaboration
// File Author: Emily Boudreaux
// Last Modified: March 17, 2025
//
// 4DSSE is free software; you can use it and/or modify
// it under the terms and restrictions the GNU General Library Public
// License version 3 (GPLv3) as published by the Free Software Foundation.
//
// 4DSSE is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// See the GNU Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public License
// along with this software; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
// *********************************************************************** */
#ifndef LOCKABLE_DOBJECT_H
#define LOCKABLE_DOBJECT_H
#include "DObject.h"
#include <mutex>
class LockableDObject {
public:
LockableDObject() = default;
DObject& get();
void lock();
void unlock();
private:
DObject object_;
std::mutex mutex_;
};
#endif // LOCKABLE_DOBJECT_H
DObject.h
Defines the DObject class, a universal data container for the project.
DObject
A universal data container class.
Definition DObject.h:89
LockableDObject::unlock
void unlock()
Unlocks the mutex after thread-safe access.
Definition LockableDObject.cpp:40
LockableDObject::object_
DObject object_
The underlying DObject instance.
Definition LockableDObject.h:63
LockableDObject::mutex_
std::mutex mutex_
Mutex for thread-safe access.
Definition LockableDObject.h:64
LockableDObject::get
DObject & get()
Access the underlying DObject.
Definition LockableDObject.cpp:26
LockableDObject::lock
void lock()
Locks the mutex to ensure thread-safe access.
Definition LockableDObject.cpp:33
LockableDObject::LockableDObject
LockableDObject()=default
Default constructor.