2 // Created: Mon Nov 24 07:53:49 1997
4 // <rmi@frilox.paris1.matra-dtv.fr>
8 #include <OSD_Host.hxx>
9 #include <OSD_Path.hxx>
10 #include <TCollection_ExtendedString.hxx>
11 #include <TCollection_AsciiString.hxx>
12 #include <Resource_Unicode.hxx>
13 #include <OSD_Environment.hxx>
14 #include <OSD_FileIterator.hxx>
15 #include <OSD_File.hxx>
16 #include <OSD_Protection.hxx>
17 #include <OSD_SingleProtection.hxx>
21 static Standard_Character longtc[MaxChar];
22 static Standard_PCharacter aLongCString = longtc;
23 static TCollection_ExtendedString outExtendedString;
25 static TCollection_AsciiString ASCII(const TCollection_ExtendedString& anXString) {
26 Resource_Unicode::ConvertUnicodeToFormat(anXString,aLongCString,MaxChar);
27 return TCollection_AsciiString(aLongCString);
31 static TCollection_ExtendedString UNICODE(const TCollection_AsciiString& aCString) {
32 Resource_Unicode::ConvertFormatToUnicode(aCString.ToCString(),outExtendedString);
33 return outExtendedString;
36 TCollection_ExtendedString UTL::xgetenv(const Standard_CString aCString) {
37 TCollection_ExtendedString x;
38 OSD_Environment theEnv(aCString);
39 TCollection_AsciiString theValue=theEnv.Value();
40 if( ! theValue.IsEmpty()) x=UNICODE(theValue);
43 TCollection_ExtendedString UTL::Extension(const TCollection_ExtendedString& aFileName) {
44 OSD_Path p = OSD_Path(ASCII(aFileName));
46 TCollection_AsciiString theExtension=p.Extension();
48 TCollection_AsciiString theGoodExtension=theExtension;;
50 if(TCollection_AsciiString(theExtension.Value(1))==".")
51 theGoodExtension=theExtension.Split(1);
53 return UNICODE(theGoodExtension);
55 Storage_Error UTL::OpenFile(Storage_BaseDriver& aDriver, const TCollection_ExtendedString& aFileName, const Storage_OpenMode aMode) {
56 return aDriver.Open(ASCII(aFileName),aMode);
59 void UTL::AddToUserInfo(const Handle(Storage_Data)& aData, const TCollection_ExtendedString& anInfo) {
60 aData->AddToUserInfo(ASCII(anInfo));
62 OSD_Path UTL::Path(const TCollection_ExtendedString& aFileName) {
64 // cout << "Path : " << aFileName << endl;
65 // TCollection_AsciiString theAciiString=ASCII(aFileName);
66 // OSD_Path p = OSD_Path(theAciiString);
67 OSD_Path p = OSD_Path(ASCII(aFileName));
70 TCollection_ExtendedString UTL::Disk(const OSD_Path& aPath) {
71 return UNICODE(aPath.Disk());
73 TCollection_ExtendedString UTL::Trek(const OSD_Path& aPath) {
74 return UNICODE(aPath.Trek());
76 TCollection_ExtendedString UTL::Name(const OSD_Path& aPath) {
77 return UNICODE(aPath.Name());
79 TCollection_ExtendedString UTL::Extension(const OSD_Path& aPath) {
80 return UNICODE(aPath.Extension());
82 OSD_FileIterator UTL::FileIterator(const OSD_Path& aPath, const TCollection_ExtendedString& aMask) {
83 OSD_FileIterator it = OSD_FileIterator(aPath,ASCII(aMask));
86 TCollection_ExtendedString UTL::LocalHost() {
88 return UNICODE(h.HostName());
90 TCollection_ExtendedString UTL::ExtendedString(const TCollection_AsciiString& anAsciiString) {
91 return UNICODE(anAsciiString);
93 Standard_GUID UTL::GUID(const TCollection_ExtendedString& anXString) {
94 return Standard_GUID(TCollection_AsciiString(anXString,'?').ToCString());
96 Standard_Boolean UTL::Find(const Handle(Resource_Manager)& aResourceManager, const TCollection_ExtendedString& aResourceName) {
97 return aResourceManager->Find(ASCII(aResourceName).ToCString());
99 TCollection_ExtendedString UTL::Value(const Handle(Resource_Manager)& aResourceManager, const TCollection_ExtendedString& aResourceName) {
100 return UNICODE(aResourceManager->Value(ASCII(aResourceName).ToCString()));
103 Standard_Integer UTL::IntegerValue(const TCollection_ExtendedString& anExtendedString) {
104 TCollection_AsciiString a=ASCII(anExtendedString);
105 return a.IntegerValue();
107 Standard_CString UTL::CString(const TCollection_ExtendedString& anExtendedString) {
108 static TCollection_AsciiString theValue;
109 theValue=ASCII(anExtendedString);
110 return theValue.ToCString();
112 Standard_Boolean UTL::IsReadOnly(const TCollection_ExtendedString& aFileName) {
114 switch (OSD_File(UTL::Path(aFileName)).Protection().User()) {
122 return Standard_False;
124 return Standard_True;