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

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 _VXIOBJECT_API_H
  23. #define _VXIOBJECT_API_H
  24. #include "VXIobject.h"                 /* For VXIobject base interface */
  25. #include "VXIheaderPrefix.h"
  26. #define VXIOBJECT_API_EX               /* Place holder for export symbol
  27.                                           since we don't build DLL for object */
  28. #ifdef __cplusplus
  29. struct VXIlogInterface;
  30. struct VXIinetInterface;
  31. struct VXIjsiInterface;
  32. struct VXIrecInterface;
  33. struct VXIpromptInterface;
  34. struct VXItelInterface;
  35. struct VXIplatform;
  36. extern "C" {
  37. #else
  38. #include "VXIlog.h"
  39. #include "VXIinet.h"
  40. #include "VXIjsi.h"
  41. #include "VXIrec.h"
  42. #include "VXIprompt.h"
  43. #include "VXItel.h"
  44. #include "VXIplatform.h"
  45. #endif
  46.  /** 
  47.   * @name VXIobject
  48.   * @memo VXIobject implementation of VXIobject
  49.   * @doc
  50.   * Provides an implementation of the VXIobject abstract interface for
  51.   * VoiceXML object functionality that allows integrators to define
  52.   * VoiceXML language extensions that can be executed by applications
  53.   * through the VoiceXML object element.  These objects can provide
  54.   * almost any extended functionality that is desired.
  55.   *
  56.   * There is one object interface per thread/line.  
  57.   */
  58. /*@{*/
  59. /**
  60.  * @name VXIobjectResources
  61.  * @memo Structure containing all the interfaces required for Objects
  62.  * @doc This structure must be allocated and all the pointers filled
  63.  * with created and initialized resources before creating the Object
  64.  * interface.
  65.  */
  66. typedef struct VXIobjectResources {
  67.   /** log interface */
  68.   VXIlogInterface    * log;
  69.   /** Internet interface */
  70.   VXIinetInterface   * inet; 
  71.   /** ECMAScript interface */
  72.   VXIjsiInterface    * jsi;    
  73.   /** Recognizer interface */
  74.   VXIrecInterface    * rec;  
  75.   /** Prompt interface */
  76.   VXIpromptInterface * prompt;
  77.   /** Telephony interface */
  78.   VXItelInterface    * tel;
  79.   /** Platform interface */
  80.   VXIplatform        * platform;
  81. } VXIobjectResources;
  82. /**
  83.  * Global platform initialization of VXIobject
  84.  *
  85.  * @param log            VXI Logging interface used for error/diagnostic 
  86.  *                       logging, only used for the duration of this 
  87.  *                       function call
  88.  * @param  diagLogBase   Base tag number for diagnostic logging purposes.
  89.  *                       All diagnostic tags for VXIobject will start at this
  90.  *                       ID and increase upwards.
  91.  *
  92.  * @result VXIobj_RESULT_SUCCESS on success
  93.  */
  94. VXIOBJECT_API_EX 
  95. VXIobjResult VXIobjectInit (VXIlogInterface  *log,
  96.                             VXIunsigned       diagLogBase);
  97. /**
  98.  * Global platform shutdown of VXIobject
  99.  *
  100.  * @param log    VXI Logging interface used for error/diagnostic logging,
  101.  *               only used for the duration of this function call
  102.  *
  103.  * @result VXIobj_RESULT_SUCCESS on success
  104.  */
  105. VXIOBJECT_API_EX 
  106. VXIobjResult VXIobjectShutDown (VXIlogInterface  *log);
  107. /**
  108.  * Create a new object service handle
  109.  *
  110.  * @param resources  A pointer to a structure containing all the interfaces
  111.  *                   that may be required by the object resource
  112.  *
  113.  * @result VXIobj_RESULT_SUCCESS on success 
  114.  */
  115. VXIOBJECT_API_EX 
  116. VXIobjResult VXIobjectCreateResource (VXIobjectResources   *resources,
  117.                                       VXIobjectInterface **object);
  118. /**
  119.  * Destroy the interface and free internal resources. Once this is
  120.  *  called, the resource interfaces passed to VXIobjectCreateResource( )
  121.  *  may be released as well.
  122.  *
  123.  * @result VXIobj_RESULT_SUCCESS on success 
  124.  */
  125. VXIOBJECT_API_EX 
  126. VXIobjResult VXIobjectDestroyResource (VXIobjectInterface **object);
  127. /*@}*/
  128. #ifdef __cplusplus
  129. }
  130. #endif
  131. #include "VXIheaderSuffix.h"
  132. #endif  /* include guard */