Skip to content

Instantly share code, notes, and snippets.

@devendranaga
Created July 27, 2019 17:21
Show Gist options
  • Save devendranaga/9da2de9e086e2d27d781233059f5145b to your computer and use it in GitHub Desktop.
Save devendranaga/9da2de9e086e2d27d781233059f5145b to your computer and use it in GitHub Desktop.
template <typename T>
class shared_data {
public:
~shared_data() { }
explicit shared_data(const shared_data &) = delete;
shared_data &operator=(const shared_data &) = delete;
// get shared object of this instance
static shared_data *get();
// put object / data
void put_data(T &data);
// get object / data
T &get_data();
private:
shared_data() { }
// make sure write and read are serialized
std::mutex lock;
// stored data object
T data;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment