Alphabetical Class Index  Class Hierarchy   File Members   Compound Members   File List  

HIOUtilityExchange.h
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