eventhandler.h

来自「一个非常美妙的proxy。功能强大。基于sip的协议。如果还要的话」· C头文件 代码 · 共 285 行

H
285
字号
/* * Copyright (C) 2004-2005 by Objective Systems, Inc. * * This software is furnished under an open source license and may be  * used and copied only in accordance with the terms of this license.  * The text of the license may generally be found in the root  * directory of this installation in the COPYING file.  It  * can also be viewed online at the following URL: * *   http://www.obj-sys.com/open/license.html * * Any redistributions of this file including modified versions must  * maintain this copyright notice. * *****************************************************************************//** * @file eventHandler.h  * C event handler structure.  This structure holds event handler function  * callbacks for use by the generated code. *//** * @defgroup EventHandler event handler * Event handler structures and callback function definitions. * @{ */#ifndef _EVENTHANDLER_H_#define _EVENTHANDLER_H_#include <stdio.h>#include "ooasn1.h"#ifdef __cplusplusextern "C" {#endif#ifndef EXTERN#if define (MAKE_DLL)#define EXTERN __declspec(dllexport)#else#define EXTERN#endif /* MAKE_DLL */#endif /* EXTERN *//** * This is a function pointer for a callback function which is invoked  * from within a decode function when an element of a SEQUENCE, SET,  * SEQUENCE OF, SET OF, or CHOICE construct is parsed. * * @param name         For SEQUENCE, SET, or CHOICE, this is the name of the *                       element as defined in the ASN.1 defination. For *                       SEQUENCE OF or SET OF, this is set to the name *                       "element". * @param index        For SEQUENCE, SET, or CHOICE, this is not used and is *                       set to the value *                       -1. For SEQUENCE OF or SET OF, this contains the *                       zero-based index of the element in the conceptual *                       array associated with the construct. * @return             - none */typedef void (*StartElement) (const char* name, int index) ;/** * This is a function pointer for a callback function which is invoked from  * within a decode function when parsing is complete on an element of a  * SEQUENCE, SET, SEQUENCE OF, SET OF, or CHOICE construct. * * @param name         For SEQUENCE, SET, or CHOICE, this is the name of the *                       element as defined in the ASN.1 defination. For *                       SEQUENCE OF or SET OF, this is set to the name *                       "element". * @param index        For SEQUENCE, SET, or CHOICE, this is not used and is *                       set to the value *                       -1. For SEQUENCE OF or SET OF, this contains the *                       zero-based index of the element in the conceptual *                       array associated with the construct. * @return             - none */typedef void (*EndElement) (const char* name, int index) ;/** * This is a function pointer for a callback function which is invoked from  * within a decode function when a value of the BOOLEAN ASN.1 type is parsed. * * @param value        Parsed value. * @return             - none */typedef void (*BoolValue) (ASN1BOOL value);/** * This is a function pointer for a callback function which is invoked from  * within a decode function when a value of the INTERGER ASN.1 type is parsed. * * @param value        Parsed value. * @return             - none */typedef void (*IntValue) (ASN1INT value);/** * This is a function pointer for a callback function which is invoked  * from within a decode function when a value of the INTEGER ASN.1 type  * is parsed. In this case, constraints on the integer value forced the  * use of unsigned integer C type to represent the value. * * @param value        Parsed value. * @return             - none */typedef void (*UIntValue) (ASN1UINT value);/** * This is a function pointer for a callback function which is invoked from  * within a decode function when a value of the BIT STRING ASN.1 type is  * parsed. * * @param numbits      - Number of bits in the parsed value.  * @param data         - Pointer to a byte array that contains the bit  *                         string data. * @return             - none */ typedef void (*BitStrValue) (ASN1UINT numbits, const ASN1OCTET* data);/** * This is a function pointer for a callback function which is invoked from  * within a decode function when a value of one of the OCTET STRING ASN.1 type * is parsed. * * @param numocts      Number of octets in the parsed value. * @param data         Pointer to byte array containing the octet string *                       data. * @return             - none */typedef void (*OctStrValue) (ASN1UINT numocts, const ASN1OCTET* data) ;/** * This is a function pointer for a callback function which is invoked from  * within a decode function when a value of one of the 8-bit ASN.1 character  * string types is parsed. * * @param value        Null terminated character string value. * @return             - none */typedef void (*CharStrValue) (const char* value) ;/** * This is a function pointer for a callback function which is invoked from  * within a decode function when a value of one of the 16-bit ASN.1 character  * string types is parsed. * * This is used for the ASN.1 BmpString type. * * @param nchars       Number of characters in the parsed value. * @param data         Pointer to an array containing 16-bit values. *                       These are represented using unsigned short integer *                       values. * @return             - none */typedef void (*CharStrValue16Bit) (ASN1UINT nchars, ASN116BITCHAR* data) ;/** * This is a function pointer for a callback function which is invoked from  * within a decode function when a value of the NULL ASN.1 type is parsed. * * @param             - none * @return             - none */typedef void (*NullValue) () ;/** * This is a function pointer for a callback function which is invoked from  * within a decode function whn a value the OBJECT IDENTIFIER ASN.1 type is  * parsed. * * @param numSubIds    Number of subidentifiers in the object identifier. * @param pSubIds      Pointer to array containing the subidentifier values. * @return             -none */typedef void (*OidValue) (ASN1UINT numSubIds, ASN1UINT* pSubIds) ;/** * This is a function pointer for a callback function which is invoked from  * within a decode function when a value of the ENUMERATED ASN.1 type is  * parsed. * * @param value        - Parsed enumerated value * @return             - none */typedef void (*EnumValue) (ASN1UINT value) ;/** * This is a function pointer for a callback function which is invoked from  * within a decode function when an ASN.1 open type is parsed. * * @param numocts      Number of octets in the parsed value. * @param data         Pointer to byet array contain in tencoded ASN.1 *                       value. * @return             - none */typedef void (*OpenTypeValue) (ASN1UINT numocts, const ASN1OCTET* data) ;/** * This is a basic C based event handler structure, which can be used * to define user-defined event handlers. */typedef struct EventHandler {   StartElement      startElement;   EndElement        endElement;   BoolValue         boolValue;   IntValue          intValue;   UIntValue         uIntValue;   BitStrValue       bitStrValue;   OctStrValue       octStrValue;   CharStrValue      charStrValue;   CharStrValue16Bit charStr16BitValue;   NullValue         nullValue;   OidValue          oidValue;   EnumValue         enumValue;   OpenTypeValue     openTypeValue;} EventHandler;/** * This function sets the event handler object within the context.  It  * will overwrite the definition of any handler that was set previously. * * @param pctxt       Context to which event handler has to be added. * @param pHandler    Pointer to the event handler structure. * @return            none */EXTERN void setEventHandler (OOCTXT* pctxt, EventHandler* pHandler);/** * This function is called to remove the event handler current defined  * in the context.  This is done by setting the event handler object  * pointer to NULL. * * @param pctxt       Context from which event handler has to be removed. * @return            none */EXTERN void removeEventHandler (OOCTXT* pctxt);/** * The following functions are invoked from within the generated  * code to call the various user-defined event handler methods .. */EXTERN void invokeStartElement (OOCTXT* pctxt, const char* name, int index);EXTERN void invokeEndElement (OOCTXT* pctxt, const char* name, int index);EXTERN void invokeBoolValue (OOCTXT* pctxt, ASN1BOOL value);EXTERN void invokeIntValue (OOCTXT* pctxt, ASN1INT value);EXTERN void invokeUIntValue (OOCTXT* pctxt, ASN1UINT value);EXTERN void invokeBitStrValue (OOCTXT* pctxt, ASN1UINT numbits, const ASN1OCTET* data);EXTERN void invokeOctStrValue (OOCTXT* pctxt, ASN1UINT numocts, const ASN1OCTET* data);EXTERN void invokeCharStrValue (OOCTXT* pctxt, const char* value);EXTERN void invokeCharStr16BitValue (OOCTXT* pctxt, ASN1UINT nchars, ASN116BITCHAR* data);EXTERN void invokeNullValue (OOCTXT* pctxt);EXTERN void invokeOidValue (OOCTXT* pctxt, ASN1UINT numSubIds, ASN1UINT* pSubIds);EXTERN void invokeEnumValue (OOCTXT* pctxt, ASN1UINT value);EXTERN void invokeOpenTypeValue (OOCTXT* pctxt, ASN1UINT numocts, const ASN1OCTET* data);/**  * @}  */#ifdef __cplusplus}#endif#endif 

⌨️ 快捷键说明

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