// Path: src/krasa/frameswitcher/networking/dto/RemoteProject.java
// public class RemoteProject implements Serializable {
// 
// 	private final String name;
// 	private final String projectPath;
// 
// 	public RemoteProject(String name, String projectPath) {
// 		this.name = name;
// 		this.projectPath = projectPath;
// 	}
// 
// 	public RemoteProject(Project project) {
// 		this(project.getName(), project.getBasePath());
// 	}
// 
// 	public RemoteProject(ReopenProjectAction project) {
// 		this(project.getProjectName(), project.getProjectPath());
// 	}
// 
// 	public String getName() {
// 		return name;
// 	}
// 
// 	public String getProjectPath() {
// 		return projectPath;
// 	}
// 
// 	@Override
// 	public boolean equals(Object o) {
// 		if (this == o) {
// 			return true;
// 		}
// 		if (o == null || getClass() != o.getClass()) {
// 			return false;
// 		}
// 
// 		RemoteProject that = (RemoteProject) o;
// 
// 		if (projectPath != null ? !projectPath.equals(that.projectPath) : that.projectPath != null) {
// 			return false;
// 		}
// 		if (name != null ? !name.equals(that.name) : that.name != null) {
// 			return false;
// 		}
// 
// 		return true;
// 	}
// 
// 	@Override
// 	public int hashCode() {
// 		int result = name != null ? name.hashCode() : 0;
// 		result = 31 * result + (projectPath != null ? projectPath.hashCode() : 0);
// 		return result;
// 	}
// 
// 	@Override
// 	public String toString() {
// 		return ReflectionToStringBuilder.toString(this, ToStringStyle.SHORT_PREFIX_STYLE);
// 	}
// }


import com.intellij.openapi.project.Project;
import krasa.frameswitcher.networking.dto.RemoteProject;
import org.jgroups.Message;
import java.util.UUID;
package krasa.frameswitcher.networking;



/**
 * @author Vojtech Krasa
 */
public interface RemoteSender {
	void sendInstanceStarted();

	void sendProjectsState();

	void dispose();

	void asyncPing();

	void asyncProjectOpened(Project project);

	void sendProjectClosed(Project project);

// Path: src/krasa/frameswitcher/networking/dto/RemoteProject.java
// public class RemoteProject implements Serializable {
// 
// 	private final String name;
// 	private final String projectPath;
// 
// 	public RemoteProject(String name, String projectPath) {
// 		this.name = name;
// 		this.projectPath = projectPath;
// 	}
// 
// 	public RemoteProject(Project project) {
// 		this(project.getName(), project.getBasePath());
// 	}
// 
// 	public RemoteProject(ReopenProjectAction project) {
// 		this(project.getProjectName(), project.getProjectPath());
// 	}
// 
// 	public String getName() {
// 		return name;
// 	}
// 
// 	public String getProjectPath() {
// 		return projectPath;
// 	}
// 
// 	@Override
// 	public boolean equals(Object o) {
// 		if (this == o) {
// 			return true;
// 		}
// 		if (o == null || getClass() != o.getClass()) {
// 			return false;
// 		}
// 
// 		RemoteProject that = (RemoteProject) o;
// 
// 		if (projectPath != null ? !projectPath.equals(that.projectPath) : that.projectPath != null) {
// 			return false;
// 		}
// 		if (name != null ? !name.equals(that.name) : that.name != null) {
// 			return false;
// 		}
// 
// 		return true;
// 	}
// 
// 	@Override
// 	public int hashCode() {
// 		int result = name != null ? name.hashCode() : 0;
// 		result = 31 * result + (projectPath != null ? projectPath.hashCode() : 0);
// 		return result;
// 	}
// 
// 	@Override
// 	public String toString() {
// 		return ReflectionToStringBuilder.toString(this, ToStringStyle.SHORT_PREFIX_STYLE);
// 	}
// }


// Path: src/krasa/frameswitcher/networking/RemoteSender.java
import com.intellij.openapi.project.Project;
import krasa.frameswitcher.networking.dto.RemoteProject;
import org.jgroups.Message;
import java.util.UUID;

package krasa.frameswitcher.networking;



/**
 * @author Vojtech Krasa
 */
public interface RemoteSender {
	void sendInstanceStarted();

	void sendProjectsState();

	void dispose();

	void asyncPing();

	void asyncProjectOpened(Project project);

	void sendProjectClosed(Project project);

	void openProject(UUID target, RemoteProject remoteProject);