⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tdc_base.h

📁 是一个手机功能的模拟程序
💻 H
📖 第 1 页 / 共 5 页
字号:
#define M_TDC_INTERFACE_MUNION_ADDITIONAL(SHORT_NAME,PREFIXED_SHORT_NAME)
#define M_TDC_INTERFACE_MENUM_ADDITIONAL(SHORT_NAME,PREFIXED_SHORT_NAME)
//-----
#define M_TDC_INTERFACE_INT_ADDITIONAL(SHORT_NAME,PREFIXED_SHORT_NAME)
#define M_TDC_INTERFACE_XXX_PRIMITIVE_UNION_ADDITIONAL(SAP,PREFIXED_SAP)
#define M_TDC_INTERFACE_XXX_MESSAGE_UNION_ADDITIONAL(MSG,PREFIXED_MSG)
#define M_TDC_CREATE_DEFAULT_PRIMITIVE_INTERFACE_CLASS(SAP)
#define M_TDC_INTERFACE_PRIMITIVE_ADDITIONAL()
#define M_TDC_CREATE_DEFAULT_MESSAGE_INTERFACE_CLASS(MSG)
#define M_TDC_INTERFACE_MESSAGE_ADDITIONAL()

//----------------------------------------------------------------------------
// macros to repeat stuff that is similar in many instance classes 
//----------------------------------------------------------------------------

#define M_TDC_INSTANCE_PRIM_ADDITIONAL(SAP,SHORT_NAME)
#define M_TDC_INSTANCE_PSTRUCT_ADDITIONAL(SHORT_NAME,PREFIXED_SHORT_NAME)
#define M_TDC_INSTANCE_PUNION_ADDITIONAL(SHORT_NAME,PREFIXED_SHORT_NAME)
#define M_TDC_INSTANCE_SDU_ADDITIONAL(SHORT_NAME)
#define M_TDC_INSTANCE_PENUM_ADDITIONAL(SHORT_NAME,PREFIXED_SHORT_NAME)
//-----
#define M_TDC_INSTANCE_MSG_ADDITIONAL(MSG,SHORT_NAME)
#define M_TDC_INSTANCE_MSTRUCT_ADDITIONAL(SHORT_NAME,PREFIXED_SHORT_NAME)
#define M_TDC_INSTANCE_MUNION_ADDITIONAL(SHORT_NAME,PREFIXED_SHORT_NAME)
#define M_TDC_INSTANCE_MENUM_ADDITIONAL(SHORT_NAME,PREFIXED_SHORT_NAME)
//-----
#define M_TDC_INSTANCE_INT_ADDITIONAL(SHORT_NAME)
#define M_TDC_INSTANCE_XXX_PRIMITIVE_ADDITIONAL(SAP)
#define M_TDC_INSTANCE_XXX_MESSAGE_ADDITIONAL(MSG)
#define M_TDC_INSTANCE_PRIMITIVE_ADDITIONAL()
#define M_TDC_INSTANCE_MESSAGE_ADDITIONAL()

#else
#endif

//tdc_test_header_end

#if DOT_COMPLETE_DEFINES
#else //DOT_COMPLETE_DEFINES

#ifndef TDC_KEEP_CCC
#define CCC(COMMENT)
#endif //TDC_KEEP_CCC

//----------------------------------------------------------------------------
// macros to generate dummy functions body
//----------------------------------------------------------------------------

#define M_TDC_TYPE_NAME\
	return T_TDC_TYPE_NAME();

//#define T_TDC_TYPE_NAME M_TDC_HIDE(T_TDC_TYPE_NAME)

//----------------------------------------------------------------------------
// macros to hide templates from dot-completion 
//----------------------------------------------------------------------------

typedef char T_TDC_LEVEL;
extern T_TDC_LEVEL tdc_level;

//----------------------------------------------------------------------------
// macros to repeat stuff that is similar in many descriptor classes
//----------------------------------------------------------------------------

#ifndef TDC_DESCRIPTOR


#define M_TDC_FORWARD_BASE(SHORT_NAME,T_HANDLE)\
  struct T_TDC_INTERFACE_##SHORT_NAME;\
  T_TDC_INTERFACE_BASE* new_T_TDC_INTERFACE_##SHORT_NAME();\
  struct T_HANDLE;\
  T_TDC_HANDLE_BASE* new_##T_HANDLE();\

