windows-nt/Source/XPSP1/NT/enduser/netmeeting/t120/h/ogcccode.h
2020-09-26 16:20:57 +08:00

227 lines
5.1 KiB
C++

/*
* ogcccode.h
*
* Copyright (c) 1994 by DataBeam Corporation, Lexington, KY
*
* Abstract:
* This is the interface file for the CGCCCoder class. This
* class is used to encode and decode GCC Protocol Data Units (PDU's)
* to and from ASN.1 compliant byte streams using the ASN.1 toolkit.
*
* Caveats:
* None.
*
* Author:
* John B. O'Nan
*
*/
#ifndef _CGCCCODER_
#define _CGCCCODER_
#include "pktcoder.h"
#include "pdutypes.h"
#include "gccpdu.h"
/*
* Macros
*/
#define MAXIMUM_PDU_SIZE 512
#define DECODED_ROSTER_PDU_SIZE 1024
#define USER_ID_INDICATION 0x61
#define CONFERENCE_CREATE_REQUEST 0x62
#define CONFERENCE_CREATE_RESPONSE 0x63
#define CONFERENCE_QUERY_REQUEST 0x64
#define CONFERENCE_QUERY_RESPONSE 0x65
#define CONFERENCE_JOIN_REQUEST 0x66
#define CONFERENCE_JOIN_RESPONSE 0x67
#define CONFERENCE_INVITE_REQUEST 0x68
#define CONFERENCE_INVITE_RESPONSE 0x69
#define ROSTER_UPDATE_INDICATION 0x7e
#define MULTIPLE_OCTET_ID 0x7f
#define REGISTER_CHANNEL_REQUEST 0xa0
#define ASSIGN_TOKEN_REQUEST 0xa1
#define RETRIEVE_ENTRY_REQUEST 0xa3
#define DELETE_ENTRY_REQUEST 0xa4
#define REGISTRY_RESPONSE 0xa9
/*
* This is the class definition for class CGCCCoder
*/
class CGCCCoder : public PacketCoder
{
public:
CGCCCoder ();
BOOL Init ( void );
virtual ~CGCCCoder ();
virtual BOOL Encode (LPVOID pdu_structure,
int pdu_type,
UINT rules_type,
LPBYTE *encoding_buffer,
UINT *encoding_buffer_length);
virtual BOOL Decode (LPBYTE encoded_buffer,
UINT encoded_buffer_length,
int pdu_type,
UINT rules_type,
LPVOID *decoding_buffer,
UINT *decoding_buffer_length);
virtual void FreeEncoded (LPBYTE encoded_buffer);
virtual void FreeDecoded (int pdu_type, LPVOID decoded_buffer);
virtual BOOL IsMCSDataPacket ( LPBYTE, UINT )
{ return FALSE; };
private:
BOOL IsObjectIDCompliant (PKey t124_identifier);
ASN1encoding_t m_pEncInfo; // ptr to encoder info
ASN1decoding_t m_pDecInfo; // ptr to decoder info
};
typedef CGCCCoder * PCGCCCoder;
/*
* CGCCCoder ()
*
* Functional Description:
* This is the constructor for the CGCCCoder class.
*
* Formal Parameters:
* None.
*
* Return Value:
* None.
*
* Side Effects:
* None.
*
* Caveats:
* None.
*/
/*
* ~CGCCCoder ()
*
* Functional Description:
* This is a virtual destructor.
*
* Formal Parameters:
* None.
*
* Return Value:
* None.
*
* Side Effects:
* None.
*
* Caveats:
* None.
*/
/*
* void Encode ( LPVOID pdu_structure,
* int pdu_type,
* UINT rules_type,
* LPBYTE *encoding_buffer,
* UINT *encoding_buffer_length);
*
* Functional Description:
* This function encodes Protocol data units (PDU's) into ASN.1 compliant
* byte streams. The Encode happens into an encoder-allocated buffer.
*
* Formal Parameters:
* pdu_structure (i) Pointer to structure holding PDU data.
* pdu_type (i) Define indicating type of GCC PDU.
* rules_type (i) Type (PER or BER) of encoding rules to use.
* encoding_buffer (o) Indirect pointer to buffer to hold encoded data.
* encoding_buffer_length(o) Pointer that receives the Length of buffer for encoded data.
*
* Return Value:
* None.
*
* Side Effects:
* None.
*
* Caveats:
* None.
*/
/*
* void Decode ( LPBYTE encoded_buffer,
* UINT encoded_buffer_length,
* int pdu_type,
* UINT rules_type,
* LPVOID decoding_buffer,
* UINT decoding_buffer_length,
* PULong);
*
* Functional Description:
* This function decodes ASN.1 compliant byte streams into the
* appropriate GCC PDU structures.
*
* Formal Parameters:
* encoded_buffer (i) Pointer to buffer holding data to decode.
* encoded_buffer_length (i) Length of buffer holding data to decode.
* pdu_type (i) Define indicating type of GCC PDU.
* rules_type (i) Type (PER or BER) of encoding rules to use.
* decoding_buffer (o) Pointer to buffer to hold the decoded data.
* decoding_buffer_length(i) Length of buffer to hold decoded data.
*
* Return Value:
* None.
*
* Side Effects:
* None.
*
* Caveats:
* None.
*/
/*
* void CopyDecodedData ( LPVOID pdu_source_structure,
* LPVOID pdu_destination_structure,
* UShort pdu_type)
*
* Functional Description:
* This function makes a complete copy of a decoded PDU structure.
*
* Formal Parameters:
* pdu_source_structure (i) Pointer to buffer holding decoded structure.
* pdu_destination_structure (i) Pointer to copy buffer.
* pdu_type (i) Define indicating type of GCC PDU.
*
* Return Value:
* None.
*
* Side Effects:
* None.
*
* Caveats:
* None.
*/
/*
* BOOL IsMCSDataPacket ()
*
* Functional Description:
* This function determines whether the encoded packet is an MCS Data packet
* or not.
*
* Formal Parameters:
* encoded_buffer (i) Pointer to buffer holding the encoded PDU.
* rules_type (i) The used encoding rules.
*
* Return value:
* Always returns FALSE.
*
* Side Effects:
* None.
*
* Caveats:
* None.
*/
#endif