mbus.h
上传用户:sun1608
上传日期:2007-02-02
资源大小:6116k
文件大小:3k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

Visual C++

  1. /*
  2.  * FILE:    mbus.h
  3.  * AUTHORS: Colin Perkins
  4.  * 
  5.  * Copyright (c) 1997-2000 University College London
  6.  * All rights reserved.
  7.  *
  8.  * Redistribution and use in source and binary forms, with or without
  9.  * modification, is permitted, provided that the following conditions 
  10.  * are met:
  11.  * 1. Redistributions of source code must retain the above copyright
  12.  *    notice, this list of conditions and the following disclaimer.
  13.  * 2. Redistributions in binary form must reproduce the above copyright
  14.  *    notice, this list of conditions and the following disclaimer in the
  15.  *    documentation and/or other materials provided with the distribution.
  16.  * 3. All advertising materials mentioning features or use of this software
  17.  *    must display the following acknowledgement:
  18.  *      This product includes software developed by the Computer Science
  19.  *      Department at University College London
  20.  * 4. Neither the name of the University nor of the Department may be used
  21.  *    to endorse or promote products derived from this software without
  22.  *    specific prior written permission.
  23.  * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
  24.  * ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  25.  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  26.  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
  27.  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  28.  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  29.  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  30.  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  31.  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  32.  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  33.  * SUCH DAMAGE.
  34.  */
  35. #ifndef _MBUS_H
  36. #define _MBUS_H
  37. /* Error codes... */
  38. #define MBUS_MESSAGE_LOST           1
  39. #define MBUS_DESTINATION_UNKNOWN    2
  40. #define MBUS_DESTINATION_NOT_UNIQUE 3
  41. struct mbus;
  42. #if defined(__cplusplus)
  43. extern "C" {
  44. #endif
  45. struct mbus *mbus_init(void  (*cmd_handler)(char *src, char *cmd, char *arg, void *dat), 
  46.        void  (*err_handler)(int seqnum, int reason),
  47.        char  *addr);
  48. void         mbus_cmd_handler(struct mbus *m, void  (*cmd_handler)(char *src, char *cmd, char *arg, void *dat));
  49. void         mbus_exit(struct mbus *m);
  50. int          mbus_addr_valid(struct mbus *m, char *addr);
  51. void         mbus_qmsg(struct mbus *m, const char *dest, const char *cmnd, const char *args, int reliable);
  52. void         mbus_send(struct mbus *m);
  53. int          mbus_recv(struct mbus *m, void *data, struct timeval *timeout);
  54. void         mbus_retransmit(struct mbus *m);
  55. void         mbus_heartbeat(struct mbus *m, int interval);
  56. int          mbus_waiting_ack(struct mbus *m);
  57. int          mbus_sent_all(struct mbus *m);
  58. char        *mbus_rendezvous_waiting(struct mbus *m, char *addr, char *token, void *data);
  59. char        *mbus_rendezvous_go(struct mbus *m, char *token, void *data);
  60. #if defined(__cplusplus)
  61. }
  62. #endif
  63. #endif