v
This commit is contained in:
parent
f5d87ba8af
commit
e8059cfc4b
59
UML/IbApi.puml
Normal file
59
UML/IbApi.puml
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
@startuml
|
||||||
|
|
||||||
|
abstract class EWrapper
|
||||||
|
class IbWrapper
|
||||||
|
class VnIbApi
|
||||||
|
class IbApiWrap
|
||||||
|
class IbApi
|
||||||
|
|
||||||
|
|
||||||
|
EWrapper <|-- IbWrapper
|
||||||
|
IbWrapper *-- VnIbApi
|
||||||
|
IbWrapper --* VnIbApi
|
||||||
|
VnIbApi <|-- IbApiWrap : Boost.python封装
|
||||||
|
note right
|
||||||
|
实际上是结构体struct。
|
||||||
|
按照Boost.python的规范封装
|
||||||
|
end note
|
||||||
|
|
||||||
|
IbApiWrap <|-- IbApi : Boost.python封装
|
||||||
|
note right
|
||||||
|
按照Boost.python的规范封装
|
||||||
|
Python的程序对接使用此类型。
|
||||||
|
end note
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
abstract class EWrapper {
|
||||||
|
}
|
||||||
|
note right
|
||||||
|
提供IB网关返回响应数据后,会调用回调函数。
|
||||||
|
此类定义了回调函数的接口。
|
||||||
|
end note
|
||||||
|
|
||||||
|
class IbWrapper {
|
||||||
|
- VnIbApi *api;
|
||||||
|
}
|
||||||
|
note right
|
||||||
|
此类用于实现回调函数的接口。
|
||||||
|
end note
|
||||||
|
|
||||||
|
class VnIbApi {
|
||||||
|
- IbWrapper *wrapper;
|
||||||
|
- EReaderOSSignal signal;
|
||||||
|
- EReader *reader;
|
||||||
|
+ EClientSocket *client;
|
||||||
|
}
|
||||||
|
note right
|
||||||
|
**VnIbApi中包含EClientSocket和IbWrapper成员**
|
||||||
|
|
||||||
|
EClientSocket:提供应用程序发起请求到IB网关的API函数
|
||||||
|
IbWrapper: 提供IB网关返回响应数据后的回调函数
|
||||||
|
end note
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@enduml
|
@ -14,7 +14,7 @@ participant EventProcessThread as eet
|
|||||||
participant Queue as eeq
|
participant Queue as eeq
|
||||||
participant TimerThread as eetm
|
participant TimerThread as eetm
|
||||||
participant "ibGateway:vtGateway" as gw
|
participant "ibGateway:vtGateway" as gw
|
||||||
participant "IbWrapper:EWrapper" as wrap
|
participant "IbWrapper:IbApi" as wrap
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -96,9 +96,13 @@ run->me ++ : addGateway(ibGateway)
|
|||||||
end note
|
end note
|
||||||
gw->wrap ** : Create IbWrap(self)
|
gw->wrap ** : Create IbWrap(self)
|
||||||
note right
|
note right
|
||||||
EWrapper类是C++实现, 存在于IB提供的源代码中。
|
IbApi是基于Boost.python的封装。
|
||||||
通过boost.python机制,
|
用C++实现,但是可以提供给Python程序使用。
|
||||||
Python的IbWrapper类从EWrapper派生
|
IbApi使用IB提供的C++接口源代码,
|
||||||
|
来和IB网关进行数据交互
|
||||||
|
IbApi提供两类函数功能:
|
||||||
|
主动请求IB网关的功能
|
||||||
|
接收IB网关异步返回数据的功能
|
||||||
end note
|
end note
|
||||||
activate wrap
|
activate wrap
|
||||||
wrap->wrap ++ : 构造函数()
|
wrap->wrap ++ : 构造函数()
|
||||||
@ -144,7 +148,8 @@ run->ee: ee.regiser() 注册日志处理事件
|
|||||||
run->me++: me.Connect(IB)
|
run->me++: me.Connect(IB)
|
||||||
note right: 连接IB网关
|
note right: 连接IB网关
|
||||||
me->gw ++ : gw.connect()
|
me->gw ++ : gw.connect()
|
||||||
gw-> wrap : wrap.eConnect(host, port, clientId, false)
|
gw-> wrap ++ : wrap.eConnect(host, port, clientId, false)
|
||||||
|
return
|
||||||
return
|
return
|
||||||
me->me ++ : dbConnect()
|
me->me ++ : dbConnect()
|
||||||
me->db ++ : MongoClient()
|
me->db ++ : MongoClient()
|
||||||
|
Loading…
Reference in New Issue
Block a user