00001 // Copyright (c) 1998-2014 by Tech Soft 3D, Inc. 00002 // 00003 // The information contained herein is confidential and proprietary to Tech Soft 3D, Inc., 00004 // and considered a trade secret as defined under civil and criminal statutes. 00005 // Tech Soft 3D, Inc. shall pursue its civil and criminal remedies in the event of 00006 // unauthorized use or misappropriation of its trade secrets. Use of this information 00007 // by anyone other than authorized employees of Tech Soft 3D, Inc. is granted only under 00008 // a written non-disclosure agreement, expressly prescribing the scope and manner of such use. 00009 00010 #ifndef _HIOUTILITYEXCHANGE_H 00011 #define _HIOUTILITYEXCHANGE_H 00012 00013 #ifdef H_PACK_8 00014 #pragma pack(push) 00015 #pragma pack(8) 00016 #endif 00017 00018 #include "HTools.h" 00019 #include "HIOManager.h" 00020 #include "vlist.h" 00021 00022 #if defined(HIO_EXCHANGE) && defined(_MSC_VER) 00023 #define HIO_API __declspec (dllexport) 00024 #elif defined(HIO_EXCHANGE) && defined(LINUX_SYSTEM) 00025 #define HIO_API __attribute__ ((visibility ("default"))) 00026 #else 00027 #define HIO_API 00028 #endif 00029 00030 class HPDFLayoutManager; 00031 class HPDFOptions; 00036 class HIO_API HIOUtilityExchange: public HInputHandler, public HOutputHandler 00037 { 00038 00039 public: 00040 00042 HIOUtilityExchange(); 00043 virtual ~HIOUtilityExchange() {}; 00044 00046 void RegisterInputHandlerTypes(); 00049 const char * GetOutputName() { return "HIOUtilityExchange"; } 00050 const char * GetInputName() { return "HIOUtilityExchange"; } 00051 00053 const char * GetInputTypesString() {return "prc;prd;x_t;x_b;step;stp;igs;iges;CATPart;CATProduct;" 00054 "cgr;session;model;3dxml;CADDS;PD;XV3;XV0;prt;asm;xpr;xas;neu;asm.1;prt.1;jt;SLDPRT;SLDASM;mf1;" 00055 "arc;unv;pkg;sdp;sdpc;sdw;sdwc;sda;sdac;sds;sdsc;ses;bdl;psm;pwd;par;asm;sat;sab;ipt;iam;ifc;dae"; } 00056 00057 00058 00060 HInputHandlerStyle GetInputStyle() {return HInputHandlerStyleModel;}; 00061 00069 HFileInputResult FileInputByKey(const wchar_t * FileName, HC_KEY key, HInputHandlerOptions * options); 00070 00071 HFileInputResult FileInputByKey(const char * FileName, HC_KEY key, HInputHandlerOptions * options){ 00072 return FileInputByKey(H_WCS(FileName).encodedText(), key, options); 00073 }; 00074 00075 HFileInputResult FileInputByKey(const unsigned short * FileName, HC_KEY key, HInputHandlerOptions * options){ 00076 H_UTF16 utf16; 00077 utf16.encodedText((utf16_char const*) FileName); 00078 return FileInputByKey(H_WCS(utf16).encodedText(), key, options); 00079 }; 00080 00081 HFileOutputResult FileOutputByKey(const wchar_t * filename, HC_KEY key, HOutputHandlerOptions * options); 00082 00083 HFileOutputResult FileOutputByKey(const unsigned short * filename, HC_KEY key, HOutputHandlerOptions * options){ 00084 H_UTF16 utf16; 00085 utf16.encodedText((utf16_char const*) filename); 00086 return FileOutputByKey(H_WCS(utf16).encodedText(), key, options); 00087 } 00088 00089 HFileOutputResult FileOutputByKey(const char * filename, HC_KEY key, HOutputHandlerOptions * options){ 00090 return FileOutputByKey(H_WCS(filename).encodedText(), key, options); 00091 } 00092 00093 void RegisterOutputHandlerTypes(); 00094 00101 virtual void *BuildPRCModel(HOutputHandlerOptions * options, HC_KEY key); 00102 00103 00104 const char * GetOutputTypesString() { 00105 return "prc;iges;step;x_t;stl"; 00106 } 00107 00108 HOutputHandlerStyle GetOutputStyle() { 00109 return HOutputHandlerStyleModel; 00110 } 00111 }; 00112 00113 00114 00115 #ifdef HIO_EXCHANGE 00116 extern "C" { 00117 HIO_API void * CreateInput(HIOManager *manager); 00118 HIO_API void * CreateOutput(HIOManager *manager); 00119 HIO_API void * CreateConnector(void * unused); 00120 HIO_API void Free(HIOUtilityExchange *); 00121 } 00122 00123 00124 #endif 00125 00126 #ifdef H_PACK_8 00127 #pragma pack(pop) 00128 #endif 00129 00130 #endif