Author: mturk Date: Fri Apr 24 17:54:28 2009 New Revision: 768384 URL: http://svn.apache.org/viewvc?rev=768384&view=rev Log: Add Status class
Added: commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/io/Status.java (with props) commons/sandbox/runtime/trunk/src/test/org/apache/commons/runtime/TestStatus.java (with props) Modified: commons/sandbox/runtime/trunk/src/main/native/shared/error.c commons/sandbox/runtime/trunk/src/test/org/apache/commons/runtime/TestAll.java Added: commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/io/Status.java URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/io/Status.java?rev=768384&view=auto ============================================================================== --- commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/io/Status.java (added) +++ commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/io/Status.java Fri Apr 24 17:54:28 2009 @@ -0,0 +1,253 @@ +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.commons.runtime.io; + +/** + * IO Status codes. + * + * @since Runtime 1.0 + * + */ +public class Status { + + private Status() + { + // No class instance + } + + /* + * Get Platform dependent error codes. + */ + private static native int[] initerr0(); + + static { + int [] i = initerr0(); + EACCES = i[1]; + EEXIST = i[2]; + ENAMETOOLONG = i[3]; + ENOENT = i[4]; + ENOTDIR = i[5]; + ENOSPC = i[6]; + ENOMEM = i[7]; + EMFILE = i[8]; + ENFILE = i[9]; + EBADF = i[10]; + EINVAL = i[11]; + ESPIPE = i[12]; + EAGAIN = i[13]; + EINTR = i[14]; + ENOTSOCK = i[15]; + ECONNREFUSED = i[16]; + EINPROGRESS = i[17]; + ECONNABORTED = i[18]; + ECONNRESET = i[19]; + EHOSTUNREACH = i[20]; + ENETUNREACH = i[21]; + EFTYPE = i[22]; + EPIPE = i[23]; + EXDEV = i[24]; + ENOTEMPTY = i[25]; + EAFNOSUPPORT = i[26]; + + } + + /* ACR CANONICAL ERROR VALUES */ + /** @see IS_EACCES */ + public static final int EACCES; + + /** @see IS_EEXIST */ + public static final int EEXIST; + /** @see IS_ENAMETOOLONG */ + public static final int ENAMETOOLONG; + /** @see IS_ENOENT */ + public static final int ENOENT; + /** @see IS_ENOTDIR */ + public static final int ENOTDIR; + /** @see IS_ENOSPC */ + public static final int ENOSPC; + /** @see IS_ENOMEM */ + public static final int ENOMEM; + /** @see IS_EMFILE */ + public static final int EMFILE; + /** @see IS_ENFILE */ + public static final int ENFILE; + /** @see IS_EBADF */ + public static final int EBADF; + /** @see IS_EINVAL */ + public static final int EINVAL; + + /** @see IS_ESPIPE */ + public static final int ESPIPE; + /** + * @see IS_EAGAIN. + * Use STATUS_IS_EAGAIN instead of just testing this value + */ + public static final int EAGAIN; + /** @see IS_EINTR */ + public static final int EINTR; + /** @see IS_ENOTSOCK */ + public static final int ENOTSOCK; + + /** @see IS_ECONNREFUSED */ + public static final int ECONNREFUSED; + + /** @see IS_EINPROGRESS */ + public static final int EINPROGRESS; + /** + * @see IS_ECONNABORTED + * Use ACR_STATUS_IS_ECONNABORTED instead of just testing this value + */ + public static final int ECONNABORTED; + /** @see IS_ECONNRESET */ + public static final int ECONNRESET; + /** @see IS_EHOSTUNREACH */ + public static final int EHOSTUNREACH; + /** @see IS_ENETUNREACH */ + public static final int ENETUNREACH; + /** @see IS_EFTYPE */ + public static final int EFTYPE; + /** @see IS_EPIPE */ + public static final int EPIPE; + /** @see IS_EXDEV */ + public static final int EXDEV; + /** @see IS_ENOTEMPTY */ + public static final int ENOTEMPTY; + /** @see IS_EAFNOSUPPORT */ + public static final int EAFNOSUPPORT; + + + private static final int OS_START_ERROR = 20000; + private static final int OS_START_STATUS = 70000; + private static final int UTIL_START_STATUS = 100000; + private static final int OS_START_USERERR = 120000; + private static final int OS_START_CANONERR = 620000; + private static final int OS_START_EAIERR = 670000; + private static final int OS_START_SYSERR = 720000; + private static final int OS_ERRSPACE_SIZE = 50000; + + /** Unable to perform a stat on the file. */ + public static final int ENOSTAT = OS_START_ERROR + 1; + /** Pool from which to allocate the memory was not provided. */ + public static final int ENOPOOL = OS_START_ERROR + 2; + /* empty slot: +3 */ + /** Date is invalid */ + public static final int EBADDATE = OS_START_ERROR + 4; + /** Socket is invalid */ + public static final int EINVALSOCK = OS_START_ERROR + 5; + /** Invalid process structure */ + public static final int ENOPROC = OS_START_ERROR + 6; + /** Invalid time structure */ + public static final int ENOTIME = OS_START_ERROR + 7; + /** Invalid directory structure */ + public static final int ENODIR = OS_START_ERROR + 8; + /** Invalid lock structure */ + public static final int ENOLOCK = OS_START_ERROR + 9; + /** Invalid poll structure */ + public static final int ENOPOLL = OS_START_ERROR + 10; + /** Given data is not a socket */ + public static final int ENOSOCKET = OS_START_ERROR + 11; + /** Given data is not a thread */ + public static final int ENOTHREAD = OS_START_ERROR + 12; + /** Given data is not a thread key */ + public static final int ENOTHDKEY = OS_START_ERROR + 13; + /* General failure <em>specific information not available</em>. */ + public static final int EGENERAL = OS_START_ERROR + 14; + /** The specified IP address is invalid */ + public static final int EBADIP = OS_START_ERROR + 15; + /** The specified netmask is invalid */ + public static final int EBADMASK = OS_START_ERROR + 16; + /** No more shared memory available */ + public static final int ENOSHMAVAIL = OS_START_ERROR + 17; + /** Unable to open the {...@code dso} object. */ + /* empty slot: +18 */ + public static final int EDSOOPEN = OS_START_ERROR + 19; + /** Could not find the requested symbol */ + public static final int ESYMNOTFOUND = OS_START_ERROR + 26; + /** Not enough entropy to continue */ + public static final int ENOTENOUGHENTROPY = OS_START_ERROR + 28; + + /* ACR private errors added to the std APR errors */ + public static final int EISNULL = OS_START_ERROR + 100; + public static final int EINVALSIZ = OS_START_ERROR + 101; + public static final int ERANGE = OS_START_ERROR + 102; + public static final int ECLASSNOTFOUND = OS_START_ERROR + 103; + + + /** @see ACR_STATUS_IS_INCHILD */ + public static final int INCHILD = OS_START_STATUS + 1; + /** @see ACR_STATUS_IS_INPARENT */ + public static final int INPARENT = OS_START_STATUS + 2; + /** @see ACR_STATUS_IS_DETACH */ + public static final int DETACH = OS_START_STATUS + 3; + /** @see ACR_STATUS_IS_NOTDETACH */ + public static final int NOTDETACH = OS_START_STATUS + 4; + /** @see ACR_STATUS_IS_CHILD_DONE */ + public static final int CHILD_DONE = OS_START_STATUS + 5; + /** @see ACR_STATUS_IS_CHILD_NOTDONE */ + public static final int CHILD_NOTDONE = OS_START_STATUS + 6; + /** @see ACR_STATUS_IS_TIMEUP */ + public static final int TIMEUP = OS_START_STATUS + 7; + /** @see ACR_STATUS_IS_INCOMPLETE */ + public static final int INCOMPLETE = OS_START_STATUS + 8; + /* empty slot: +9 */ + /* empty slot: +10 */ + /* empty slot: +11 */ + /** @see ACR_STATUS_IS_BADCH */ + public static final int BADCH = OS_START_STATUS + 12; + /** @see ACR_STATUS_IS_BADARG */ + public static final int BADARG = OS_START_STATUS + 13; + /** @see ACR_STATUS_IS_EOF */ + public static final int EOF = OS_START_STATUS + 14; + /** @see ACR_STATUS_IS_NOTFOUND */ + public static final int NOTFOUND = OS_START_STATUS + 15; + /* empty slot: +16 */ + /* empty slot: +17 */ + /* empty slot: +18 */ + /** @see ACR_STATUS_IS_ANONYMOUS */ + public static final int ANONYMOUS = OS_START_STATUS + 19; + /** @see ACR_STATUS_IS_FILEBASED */ + public static final int FILEBASED = OS_START_STATUS + 20; + /** @see ACR_STATUS_IS_KEYBASED */ + public static final int KEYBASED = OS_START_STATUS + 21; + /** @see ACR_STATUS_IS_EINIT */ + public static final int EINIT = OS_START_STATUS + 22; + /** @see ACR_STATUS_IS_ENOTIMPL */ + public static final int ENOTIMPL = OS_START_STATUS + 23; + /** @see ACR_STATUS_IS_EMISMATCH */ + public static final int EMISMATCH = OS_START_STATUS + 24; + /** @see ACR_STATUS_IS_EBUSY */ + public static final int EBUSY = OS_START_STATUS + 25; + + /** Native system error */ + public static boolean IS_NATIVE_ERROR(int s) + { + return (s < OS_START_ERROR); + } + + /** Cannonical system error */ + public static boolean IS_OS_SYSERR(int s) + { + return ((s > OS_START_SYSERR) && + (s < OS_START_SYSERR + OS_ERRSPACE_SIZE)); + } + + public static boolean IS_STATUS(int s) + { + return ((s > OS_START_STATUS) && (s < OS_START_STATUS + 1000)); + } + +} Propchange: commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/io/Status.java ------------------------------------------------------------------------------ svn:eol-style = native Modified: commons/sandbox/runtime/trunk/src/main/native/shared/error.c URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/shared/error.c?rev=768384&r1=768383&r2=768384&view=diff ============================================================================== --- commons/sandbox/runtime/trunk/src/main/native/shared/error.c (original) +++ commons/sandbox/runtime/trunk/src/main/native/shared/error.c Fri Apr 24 17:54:28 2009 @@ -468,3 +468,44 @@ } } } + +ACR_JNI_EXPORT_DECLARE(jintArray, io_Status, initerr0)(ACR_JNISTDARGS) +{ + jintArray ra; + int i[32]; + UNREFERENCED_O; + + i[0] = 0; + i[1] = ACR_EACCES; + i[2] = ACR_EEXIST; + i[3] = ACR_ENAMETOOLONG; + i[4] = ACR_ENOENT; + i[5] = ACR_ENOTDIR; + i[6] = ACR_ENOSPC; + i[7] = ACR_ENOMEM; + i[8] = ACR_EMFILE; + i[9] = ACR_ENFILE; + i[10] = ACR_EBADF; + i[11] = ACR_EINVAL; + i[12] = ACR_ESPIPE; + i[13] = ACR_EAGAIN; + i[14] = ACR_EINTR; + i[15] = ACR_ENOTSOCK; + i[16] = ACR_ECONNREFUSED; + i[17] = ACR_EINPROGRESS; + i[18] = ACR_ECONNABORTED; + i[19] = ACR_ECONNRESET; + i[20] = ACR_EHOSTUNREACH; + i[21] = ACR_ENETUNREACH; + i[22] = ACR_EFTYPE; + i[23] = ACR_EPIPE; + i[24] = ACR_EXDEV; + i[25] = ACR_ENOTEMPTY; + i[26] = ACR_EAFNOSUPPORT; + + ra = (*_E)->NewIntArray(_E, 32); + if (ra) { + (*_E)->SetIntArrayRegion(_E, ra, 0, 32, i); + } + return ra; +} Modified: commons/sandbox/runtime/trunk/src/test/org/apache/commons/runtime/TestAll.java URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/test/org/apache/commons/runtime/TestAll.java?rev=768384&r1=768383&r2=768384&view=diff ============================================================================== --- commons/sandbox/runtime/trunk/src/test/org/apache/commons/runtime/TestAll.java (original) +++ commons/sandbox/runtime/trunk/src/test/org/apache/commons/runtime/TestAll.java Fri Apr 24 17:54:28 2009 @@ -35,6 +35,7 @@ suite.addTest(TestProperties.suite()); suite.addTest(TestOS.suite()); suite.addTest(TestUUID.suite()); + suite.addTest(TestStatus.suite()); suite.addTest(TestMemory.suite()); suite.addTest(TestDirectByteBuffer.suite()); suite.addTest(TestPrivate.suite()); Added: commons/sandbox/runtime/trunk/src/test/org/apache/commons/runtime/TestStatus.java URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/test/org/apache/commons/runtime/TestStatus.java?rev=768384&view=auto ============================================================================== --- commons/sandbox/runtime/trunk/src/test/org/apache/commons/runtime/TestStatus.java (added) +++ commons/sandbox/runtime/trunk/src/test/org/apache/commons/runtime/TestStatus.java Fri Apr 24 17:54:28 2009 @@ -0,0 +1,62 @@ +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.commons.runtime; + +import org.apache.commons.runtime.io.Status; +import java.lang.System; +import junit.framework.*; + +/** + * Status Test. + * + */ +public class TestStatus extends TestCase +{ + + public static Test suite() { + TestSuite suite = new TestSuite(TestStatus.class); + return suite; + } + + protected void setUp() + throws Exception + { + System.loadLibrary("acr"); + } + + public void testStatus() + throws Exception + { + int err = Status.EACCES; + assertTrue("Status", err != 0); + } + + public void testStatusSys() + throws Exception + { + int err = 720000 + 32; + assertTrue("Status", Status.IS_OS_SYSERR(err)); + } + + public void testStatusStat() + throws Exception + { + int err = Status.EOF; + assertTrue("Status", Status.IS_STATUS(err)); + } + +} Propchange: commons/sandbox/runtime/trunk/src/test/org/apache/commons/runtime/TestStatus.java ------------------------------------------------------------------------------ svn:eol-style = native