|
|
/*
* 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
|