00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00029 #ifndef _RTCOPY_H_
00030 #define _RTCOPY_H_
00031 #include "rtsrc/asn1type.h"
00032
00033 #ifdef __cplusplus
00034 extern "C" {
00035 #endif
00036
00065 EXTERNRT OSBOOL rtCopyBitStr (OSUINT32 srcNumbits,
00066 const OSOCTET* pSrcData,
00067 OSUINT32* pDstNumbits, OSOCTET* pDstData);
00068
00086 EXTERNRT OSBOOL rtCopyDynBitStr
00087 (OSCTXT* pctxt, const ASN1DynBitStr* pSrcData, ASN1DynBitStr* pDstData);
00088
00105 EXTERNRT OSBOOL rtCopyOctStr
00106 (OSUINT32 srcNumocts, const OSOCTET* pSrcData,
00107 OSUINT32* pDstNumocts, OSOCTET* pDstData);
00108
00127 EXTERNRT OSBOOL rtCopyDynOctStr
00128 (OSCTXT* pctxt, const ASN1DynOctStr* pSrcData, ASN1DynOctStr* pDstData);
00129
00148 EXTERNRT OSBOOL rtCopyCharStr
00149 (OSCTXT* pctxt, const char* srcStr, char** dstStr);
00150
00169 EXTERNRT OSBOOL rtCopy16BitCharStr
00170 (OSCTXT* pctxt, const Asn116BitCharString* srcStr, Asn116BitCharString* dstStr);
00171
00190 EXTERNRT OSBOOL rtCopy32BitCharStr
00191 (OSCTXT* pctxt, const Asn132BitCharString* srcStr, Asn132BitCharString* dstStr);
00192
00206 EXTERNRT OSBOOL rtCopyOID
00207 (const ASN1OBJID* srcOID, ASN1OBJID* dstOID);
00208
00222 EXTERNRT OSBOOL rtCopyOID64
00223 (const ASN1OID64* srcOID, ASN1OID64* dstOID);
00224
00243 EXTERNRT OSBOOL rtCopyOpenType
00244 (OSCTXT* pctxt, const ASN1OpenType* srcOT, ASN1OpenType* dstOT);
00245
00267 EXTERNRT OSBOOL rtCopyOpenTypeExt
00268 (OSCTXT* pctxt, const OSRTDList* srcList, OSRTDList* dstList);
00273
00274
00285 #define RTCOPYCHARSTR(pctxt,src,dst) \
00286 do { char* ptr; rtCopyCharStr (pctxt, src, &ptr); *dst = ptr; } while(0)
00287
00300 #define RTCHKCOPYCHARSTR(pctxt,src,dst,log) \
00301 do { \
00302 char* ptr; \
00303 if (! rtCopyCharStr (pctxt, src, &ptr)) { \
00304 if (log) return LOG_RTERR (pctxt, RTERR_COPYFAIL); \
00305 else return RTERR_COPYFAIL; \
00306 } \
00307 *dst = ptr; \
00308 } while(0)
00309
00310 #ifdef __cplusplus
00311 }
00312 #endif
00313
00314 #endif