基礎類三

來源:互聯網
上載者:User

標籤:使用   檔案   資料   sp   代碼   on   c   ad   new   

main主線程資料
CWorkControl m_cWorkControl;
CDispatchResult * m_pDispatchResult;
int32 m_iWorkAllThread;
CStringList m_lstPsNetCode;//網元隊列
CStringList m_lstDsType;
int32 m_iInstanceId;
CMsgTask * m_pResultQueue;//結果隊列
CDataSourceList m_lstDatasource;//具體的資料來源列表

static AISTD string m_strConfigName;


資料來源部分:
1)資料來源的初始化:
資料來源數組vector:vector<CDataSource*> m_lstDatasource
在readDsCfg中進行初始化push_back插入
cAcConfigHelper 設定檔
1)m_lstPsNetCode 網元名稱列表vector<string>
如果m_lsPsNetCode為NONE,
則getPsNetCode()獲得網元代碼:重新讀取資料庫資訊
class CSysResDb:public CResource
根據網元進程名在ps_proxy_route中獲得
網元代碼
2)new CPsTaskMap(m_lstPsNetCode):根據獲得的網元代碼建立每個網元代碼對應的
訊息佇列CMsgTask,最後全部以map的方式存在
CPsTaskMap對象中
3)用產生的CPsTaskMap對象g_pMapTaskQueue去初始化資料來源類CDatasource(基類為線程類)的
子類CDsSyncProv
4)調用基類CDatasource的readCfg方法載入設定檔初始化資料來源的私人資料
5)調用基類CDatasource的init方法檢查私人資料
6)把產生的資料來源插入資料來源隊列
2)資料來源調用work啟動:
1)首先檢查線程是否處於迴圈狀態:while(m_isLoop)
2)檢查資料來源串連情況:m_isConnect 在繼承的子類虛函數openDs
在openDs()函數中使用CCommTCP m_cCommServer(基類為CCommTool);//監聽連接埠
創造一個描述符
使用m_pListenThread=new CDsSyncListen(this)建立監聽線程
調用此線程迴圈監聽(調用資料的listen方法),把listenfd放入select迴圈監聽,有串連,則
產生一個CommTcp串連,調用accept方法產生一個TCP串連
再聲明初始化一個CClientNode用戶端節點,把acceptfd和CClientNode放入
資料來源的m_mapclient中

基礎類三

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.