Commit e4e174fe authored by Oleg.Korshul's avatar Oleg.Korshul Committed by Alexander Trofimov

coding

git-svn-id: svn://fileserver/activex/AVS/Sources/TeamlabOffice/trunk/ServerComponents@57626 954022d7-b5bf-4e40-9824-e11837661b57
parent eba51286
......@@ -5,57 +5,6 @@
#include <string>
#define LINK_PROPERTY_INT(memberName) \
inline int get_##memberName##() \
{ \
return m_n##memberName##; \
} \
inline void put_##memberName##(const int& newVal) \
{ \
m_n##memberName## = newVal; \
}
#define LINK_PROPERTY_DOUBLE(memberName) \
inline double get_##memberName##() \
{ \
return m_d##memberName##; \
} \
inline void put_##memberName##(const double& newVal)\
{ \
m_d##memberName## = newVal; \
}
#define LINK_PROPERTY_BOOL(memberName) \
inline bool get_##memberName##() \
{ \
return m_b##memberName##; \
} \
inline void put_##memberName##(const bool& newVal) \
{ \
m_b##memberName## = newVal; \
}
#define LINK_PROPERTY_BYTE(memberName) \
inline BYTE get_##memberName##() \
{ \
return m_n##memberName##; \
} \
inline void put_##memberName##(const BYTE& newVal) \
{ \
m_n##memberName## = newVal; \
}
#define LINK_PROPERTY_STRING(memberName) \
inline std::wstring get_##memberName##() \
{ \
return m_s##memberName##; \
} \
inline void put_##memberName##(const std::wstring& newVal) \
{ \
m_s##memberName## = newVal; \
}
namespace NSEditorApi
{
......
......@@ -576,4 +576,156 @@ namespace NSEditorDefines
}
namespace NSEditorApi
{
#define LINK_PROPERTY_INT(memberName) \
inline int get_##memberName##() \
{ \
return m_n##memberName##; \
} \
inline void put_##memberName##(const int& newVal) \
{ \
m_n##memberName## = newVal; \
}
#define LINK_PROPERTY_DOUBLE(memberName) \
inline double get_##memberName##() \
{ \
return m_d##memberName##; \
} \
inline void put_##memberName##(const double& newVal)\
{ \
m_d##memberName## = newVal; \
}
#define LINK_PROPERTY_BOOL(memberName) \
inline bool get_##memberName##() \
{ \
return m_b##memberName##; \
} \
inline void put_##memberName##(const bool& newVal) \
{ \
m_b##memberName## = newVal; \
}
#define LINK_PROPERTY_BYTE(memberName) \
inline BYTE get_##memberName##() \
{ \
return m_n##memberName##; \
} \
inline void put_##memberName##(const BYTE& newVal) \
{ \
m_n##memberName## = newVal; \
}
#define LINK_PROPERTY_STRING(memberName) \
inline std::wstring get_##memberName##() \
{ \
return m_s##memberName##; \
} \
inline void put_##memberName##(const std::wstring& newVal) \
{ \
m_s##memberName## = newVal; \
}
template<typename Type>
class js_wrapper
{
protected:
Type* m_pPointer;
bool m_bIsNull;
public:
js_wrapper()
{
m_pPointer = NULL;
m_bIsNull = false;
}
js_wrapper(const js_wrapper<Type>& oOther)
{
m_pPointer = NULL;
if (oOther.m_bIsNull)
m_bIsNull = true;
else
{
m_bIsNull = false;
if ( NULL != oOther.m_pPointer )
m_pPointer = new Type( (const Type&)*(oOther.m_pPointer) );
}
}
virtual ~js_wrapper()
{
if (NULL != m_pPointer)
delete m_pPointer;
}
public:
inline Type& operator*() { return *m_pPointer; }
inline Type* operator->() { return m_pPointer; }
inline Type& operator*() const { return *m_pPointer; }
inline Type* operator->() const { return m_pPointer; }
inline const Type& get()const { return *m_pPointer; }
inline Type& get() { return *m_pPointer; }
public:
js_wrapper<Type>& operator=(const js_wrapper<Type> &oOther)
{
if (NULL != m_pPointer)
{
delete m_pPointer;
m_pPointer = NULL;
}
if (oOther.m_bIsNull)
m_bIsNull = true;
else
{
m_bIsNull = false;
if ( NULL != oOther.m_pPointer )
m_pPointer = new Type( (const Type&)*(oOther.m_pPointer) );
}
return *this;
}
js_wrapper<Type>& operator=(Type* pType)
{
if (NULL != m_pPointer)
delete m_pPointer;
m_pPointer = pType;
m_bIsNull = false;
return *this;
}
js_wrapper<Type>& operator=(const Type& oSrc)
{
if (NULL != m_pPointer)
delete m_pPointer;
m_pPointer = new Type(oSrc);
m_bIsNull = false;
return *this;
}
public:
inline bool IsNull() const
{
return m_bIsNull;
}
inline bool IsUndefined() const
{
return (NULL == m_pPointer);
}
inline void SetNull()
{
m_bIsNull = true;
}
};
}
#endif //_BUILD_EDITOR_DEFINES_CROSSPLATFORM_H_
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment