logplus/Workflow/WFCrystal/SysUtility/utils/include/Turtle.h

93 lines
2.1 KiB
C
Raw Normal View History

2026-01-16 17:18:41 +08:00
/*
* @file Turtle.h
* @brief 使linux还是windows
* API,
* 1.使Turtle.hTurtleHeader.h,TurtleType.h
* 2.API有2种使用方式API,API类的对象
*
* Example1:
* #include "Turtle.h"
* void Func(){
* GetTurtleAPI()->Sleep(1000);
* //可调用任意的API
* }
*
* Example2:
* #include "Turtle.h"
* void Func(){
* std::auto_ptr<TurtleAPI> turtle = Turtle::Instance()->GetTurtleAPI();
* turtle->Sleep(1000);
* //可调用任意的API
* }
*
*
* @date 2014-04-15
* @author Bronco
*/
#ifndef TURTLE_H_
#define TURTLE_H_
#include "TurtleHeader.h"
#include "TurtleType.h"
#include "TurtleAPI.h"
#include "Turtle_globle.h"
#if defined(__linux__)
#include <tr1/memory>
#include "uTurtleAPI.h"
#elif defined(_WINDOWS)
#include <memory>
#include "wTurtleAPI.h"
#endif
namespace pai {
namespace turtle {
/**
* @brief API的全局接口
* Example
* void Func(){
* GetTurtleAPI()->Sleep(1000);
* //可调用任意的API
* }
*/
PAI_TURTLE_EXPORT std::tr1::shared_ptr<TurtleAPI> GetTurtleAPI();
/**
* @class Turtle
* @brief API类API对象
* Example:
* #include "Turtle.h"
* void Func(){
* std::auto_ptr<TurtleAPI> turtle = Turtle::Instance()->GetTurtleAPI();
* turtle->Sleep(1000);
* //可调用任意的API
* }
*
*/
class PAI_TURTLE_EXPORT Turtle{
public:
/**
* @brief Turtle单例
*/
static Turtle* Instance();
/**
* @brief API接口类对象
*/
std::tr1::shared_ptr<TurtleAPI> GetTurtleAPI();
private:
static Turtle* _instance;
Turtle(){};
~Turtle(){};
Turtle(const Turtle &);
Turtle& operator=(const Turtle &);
};
}/*namespace turtle*/
}/*namespace pai*/
#endif /* TURTLE_H_ */