Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
//Copyright 2015 Erik De Rijcke
//
//Licensed under the Apache License,Version2.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.freedesktop.wayland.client;
import org.freedesktop.jaccall.Pointer;
import org.freedesktop.wayland.client.jaccall.WaylandClientCore;
import org.freedesktop.wayland.util.Arguments;
import org.freedesktop.wayland.util.Dispatcher;
import org.freedesktop.wayland.util.InterfaceMeta;
import org.freedesktop.wayland.util.ObjectCache;
import org.freedesktop.wayland.util.WaylandObject;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.util.HashMap;
import java.util.Map;
/**
* Represents a protocol object on the client side.
*
* A {@code Proxy} acts as a client side proxy to an object existing in the
* compositor. The proxy is responsible for converting requests made by the
* clients with {@link #marshal(int)} into Wayland's wire format. Events
* coming from the compositor are also handled by the proxy, which will in
* turn call the implementation.
*
* With the exception of function {@link #setQueue(EventQueue)}, functions
* accessing a {@code Proxy} are not normally used by client code. Clients
* should normally use the higher level interface generated by the scanner to
* interact with compositor objects.
*
*
* @param Implementation type that will act as the listener for received events.
*/
public abstract class Proxy implements WaylandObject {
private static final Map>, Constructor extends Proxy>>> PROXY_CONSTRUCTORS = new HashMap<>();
public final Long pointer;
private final int version;
private final I implementation;
private final Pointer