VXIclient.h
上传用户:xqtpzdz
上传日期:2022-05-21
资源大小:1764k
文件大小:6k
源码类别:

xml/soap/webservice

开发平台:

Visual C++

  1. /****************License************************************************
  2.  * Vocalocity OpenVXI
  3.  * Copyright (C) 2004-2005 by Vocalocity, Inc. All Rights Reserved.
  4.  * This program is free software; you can redistribute it and/or
  5.  * modify it under the terms of the GNU General Public License
  6.  * as published by the Free Software Foundation; either version 2
  7.  * of the License, or (at your option) any later version.
  8.  *  
  9.  * This program is distributed in the hope that it will be useful,
  10.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12.  * GNU General Public License for more details.
  13.  *
  14.  * You should have received a copy of the GNU General Public License
  15.  * along with this program; if not, write to the Free Software
  16.  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  17.  * Vocalocity, the Vocalocity logo, and VocalOS are trademarks or 
  18.  * registered trademarks of Vocalocity, Inc. 
  19.  * OpenVXI is a trademark of Scansoft, Inc. and used under license 
  20.  * by Vocalocity.
  21.  ***********************************************************************/
  22. #ifndef _VXICLIENT_H
  23. #define _VXICLIENT_H
  24. #include <VXIlog.h>
  25. #include <VXIjsi.h>
  26. #include <VXIinet.h>
  27. #include <VXIcache.h>
  28. #include <VXItel.h>
  29. #include <VXIrec.h>
  30. #include <VXIprompt.h>
  31. #include <VXIobject.h>
  32. #include <VXIinterpreter.h>
  33. #include <VXItrd.h>
  34. #include "SBlogListeners.h"
  35. #include "VXIclientUtils.h"
  36. #include "VXIclientConfig.h"    /* For CLIENT_[...] configuration properties */
  37. #include "VXIobjectAPI.h"       /* An SSFT's implementation sample of VXIobject */
  38. #include "VXItelAPI.h"
  39. #define CLIENT_API_TAG         (gblDiagLogBase + 0)
  40. #define CLIENT_COMPONENT_TAG   (gblDiagLogBase + 1)
  41. #define CLIENT_GEN_TAG         (gblDiagLogBase + 2)
  42. #ifdef __cplusplus
  43. extern "C" {
  44. #endif
  45.  /** 
  46.   * @name OSBclient
  47.   * @memo OSBclient implementation of VXIplatform
  48.   * @doc
  49.   * Provides an implementation of the VXIplatform abstract interface
  50.   * for creating and destroying the VXI resources required by the
  51.   * browser and to isolate the main from the actual implementation
  52.   * details of the resource management.  This set of convenience
  53.   * functions is used by the reference application manager.  
  54.   */
  55. /*@{*/
  56. /**
  57.  * @memo OSBclient defined VXIplatform structure, returned upon initialization 
  58.  * by VXIplatformCreateResources()
  59.  */
  60. struct VXIplatform {
  61.   VXItelInterface           *VXItel;
  62.   VXIlogInterface           *VXIlog;
  63.   VXIinetInterface          *VXIinet;
  64.   VXIcacheInterface         *VXIcache;
  65.   VXIpromptInterface        *VXIprompt;
  66.   VXIrecInterface           *VXIrec;
  67.   VXIjsiInterface           *VXIjsi;
  68.   VXIobjectInterface        *VXIobject;
  69.   VXIinterpreterInterface   *VXIinterpreter;
  70.   VXIMap                    *telephonyProps;
  71.   VXIchar                   *connectionPropScript;
  72.   const VXIchar             *globalScript;
  73.   VXIresources               resources;
  74.   VXIbool                    acceptCookies;
  75.   VXIunsigned                channelNum;
  76.   VXIulong                   numCall;
  77.   SBlogListenerChannelData  *logData; /* Use SSFT VXIlog's listener implementation */
  78.   VXIobjectResources         objectResources;
  79. };
  80. /* Convenience macros */
  81. #define CHECK_RESULT_RETURN(_platform, _func, _res)                       
  82.   if ((VXIint)(_res) != 0) {                                              
  83.     VXIclientError((_platform), MODULE_NAME, 200, L"Function call failed",
  84.       L"%s%S%s%d%s%S%s%d", L"FUNC", _func, L"RESULT", (_res),             
  85.       L"FILE", __FILE__, L"LINE", __LINE__);                              
  86.     return VXIplatform_RESULT_FATAL_ERROR;                                
  87.   }
  88. #define CHECK_RESULT_NO_RETURN(_platform, _func, _res)                    
  89.   if ((VXIint)(_res) != 0)                                                
  90.     VXIclientError((_platform), MODULE_NAME, 200, L"Function call failed",
  91.       L"%s%S%s%d%s%S%s%d", L"FUNC", _func, L"RESULT", (_res),             
  92.       L"FILE", __FILE__, L"LINE", __LINE__);
  93. #define CHECK_MEMALLOC_RETURN(_platform, _buf, _location) 
  94.     if (_buf == NULL) { 
  95.       VXIclientError((_platform), MODULE_NAME, 107, L"Out of memory",     
  96.                     L"%s%S%s%S%s%d", L"LOCATION", _location,              
  97.                     L"FILE", __FILE__, L"LINE", __LINE__);                
  98.       return VXIplatform_RESULT_OUT_OF_MEMORY;                            
  99.     }
  100. #define CLIENT_LOG_IMPLEMENTATION(_platform, _name, _intf)                
  101.     VXIclientDiag((_platform), CLIENT_COMPONENT_TAG, NULL,                
  102.                  _name L" implementation: %s, interface version %d.%d",   
  103.                  _intf->GetImplementationName(),                          
  104.                  VXI_MAJOR_VERSION(_intf->GetVersion()),                  
  105.                  VXI_MINOR_VERSION(_intf->GetVersion()));
  106. /* Error and diagnostic logging, must be defined by each VXIplatform
  107.    implementation */
  108. VXIlogResult 
  109. VXIclientError
  110. (
  111.   VXIplatform *platform, 
  112.   const VXIchar *moduleName,
  113.   VXIunsigned errorID, 
  114.   const VXIchar *errorIDText,
  115.   const VXIchar *format, ...
  116. );
  117. VXIlogResult 
  118. VXIclientDiag
  119. (
  120.   VXIplatform *platform, 
  121.   VXIunsigned tag, 
  122.   const VXIchar *subtag, 
  123.   const VXIchar *format, ...
  124. );
  125. VXIlogResult 
  126. VXIclientErrorToConsole
  127. (
  128.   const VXIchar *moduleName,
  129.   VXIunsigned errorID,
  130.   const VXIchar *errorIDText
  131. );
  132. VXIlogResult 
  133. VXIclientVErrorToConsole
  134. (
  135.   const VXIchar *moduleName, 
  136.   VXIunsigned errorID,
  137.   const VXIchar *errorIDText, 
  138.   const VXIchar *format,
  139.   va_list arguments
  140. );
  141. VXIplatformResult 
  142. VXIclientControliagnosticTags
  143. (
  144.   const VXIMap *configArgs,
  145.   VXIplatform  *platform
  146. );
  147. VXIplatformResult ConvertInterpreterResult(VXIinterpreterResult result);
  148. #ifdef __cplusplus
  149. }
  150. #endif
  151. /*@}*/
  152. #endif /* include guard */