blob: 18622c2adcea59fc4f6493bda38b21e1d041e241 [file] [log] [blame]
// @@@ START COPYRIGHT @@@
//
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
//
// @@@ END COPYRIGHT @@@
#ifndef MARSHALING_H
#define MARSHALING_H
#include <odbcCommon.h>
#include <odbcsrvrcommon.h>
#include <odbcas_sv.h>
#define ERROR_DESC_LIST_LENGTH(name) \
if (name->_length == 0) \
wlength += sizeof(ERROR_DESC_LIST_def); \
else \
ERROR_DESC_LIST_length( (ERROR_DESC_LIST_def *)name, wlength, maplength );
#define ERROR_DESC_LIST_LENGTH2(name) \
if (name->_length == 0) \
wlength += sizeof(name->_length); \
else \
ERROR_DESC_LIST_length( (ERROR_DESC_LIST_def *)name, wlength );
#define ERROR_DESC_LIST_COPY(buffer, name, parptr) \
if (name->_length == 0) \
{ \
memcpy(curptr, name, sizeof(ERROR_DESC_LIST_def)); \
curptr += sizeof(ERROR_DESC_LIST_def); \
} \
else \
ERROR_DESC_LIST_copy( buffer, (ERROR_DESC_LIST_def *)name, parptr, curptr, mapptr);
#define ERROR_DESC_LIST_COPY2(name, buffer) \
if (name->_length == 0) \
{ \
IDL_long_copy((IDL_long*)&name->_length, buffer); \
} \
else \
ERROR_DESC_LIST_copy((ERROR_DESC_LIST_def *)name, buffer);
typedef struct LIST_def_seq_ {
IDL_unsigned_long _length;
char pad_to_offset_8_[4];
void *_buffer;
IDL_PTR_PAD(_buffer, 1)
} LIST_def;
typedef struct OCTET_def_seq_ {
IDL_unsigned_long _length;
char pad_to_offset_8_[4];
IDL_octet *_buffer;
IDL_PTR_PAD(_buffer, 1)
} OCTET_def;
CEE_status
decodeParameters(short count, long* param[], char* buffer, long length);
void
LIST_length( LIST_def* pname, long length, long& wlength, long& maplength);
void
OCTET_length( OCTET_def* pname, long& wlength, long& maplength);
void
STRING_length( IDL_string pname, long& wlength, long& maplength);
void
ERROR_DESC_LIST_length( ERROR_DESC_LIST_def* pname, long& wlength, long& maplength );
void
ERROR_DESC_LIST_length( ERROR_DESC_LIST_def* pname, IDL_long& wlength);
void
SRVR_CONTEXT_length( const SRVR_CONTEXT_def* pname, long& wlength, long& maplength );
void
DATASOURCE_CFG_LIST_length( const DATASOURCE_CFG_LIST_def* pname, long& wlength, long& maplength );
void
SQLVALUE_LIST_length( const SQLValueList_def* pname, long& wlength, long& maplength );
void
SQLVALUE_LIST_length(SQLValueList_def* pname, IDL_long& wlength);
void
SRVR_STATUS_LIST_length( const SRVR_STATUS_LIST_def* pname, long& wlength, long& maplength );
void
ENV_DESC_LIST_length( const ENV_DESC_LIST_def* pname, long& wlength, long& maplength );
void
RES_DESC_LIST_length( const RES_DESC_LIST_def* pname, long& wlength, long& maplength );
void
DATASOURCE_CFG_length( const DATASOURCE_CFG_def* pname, long& wlength, long& maplength );
/*
* for 64bit
*/
void Long_copy(Long * pname, char * & curptr);
void
IDL_charArray_copy(const IDL_char* pname, char*& curptr);
void
IDL_charArray_Pad_copy(const IDL_char* pname, long length, char*& curptr);
void
IDL_byteArray_copy(BYTE* pname, long length, char*& curptr);
void
IDL_long_copy(IDL_long* pname, char*& curptr);
void
IDL_unsigned_long_copy(IDL_unsigned_long* pname, char*& curptr);
void
IDL_short_copy(IDL_short* pname, char*& curptr);
void
IDL_unsigned_short_copy(IDL_unsigned_short* pname, char*& curptr);
void
IDL_long_long_copy(IDL_long_long* pname, char*& curptr);
void
IDL_unsigned_long_long_copy(IDL_unsigned_long_long* pname, char*& curptr);
void
IDL_double_copy(double* pname, char*& curptr);
void
STRING_copy( char* buffer, IDL_string pname, IDL_string* parptr, char*& curptr, long*& mapptr);
void
OCTET_copy( char* buffer, OCTET_def* pname, OCTET_def* parptr, char*& curptr, long*& mapptr);
void
LIST_copy( char* buffer, LIST_def* pname, LIST_def* parptr, long length, char*& curptr, long*& mapptr);
void
ERROR_DESC_LIST_copy( char* buffer, ERROR_DESC_LIST_def* pname, ERROR_DESC_LIST_def* parptr, char*& curptr, long*& mapptr);
void
ERROR_DESC_LIST_copy(ERROR_DESC_LIST_def* pname, char*& curptr);
void
SRVR_CONTEXT_copy( char* buffer, const SRVR_CONTEXT_def* pname, SRVR_CONTEXT_def* parptr, char*& curptr, long*& mapptr);
void
DATASOURCE_CFG_LIST_copy( char* buffer, const DATASOURCE_CFG_LIST_def* pname, DATASOURCE_CFG_LIST_def* parptr, char*& curptr, long*& mapptr);
void
SQLVALUE_LIST_copy( char* buffer, const SQLValueList_def* pname, SQLValueList_def* parptr, char*& curptr, long*& mapptr);
void
SQLVALUE_LIST_copy(SQLValueList_def* pname, char*& curptr);
void
SRVR_STATUS_LIST_copy(char* buffer, const SRVR_STATUS_LIST_def* pname, SRVR_STATUS_LIST_def* parptr, char*& curptr, long*& mapptr);
void
ENV_DESC_LIST_copy(char* buffer, const ENV_DESC_LIST_def* pname, ENV_DESC_LIST_def* parptr, char*& curptr, long*& mapptr);
void
RES_DESC_LIST_copy(char* buffer, const RES_DESC_LIST_def* pname, RES_DESC_LIST_def* parptr, char*& curptr, long*& mapptr);
void
DATASOURCE_CFG_copy( char* buffer, const DATASOURCE_CFG_def* pname, DATASOURCE_CFG_def* parptr, char*& curptr, long*& mapptr);
void
SQLITEMDESC_LIST_length(SQLItemDescList_def* pname, IDL_long& wlength);
void
SQLITEMDESC_LIST_copy(SQLItemDescList_def* pname, IDL_char*& curptr);
#endif