#define M_TDC_FORWARD_COMP(SHORT_NAME,TDC_IS)\
	M_TDC_FORWARD_BASE(SHORT_NAME, T_TDC_HANDLE_##SHORT_NAME)\

#define M_TDC_FORWARD_VAR(SHORT_NAME)\
	M_TDC_FORWARD_BASE(SHORT_NAME, T_TDC_DESCRIPTOR_##SHORT_NAME)\


#define M_TDC_POST_BASE(SHORT_NAME,T_HANDLE)\
  M_TDC_INTERFACE_ADDITIONAL_BASE (M_TDC_NOT_IN_CLASS, M_TDC_WITH_BODY, T_TDC_INTERFACE_##SHORT_NAME, T_##SHORT_NAME, T_HANDLE)\
  M_TDC_INSTANCE_ADDITIONAL_BASE (M_TDC_NOT_IN_CLASS, M_TDC_WITH_BODY, T_TDC_INTERFACE_##SHORT_NAME, T_##SHORT_NAME, T_HANDLE)\

#define M_TDC_POST_XXX(SHORT_NAME,TDC_IS)\
  M_TDC_POST_BASE(SHORT_NAME, T_TDC_HANDLE_##SHORT_NAME)\

#define M_TDC_POST_COMP(SHORT_NAME,TDC_IS)\
  M_TDC_POST_BASE(SHORT_NAME, T_TDC_HANDLE_##SHORT_NAME)\

#define M_TDC_POST_VAR(SHORT_NAME)\
  M_TDC_POST_BASE(SHORT_NAME, T_TDC_DESCRIPTOR_##SHORT_NAME)\


#else //TDC_DESCRIPTOR


#define M_TDC_FORWARD_BASE(SHORT_NAME,T_HANDLE)\

#define M_TDC_FORWARD_COMP(SHORT_NAME,TDC_IS)\
  M_TDC_FORWARD_BASE(SHORT_NAME,T_TDC_DESCRIPTOR_##SHORT_NAME)\
  M_TDC_HANDLE(M_TDC_IN_CLASS,M_TDC_WITHOUT_BODY,SHORT_NAME,TDC_IS)\

#define M_TDC_FORWARD_VAR(SHORT_NAME)\
  M_TDC_FORWARD_BASE(SHORT_NAME,T_TDC_HANDLE_##SHORT_NAME)\
  struct T_TDC_DESCRIPTOR_##SHORT_NAME;\
  /*TODO:eliminate*/struct T_##SHORT_NAME;\
  /*TODO:eliminate*/struct T_TDC_INTERFACE_##SHORT_NAME;\
  typedef T_TDC_DESCRIPTOR_##SHORT_NAME T_TDC_HANDLE_##SHORT_NAME;\
  T_TDC_HANDLE_BASE* new_T_TDC_DESCRIPTOR_##SHORT_NAME();\

#define M_TDC_POST_BASE(SHORT_NAME,T_HANDLE)\
  T_TDC_HANDLE_BASE* new_##T_HANDLE()\
  {\
    return new T_HANDLE;\
  }\

#define M_TDC_POST_XXX(SHORT_NAME,TDC_IS)\
  M_TDC_POST_BASE(SHORT_NAME,T_TDC_HANDLE_##SHORT_NAME)\
  T_TDC_DESCRIPTOR_BASE* T_TDC_HANDLE_##SHORT_NAME::implement_new_descriptor () const\
  {\
    return new T_TDC_DESCRIPTOR_##SHORT_NAME;\
  }\

#define M_TDC_POST_COMP(SHORT_NAME, TDC_IS)\
  M_TDC_POST_BASE(SHORT_NAME,T_TDC_HANDLE_##SHORT_NAME)\
  T_TDC_DESCRIPTOR_BASE* T_TDC_HANDLE_##SHORT_NAME::implement_new_descriptor () const\
  {\
    return new T_TDC_DESCRIPTOR_##SHORT_NAME;\
  }\
  M_TDC_HANDLE_ADDITIONAL(M_TDC_NOT_IN_CLASS,M_TDC_WITH_BODY,T_TDC_HANDLE_##SHORT_NAME,SHORT_NAME,TDC_IS)\

#define M_TDC_POST_VAR(SHORT_NAME)\
  M_TDC_POST_BASE(SHORT_NAME,T_TDC_DESCRIPTOR_##SHORT_NAME)\

  
#endif //TDC_DESCRIPTOR

#define M_TDC_HANDLE_ADDITIONAL(IN_CLASS,WITH_BODY,T_HANDLE_,SHORT_NAME,TDC_IS)\
    IN_CLASS(virtual) char* T_HANDLE_::get_name () const\
    WITH_BODY({\
      return #SHORT_NAME;\
    })\
    IN_CLASS(virtual) long T_HANDLE_::get_sizeof ()\
    WITH_BODY({\
      return sizeof *this;\
    })\
    IN_CLASS(virtual) T_TDC_IS_ENUM T_HANDLE_::is ()\
    WITH_BODY({\
      return T_TDC_IS_ENUM (TDC_IS_COMP | TDC_IS);\
    })\
    IN_CLASS(static) T_TDC_HANDLE_BASE* T_HANDLE_::implement_new_handle ()\
    WITH_BODY({\
      /*return new_T_TDC_HANDLE_##SHORT_NAME();*/\
      return new T_HANDLE_();\
    })\

#define M_TDC_HANDLE(IN_CLASS,WITH_BODY,SHORT_NAME,TDC_IS)\
  struct T_TDC_DESCRIPTOR_##SHORT_NAME;\
  struct T_TDC_HANDLE_##SHORT_NAME:T_TDC_HANDLE_BASE\
  {\
    typedef T_TDC_DESCRIPTOR_##SHORT_NAME T_DESCRIPTOR;\
    M_TDC_HANDLE_ADDITIONAL(IN_CLASS,WITH_BODY,T_TDC_HANDLE_##SHORT_NAME,SHORT_NAME,TDC_IS)\
    M_TDC_DESCRIPTOR_HANDLE_ADDITIONAL_PART (T_TDC_DESCRIPTOR_##SHORT_NAME)\
  };\

//------

#define M_TDC_FORWARD_PRIM(SHORT_NAME)\
	M_TDC_FORWARD_COMP (SHORT_NAME,TDC_IS_PRIM)

#define M_TDC_FORWARD_PSTRUCT(SHORT_NAME)\
	M_TDC_FORWARD_COMP (SHORT_NAME,TDC_IS_STRUCT)

#define M_TDC_FORWARD_PUNION(SHORT_NAME)\
	M_TDC_FORWARD_COMP (SHORT_NAME,TDC_IS_UNION)

#define M_TDC_FORWARD_SDU(SHORT_NAME)\
	M_TDC_FORWARD_COMP (SHORT_NAME,TDC_IS_SDU)

#define M_TDC_FORWARD_TYPEDEF_SDU(BUF)\
	typedef T_TDC_HANDLE_SDU T_TDC_HANDLE_##BUF;\
	typedef T_TDC_DESCRIPTOR_SDU T_TDC_DESCRIPTOR_##BUF;\

#define M_FORWARD_TYPEDEF_SDU(BUF)/*TODO: eliminate this macro*/\
	M_TDC_FORWARD_TYPEDEF_SDU(BUF)\

#define M_TDC_FORWARD_TYPEDEF(BASE,SHORT_NAME)\
	typedef T_TDC_HANDLE_##BASE T_TDC_HANDLE_##SHORT_NAME;\
	typedef T_TDC_DESCRIPTOR_##BASE T_TDC_DESCRIPTOR_##SHORT_NAME;\

#define M_TDC_FORWARD_PENUM(SHORT_NAME)\
	M_TDC_FORWARD_VAR (SHORT_NAME)

//------

#define M_TDC_FORWARD_MSG(SHORT_NAME)\
	M_TDC_FORWARD_COMP (SHORT_NAME,TDC_IS_MSG)

#define M_TDC_FORWARD_MSTRUCT(SHORT_NAME)\
	M_TDC_FORWARD_COMP (SHORT_NAME,TDC_IS_STRUCT)

#define M_TDC_FORWARD_MUNION(SHORT_NAME)\
	M_TDC_FORWARD_COMP (SHORT_NAME,TDC_IS_UNION)

#define M_TDC_FORWARD_MENUM(SHORT_NAME)\
	M_TDC_FORWARD_VAR (SHORT_NAME)

//------

#define M_TDC_FORWARD_INT(SHORT_NAME)\
	M_TDC_FORWARD_BASE(SHORT_NAME, T_TDC_DESCRIPTOR_##SHORT_NAME)\
  struct T_TDC_DESCRIPTOR_##SHORT_NAME;\
	typedef T_TDC_DESCRIPTOR_##SHORT_NAME T_TDC_HANDLE_##SHORT_NAME;\
	typedef T_TDC_INT_##SHORT_NAME SHORT_NAME;\
	T_TDC_HANDLE_BASE* new_T_TDC_DESCRIPTOR_##SHORT_NAME();\

#define M_TDC_FORWARD_XXX_PRIMITIVE_UNION(SAP)\
	/*M_TDC_FORWARD_COMP (SAP)*/\
	M_TDC_FORWARD_BASE (SAP, T_TDC_HANDLE_##SAP)\

#define M_TDC_FORWARD_XXX_MESSAGE_UNION(MSG)\
	/*M_TDC_FORWARD_COMP (MSG)*/\
	M_TDC_FORWARD_BASE (MSG,T_TDC_HANDLE_##MSG)\

//----------------------------------------------------------------------------
// macros to repeat stuff that is similar in many descriptor classes
//----------------------------------------------------------------------------

#define M_TDC_POST_PRIM(SHORT_NAME)\
	M_TDC_POST_COMP (SHORT_NAME, TDC_IS_PRIM)

#define M_TDC_POST_PSTRUCT(SHORT_NAME)\
	M_TDC_POST_COMP (SHORT_NAME, TDC_IS_STRUCT)

#define M_TDC_POST_PUNION(SHORT_NAME)\
	M_TDC_POST_COMP (SHORT_NAME, TDC_IS_UNION)

#define M_TDC_POST_SDU(SHORT_NAME)

#define M_TDC_POST_PENUM(SHORT_NAME)\
	M_TDC_POST_VAR (SHORT_NAME)

#define M_TDC_POST_MSG(SHORT_NAME)\
	M_TDC_POST_COMP (SHORT_NAME, TDC_IS_MSG)

#define M_TDC_POST_MSTRUCT(SHORT_NAME)\
	M_TDC_POST_COMP (SHORT_NAME, TDC_IS_STRUCT)

#define M_TDC_POST_MUNION(SHORT_NAME)\
	M_TDC_POST_COMP (SHORT_NAME, TDC_IS_UNION)

#define M_TDC_POST_MENUM(SHORT_NAME)\
	M_TDC_POST_VAR (SHORT_NAME)

#define M_TDC_POST_INT(SHORT_NAME)

#define M_TDC_POST_XXX_PRIMITIVE_UNION(SAP)\
	M_TDC_POST_XXX(SAP,TDC_IS_XXX_PRIMITIE_UNION)

#define M_TDC_POST_XXX_MESSAGE_UNION(MSG)\
	M_TDC_POST_XXX(MSG,TDC_IS_XXX_MESSAGE_UNION)

#define M_TDC_POST_PRIMITIVE()

#define M_TDC_POST_MESSAGE()

//============================================================================

#if TDC_DEBUG_DOT_COMPLETE
void F_TDC_DEBUG_DOT_COMPLETE__TDC_H_1F()
{
  T_TDC_DEBUG_DOT_COMPLETE__TDC_H_1 s;
  s.
    i;
}
#else
#endif

//----------------------------------------------------------------------------
// macros to repeat stuff that is similar in many descriptor classes
//----------------------------------------------------------------------------

#define M_TDC_DESCRIPTOR_HANDLE_ADDITIONAL_PART(T_DESCRIPTOR)\
	T_TDC_ACTION_ENUM action;\
	T_DESCRIPTOR* descriptor;\
	/*friend T_TDC_DESCRIPTOR_BASE* new_##T_DESCRIPTOR ();*/\
	virtual T_TDC_DESCRIPTOR_BASE* implement_new_descriptor () const;\
	/*{\
		return new_##T_DESCRIPTOR ();\
	}*/\
	/*virtual void implement_set_descriptor (T_TDC_DESCRIPTOR_BASE* descriptor_)\
	{\
		IF_TDC_DEBUG (assert (descriptor_ == (T_TDC_DESCRIPTOR_BASE*)-1 || dynamic_cast<T_DESCRIPTOR*>(descriptor_));)\
		descriptor = (T_DESCRIPTOR*) descriptor_;\
	}*/\
	/*T_HANDLE ():\
		descriptor (0),\
		action (TDC_ACTION_DEFAULT)\
	{\
	}*/\
	/*~T_HANDLE ()\
	{\
		if (action & TDC_ACTION_HAS_REF)\
		{\
			assert (!descriptor);\
			/ *delete descriptor;\
			descriptor = 0;* /\
		}\
	}*/\

#define	M_TDC_DESCRIPTOR_ADDITIONAL_BASE(SHORT_NAME)\
	public:\
		virtual long get_sizeof ()\
		{\
			return sizeof *this;\
		}\

#define	M_TDC_DESCRIPTOR_ADDITIONAL_MAIN_BASE(SHORT_NAME)\
	M_TDC_DESCRIPTOR_ADDITIONAL_BASE(SHORT_NAME)\
	public:\
		int ctrl;\
		virtual int read_ctrl () const\
		{\
			return ctrl;\
		}\
		T_TDC_HANDLE_BASE* get_element (unsigned index)\
		{\
			return implement_get_union_element (index, ctrl);\
		}\
		virtual char* get_name () const\
		{\
			return #SHORT_NAME;\
		}\
		T_TDC_DESCRIPTOR_##SHORT_NAME ():\
			ctrl (0)\
		{\
		}\
		/*friend T_TDC_DESCRIPTOR_BASE* new_T_TDC_DESCRIPTOR_##SHORT_NAME ()\
		{\
			return new T_TDC_DESCRIPTOR_##SHORT_NAME;\
		}*/\


#define	M_TDC_DESCRIPTOR_ADDITIONAL_STRUCT_BASE(SHORT_NAME)\
	M_TDC_DESCRIPTOR_ADDITIONAL_BASE(SHORT_NAME)\
	public:\
		typedef  T_TDC_HANDLE_##SHORT_NAME T_HANDLE;\
		virtual char* get_name () const\
		{\
      extern char* TDC_NAME_##SHORT_NAME;\
			return TDC_NAME_##SHORT_NAME;\
		}\
		friend T_TDC_DESCRIPTOR_BASE* new_T_TDC_DESCRIPTOR_##SHORT_NAME ()\
		{\
			return new T_TDC_DESCRIPTOR_##SHORT_NAME;\
		}\
		T_TDC_DESCRIPTOR_##SHORT_NAME ()\
		{\
		}\

#define	M_TDC_DESCRIPTOR_ADDITIONAL_UNION_BASE(SHORT_NAME,TABLE_KIND)\
	M_TDC_DESCRIPTOR_ADDITIONAL_BASE(SHORT_NAME)\
	public:\
		typedef  T_TDC_HANDLE_##SHORT_NAME T_HANDLE;\
		int ctrl;\
		virtual int read_ctrl () const\
		{\
			return ctrl;\
		}\
		T_TDC_HANDLE_BASE* get_element (unsigned index)\
		{\
			return implement_get_union_element (index, ctrl);\
		}\
		virtual char* get_name () const\
		{\
      extern char* TDC_NAME_##SHORT_NAME;\
			return TDC_NAME_##SHORT_NAME;\
		}\
		T_TDC_DESCRIPTOR_##SHORT_NAME ():\
			ctrl (0)\
		{\
		}\

#define M_TDC_DESCRIPTOR_ADDITIONAL_VAR(T_DESCRIPTOR, T_VAR, SHORT_NAME)\
	M_TDC_DESCRIPTOR_ADDITIONAL_BASE(SHORT_NAME)\
	public:\
	typedef T_DESCRIPTOR T_HANDLE;\
	T_TDC_ACTION_ENUM action;\

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -