SIPPhone_client_g.h 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816
  1. #ifndef __SIPPHONE_CLIENT_G_H
  2. #define __SIPPHONE_CLIENT_G_H
  3. #pragma once
  4. // This code is generated by spgen tool!
  5. #include "SIPPhone_def_g.h"
  6. namespace SIPPhone {
  7. class PhoneService_ClientBase : public CClientSessionBase, public ICallbackListener {
  8. public:
  9. explicit PhoneService_ClientBase(CEntityBase *pEntity) : m_pEntityBase(pEntity), m_bSysManaged(false) {}
  10. PhoneService_ClientBase* operator () (const linkContext &curLink)
  11. {
  12. m_context = curLink;
  13. return this;
  14. }
  15. protected:
  16. virtual ~PhoneService_ClientBase()
  17. {
  18. /// override by user
  19. }
  20. public:
  21. void OnConnectSucceed()
  22. {
  23. bSessionClosed = false;
  24. }
  25. void OnClose(ErrorCodeEnum)
  26. {
  27. Dbg("session closed.");
  28. bSessionClosed = true;
  29. }
  30. bool QuerySessionClosed()
  31. {
  32. return bSessionClosed;
  33. }
  34. ErrorCodeEnum Connect(CSmartPointer<IAsynWaitSp> &spAsyncWait)
  35. {
  36. CSmartPointer<IEntityFunction> pFunc = m_pEntityBase->GetFunction();
  37. ErrorCodeEnum Error = pFunc->ConnectRemoteEntity(this, "SIPPhone", "PhoneService", spAsyncWait);
  38. if (Error == Error_Succeed) {
  39. m_bSysManaged = true;
  40. bSessionClosed = false;
  41. }
  42. return Error;
  43. }
  44. ErrorCodeEnum Connect()
  45. {
  46. CSmartPointer<IAsynWaitSp> spAsyncWait;
  47. ErrorCodeEnum Error = Connect(spAsyncWait);
  48. if (Error == Error_Succeed) {
  49. Error = spAsyncWait->WaitAnswer();
  50. }
  51. return Error;
  52. }
  53. ErrorCodeEnum MakeCall(PhoneService_MakeCall_Req &Req, CSmartPointer<IAsynWaitSp> &spAsyncWait, DWORD dwTimeout)
  54. {
  55. CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
  56. CAutoBuffer Buf = SpObject2Buffer(Req);
  57. if (m_context.checkEmpty())
  58. {
  59. m_context.AutoGenerate();
  60. DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
  61. m_context = m_context.upgradeLink();
  62. }
  63. auto ret = pFunc->AsyncRequest(PhoneService_Method_MakeCall, PhoneService_MethodSignature_MakeCall, Buf, spAsyncWait, m_context, dwTimeout);
  64. m_context.clear();
  65. return ret;
  66. }
  67. ErrorCodeEnum MakeCall(PhoneService_MakeCall_Req &Req, PhoneService_MakeCall_Ans &Ans, DWORD dwTimeout)
  68. {
  69. CSmartPointer<IAsynWaitSp> spAsyncWait;
  70. ErrorCodeEnum Error = MakeCall(Req, spAsyncWait, dwTimeout);
  71. if (Error == Error_Succeed) {
  72. bool bEnd = false;
  73. Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout);
  74. LOG_ASSERT(Error || bEnd);
  75. }
  76. return Error;
  77. }
  78. ErrorCodeEnum MakeCall(PhoneService_MakeCall_Req &Req, PhoneService_MakeCall_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError, CSimpleString &str)
  79. {
  80. CSmartPointer<IAsynWaitSp> spAsyncWait;
  81. ErrorCodeEnum Error = MakeCall(Req, spAsyncWait, dwTimeout);
  82. if (Error == Error_Succeed) {
  83. bool bEnd = false;
  84. Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
  85. LOG_ASSERT(Error || bEnd);
  86. }
  87. return Error;
  88. }
  89. ErrorCodeEnum MakeCall(PhoneService_MakeCall_Req &Req, PhoneService_MakeCall_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError)
  90. {
  91. CSmartPointer<IAsynWaitSp> spAsyncWait;
  92. ErrorCodeEnum Error = MakeCall(Req, spAsyncWait, dwTimeout);
  93. if (Error == Error_Succeed) {
  94. bool bEnd = false;
  95. CSimpleString str;
  96. Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
  97. LOG_ASSERT(Error || bEnd);
  98. }
  99. return Error;
  100. }
  101. ErrorCodeEnum HangupCall(PhoneService_HangupCall_Req &Req, CSmartPointer<IAsynWaitSp> &spAsyncWait, DWORD dwTimeout)
  102. {
  103. CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
  104. CAutoBuffer Buf = SpObject2Buffer(Req);
  105. if (m_context.checkEmpty())
  106. {
  107. m_context.AutoGenerate();
  108. DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
  109. m_context = m_context.upgradeLink();
  110. }
  111. auto ret = pFunc->AsyncRequest(PhoneService_Method_HangupCall, PhoneService_MethodSignature_HangupCall, Buf, spAsyncWait, m_context, dwTimeout);
  112. m_context.clear();
  113. return ret;
  114. }
  115. ErrorCodeEnum HangupCall(PhoneService_HangupCall_Req &Req, PhoneService_HangupCall_Ans &Ans, DWORD dwTimeout)
  116. {
  117. CSmartPointer<IAsynWaitSp> spAsyncWait;
  118. ErrorCodeEnum Error = HangupCall(Req, spAsyncWait, dwTimeout);
  119. if (Error == Error_Succeed) {
  120. bool bEnd = false;
  121. Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout);
  122. LOG_ASSERT(Error || bEnd);
  123. }
  124. return Error;
  125. }
  126. ErrorCodeEnum HangupCall(PhoneService_HangupCall_Req &Req, PhoneService_HangupCall_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError, CSimpleString &str)
  127. {
  128. CSmartPointer<IAsynWaitSp> spAsyncWait;
  129. ErrorCodeEnum Error = HangupCall(Req, spAsyncWait, dwTimeout);
  130. if (Error == Error_Succeed) {
  131. bool bEnd = false;
  132. Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
  133. LOG_ASSERT(Error || bEnd);
  134. }
  135. return Error;
  136. }
  137. ErrorCodeEnum HangupCall(PhoneService_HangupCall_Req &Req, PhoneService_HangupCall_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError)
  138. {
  139. CSmartPointer<IAsynWaitSp> spAsyncWait;
  140. ErrorCodeEnum Error = HangupCall(Req, spAsyncWait, dwTimeout);
  141. if (Error == Error_Succeed) {
  142. bool bEnd = false;
  143. CSimpleString str;
  144. Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
  145. LOG_ASSERT(Error || bEnd);
  146. }
  147. return Error;
  148. }
  149. ErrorCodeEnum StartVideo(PhoneService_StartVideo_Info &Info)
  150. {
  151. CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
  152. if (m_context.checkEmpty())
  153. {
  154. m_context.AutoGenerate();
  155. DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
  156. m_context = m_context.upgradeLink();
  157. }
  158. CAutoBuffer Buf = SpObject2Buffer(Info);
  159. auto ret = pFunc->OnewayCall(PhoneService_Method_StartVideo, PhoneService_MethodSignature_StartVideo, Buf, m_context);
  160. m_context.clear();
  161. return ret;
  162. }
  163. ErrorCodeEnum StopVideo()
  164. {
  165. CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
  166. if (m_context.checkEmpty())
  167. {
  168. m_context.AutoGenerate();
  169. DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
  170. m_context = m_context.upgradeLink();
  171. }
  172. auto ret = pFunc->OnewayCall(PhoneService_Method_StopVideo, PhoneService_MethodSignature_StopVideo, m_context);
  173. m_context.clear();
  174. return ret;
  175. }
  176. ErrorCodeEnum RealErrorCheck()
  177. {
  178. CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
  179. if (m_context.checkEmpty())
  180. {
  181. m_context.AutoGenerate();
  182. DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
  183. m_context = m_context.upgradeLink();
  184. }
  185. auto ret = pFunc->OnewayCall(PhoneService_Method_RealErrorCheck, PhoneService_MethodSignature_RealErrorCheck, m_context);
  186. m_context.clear();
  187. return ret;
  188. }
  189. ErrorCodeEnum ReleaseCall(PhoneService_ReleaseCall_Req &Req, CSmartPointer<IAsynWaitSp> &spAsyncWait, DWORD dwTimeout)
  190. {
  191. CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
  192. CAutoBuffer Buf = SpObject2Buffer(Req);
  193. if (m_context.checkEmpty())
  194. {
  195. m_context.AutoGenerate();
  196. DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
  197. m_context = m_context.upgradeLink();
  198. }
  199. auto ret = pFunc->AsyncRequest(PhoneService_Method_ReleaseCall, PhoneService_MethodSignature_ReleaseCall, Buf, spAsyncWait, m_context, dwTimeout);
  200. m_context.clear();
  201. return ret;
  202. }
  203. ErrorCodeEnum ReleaseCall(PhoneService_ReleaseCall_Req &Req, PhoneService_ReleaseCall_Ans &Ans, DWORD dwTimeout)
  204. {
  205. CSmartPointer<IAsynWaitSp> spAsyncWait;
  206. ErrorCodeEnum Error = ReleaseCall(Req, spAsyncWait, dwTimeout);
  207. if (Error == Error_Succeed) {
  208. bool bEnd = false;
  209. Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout);
  210. LOG_ASSERT(Error || bEnd);
  211. }
  212. return Error;
  213. }
  214. ErrorCodeEnum ReleaseCall(PhoneService_ReleaseCall_Req &Req, PhoneService_ReleaseCall_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError, CSimpleString &str)
  215. {
  216. CSmartPointer<IAsynWaitSp> spAsyncWait;
  217. ErrorCodeEnum Error = ReleaseCall(Req, spAsyncWait, dwTimeout);
  218. if (Error == Error_Succeed) {
  219. bool bEnd = false;
  220. Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
  221. LOG_ASSERT(Error || bEnd);
  222. }
  223. return Error;
  224. }
  225. ErrorCodeEnum ReleaseCall(PhoneService_ReleaseCall_Req &Req, PhoneService_ReleaseCall_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError)
  226. {
  227. CSmartPointer<IAsynWaitSp> spAsyncWait;
  228. ErrorCodeEnum Error = ReleaseCall(Req, spAsyncWait, dwTimeout);
  229. if (Error == Error_Succeed) {
  230. bool bEnd = false;
  231. CSimpleString str;
  232. Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
  233. LOG_ASSERT(Error || bEnd);
  234. }
  235. return Error;
  236. }
  237. ErrorCodeEnum BeginState(PhoneService_BeginState_Sub &Req, CSmartPointer<IAsynWaitSp> &spAsyncWait)
  238. {
  239. CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
  240. CAutoBuffer Buf = SpObject2Buffer(Req);
  241. ErrorCodeEnum Error = pFunc->AsyncRequest(PhoneService_Method_BeginState, PhoneService_MethodSignature_BeginState, Buf, spAsyncWait, -1);
  242. return Error;
  243. }
  244. ErrorCodeEnum BeginState(PhoneService_BeginState_Sub &Req, ICallbackListener *pCallback,IReleasable *pData = NULL)
  245. {
  246. CSmartPointer<IAsynWaitSp> spAsyncWait;
  247. ErrorCodeEnum Error = BeginState(Req, spAsyncWait);
  248. if (Error == Error_Succeed) {
  249. spAsyncWait->SetCallback(pCallback, pData);
  250. }
  251. return Error;
  252. }
  253. ErrorCodeEnum BeginState(PhoneService_BeginState_Sub &Req, IReleasable *pData = NULL)
  254. {
  255. return BeginState(Req, this, pData);
  256. }
  257. ErrorCodeEnum EndState(PhoneService_EndState_Info &CancelInfo)
  258. {
  259. CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
  260. return pFunc->OnewayCall(PhoneService_Method_EndState, PhoneService_MethodSignature_EndState);
  261. }
  262. virtual void OnMessage(ErrorCodeEnum Error, PhoneService_PhoneState_Info &Msg, CSmartPointer<IReleasable> pData)
  263. {
  264. /// implement by user
  265. }
  266. ErrorCodeEnum SetCallingParam(PhoneService_SetCallingParam_Info &Info)
  267. {
  268. CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
  269. if (m_context.checkEmpty())
  270. {
  271. m_context.AutoGenerate();
  272. DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
  273. m_context = m_context.upgradeLink();
  274. }
  275. CAutoBuffer Buf = SpObject2Buffer(Info);
  276. auto ret = pFunc->OnewayCall(PhoneService_Method_SetCallingParam, PhoneService_MethodSignature_SetCallingParam, Buf, m_context);
  277. m_context.clear();
  278. return ret;
  279. }
  280. ErrorCodeEnum GetHandfreeOutVolume(PhoneService_GetHandfreeOutVolume_Req &Req, CSmartPointer<IAsynWaitSp> &spAsyncWait, DWORD dwTimeout)
  281. {
  282. CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
  283. CAutoBuffer Buf = SpObject2Buffer(Req);
  284. if (m_context.checkEmpty())
  285. {
  286. m_context.AutoGenerate();
  287. DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
  288. m_context = m_context.upgradeLink();
  289. }
  290. auto ret = pFunc->AsyncRequest(PhoneService_Method_GetHandfreeOutVolume, PhoneService_MethodSignature_GetHandfreeOutVolume, Buf, spAsyncWait, m_context, dwTimeout);
  291. m_context.clear();
  292. return ret;
  293. }
  294. ErrorCodeEnum GetHandfreeOutVolume(PhoneService_GetHandfreeOutVolume_Req &Req, PhoneService_GetHandfreeOutVolume_Ans &Ans, DWORD dwTimeout)
  295. {
  296. CSmartPointer<IAsynWaitSp> spAsyncWait;
  297. ErrorCodeEnum Error = GetHandfreeOutVolume(Req, spAsyncWait, dwTimeout);
  298. if (Error == Error_Succeed) {
  299. bool bEnd = false;
  300. Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout);
  301. LOG_ASSERT(Error || bEnd);
  302. }
  303. return Error;
  304. }
  305. ErrorCodeEnum GetHandfreeOutVolume(PhoneService_GetHandfreeOutVolume_Req &Req, PhoneService_GetHandfreeOutVolume_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError, CSimpleString &str)
  306. {
  307. CSmartPointer<IAsynWaitSp> spAsyncWait;
  308. ErrorCodeEnum Error = GetHandfreeOutVolume(Req, spAsyncWait, dwTimeout);
  309. if (Error == Error_Succeed) {
  310. bool bEnd = false;
  311. Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
  312. LOG_ASSERT(Error || bEnd);
  313. }
  314. return Error;
  315. }
  316. ErrorCodeEnum GetHandfreeOutVolume(PhoneService_GetHandfreeOutVolume_Req &Req, PhoneService_GetHandfreeOutVolume_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError)
  317. {
  318. CSmartPointer<IAsynWaitSp> spAsyncWait;
  319. ErrorCodeEnum Error = GetHandfreeOutVolume(Req, spAsyncWait, dwTimeout);
  320. if (Error == Error_Succeed) {
  321. bool bEnd = false;
  322. CSimpleString str;
  323. Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
  324. LOG_ASSERT(Error || bEnd);
  325. }
  326. return Error;
  327. }
  328. ErrorCodeEnum SetHandfreeOutVolume(PhoneService_SetHandfreeOutVolume_Req &Req, CSmartPointer<IAsynWaitSp> &spAsyncWait, DWORD dwTimeout)
  329. {
  330. CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
  331. CAutoBuffer Buf = SpObject2Buffer(Req);
  332. if (m_context.checkEmpty())
  333. {
  334. m_context.AutoGenerate();
  335. DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
  336. m_context = m_context.upgradeLink();
  337. }
  338. auto ret = pFunc->AsyncRequest(PhoneService_Method_SetHandfreeOutVolume, PhoneService_MethodSignature_SetHandfreeOutVolume, Buf, spAsyncWait, m_context, dwTimeout);
  339. m_context.clear();
  340. return ret;
  341. }
  342. ErrorCodeEnum SetHandfreeOutVolume(PhoneService_SetHandfreeOutVolume_Req &Req, PhoneService_SetHandfreeOutVolume_Ans &Ans, DWORD dwTimeout)
  343. {
  344. CSmartPointer<IAsynWaitSp> spAsyncWait;
  345. ErrorCodeEnum Error = SetHandfreeOutVolume(Req, spAsyncWait, dwTimeout);
  346. if (Error == Error_Succeed) {
  347. bool bEnd = false;
  348. Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout);
  349. LOG_ASSERT(Error || bEnd);
  350. }
  351. return Error;
  352. }
  353. ErrorCodeEnum SetHandfreeOutVolume(PhoneService_SetHandfreeOutVolume_Req &Req, PhoneService_SetHandfreeOutVolume_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError, CSimpleString &str)
  354. {
  355. CSmartPointer<IAsynWaitSp> spAsyncWait;
  356. ErrorCodeEnum Error = SetHandfreeOutVolume(Req, spAsyncWait, dwTimeout);
  357. if (Error == Error_Succeed) {
  358. bool bEnd = false;
  359. Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
  360. LOG_ASSERT(Error || bEnd);
  361. }
  362. return Error;
  363. }
  364. ErrorCodeEnum SetHandfreeOutVolume(PhoneService_SetHandfreeOutVolume_Req &Req, PhoneService_SetHandfreeOutVolume_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError)
  365. {
  366. CSmartPointer<IAsynWaitSp> spAsyncWait;
  367. ErrorCodeEnum Error = SetHandfreeOutVolume(Req, spAsyncWait, dwTimeout);
  368. if (Error == Error_Succeed) {
  369. bool bEnd = false;
  370. CSimpleString str;
  371. Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
  372. LOG_ASSERT(Error || bEnd);
  373. }
  374. return Error;
  375. }
  376. ErrorCodeEnum SetPickupOutVolume(PhoneService_SetPickupOutVolume_Req &Req, CSmartPointer<IAsynWaitSp> &spAsyncWait, DWORD dwTimeout)
  377. {
  378. CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
  379. CAutoBuffer Buf = SpObject2Buffer(Req);
  380. if (m_context.checkEmpty())
  381. {
  382. m_context.AutoGenerate();
  383. DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
  384. m_context = m_context.upgradeLink();
  385. }
  386. auto ret = pFunc->AsyncRequest(PhoneService_Method_SetPickupOutVolume, PhoneService_MethodSignature_SetPickupOutVolume, Buf, spAsyncWait, m_context, dwTimeout);
  387. m_context.clear();
  388. return ret;
  389. }
  390. ErrorCodeEnum SetPickupOutVolume(PhoneService_SetPickupOutVolume_Req &Req, PhoneService_SetPickupOutVolume_Ans &Ans, DWORD dwTimeout)
  391. {
  392. CSmartPointer<IAsynWaitSp> spAsyncWait;
  393. ErrorCodeEnum Error = SetPickupOutVolume(Req, spAsyncWait, dwTimeout);
  394. if (Error == Error_Succeed) {
  395. bool bEnd = false;
  396. Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout);
  397. LOG_ASSERT(Error || bEnd);
  398. }
  399. return Error;
  400. }
  401. ErrorCodeEnum SetPickupOutVolume(PhoneService_SetPickupOutVolume_Req &Req, PhoneService_SetPickupOutVolume_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError, CSimpleString &str)
  402. {
  403. CSmartPointer<IAsynWaitSp> spAsyncWait;
  404. ErrorCodeEnum Error = SetPickupOutVolume(Req, spAsyncWait, dwTimeout);
  405. if (Error == Error_Succeed) {
  406. bool bEnd = false;
  407. Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
  408. LOG_ASSERT(Error || bEnd);
  409. }
  410. return Error;
  411. }
  412. ErrorCodeEnum SetPickupOutVolume(PhoneService_SetPickupOutVolume_Req &Req, PhoneService_SetPickupOutVolume_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError)
  413. {
  414. CSmartPointer<IAsynWaitSp> spAsyncWait;
  415. ErrorCodeEnum Error = SetPickupOutVolume(Req, spAsyncWait, dwTimeout);
  416. if (Error == Error_Succeed) {
  417. bool bEnd = false;
  418. CSimpleString str;
  419. Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
  420. LOG_ASSERT(Error || bEnd);
  421. }
  422. return Error;
  423. }
  424. ErrorCodeEnum GetPickupOutVolume(PhoneService_GetPickupOutVolume_Req &Req, CSmartPointer<IAsynWaitSp> &spAsyncWait, DWORD dwTimeout)
  425. {
  426. CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
  427. CAutoBuffer Buf = SpObject2Buffer(Req);
  428. if (m_context.checkEmpty())
  429. {
  430. m_context.AutoGenerate();
  431. DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
  432. m_context = m_context.upgradeLink();
  433. }
  434. auto ret = pFunc->AsyncRequest(PhoneService_Method_GetPickupOutVolume, PhoneService_MethodSignature_GetPickupOutVolume, Buf, spAsyncWait, m_context, dwTimeout);
  435. m_context.clear();
  436. return ret;
  437. }
  438. ErrorCodeEnum GetPickupOutVolume(PhoneService_GetPickupOutVolume_Req &Req, PhoneService_GetPickupOutVolume_Ans &Ans, DWORD dwTimeout)
  439. {
  440. CSmartPointer<IAsynWaitSp> spAsyncWait;
  441. ErrorCodeEnum Error = GetPickupOutVolume(Req, spAsyncWait, dwTimeout);
  442. if (Error == Error_Succeed) {
  443. bool bEnd = false;
  444. Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout);
  445. LOG_ASSERT(Error || bEnd);
  446. }
  447. return Error;
  448. }
  449. ErrorCodeEnum GetPickupOutVolume(PhoneService_GetPickupOutVolume_Req &Req, PhoneService_GetPickupOutVolume_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError, CSimpleString &str)
  450. {
  451. CSmartPointer<IAsynWaitSp> spAsyncWait;
  452. ErrorCodeEnum Error = GetPickupOutVolume(Req, spAsyncWait, dwTimeout);
  453. if (Error == Error_Succeed) {
  454. bool bEnd = false;
  455. Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
  456. LOG_ASSERT(Error || bEnd);
  457. }
  458. return Error;
  459. }
  460. ErrorCodeEnum GetPickupOutVolume(PhoneService_GetPickupOutVolume_Req &Req, PhoneService_GetPickupOutVolume_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError)
  461. {
  462. CSmartPointer<IAsynWaitSp> spAsyncWait;
  463. ErrorCodeEnum Error = GetPickupOutVolume(Req, spAsyncWait, dwTimeout);
  464. if (Error == Error_Succeed) {
  465. bool bEnd = false;
  466. CSimpleString str;
  467. Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
  468. LOG_ASSERT(Error || bEnd);
  469. }
  470. return Error;
  471. }
  472. ErrorCodeEnum StartVideoRender(PhoneService_StartVideoRender_Info &Info)
  473. {
  474. CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
  475. if (m_context.checkEmpty())
  476. {
  477. m_context.AutoGenerate();
  478. DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
  479. m_context = m_context.upgradeLink();
  480. }
  481. CAutoBuffer Buf = SpObject2Buffer(Info);
  482. auto ret = pFunc->OnewayCall(PhoneService_Method_StartVideoRender, PhoneService_MethodSignature_StartVideoRender, Buf, m_context);
  483. m_context.clear();
  484. return ret;
  485. }
  486. ErrorCodeEnum StopVideoRender()
  487. {
  488. CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
  489. if (m_context.checkEmpty())
  490. {
  491. m_context.AutoGenerate();
  492. DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
  493. m_context = m_context.upgradeLink();
  494. }
  495. auto ret = pFunc->OnewayCall(PhoneService_Method_StopVideoRender, PhoneService_MethodSignature_StopVideoRender, m_context);
  496. m_context.clear();
  497. return ret;
  498. }
  499. ErrorCodeEnum GetHandfreeInVolume(PhoneService_GetHandfreeInVolume_Req &Req, CSmartPointer<IAsynWaitSp> &spAsyncWait, DWORD dwTimeout)
  500. {
  501. CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
  502. CAutoBuffer Buf = SpObject2Buffer(Req);
  503. if (m_context.checkEmpty())
  504. {
  505. m_context.AutoGenerate();
  506. DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
  507. m_context = m_context.upgradeLink();
  508. }
  509. auto ret = pFunc->AsyncRequest(PhoneService_Method_GetHandfreeInVolume, PhoneService_MethodSignature_GetHandfreeInVolume, Buf, spAsyncWait, m_context, dwTimeout);
  510. m_context.clear();
  511. return ret;
  512. }
  513. ErrorCodeEnum GetHandfreeInVolume(PhoneService_GetHandfreeInVolume_Req &Req, PhoneService_GetHandfreeInVolume_Ans &Ans, DWORD dwTimeout)
  514. {
  515. CSmartPointer<IAsynWaitSp> spAsyncWait;
  516. ErrorCodeEnum Error = GetHandfreeInVolume(Req, spAsyncWait, dwTimeout);
  517. if (Error == Error_Succeed) {
  518. bool bEnd = false;
  519. Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout);
  520. LOG_ASSERT(Error || bEnd);
  521. }
  522. return Error;
  523. }
  524. ErrorCodeEnum GetHandfreeInVolume(PhoneService_GetHandfreeInVolume_Req &Req, PhoneService_GetHandfreeInVolume_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError, CSimpleString &str)
  525. {
  526. CSmartPointer<IAsynWaitSp> spAsyncWait;
  527. ErrorCodeEnum Error = GetHandfreeInVolume(Req, spAsyncWait, dwTimeout);
  528. if (Error == Error_Succeed) {
  529. bool bEnd = false;
  530. Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
  531. LOG_ASSERT(Error || bEnd);
  532. }
  533. return Error;
  534. }
  535. ErrorCodeEnum GetHandfreeInVolume(PhoneService_GetHandfreeInVolume_Req &Req, PhoneService_GetHandfreeInVolume_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError)
  536. {
  537. CSmartPointer<IAsynWaitSp> spAsyncWait;
  538. ErrorCodeEnum Error = GetHandfreeInVolume(Req, spAsyncWait, dwTimeout);
  539. if (Error == Error_Succeed) {
  540. bool bEnd = false;
  541. CSimpleString str;
  542. Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
  543. LOG_ASSERT(Error || bEnd);
  544. }
  545. return Error;
  546. }
  547. ErrorCodeEnum SetHandfreeInVolume(PhoneService_SetHandfreeInVolume_Req &Req, CSmartPointer<IAsynWaitSp> &spAsyncWait, DWORD dwTimeout)
  548. {
  549. CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
  550. CAutoBuffer Buf = SpObject2Buffer(Req);
  551. if (m_context.checkEmpty())
  552. {
  553. m_context.AutoGenerate();
  554. DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
  555. m_context = m_context.upgradeLink();
  556. }
  557. auto ret = pFunc->AsyncRequest(PhoneService_Method_SetHandfreeInVolume, PhoneService_MethodSignature_SetHandfreeInVolume, Buf, spAsyncWait, m_context, dwTimeout);
  558. m_context.clear();
  559. return ret;
  560. }
  561. ErrorCodeEnum SetHandfreeInVolume(PhoneService_SetHandfreeInVolume_Req &Req, PhoneService_SetHandfreeInVolume_Ans &Ans, DWORD dwTimeout)
  562. {
  563. CSmartPointer<IAsynWaitSp> spAsyncWait;
  564. ErrorCodeEnum Error = SetHandfreeInVolume(Req, spAsyncWait, dwTimeout);
  565. if (Error == Error_Succeed) {
  566. bool bEnd = false;
  567. Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout);
  568. LOG_ASSERT(Error || bEnd);
  569. }
  570. return Error;
  571. }
  572. ErrorCodeEnum SetHandfreeInVolume(PhoneService_SetHandfreeInVolume_Req &Req, PhoneService_SetHandfreeInVolume_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError, CSimpleString &str)
  573. {
  574. CSmartPointer<IAsynWaitSp> spAsyncWait;
  575. ErrorCodeEnum Error = SetHandfreeInVolume(Req, spAsyncWait, dwTimeout);
  576. if (Error == Error_Succeed) {
  577. bool bEnd = false;
  578. Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
  579. LOG_ASSERT(Error || bEnd);
  580. }
  581. return Error;
  582. }
  583. ErrorCodeEnum SetHandfreeInVolume(PhoneService_SetHandfreeInVolume_Req &Req, PhoneService_SetHandfreeInVolume_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError)
  584. {
  585. CSmartPointer<IAsynWaitSp> spAsyncWait;
  586. ErrorCodeEnum Error = SetHandfreeInVolume(Req, spAsyncWait, dwTimeout);
  587. if (Error == Error_Succeed) {
  588. bool bEnd = false;
  589. CSimpleString str;
  590. Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
  591. LOG_ASSERT(Error || bEnd);
  592. }
  593. return Error;
  594. }
  595. ErrorCodeEnum SetPickupInVolume(PhoneService_SetPickupInVolume_Req &Req, CSmartPointer<IAsynWaitSp> &spAsyncWait, DWORD dwTimeout)
  596. {
  597. CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
  598. CAutoBuffer Buf = SpObject2Buffer(Req);
  599. if (m_context.checkEmpty())
  600. {
  601. m_context.AutoGenerate();
  602. DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
  603. m_context = m_context.upgradeLink();
  604. }
  605. auto ret = pFunc->AsyncRequest(PhoneService_Method_SetPickupInVolume, PhoneService_MethodSignature_SetPickupInVolume, Buf, spAsyncWait, m_context, dwTimeout);
  606. m_context.clear();
  607. return ret;
  608. }
  609. ErrorCodeEnum SetPickupInVolume(PhoneService_SetPickupInVolume_Req &Req, PhoneService_SetPickupInVolume_Ans &Ans, DWORD dwTimeout)
  610. {
  611. CSmartPointer<IAsynWaitSp> spAsyncWait;
  612. ErrorCodeEnum Error = SetPickupInVolume(Req, spAsyncWait, dwTimeout);
  613. if (Error == Error_Succeed) {
  614. bool bEnd = false;
  615. Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout);
  616. LOG_ASSERT(Error || bEnd);
  617. }
  618. return Error;
  619. }
  620. ErrorCodeEnum SetPickupInVolume(PhoneService_SetPickupInVolume_Req &Req, PhoneService_SetPickupInVolume_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError, CSimpleString &str)
  621. {
  622. CSmartPointer<IAsynWaitSp> spAsyncWait;
  623. ErrorCodeEnum Error = SetPickupInVolume(Req, spAsyncWait, dwTimeout);
  624. if (Error == Error_Succeed) {
  625. bool bEnd = false;
  626. Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
  627. LOG_ASSERT(Error || bEnd);
  628. }
  629. return Error;
  630. }
  631. ErrorCodeEnum SetPickupInVolume(PhoneService_SetPickupInVolume_Req &Req, PhoneService_SetPickupInVolume_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError)
  632. {
  633. CSmartPointer<IAsynWaitSp> spAsyncWait;
  634. ErrorCodeEnum Error = SetPickupInVolume(Req, spAsyncWait, dwTimeout);
  635. if (Error == Error_Succeed) {
  636. bool bEnd = false;
  637. CSimpleString str;
  638. Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
  639. LOG_ASSERT(Error || bEnd);
  640. }
  641. return Error;
  642. }
  643. ErrorCodeEnum GetPickupInVolume(PhoneService_GetPickupInVolume_Req &Req, CSmartPointer<IAsynWaitSp> &spAsyncWait, DWORD dwTimeout)
  644. {
  645. CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
  646. CAutoBuffer Buf = SpObject2Buffer(Req);
  647. if (m_context.checkEmpty())
  648. {
  649. m_context.AutoGenerate();
  650. DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
  651. m_context = m_context.upgradeLink();
  652. }
  653. auto ret = pFunc->AsyncRequest(PhoneService_Method_GetPickupInVolume, PhoneService_MethodSignature_GetPickupInVolume, Buf, spAsyncWait, m_context, dwTimeout);
  654. m_context.clear();
  655. return ret;
  656. }
  657. ErrorCodeEnum GetPickupInVolume(PhoneService_GetPickupInVolume_Req &Req, PhoneService_GetPickupInVolume_Ans &Ans, DWORD dwTimeout)
  658. {
  659. CSmartPointer<IAsynWaitSp> spAsyncWait;
  660. ErrorCodeEnum Error = GetPickupInVolume(Req, spAsyncWait, dwTimeout);
  661. if (Error == Error_Succeed) {
  662. bool bEnd = false;
  663. Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout);
  664. LOG_ASSERT(Error || bEnd);
  665. }
  666. return Error;
  667. }
  668. ErrorCodeEnum GetPickupInVolume(PhoneService_GetPickupInVolume_Req &Req, PhoneService_GetPickupInVolume_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError, CSimpleString &str)
  669. {
  670. CSmartPointer<IAsynWaitSp> spAsyncWait;
  671. ErrorCodeEnum Error = GetPickupInVolume(Req, spAsyncWait, dwTimeout);
  672. if (Error == Error_Succeed) {
  673. bool bEnd = false;
  674. Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
  675. LOG_ASSERT(Error || bEnd);
  676. }
  677. return Error;
  678. }
  679. ErrorCodeEnum GetPickupInVolume(PhoneService_GetPickupInVolume_Req &Req, PhoneService_GetPickupInVolume_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError)
  680. {
  681. CSmartPointer<IAsynWaitSp> spAsyncWait;
  682. ErrorCodeEnum Error = GetPickupInVolume(Req, spAsyncWait, dwTimeout);
  683. if (Error == Error_Succeed) {
  684. bool bEnd = false;
  685. CSimpleString str;
  686. Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
  687. LOG_ASSERT(Error || bEnd);
  688. }
  689. return Error;
  690. }
  691. ErrorCodeEnum GetAudioDevices(PhoneService_GetAudioDevices_Req &Req, CSmartPointer<IAsynWaitSp> &spAsyncWait, DWORD dwTimeout)
  692. {
  693. CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
  694. CAutoBuffer Buf = SpObject2Buffer(Req);
  695. if (m_context.checkEmpty())
  696. {
  697. m_context.AutoGenerate();
  698. DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
  699. m_context = m_context.upgradeLink();
  700. }
  701. auto ret = pFunc->AsyncRequest(PhoneService_Method_GetAudioDevices, PhoneService_MethodSignature_GetAudioDevices, Buf, spAsyncWait, m_context, dwTimeout);
  702. m_context.clear();
  703. return ret;
  704. }
  705. ErrorCodeEnum GetAudioDevices(PhoneService_GetAudioDevices_Req &Req, PhoneService_GetAudioDevices_Ans &Ans, DWORD dwTimeout)
  706. {
  707. CSmartPointer<IAsynWaitSp> spAsyncWait;
  708. ErrorCodeEnum Error = GetAudioDevices(Req, spAsyncWait, dwTimeout);
  709. if (Error == Error_Succeed) {
  710. bool bEnd = false;
  711. Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout);
  712. LOG_ASSERT(Error || bEnd);
  713. }
  714. return Error;
  715. }
  716. ErrorCodeEnum GetAudioDevices(PhoneService_GetAudioDevices_Req &Req, PhoneService_GetAudioDevices_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError, CSimpleString &str)
  717. {
  718. CSmartPointer<IAsynWaitSp> spAsyncWait;
  719. ErrorCodeEnum Error = GetAudioDevices(Req, spAsyncWait, dwTimeout);
  720. if (Error == Error_Succeed) {
  721. bool bEnd = false;
  722. Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
  723. LOG_ASSERT(Error || bEnd);
  724. }
  725. return Error;
  726. }
  727. ErrorCodeEnum GetAudioDevices(PhoneService_GetAudioDevices_Req &Req, PhoneService_GetAudioDevices_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError)
  728. {
  729. CSmartPointer<IAsynWaitSp> spAsyncWait;
  730. ErrorCodeEnum Error = GetAudioDevices(Req, spAsyncWait, dwTimeout);
  731. if (Error == Error_Succeed) {
  732. bool bEnd = false;
  733. CSimpleString str;
  734. Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
  735. LOG_ASSERT(Error || bEnd);
  736. }
  737. return Error;
  738. }
  739. bool SafeDelete()
  740. {
  741. if (!m_bSysManaged) {
  742. delete this;
  743. }
  744. return m_bSysManaged;
  745. }
  746. private:
  747. virtual void OnAnswer(CSmartPointer<IAsynWaitSp> pAsynWaitSp)
  748. {
  749. CAutoBuffer Buf;
  750. bool bEnd;
  751. CSmartPointer<IReleasable> pData;
  752. ErrorCodeEnum Error = pAsynWaitSp->AsyncGetAnswer(Buf, bEnd);
  753. DWORD dwMessageId = pAsynWaitSp->GetMessageID();
  754. CSmartPointer<ICallbackListener> pCallbackListener;
  755. pAsynWaitSp->GetCallback(pCallbackListener, pData);
  756. switch (dwMessageId) {
  757. case PhoneService_Method_BeginState:
  758. if (Error) {
  759. PhoneService_PhoneState_Info Msg;
  760. OnMessage(Error, Msg, pData);
  761. } else {
  762. PhoneService_PhoneState_Info Msg;
  763. SpBuffer2Object(Buf, Msg);
  764. OnMessage(Error, Msg, pData);
  765. }
  766. break;
  767. default:
  768. assert(0);
  769. break;
  770. }
  771. }
  772. protected:
  773. bool m_bSysManaged;
  774. CEntityBase *m_pEntityBase;
  775. linkContext m_context;
  776. bool bSessionClosed;
  777. };
  778. ///////////////////////////
  779. } // namespace SIPPhone
  780. #endif // __SIPPHONE_CLIENT_G_H