-/*******************************************************************************\r
- * Copyright (c) 2007, 2010 Association for Decentralized Information Management\r
- * in Industry THTH ry.\r
- * All rights reserved. This program and the accompanying materials\r
- * are made available under the terms of the Eclipse Public License v1.0\r
- * which accompanies this distribution, and is available at\r
- * http://www.eclipse.org/legal/epl-v10.html\r
- *\r
- * Contributors:\r
- * VTT Technical Research Centre of Finland - initial API and implementation\r
- *******************************************************************************/\r
-package org.simantics.db.server.protocol;\r
-\r
-\r
-public abstract class AbstractFunction extends AbstractMessage {\r
- private int token = 0;\r
- void setToken(int token) {\r
- this.token = token;\r
- }\r
- int getToken() {\r
- return token;\r
- }\r
- AbstractFunction(int requestNumber, int responseNumber) {\r
- super(requestNumber, responseNumber);\r
- }\r
- AbstractFunction(int requestNumber, int responseNumber, DataBuffer buffer) {\r
- super(requestNumber, responseNumber, buffer);\r
- }\r
- @Override\r
- boolean isEvent() {\r
- return false;\r
- }\r
- @Override\r
- String getExceptionText() {\r
- String t = super.getExceptionText();\r
- if (t != null)\r
- return super.getExceptionText();\r
- else if (notRightDataForUs())\r
- return "Response type does not match.";\r
- return null;\r
- }\r
- public boolean hasException() { // Used by return handler.\r
- return notRightDataForUs() || super.getExceptionText() != null;\r
- }\r
- boolean notRightDataForUs() {\r
- return receivedNumber != responseNumber;\r
- }\r
- void prepareForSendingRequest() {\r
- receivedNumber = 0;\r
- responsePending = true;\r
- super.setExceptionText(null);\r
- }\r
- boolean hasResponsePending() {\r
- return hasResponse() && responsePending;\r
- }\r
- synchronized void gotResponse() {\r
- responsePending = false;\r
- this.notify();\r
- }\r
-// synchronized void waitForResponse(Connection connection, long waitMs) throws SessionException {\r
-// String string = "AbstractFunction.waitForResponse";\r
-// if (DebugPolicy.REPORT_TIME_CONSUMING_FUNCTIONS)\r
-// string += "token=" + token + ", returnHandler=" + returnHandler;\r
-// DebugPolicy.wait(waitMs, this, string);\r
-// }\r
-}\r
+/*******************************************************************************
+ * Copyright (c) 2007, 2010 Association for Decentralized Information Management
+ * in Industry THTH ry.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * VTT Technical Research Centre of Finland - initial API and implementation
+ *******************************************************************************/
+package org.simantics.db.server.protocol;
+
+
+public abstract class AbstractFunction extends AbstractMessage {
+ private int token = 0;
+ void setToken(int token) {
+ this.token = token;
+ }
+ int getToken() {
+ return token;
+ }
+ AbstractFunction(int requestNumber, int responseNumber) {
+ super(requestNumber, responseNumber);
+ }
+ AbstractFunction(int requestNumber, int responseNumber, DataBuffer buffer) {
+ super(requestNumber, responseNumber, buffer);
+ }
+ @Override
+ boolean isEvent() {
+ return false;
+ }
+ @Override
+ String getExceptionText() {
+ String t = super.getExceptionText();
+ if (t != null)
+ return super.getExceptionText();
+ else if (notRightDataForUs())
+ return "Response type does not match.";
+ return null;
+ }
+ public boolean hasException() { // Used by return handler.
+ return notRightDataForUs() || super.getExceptionText() != null;
+ }
+ boolean notRightDataForUs() {
+ return receivedNumber != responseNumber;
+ }
+ void prepareForSendingRequest() {
+ receivedNumber = 0;
+ responsePending = true;
+ super.setExceptionText(null);
+ }
+ boolean hasResponsePending() {
+ return hasResponse() && responsePending;
+ }
+ synchronized void gotResponse() {
+ responsePending = false;
+ this.notify();
+ }
+// synchronized void waitForResponse(Connection connection, long waitMs) throws SessionException {
+// String string = "AbstractFunction.waitForResponse";
+// if (DebugPolicy.REPORT_TIME_CONSUMING_FUNCTIONS)
+// string += "token=" + token + ", returnHandler=" + returnHandler;
+// DebugPolicy.wait(waitMs, this, string);
+// }
+}