Resource Management in C++: Listing 1

Shared_resource declaration.

// shared_resource.hpp
enum resource_status { in_use, available };

struct shared_resource
{
  resource_status status;
  // other fields probably follow...
  // ...
  int id;
};

// creates a shared resource in reserved state.
shared_resource* create_resource();

// Releases the resource back.
void recycle_resource(shared_resource*);

// close the resource for usage, without releasing it back.
void shut_resource(shared_resource*);

// whatever its status, reinitiates the resource.
void reset_resource(shared_resource*);

// symbolic domain logic functions to perform with the resource.
void do_alpha_with_resource(shared_resource*);
void do_beta_with_resource(shared_resource*);

About the Author

Diego Dagum is a software architect and developer with more than 20 years of experience. He can be reached at email@diegodagum.com.