提交 ca2ae0a4 编写于 作者: 报告_前方高能's avatar 报告_前方高能

1.4.1-20230305

上级 63fe9468
> asynframe-sdk_v1.3.2-20230202.zip is from https://github.com/netsecsp/asynframe
> asynframe-sdk_v1.4.1-202300305.zip is from https://github.com/netsecsp/asynframe
# aftpxclient.exe
> IPv4/IPv6 ftp/ftps client program under windows
......
......@@ -70,6 +70,18 @@ typedef enum tag_ObjectIdStart
IAsynIpcChannel_Start,
} ObjectIdStart;
/////////////////////////////////////////////////////////////////////////////////
#define CHECK_NO(r) (((r) >> 1) != 0) //r != S_OK && r != S_FALSE
#define CHECK_OK(r) (((r) >> 1) == 0) //r == S_OK || r == S_FALSE
/////////////////////////////////////////////////////////////////////////////////
BEGIN_ASYN_IOERROR(IAsynFrame)
USER_ERROR(SYNTAX) //格式/语法错误
USER_ERROR(ENCODE) //编码出错
USER_ERROR(DECODE) //解码出错
USER_ERROR(VERIFY) //校验失败
END_ASYN_IOERROR()
/////////////////////////////////////////////////////////////////////////////////
//InstanceName
#ifdef _LOG
......@@ -94,90 +106,80 @@ typedef enum tag_ObjectIdStart
#define IN_Instancesmanager "instancesmanager" //used for lua
/////////////////////////////////////////////////////////////////////////////////
#define Io_recv ( 0)
#define Io_send ( 1)
#define Io_acceptd (16)
#define Io_connect (17)
#define Io_bind (18)
#define Io_hostdns (19)
/////////////////////////////////////////////////////////////////////////////////
#define CHECK_NO(r) (((r) >> 1) != 0) //r != S_OK && r != S_FALSE
#define CHECK_OK(r) (((r) >> 1) == 0) //r == S_OK || r == S_FALSE
BEGIN_ASYN_IOERROR(IAsynFrame)
USER_ERROR(SYNTAX) //格式/语法错误
USER_ERROR(ENCODE) //编码出错
USER_ERROR(DECODE) //解码出错
USER_ERROR(VERIFY) //校验失败
END_ASYN_IOERROR()
//AF_IOMSG_NOTIFY.Action
#define Io_recv ( 0)
#define Io_send ( 1)
#define Io_acceptd ( 16)
#define Io_connect ( 17)
#define Io_bind ( 18)
#define Io_hostdns ( 19)
/////////////////////////////////////////////////////////////////////////////////
//ISpeedController.IObjectHolder(lType)
#define CT_SetAppSpeedController ( 0) //获取/设置内部的ISpeedController
#define CT_GetAppSpeedController ( 0)
#define CT_SetAppSpeedController ( 0 ) //获取/设置内部的ISpeedController
#define CT_GetAppSpeedController ( 0 )
/////////////////////////////////////////////////////////////////////////////////
//IAsynIoOperation.IObjectHolder(lType)
#define OT_SetAsynIoOperation ( 0) //设置顶级IAsynIoOperation
#define OT_TakeBindIoOperation ( 0) //获取绑定IAsynIoOperation
#define OT_SetAsynIoOperation ( 0 ) //设置顶级IAsynIoOperation
#define OT_TakeBindIoOperation ( 0 ) //获取绑定IAsynIoOperation
#define OT_GetAddrOsBuffer ( 1) //获取/提取内部地址:Buffer
#define OT_GetAddrOsBuffer ( 1 ) //获取/提取内部地址:Buffer
#define OT_SetAsynIoDevice ( 2) //设置/提取内部设备:Device
#define OT_GetAsynIoDevice ( 2)
#define OT_SetAsynIoDevice ( 2 ) //设置/提取内部设备:Device
#define OT_GetAsynIoDevice ( 2 )
#define OT_GetMessageEvent ( 3) //获取内部IAsynMessageEvents
#define OT_GetMessageEvent ( 3 ) //获取内部IAsynMessageEvents
#define OT_GetAppAsynFrame ( 4)
#define OT_GetAppAsynFrame ( 4 ) //获取内部IAsynFrame
/////////////////////////////////////////////////////////////////////////////////
////IAsynFrame.IObjectHolder(lType)
#define FT_GetOsMempool ( 0) //获取内部IOsMempool
#define FT_SetOsMempool ( 0) //设置内部IOsMempool
#define FT_GetOsMempool ( 0 ) //获取内部IOsMempool
#define FT_SetOsMempool ( 0 ) //设置内部IOsMempool
////IAsynFrame.Add/Pop
#define FF_Checkio ( 1)
#define FF_Checkaf ( 2)
#define FF_Resetio ( 1 ) //复位/确保有效iobuffer
#define FF_Resetaf ( 2 ) //复位/确保有效地址
/////////////////////////////////////////////////////////////////////////////////
//IAsynIoDevice.IObjectHolder(lType)
#define DT_SetRecvSpeedController ( 0) //设置内部的接收IWinsSpeedController
#define DT_GetRecvSpeedController ( 0) //获取内部的接收IWinsSpeedController
#define DT_SetSendSpeedController ( 1) //设置内部的发送IWinsSpeedController
#define DT_GetSendSpeedController ( 1) //获取内部的发送IWinsSpeedController
#define DT_SetAppRecvSpeedController ( 2) //设置内部的接收ISpeedController
#define DT_SetAppSendSpeedController ( 3) //设置内部的发送ISpeedController
#define DT_GetAppAsynFrame ( 4)
#define DT_GetAsynIoDevice ( 5) //获取内部IAsynIoDevice
#define DT_GetAsynIoOperationFactory ( 6) //获取内部IAsynIoOperationFactory
#define DT_GetAsynFrameThread ( 7) //获取内部IAsynFrameThread[第一个]
#define DT_SetThreadpool ( 8) //设置内部线程池, 注意: 只有IAsynTcpSocketListener有效
#define DT_SetAsynDnsResolver ( 9) //获取内部的IAsynDnsResolver
#define DT_GetAsynDnsResolver ( 9)
#define DT_SetRecvSpeedController ( 0 ) //设置内部的接收IWinsSpeedController
#define DT_GetRecvSpeedController ( 0 ) //获取内部的接收IWinsSpeedController
#define DT_SetSendSpeedController ( 1 ) //设置内部的发送IWinsSpeedController
#define DT_GetSendSpeedController ( 1 ) //获取内部的发送IWinsSpeedController
#define DT_SetAppRecvSpeedController ( 2 ) //设置内部的接收ISpeedController
#define DT_SetAppSendSpeedController ( 3 ) //设置内部的发送ISpeedController
#define DT_GetAppAsynFrame ( 4 )
#define DT_GetAsynIoDevice ( 5 ) //获取内部IAsynIoDevice
#define DT_GetAsynIoOperationFactory ( 6 ) //获取内部IAsynIoOperationFactory
#define DT_GetAsynFrameThread ( 7 ) //获取内部IAsynFrameThread[第一个]
#define DT_SetThreadpool ( 8 ) //设置内部线程池, 注意: 只有IAsynTcpSocketListener有效
#define DT_SetAsynDnsResolver ( 9 ) //获取内部的IAsynDnsResolver
#define DT_GetAsynDnsResolver ( 9 )
/////////////////////////////////////////////////////////////////////////////////
//IAsynIoBridge.IObjectHolder(lType)
#define BT_GetSource ( 0) //获取源IAsynIoDevice
#define BT_GetTarget ( 1)
#define BT_GetSourceIoOperation ( 2) //获取读IAsynIoOperation
#define BT_GetTargetIoOperation ( 3) //获取写IAsynIoOperation
#define BT_GetSource ( 0 ) //获取源IAsynIoDevice
#define BT_GetTarget ( 1 )
#define BT_GetSourceIoOperation ( 2 ) //获取读IAsynIoOperation
#define BT_GetTargetIoOperation ( 3 ) //获取写IAsynIoOperation
/////////////////////////////////////////////////////////////////////////////////
//IAsynIoOperationFactory.CreateAsynIoOperation(lType)
#define BT_SharedMemoryBuffer ( 1) //共享内存
#define BT_SharedMemoryBuffer ( 1 ) //共享内存
/////////////////////////////////////////////////////////////////////////////////
//IAsynIoDevice.Attach(lType)
#define DA_PortHandle ( 0) //主动激活句柄
#define DA_PasvHandle ( 1) //被动激活句柄
#define DA_PortHandle ( 0 ) //主动激活句柄
#define DA_PasvHandle ( 1 ) //被动激活句柄
/////////////////////////////////////////////////////////////////////////////////
//IAsynIoDevice.IsOpened(pDeviceName)
......@@ -192,7 +194,7 @@ END_ASYN_IOERROR()
/////////////////////////////////////////////////////////////////////////////////
//IAsynFrameThread.BindAsynIoOperation(lMode):以下值可以自由组合
#define BM_Oneway (0x00000001) //单向关联:1-只能允许front.cancel事件传递/0-允许front.cancel/self事件传递, 不能跟BM_Result|BM_Calcio|BM_Onlyec联合使用
#define BM_ExBuff (0x00000002) //间接引用数据Buffer, SetExtraBuffer(-1, Buffer)
#define BM_ExBuff (0x00000002) //间接引用数据Buffer, SetExtraBuffer(-1, Buffer), 不能跟BM_IoBuff联合使用
#define BM_Result (0x00000004) //拷贝:Result/errors
#define BM_Calcio (0x00000008) //计算:IoArea
#define BM_Onlyec (0x00000010) //当BM_Onlyec=1时表示不传递Result
......@@ -200,21 +202,28 @@ END_ASYN_IOERROR()
#define BM_IoBuff (0x00020000) //直接引用数据Buffer
#define BM_Device (0x00040000) //传递:Device
#define BM_Copyio (0x00080000) //拷贝:IoArea
#define BM_DoTake (0x00100000) //是否获取Buffer权限,只跟BM_OsAddr|BM_IoBuff|BM_ExBuff联合使用
#define BM_Nolink (0x40000000) //不做关联
#define BM_ResetOptimer (0x80000000) //移除Op定时器
/////////////////////////////////////////////////////////////////////////////////
//IAsynIoOperation.GetOsBuffer(index)
#define OB_OsOverlapped ( 0) //Overlapped
#define OB_OsAddr ( 1) //OsAddr
#define OB_IoArea ( 2) //IoArea
#define OB_OsOverlapped ( 0 ) //Overlapped
#define OB_OsAddr ( 1 ) //OsAddr
#define OB_IoArea ( 2 ) //IoArea
/////////////////////////////////////////////////////////////////////////////////
//IThread.type
#define TT_FrameThread ( 0 ) //IAsynFrameThread
#define TT_WorksThread ( 1 ) //IThread
#define TT_TwinsThread ( 2 ) //IThread
/////////////////////////////////////////////////////////////////////////////////
//IThreadPool.type
#define TP_AutoxThreadpool ( 0) //自动调整线程池
#define TP_FixedThreadpool ( 1) //固定大小线程池
#define TP_SocksThreadpool ( 2) //socket 线程池
#define TP_EventThreadpool ( 3) //监控事件线程池
#define TP_AutoxThreadpool ( 0 ) //自动调整线程池
#define TP_FixedThreadpool ( 1 ) //固定大小线程池
#define TP_SocksThreadpool ( 2 ) //socket 线程池
#define TP_EventThreadpool ( 3 ) //监控事件线程池
#pragma pack(push, 1)
......
// AsynMessageEvents.h: interface for the asyn_message_events_base/asyn_message_events_impl class.
// AsynMessageEvents.h: interface for the CAsynMessageEvents_base/asyn_message_events_base/asyn_message_events_impl class.
//
/////////////////////////////////////////////////////////////////////////////////
#if !defined(AFX_ASYNMESSAGEEVENTS_H__B2A00F47_9C06_4B38_8CC1_312322D02E91__INCLUDED_)
......@@ -40,11 +40,38 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
NAMESPACE_BEGIN(asynsdk)
/////////////////////////////////////////////////////////////////////////////////
class CAsynMessageEvents_base :
public IAsynMessageEvents,
public CMultiThreadModelObject //CComObjectRootEx<CComSingleThreadModel>
{
public:
CAsynMessageEvents_base(uint32_t dwRef = 0)
: CMultiThreadModelObject(dwRef)
{
}
virtual ~CAsynMessageEvents_base() { }
// DECLARE_NOT_AGGREGATABLE(CAsynMessageEvents_base)
// BEGIN_COM_MAP(CAsynMessageEvents_base)
// COM_INTERFACE_ENTRY(IAsynMessageEvents)
// END_COM_MAP()
BEGIN_OBJ_MAP(CAsynMessageEvents_base)
OBJ_INTERFACE_ENTRY(IAsynMessageEvents)
END_OBJ_MAP()
public: //interface of IAsynMessageEvents
STDMETHOD(OnMessage)( /*[in ]*/uint32_t message, /*[in ]*/uint64_t lparam1, /*[in ]*/uint64_t lparam2, /*[in, out]*/IUnknown** objects )
{
return E_NOTIMPL;
}
};
/////////////////////////////////////////////////////////////////////////////////
class asyn_message_events_base
{
public:
STDMETHOD(OnMessage)( /*[in ]*/uint32_t message, /*[in ]*/uint64_t lparam1, /*[in ]*/uint64_t lparam2, /*[in,out]*/IUnknown** objects )
STDMETHOD(OnMessage)( /*[in ]*/uint32_t message, /*[in ]*/uint64_t lparam1, /*[in ]*/uint64_t lparam2, /*[in, out]*/IUnknown** objects )
{
return E_NOTIMPL;
}
......@@ -73,10 +100,10 @@ private:
/////////////////////////////////////////////////////////////////////////////////
#define DECLARE_ASYN_MESSAGE_MAP(class_name) \
STDMETHOD(OnMessage)( /*[in]*/uint32_t message, /*[in]*/uint64_t lparam1, /*[in]*/uint64_t lparam2, /*[in,out]*/IUnknown** objects );
STDMETHOD(OnMessage)( /*[in ]*/uint32_t message, /*[in ]*/uint64_t lparam1, /*[in ]*/uint64_t lparam2, /*[in, out]*/IUnknown** objects );
#define BEGIN_ASYN_MESSAGE_MAP(class_name) \
STDMETHODIMP class_name::OnMessage( /*[in]*/uint32_t message, /*[in]*/uint64_t lparam1, /*[in]*/uint64_t lparam2, /*[in,out]*/IUnknown** objects ) \
STDMETHODIMP class_name::OnMessage( /*[in ]*/uint32_t message, /*[in ]*/uint64_t lparam1, /*[in ]*/uint64_t lparam2, /*[in, out]*/IUnknown** objects ) \
{ \
switch(message) {
......@@ -103,7 +130,8 @@ private:
#define ON_TIMER(memberFxn) \
case AF_TIMER: \
return memberFxn( lparam1, lparam2 );
memberFxn( lparam1, lparam2 ); \
return S_OK;
#define END_ASYN_MESSAGE_MAP() \
default: \
......
......@@ -93,6 +93,7 @@ public:
class CKeyvalSetter :
public IKeyvalSetter,
public CKeyval ,
public CMultiThreadModelObject //CComObjectRootEx<CComSingleThreadModel>
{
public:
......@@ -113,32 +114,29 @@ public:
public: //interface of IKeyvalSetter
STDMETHOD(Get )( /*[in ]*/STRING Key, /*[in ]*/uint32_t Index, /*[in ]*/BOOL remove, /*[in ]*/IStringSetter *value )
{
return m_val.Get(Key, Index, remove, value);
return CKeyval::Get(Key, Index, remove, value);
}
STDMETHOD(Set )( /*[in ]*/STRING Key, /*[in ]*/BOOL Multi, /*[in ]*/STRING value )
{
return m_val.Set(Key, Multi, value);
return CKeyval::Set(Key, Multi, value);
}
STDMETHOD(Del )( /*[in ]*/STRING Key, /*[in ]*/uint32_t Index )
{
return m_val.Del(Key, Index);
return CKeyval::Del(Key, Index);
}
STDMETHOD(Has )( /*[in ]*/STRING Key, /*[out]*/uint32_t *Count )
{
return m_val.Has(Key, Count);
return CKeyval::Has(Key, Count);
}
STDMETHOD(Format)( /*[in ]*/STRING sep, /*[in ]*/STRING end, /*[in,out]*/STRING *out )
{
return m_val.Format(sep, end, out);
return CKeyval::Format(sep, end, out);
}
STDMETHOD(Travel)( /*[in ]*/IUnknown* pParams )
{
return m_val.Travel(pParams); //remark: IN_SysArgv所对应的对象增加支持传入IStringSetter参数: 用于保存参数到指定文件
return CKeyval::Travel(pParams); //remark: IN_SysArgv所对应的对象增加支持传入IStringSetter参数: 用于保存参数到指定文件
}
public:
CKeyval m_val;
};
NAMESPACE_END(asynsdk)
......
......@@ -42,6 +42,7 @@ NAMESPACE_BEGIN(asynsdk)
class CNetmsg :
public INetmsg,
public CKeyval,
public CMultiThreadModelObject //CComObjectRootEx<CComSingleThreadModel>
{
public:
......@@ -64,27 +65,27 @@ public:
public: //interface of IKeyvalSetter
STDMETHOD(Get )( /*[in ]*/STRING Key, /*[in ]*/uint32_t Index, /*[in ]*/BOOL remove, /*[in ]*/IStringSetter *value )
{
return m_val.Get(Key, Index, remove, value);
return CKeyval::Get(Key, Index, remove, value);
}
STDMETHOD(Set )( /*[in ]*/STRING Key, /*[in ]*/BOOL Multi, /*[in ]*/STRING value )
{
return m_val.Set(Key, Multi, value);
return CKeyval::Set(Key, Multi, value);
}
STDMETHOD(Del )( /*[in ]*/STRING Key, /*[in ]*/uint32_t Index )
{
return m_val.Del(Key, Index);
return CKeyval::Del(Key, Index);
}
STDMETHOD(Has )( /*[in ]*/STRING Key, /*[out]*/uint32_t *pCount )
{
return m_val.Has(Key, pCount);
return CKeyval::Has(Key, pCount);
}
STDMETHOD(Format )( /*[in ]*/STRING sep, /*[in ]*/STRING end, /*[in,out]*/STRING *out )
{
return m_val.Format(sep, end, out);
return CKeyval::Format(sep, end, out);
}
STDMETHOD(Travel)( /*[in ]*/IUnknown* pParams )
{
return m_val.Travel(pParams);
return CKeyval::Travel(pParams);
}
public: //interface of INetmsg
......@@ -120,8 +121,7 @@ public:
std::string m_method;
std::string m_param1;
std::string m_param2;
CKeyval m_val;
BOOL m_ack;//0-req 1-ack
BOOL m_ack; //0-req 1-ack
};
NAMESPACE_END(asynsdk)
......
......@@ -81,23 +81,23 @@ public:
{
for(t_lstips::iterator it = vals.begin(); it != vals.end(); ++ it)
{
m_vals.emplace_back(it->c_str());
m_val.emplace_back(it->c_str());
}
}
else
{
m_vals.swap(vals);
m_val.swap(vals);
}
return this;
}
CStringStack *Set(const std::string &val)
{
m_vals.emplace_back(val);
m_val.emplace_back(val);
return this;
}
public:
t_lstips m_vals;
t_lstips m_val;
};
class CStringStackRef :
......@@ -106,7 +106,7 @@ class CStringStackRef :
{
public:
CStringStackRef(uint32_t dwRef = 0, t_lstips *vals = 0)
: CSingleThreadModelObject(dwRef), m_vals(vals)
: CSingleThreadModelObject(dwRef), m_val(vals)
{
}
virtual ~CStringStackRef() { }
......@@ -130,7 +130,7 @@ public: //interface of IStringStack
STDMETHOD(Add)( /*[in ]*/STRING Val );
public:
t_lstips *m_vals;
t_lstips *m_val;
};
NAMESPACE_END(asynsdk)
......
......@@ -76,23 +76,23 @@ public:
{
for(t_vecips::iterator it = vals.begin(); it != vals.end(); ++ it)
{
m_vals.emplace_back(it->c_str());
m_val.emplace_back(it->c_str());
}
}
else
{
m_vals.swap(vals);
m_val.swap(vals);
}
return this;
}
CStringVector *Set(const std::string &val)
{
m_vals.emplace_back(val);
m_val.emplace_back(val);
return this;
}
public:
t_vecips m_vals;
t_vecips m_val;
};
class CStringVectorRef :
......@@ -101,7 +101,7 @@ class CStringVectorRef :
{
public:
CStringVectorRef(uint32_t dwRef = 0, t_vecips *vals = 0)
: CSingleThreadModelObject(dwRef), m_vals(vals)
: CSingleThreadModelObject(dwRef), m_val(vals)
{
}
virtual ~CStringVectorRef() { }
......@@ -120,7 +120,7 @@ public: //interface of IStringVector
STDMETHOD(Set)( /*[in ][size_is(sizeof(STRING)*Size)]*/STRING* Val, /*[in ]*/uint32_t Size );
public:
t_vecips *m_vals;
t_vecips *m_val;
};
NAMESPACE_END(asynsdk)
......
......@@ -53,11 +53,11 @@ HRESULT PostBindIoOperation(/*[in ]*/IAsynIoOperation *lpAsynIoOperation, /*[in
///////////////////////////////////////////////////////////////////////////////
//枚举KeyvalSetter数据
void TravelKeyvalSetter ( /*[in ]*/IKeyvalSetter *object, /*[in ]*/asyn_message_events_base *events );
void TravelKeyvalSetter ( /*[in ]*/IKeyvalSetter *object, /*[in ]*/IAsynMessageEvents *events );
///////////////////////////////////////////////////////////////////////////////
//设置读||写速度限制器
bool SetSpeedController (/*[in ]*/IAsynIoDevice *lpDstAsynIoDevice, /*[in ]*/uint32_t type, /*[in ]*/uint32_t level, /*[in ]*/ISpeedController *pSpeedController);
bool SetSpeedController (/*[in ]*/IAsynIoDevice *lpDstAsynIoDevice, /*[in ]*/uint32_t type, /*[in ]*/uint32_t level, /*[in ]*/ISpeedController *pSpeedController);
///////////////////////////////////////////////////////////////////////////////
//申请||释放内存
......@@ -70,10 +70,10 @@ bool IsSslSocket (IUnknown *pSocket);
///////////////////////////////////////////////////////////////////////////////
//建立消息循环泵: pParam1==0表示建立异步线程循环泵, 禁止events=0,pParam1!=0表示建立窗口线程循环泵, 允许events=0, 注意: 不能用于模态对话框
void DoMessageLoop(/*[in ]*/InstancesManager *lpInstancesManager, /*[in ]*/handle pParam1, /*[in ]*/uint32_t unused, /*[in ]*/asyn_message_events_base *events);
void DoMessageLoop(/*[in ]*/InstancesManager *lpInstancesManager, /*[in ]*/handle pParam1, /*[in ]*/uint32_t unused, /*[in ]*/IAsynMessageEvents *events);
//创建消息循环泵: pParam1==0表示建立异步线程循环泵, 禁止events=0,pParam1!=0表示建立窗口线程循环泵, 允许events=0, 注意: 可以用于模态对话框, 必须在当前线程创建/运行线程循环泵, 并且禁止events=0
IThreadMessagePump *CreateThreadMessagePump(/*[in ]*/InstancesManager *lpInstancesManager, /*[in ]*/handle pParam1, /*[in ]*/uint32_t unused, /*[in ]*/asyn_message_events_base *events);
IThreadMessagePump *CreateThreadMessagePump(/*[in ]*/InstancesManager *lpInstancesManager, /*[in ]*/handle pParam1, /*[in ]*/uint32_t unused, /*[in ]*/IAsynMessageEvents *events);
///////////////////////////////////////////////////////////////////////////////
//创建数据传输器
......@@ -83,6 +83,10 @@ IDataTransmit *CreateDataTransmit(/*[in ]*/InstancesManager *lpInstancesM
//创建命令执行器: name="cmd"表示创建系统命令执行器
IOsCommand *CreateCommand(/*[in ]*/InstancesManager *lpInstancesManager, /*[in ]*/const char *name, /*[in ]*/IUnknown *thread, /*[in ]*/IUnknown *pParam1, /*[in ]*/uint64_t lparam2);
///////////////////////////////////////////////////////////////////////////////
//创建线程
IThread *CreateThread (/*[in ]*/InstancesManager *lpInstancesManager, /*[in ]*/const char *name, /*[in ]*/uint32_t type);
///////////////////////////////////////////////////////////////////////////////
//创建线程池
IThreadPool *CreateThreadPool(/*[in ]*/InstancesManager *lpInstancesManager, /*[in ]*/const char *name, /*[in ]*/uint32_t type);
......
......@@ -4,7 +4,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Fri Feb 17 09:29:47 2023
/* at Sat Mar 04 07:47:14 2023
*/
/* Compiler settings for IAsynFileSystem.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......
......@@ -6,7 +6,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Fri Feb 17 09:29:47 2023
/* at Sat Mar 04 07:47:14 2023
*/
/* Compiler settings for IAsynFileSystem.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......
......@@ -4,7 +4,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Fri Feb 17 09:29:46 2023
/* at Sat Mar 04 07:47:13 2023
*/
/* Compiler settings for IAsynFrame.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......@@ -150,13 +150,6 @@ typedef interface IDataRwInvoke IDataRwInvoke;
#endif /* __IDataRwInvoke_FWD_DEFINED__ */
#ifndef __IAsynIoObject_FWD_DEFINED__
#define __IAsynIoObject_FWD_DEFINED__
typedef interface IAsynIoObject IAsynIoObject;
#endif /* __IAsynIoObject_FWD_DEFINED__ */
#ifndef __IAsynIoDevice_FWD_DEFINED__
#define __IAsynIoDevice_FWD_DEFINED__
typedef interface IAsynIoDevice IAsynIoDevice;
......@@ -2129,86 +2122,6 @@ EXTERN_C const IID IID_IDataRwInvoke;
#endif /* __IDataRwInvoke_INTERFACE_DEFINED__ */
#ifndef __IAsynIoObject_INTERFACE_DEFINED__
#define __IAsynIoObject_INTERFACE_DEFINED__
/* interface IAsynIoObject */
/* [unique][helpstring][uuid][object] */
EXTERN_C const IID IID_IAsynIoObject;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("E9260A0C-A2F7-41AF-B8C7-737E267A0B25")
IAsynIoObject : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE Close(
/* [in] */ uint32_t reserved) = 0;
};
#else /* C style interface */
typedef struct IAsynIoObjectVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IAsynIoObject * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
_COM_Outptr_ void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IAsynIoObject * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IAsynIoObject * This);
HRESULT ( STDMETHODCALLTYPE *Close )(
IAsynIoObject * This,
/* [in] */ uint32_t reserved);
END_INTERFACE
} IAsynIoObjectVtbl;
interface IAsynIoObject
{
CONST_VTBL struct IAsynIoObjectVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IAsynIoObject_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IAsynIoObject_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IAsynIoObject_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IAsynIoObject_Close(This,reserved) \
( (This)->lpVtbl -> Close(This,reserved) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IAsynIoObject_INTERFACE_DEFINED__ */
#ifndef __IAsynIoDevice_INTERFACE_DEFINED__
#define __IAsynIoDevice_INTERFACE_DEFINED__
......@@ -2426,9 +2339,6 @@ EXTERN_C const IID IID_IAsynIoBridge;
/* [in] */ uint64_t unused,
/* [in] */ IAsynMessageEvents *events) = 0;
virtual HRESULT STDMETHODCALLTYPE Close(
/* [in] */ uint32_t how) = 0;
};
......@@ -2468,10 +2378,6 @@ EXTERN_C const IID IID_IAsynIoBridge;
/* [in] */ uint64_t unused,
/* [in] */ IAsynMessageEvents *events);
HRESULT ( STDMETHODCALLTYPE *Close )(
IAsynIoBridge * This,
/* [in] */ uint32_t how);
END_INTERFACE
} IAsynIoBridgeVtbl;
......@@ -2505,9 +2411,6 @@ EXTERN_C const IID IID_IAsynIoBridge;
#define IAsynIoBridge_Invoke(This,unused,events) \
( (This)->lpVtbl -> Invoke(This,unused,events) )
#define IAsynIoBridge_Close(This,how) \
( (This)->lpVtbl -> Close(This,how) )
#endif /* COBJMACROS */
......@@ -3302,14 +3205,14 @@ EXTERN_C const IID IID_IAsynFramePlugin;
#endif /* __IAsynFramePlugin_INTERFACE_DEFINED__ */
/* interface __MIDL_itf_IAsynFrame_0000_0023 */
/* interface __MIDL_itf_IAsynFrame_0000_0022 */
/* [local] */
#pragma pack(pop)
extern RPC_IF_HANDLE __MIDL_itf_IAsynFrame_0000_0023_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_IAsynFrame_0000_0023_v0_0_s_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_IAsynFrame_0000_0022_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_IAsynFrame_0000_0022_v0_0_s_ifspec;
/* Additional Prototypes for ALL interfaces */
......
......@@ -6,7 +6,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Fri Feb 17 09:29:46 2023
/* at Sat Mar 04 07:47:13 2023
*/
/* Compiler settings for IAsynFrame.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......@@ -112,9 +112,6 @@ MIDL_DEFINE_GUID(IID, IID_IDataTransmit,0x51DAEFEC,0x4B50,0x43C5,0xBE,0xB1,0x26,
MIDL_DEFINE_GUID(IID, IID_IDataRwInvoke,0xCE91B4EF,0xB499,0x4778,0xAF,0x25,0x2D,0x33,0x58,0xDC,0x5B,0xA1);
MIDL_DEFINE_GUID(IID, IID_IAsynIoObject,0xE9260A0C,0xA2F7,0x41AF,0xB8,0xC7,0x73,0x7E,0x26,0x7A,0x0B,0x25);
MIDL_DEFINE_GUID(IID, IID_IAsynIoDevice,0xCBFDC32B,0x6AC7,0x4dd6,0xBB,0x9D,0xE8,0x24,0x83,0x66,0x24,0x9A);
......
......@@ -4,7 +4,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Fri Feb 17 09:29:48 2023
/* at Sat Mar 04 07:47:15 2023
*/
/* Compiler settings for IAsynIpcChannel.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......
......@@ -6,7 +6,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Fri Feb 17 09:29:48 2023
/* at Sat Mar 04 07:47:15 2023
*/
/* Compiler settings for IAsynIpcChannel.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......
......@@ -4,7 +4,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Fri Feb 17 09:29:50 2023
/* at Sat Mar 04 07:47:17 2023
*/
/* Compiler settings for IAsynNetAgent.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......
......@@ -6,7 +6,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Fri Feb 17 09:29:50 2023
/* at Sat Mar 04 07:47:17 2023
*/
/* Compiler settings for IAsynNetAgent.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......
......@@ -4,7 +4,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Sat Feb 18 14:07:13 2023
/* at Sat Mar 04 07:47:16 2023
*/
/* Compiler settings for IAsynNetwork.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......
......@@ -6,7 +6,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Sat Feb 18 14:07:13 2023
/* at Sat Mar 04 07:47:16 2023
*/
/* Compiler settings for IAsynNetwork.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......
......@@ -4,7 +4,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Fri Feb 17 09:29:52 2023
/* at Sat Mar 04 07:47:19 2023
*/
/* Compiler settings for IConsole.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......
......@@ -6,7 +6,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Fri Feb 17 09:29:52 2023
/* at Sat Mar 04 07:47:19 2023
*/
/* Compiler settings for IConsole.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......
......@@ -4,7 +4,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Fri Feb 17 09:29:54 2023
/* at Sat Mar 04 07:47:22 2023
*/
/* Compiler settings for IDtp.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......
......@@ -6,7 +6,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Fri Feb 17 09:29:54 2023
/* at Sat Mar 04 07:47:22 2023
*/
/* Compiler settings for IDtp.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......
......@@ -4,7 +4,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Fri Feb 17 09:29:51 2023
/* at Sat Mar 04 07:47:18 2023
*/
/* Compiler settings for IExceptionTrapper.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......
......@@ -6,7 +6,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Fri Feb 17 09:29:51 2023
/* at Sat Mar 04 07:47:18 2023
*/
/* Compiler settings for IExceptionTrapper.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......
......@@ -4,7 +4,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Fri Feb 17 09:29:57 2023
/* at Sat Mar 04 07:47:25 2023
*/
/* Compiler settings for INet.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......
......@@ -6,7 +6,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Fri Feb 17 09:29:57 2023
/* at Sat Mar 04 07:47:25 2023
*/
/* Compiler settings for INet.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......
......@@ -4,7 +4,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Fri Feb 17 09:30:01 2023
/* at Sat Mar 04 07:47:30 2023
*/
/* Compiler settings for IProxy.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......
......@@ -6,7 +6,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Fri Feb 17 09:30:01 2023
/* at Sat Mar 04 07:47:30 2023
*/
/* Compiler settings for IProxy.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......
......@@ -4,7 +4,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Fri Feb 17 09:29:57 2023
/* at Sat Mar 04 07:47:26 2023
*/
/* Compiler settings for ISsl.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......
......@@ -6,7 +6,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Fri Feb 17 09:29:57 2023
/* at Sat Mar 04 07:47:26 2023
*/
/* Compiler settings for ISsl.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......
......@@ -4,7 +4,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Sat Jan 28 08:50:42 2023
/* at Sat Mar 04 07:47:08 2023
*/
/* Compiler settings for ITypedef.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......
......@@ -6,7 +6,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Sat Jan 28 08:50:42 2023
/* at Sat Mar 04 07:47:08 2023
*/
/* Compiler settings for ITypedef.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......
......@@ -4,7 +4,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Fri Feb 17 09:30:07 2023
/* at Sat Mar 04 07:47:37 2023
*/
/* Compiler settings for IVmHost.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......
......@@ -6,7 +6,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Fri Feb 17 09:30:07 2023
/* at Sat Mar 04 07:47:37 2023
*/
/* Compiler settings for IVmHost.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......
......@@ -302,7 +302,7 @@ HRESULT CDownloader::OnIomsgNotify( uint64_t lParam1, uint64_t lAction, IAsynIoO
}
m_spDataTcpSocketListener->Open(m_spAsynFrameThread, m_af, SOCK_STREAM, IPPROTO_TCP);
m_spAsynFrameThread->BindAsynIoOperation(lpAsynIoOperation, 0, 0, 5000/*5sec超时*/);
m_spAsynFrameThread->BindAsynIoOperation(lpAsynIoOperation, 0, 0, 5000/*5sec*/); //设定io超时
crReturn(m_spDataTcpSocketListener->Bind(STRING_EX::null, 0, FALSE, lpAsynIoOperation));
if( lErrorCode != NO_ERROR)
{
......@@ -335,7 +335,7 @@ HRESULT CDownloader::OnIomsgNotify( uint64_t lParam1, uint64_t lAction, IAsynIoO
m_spCtrlTcpSocket->SendPacket(STRING_from_string("PORT"), STRING_from_string(temp), 0, 0);
}
m_spAsynFrameThread->BindAsynIoOperation(lpAsynIoOperation, 0, 0, 5000);
m_spAsynFrameThread->BindAsynIoOperation(lpAsynIoOperation, 0, 0, 5000/*5sec*/); //设定io超时
crReturn(m_spDataTcpSocketListener->Accept(lpAsynIoOperation));
m_spDataTcpSocketListener = 0;
if( lErrorCode != NO_ERROR )
......@@ -634,8 +634,6 @@ HRESULT CDownloader::OnEventNotify( uint64_t lParam1, uint64_t lParam2, IAsynIoO
}
HRESULT r1 = m_spCtrlTcpSocket->Close(0); //Close能够自动发送QUIT
m_spAsynIoBridge->Close(0);
SetEvent(m_hNotify);
return S_OK;
}
......@@ -250,14 +250,14 @@ public:
crStateV(0);
if( m_prxyname == "none" )
printf("start to tcp.connect %s:%d\n", m_host.c_str(), m_port);
printf("start to connect %s:%d\n", m_host.c_str(), m_port);
else
printf("start to tcp.connect %s:%d via proxy: %s[%s:%d]\n", m_host.c_str(), m_port, m_prxyname.c_str(), m_setsfile.get_string("proxy", "host", "127.0.0.1").c_str(), m_setsfile.get_long("proxy", "port", 1080));
printf("start to connect %s:%d via %s-proxyserver[%s:%d]\n", m_host.c_str(), m_port, m_prxyname.c_str(), m_setsfile.get_string("proxy", "host", "127.0.0.1").c_str(), m_setsfile.get_long("proxy", "port", 1080));
CComPtr<IAsynNetIoOperation> spAsynIoOperation;
m_spAsynNetwork->CreateAsynIoOperation(m_spAsynFrame, m_af, 0, IID_IAsynNetIoOperation, (void **)&spAsynIoOperation);
HRESULT r2 = spAsynIoOperation->SetOpParam1(0/*控制链接*/);
spAsynTcpSocket->Connect(STRING_from_string(m_host), m_port, 0, spAsynIoOperation, m_setsfile.get_long("session", "connect_timeout", 5000/*5sec*/));
spAsynTcpSocket->Connect(STRING_from_string(m_host), m_port, 0, spAsynIoOperation, m_setsfile.get_long("session", "connect_timeout", 2000/*2sec*/));
return true;
}
......
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册