// Copyright (C) 2002-2012 Nikolaus Gebhardt // This file is part of the "Irrlicht Engine". // For conditions of distribution and use, see copyright notice in irrlicht.h #ifndef __C_OS_OPERATOR_H_INCLUDED__ #define __C_OS_OPERATOR_H_INCLUDED__ #include "IOSOperator.h" namespace irr { class CIrrDeviceLinux; //! The Operating system operator provides operation system specific methods and information. class COSOperator : public IOSOperator { public: // constructor #if defined(_IRR_COMPILE_WITH_X11_DEVICE_) COSOperator(const core::stringc& osversion, CIrrDeviceLinux* device); #endif COSOperator(const core::stringc& osversion); //! returns the current operation system version as string. virtual const core::stringc& getOperatingSystemVersion() const _IRR_OVERRIDE_; //! copies text to the clipboard //! \param text: text in utf-8 virtual void copyToClipboard(const c8 *text) const _IRR_OVERRIDE_; //! gets text from the clipboard //! \return Returns 0 if no string is in there, otherwise an utf-8 string. virtual const c8* getTextFromClipboard() const _IRR_OVERRIDE_; //! gets the total and available system RAM in kB //! \param Total: will contain the total system memory //! \param Avail: will contain the available memory //! \return Returns true if successful, false if not virtual bool getSystemMemory(u32* Total, u32* Avail) const _IRR_OVERRIDE_; private: core::stringc OperatingSystem; #if defined(_IRR_COMPILE_WITH_X11_DEVICE_) CIrrDeviceLinux * IrrDeviceLinux; #endif #ifdef _IRR_WINDOWS_API_ mutable core::stringc ClipboardBuf; #endif }; } // end namespace #endif