summaryrefslogtreecommitdiffstats
path: root/dcopjava/binding/org/trinitydesktop/DCOP/Stub.java
diff options
context:
space:
mode:
Diffstat (limited to 'dcopjava/binding/org/trinitydesktop/DCOP/Stub.java')
-rw-r--r--dcopjava/binding/org/trinitydesktop/DCOP/Stub.java193
1 files changed, 193 insertions, 0 deletions
diff --git a/dcopjava/binding/org/trinitydesktop/DCOP/Stub.java b/dcopjava/binding/org/trinitydesktop/DCOP/Stub.java
new file mode 100644
index 00000000..0a23543a
--- /dev/null
+++ b/dcopjava/binding/org/trinitydesktop/DCOP/Stub.java
@@ -0,0 +1,193 @@
+package org.trinitydesktop.DCOP;
+
+
+import java.io.*;
+
+
+public class Stub
+{
+ private String _app, _obj;
+ private int _status;
+ private Client _client;
+
+ public Stub(String app, String obj)
+ {
+ _app = app;
+ _obj = obj;
+ _status = 0;
+
+ // TODO: The client should be shared between stubs.
+ _client = new Client();
+ _client.attach();
+ }
+
+ public String app()
+ {
+ return _app;
+ }
+
+ public String obj()
+ {
+ return _obj;
+ }
+
+
+ public Client client()
+ {
+ return _client;
+ }
+
+
+ public final static int CallFailed = 0;
+ public final static int CallSucceeded = 1;
+
+ public int status()
+ {
+ return _status;
+ }
+
+ public void setStatus(int status)
+ {
+ _status = status;
+ }
+
+ public boolean ok()
+ {
+ return _status == CallSucceeded;
+ }
+
+ public void callFailed()
+ {
+ _status = CallFailed;
+ }
+
+
+ // accessor methods for the datatypes used ---------------------------
+
+ protected boolean read_bool(DataInputStream is) throws IOException
+ {
+ return is.readBoolean();
+ }
+
+ protected void write_bool(DataOutputStream os, boolean val) throws IOException
+ {
+ os.writeBoolean(val);
+ }
+
+ protected short read_short_int(DataInputStream is) throws IOException
+ {
+ return is.readShort();
+ }
+
+ protected void write_short_int(DataOutputStream os, short val) throws IOException
+ {
+ os.writeShort(val);
+ }
+
+ protected int read_int(DataInputStream is) throws IOException
+ {
+ return is.readInt();
+ }
+
+ protected void write_int(DataOutputStream os, int val) throws IOException
+ {
+ os.writeInt(val);
+ }
+
+ protected int read_long_int(DataInputStream is) throws IOException
+ {
+ return is.readInt();
+ }
+
+ protected void write_long_int(DataOutputStream os, int val) throws IOException
+ {
+ os.writeInt(val);
+ }
+
+ protected float read_float(DataInputStream is) throws IOException
+ {
+ return is.readFloat();
+ }
+
+ protected void write_float(DataOutputStream os, float val) throws IOException
+ {
+ os.writeFloat(val);
+ }
+
+ protected double read_double(DataInputStream is) throws IOException
+ {
+ return is.readDouble();
+ }
+
+ protected void write_double(DataOutputStream os, double val) throws IOException
+ {
+ os.writeDouble(val);
+ }
+
+ protected String read_QString(DataInputStream is) throws IOException
+ {
+ int len = is.readInt();
+ if (len == 0xffffffff)
+ return new String();
+ else
+ {
+ StringBuffer b = new StringBuffer();
+ for (int i=0; i<len/2; ++i)
+ b.append(is.readChar());
+ return b.toString();
+ }
+ }
+
+ protected void write_QString(DataOutputStream os, String val) throws IOException
+ {
+ os.writeInt(val.length()*2);
+ for (int i=0; i<val.length(); ++i)
+ os.writeChar(val.charAt(i));
+ }
+
+ protected String read_QCString(DataInputStream is) throws IOException
+ {
+ int len = is.readInt();
+ StringBuffer b = new StringBuffer();
+ for (int i=0; i<len; ++i)
+ b.append((char)is.readByte());
+ return b.toString();
+ }
+
+ protected void write_QCString(DataOutputStream os, String val) throws IOException
+ {
+ os.writeInt(val.length()+1);
+ for (int i=0; i<val.length(); ++i)
+ os.writeByte(val.charAt(i));
+ os.writeByte(0);
+ }
+
+ protected String[] read_QStringList(DataInputStream is) throws IOException
+ {
+ int n = is.readInt();
+ String[] result = new String[n];
+ for (int i=0; i<n; ++i)
+ result[i] = read_QString(is);
+ return result;
+ }
+
+ protected void write_QStringList(DataOutputStream os, String[] val) throws IOException
+ {
+ os.writeInt(val.length);
+ for (int i=0; i<val.length; ++i)
+ write_QCString(os, val[i]);
+ }
+
+ protected void write_DCOPRef(DataOutputStream os, DCOPRef ref) throws IOException
+ {
+ write_QCString(os, ref.app());
+ write_QCString(os, ref.object());
+ write_QCString(os, ref.type());
+ }
+
+ protected DCOPRef read_DCOPRef(DataInputStream is) throws IOException
+ {
+ return new DCOPRef(read_QCString(is), read_QCString(is), read_QCString(is));
+ }
+
+}