⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 slp_buffer.h

📁 SLP协议在linux下的实现。此版本为1.2.1版。官方网站为www.openslp.org
💻 H
字号:
/***************************************************************************//*                                                                         *//* Project:     OpenSLP - OpenSource implementation of Service Location    *//*              Protocol                                                   *//*                                                                         *//* File:        slp_buffer.h                                               *//*                                                                         *//* Abstract:    Header file that defines structures and constants and      *//*              functions that are used to handle memory allocation for    *//*              slp message buffers.                                       *//*                                                                         *//*-------------------------------------------------------------------------*//*                                                                         *//*     Please submit patches to http://www.openslp.org                     *//*                                                                         *//*-------------------------------------------------------------------------*//*                                                                         *//* Copyright (C) 2000 Caldera Systems, Inc                                 *//* All rights reserved.                                                    *//*                                                                         *//* Redistribution and use in source and binary forms, with or without      *//* modification, are permitted provided that the following conditions are  *//* met:                                                                    */ /*                                                                         *//*      Redistributions of source code must retain the above copyright     *//*      notice, this list of conditions and the following disclaimer.      *//*                                                                         *//*      Redistributions in binary form must reproduce the above copyright  *//*      notice, this list of conditions and the following disclaimer in    *//*      the documentation and/or other materials provided with the         *//*      distribution.                                                      *//*                                                                         *//*      Neither the name of Caldera Systems nor the names of its           *//*      contributors may be used to endorse or promote products derived    *//*      from this software without specific prior written permission.      *//*                                                                         *//* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS     *//* `AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT      *//* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR   *//* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE CALDERA      *//* SYSTEMS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, *//* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT        *//* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE,  *//* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON       *//* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT *//* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE   *//* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.    *//*                                                                         *//***************************************************************************/#if(!defined SLP_BUFFER_H_INCLUDED)#define SLP_BUFFER_H_INCLUDED#include <stdlib.h>#include <memory.h>#include "slp_linkedlist.h"/*=========================================================================*/typedef struct _SLPBuffer                                                  /*=========================================================================*/{    SLPListItem listitem;    /* SLPListItem so that SLPBuffers can be linked into a list*/    /* the allocated size of this buffer (the actual xmalloc'd size is       one byte more than this to null terminate C strings) */    size_t  allocated;    unsigned char*   start;      /* ALWAYS points to the start of the xmalloc() buffer  */    unsigned char*   curpos;    /* "slider" pointer.  Range is ALWAYS (start < curpos < end) */    unsigned char*   end;    /* ALWAYS set to point to the byte after the last meaningful byte */    /* Data beyond this index may not be valid */}*SLPBuffer;   /*=========================================================================*/SLPBuffer SLPBufferAlloc(size_t size); /* Must be called to initially allocate a SLPBuffer                        *//*                                                                         *//* size     - (IN) number of bytes to allocate                             *//*                                                                         *//* returns  - newly allocated SLPBuffer or NULL on ENOMEM. An extra byte   *//*            is allocated to null terminating strings. This extra byte    *//*            is not counted in the buffer size                            *//*=========================================================================*//*=========================================================================*/SLPBuffer SLPBufferRealloc(SLPBuffer buf, size_t size); /* Must be called to initially allocate a SLPBuffer                        *//*                                                                         *//* size     - (IN) number of bytes to allocate                             *//*                                                                         *//* returns  - newly (re)allocated SLPBuffer or NULL on ENOMEM. An extra    *//*            byte is allocated to null terminating strings. This extra    *//*            byte is not counted in the buffer size                       *//*=========================================================================*//*=========================================================================*/SLPBuffer SLPBufferDup(SLPBuffer buf);/* Returns a duplicate buffer.  Duplicate buffer must be freed by a call   *//* to SLPBufferFree()                                                      *//*                                                                         *//* size     - (IN) number of bytes to allocate                             *//*                                                                         *//* returns  - a newly allocated SLPBuffer or NULL on ENOMEM                *//*=========================================================================*//*=========================================================================*/void SLPBufferFree(SLPBuffer buf);/* Free a previously allocated SLPBuffer                                   *//*                                                                         *//* msg      - (IN) the SLPBuffer to free                                   *//*                                                                         *//* returns  - none                                                         *//*=========================================================================*//*=========================================================================*/SLPBuffer SLPBufferListRemove(SLPBuffer* list, SLPBuffer buf);/* Removed the specified SLPBuffer from a SLPBuffer list                   *//*                                                                         *//* list (IN/OUT) pointer to the list                                       *//*                                                                         *//* buf  (IN) buffer to remove                                              *//*                                                                         *//* Returns the previous item in the list (may be NULL)                     *//*=========================================================================*//*=========================================================================*/SLPBuffer SLPBufferListAdd(SLPBuffer* list, SLPBuffer buf);/* Add the specified SLPBuffer from a SLPBuffer list                       *//*                                                                         *//* list (IN/OUT) pointer to the list                                       *//*                                                                         *//* buf  (IN) buffer to add                                                 *//*                                                                         *//* Returns the added item in the list.                                     *//*=========================================================================*//*=========================================================================*/void* memdup(const void* src, int srclen);/*=========================================================================*/#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -