00001 /*************************************************************************** 00002 *cr 00003 *cr (C) Copyright 1995-2019 The Board of Trustees of the 00004 *cr University of Illinois 00005 *cr All Rights Reserved 00006 *cr 00007 ***************************************************************************/ 00008 00009 /*************************************************************************** 00010 * RCS INFORMATION: 00011 * 00012 * $RCSfile: VMDCollab.h,v $ 00013 * $Author: johns $ $Locker: $ $State: Exp $ 00014 * $Revision: 1.8 $ $Date: 2019/01/17 21:21:02 $ 00015 * 00016 ***************************************************************************/ 00017 00018 #ifndef VMDCOLLAB_H 00019 #define VMDCOLLAB_H 00020 00021 #include "UIObject.h" 00022 #include "ResizeArray.h" 00023 class Inform; 00024 00025 class VMDCollab : public UIObject { 00026 private: 00027 void *serversock; 00028 static void *serverproc(void *v); // static member launched in a new thread 00029 00030 Inform *cmdbufstr; 00031 void *clientsock; 00032 bool eval_in_progress; 00033 00034 public: 00035 // normal constructor 00036 VMDCollab(VMDApp *); 00037 ~VMDCollab(); 00038 00039 // start a vmdcollab server on localhost using the given port. 00040 // Return success. 00041 int startserver(int port); 00042 00043 void stopserver(); 00044 00045 // connect to a vmdcollab server at the given host/port. Fails if 00046 // already connected to another server. Return success. 00047 int connect(const char *host, int port); 00048 00049 // close client connection to collab server 00050 void disconnect(); 00051 00052 // virtual UIObject methods 00053 int check_event(); 00054 int act_on_command(int, Command *); 00055 }; 00056 00057 #endif