/* -----------------------------------------------------------------------------
	GSFramework
	Copyright 2001-2013 Emmanuel Julien. All Rights Reserved.
----------------------------------------------------------------------------- */


#ifndef	__SHARED_SYSTEMS__
#define	__SHARED_SYSTEMS__


namespace GS {
	class Platform;
	class AudioIO;
	class PictureIO;
	class LogSystem;

class SharedSystems
{
		Platform	*platform;
		LogSystem	*log_system;
		PictureIO	*picture_io;
		AudioIO		*audio_io;

public:

		/// Call from the master module responsible for instantiating plugins.
		void		Get();
		/// Call from a dynamically module to share the master module systems.
		void		Set();

		SharedSystems() : platform(0), log_system(0), picture_io(0), audio_io(0) { Get(); }
};

} // GS


#endif // __SHARED_SYSTEMS__
