Index: icu46/source/tools/toolutil/toolutil.h |
=================================================================== |
--- icu46/source/tools/toolutil/toolutil.h (revision 0) |
+++ icu46/source/tools/toolutil/toolutil.h (revision 0) |
@@ -0,0 +1,174 @@ |
+/* |
+******************************************************************************* |
+* |
+* Copyright (C) 1999-2010, International Business Machines |
+* Corporation and others. All Rights Reserved. |
+* |
+******************************************************************************* |
+* file name: toolutil.h |
+* encoding: US-ASCII |
+* tab size: 8 (not used) |
+* indentation:4 |
+* |
+* created on: 1999nov19 |
+* created by: Markus W. Scherer |
+* |
+* This file defines utility functions for ICU tools like genccode. |
+*/ |
+ |
+#ifndef __TOOLUTIL_H__ |
+#define __TOOLUTIL_H__ |
+ |
+#include "unicode/utypes.h" |
+ |
+#ifdef XP_CPLUSPLUS |
+ |
+#include "unicode/errorcode.h" |
+ |
+U_NAMESPACE_BEGIN |
+ |
+/** |
+ * ErrorCode subclass for use in ICU command-line tools. |
+ * The destructor calls handleFailure() which calls exit(errorCode) when isFailure(). |
+ */ |
+class U_TOOLUTIL_API IcuToolErrorCode : public ErrorCode { |
+public: |
+ /** |
+ * @param loc A short string describing where the IcuToolErrorCode is used. |
+ */ |
+ IcuToolErrorCode(const char *loc) : location(loc) {} |
+ virtual ~IcuToolErrorCode(); |
+protected: |
+ virtual void handleFailure() const; |
+private: |
+ const char *location; |
+}; |
+ |
+U_NAMESPACE_END |
+ |
+#endif |
+ |
+/* |
+ * For Windows, a path/filename may be the short (8.3) version |
+ * of the "real", long one. In this case, the short one |
+ * is abbreviated and contains a tilde etc. |
+ * This function returns a pointer to the original pathname |
+ * if it is the "real" one itself, and a pointer to a static |
+ * buffer (not thread-safe) containing the long version |
+ * if the pathname is indeed abbreviated. |
+ * |
+ * On platforms other than Windows, this function always returns |
+ * the input pathname pointer. |
+ * |
+ * This function is especially useful in tools that are called |
+ * by a batch file for loop, which yields short pathnames on Win9x. |
+ */ |
+U_CAPI const char * U_EXPORT2 |
+getLongPathname(const char *pathname); |
+ |
+/** |
+ * Find the basename at the end of a pathname, i.e., the part |
+ * after the last file separator, and return a pointer |
+ * to this part of the pathname. |
+ * If the pathname only contains a basename and no file separator, |
+ * then the pathname pointer itself is returned. |
+ **/ |
+U_CAPI const char * U_EXPORT2 |
+findBasename(const char *filename); |
+ |
+/** |
+ * Find the directory name of a pathname, that is, everything |
+ * up to but not including the last file separator. |
+ * |
+ * If successful, copies the directory name into the output buffer along with |
+ * a terminating NULL. |
+ * |
+ * If there isn't a directory name in the path, it returns the current directory string ('.'). |
+ * @param path the full pathname to inspect. |
+ * @param buffer the output buffer |
+ * @param bufLen the output buffer length |
+ * @param status error code- may return U_BUFFER_OVERFLOW_ERROR if bufLen is too small. |
+ * @return If successful, a pointer to the output buffer. If failure or bufLen is too small, NULL. |
+ **/ |
+U_CAPI const char * U_EXPORT2 |
+findDirname(const char *path, char *buffer, int32_t bufLen, UErrorCode* status); |
+ |
+/* |
+ * Return the current year in the Gregorian calendar. Used for copyright generation. |
+ */ |
+U_CAPI int32_t U_EXPORT2 |
+getCurrentYear(void); |
+ |
+/* |
+ * Creates a directory with pathname. |
+ * |
+ * @param status Set to an error code when mkdir failed. |
+ */ |
+U_CAPI void U_EXPORT2 |
+uprv_mkdir(const char *pathname, UErrorCode *status); |
+ |
+/** |
+ * Return the modification date for the specified file or directory. |
+ * Return value is undefined if there was an error. |
+ */ |
+/*U_CAPI UDate U_EXPORT2 |
+uprv_getModificationDate(const char *pathname, UErrorCode *status); |
+*/ |
+/* |
+ * Returns the modification |
+ * |
+ * @param status Set to an error code when mkdir failed. |
+ */ |
+ |
+/* |
+ * UToolMemory is used for generic, custom memory management. |
+ * It is allocated with enough space for count*size bytes starting |
+ * at array. |
+ * The array is declared with a union of large data types so |
+ * that its base address is aligned for any types. |
+ * If size is a multiple of a data type size, then such items |
+ * can be safely allocated inside the array, at offsets that |
+ * are themselves multiples of size. |
+ */ |
+struct UToolMemory; |
+typedef struct UToolMemory UToolMemory; |
+ |
+/** |
+ * Open a UToolMemory object for allocation of initialCapacity to maxCapacity |
+ * items with size bytes each. |
+ */ |
+U_CAPI UToolMemory * U_EXPORT2 |
+utm_open(const char *name, int32_t initialCapacity, int32_t maxCapacity, int32_t size); |
+ |
+/** |
+ * Close a UToolMemory object. |
+ */ |
+U_CAPI void U_EXPORT2 |
+utm_close(UToolMemory *mem); |
+ |
+/** |
+ * Get the pointer to the beginning of the array of items. |
+ * The pointer becomes invalid after allocation of new items. |
+ */ |
+U_CAPI void * U_EXPORT2 |
+utm_getStart(UToolMemory *mem); |
+ |
+/** |
+ * Get the current number of items. |
+ */ |
+U_CAPI int32_t U_EXPORT2 |
+utm_countItems(UToolMemory *mem); |
+ |
+/** |
+ * Allocate one more item and return the pointer to its start in the array. |
+ */ |
+U_CAPI void * U_EXPORT2 |
+utm_alloc(UToolMemory *mem); |
+ |
+/** |
+ * Allocate n items and return the pointer to the start of the first one in the array. |
+ */ |
+U_CAPI void * U_EXPORT2 |
+utm_allocN(UToolMemory *mem, int32_t n); |
+ |
+#endif |
Property changes on: icu46/source/tools/toolutil/toolutil.h |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |