Uses of Class
ThincException

Uses of ThincException in <Unnamed>
 

Methods in <Unnamed> that throw ThincException
 void ThincSMsgFlagCache.addCache(java.lang.Object target)
          addCache() actually adds the object into cache. the key value and type such as id and type in this class should be already set by setCacheId() method.
protected  void ThincHandler.closeSocketChannel()
          closeSocketChannel() closes the connection from the server
protected  java.nio.channels.SocketChannel ThincHandler.createSocketChannel(java.lang.String host, int port)
          createSocketChannel() creates network connection to server
 void ThincClientCanvas.drawImage(java.nio.IntBuffer bb, int x, int y, int w, int h, int type)
          drawImage() draws the image represented as IntBuffer object.
 void ThincClientCanvas.drawImageScaled(java.nio.IntBuffer bb, int x, int y, int w, int h, int dst_w, int dst_h, int type)
          drawImageScaled() draws the scaled image onto canvas. it is as same as drawImage methods except scaling
 java.lang.Object ThincSMsgFlagCache.getCache(int type)
          getCache() gets the object from the cache. the key value(identifier) will be automatically received from this method.
 java.lang.Object ThincClientCanvas.getCache(int id, int type)
          getCache() gets the object from the cache.
 java.nio.ByteBuffer ThincHandler.getMessage(int size)
          getMessage() get messages from the server.
 void ThincMsgHandler.init()
          init() receives version information from the server. try to compare the version then send client version information to the server it uses recvBytes() and sendBytes() methods because version information exchange should not have any general thinc header.
private  void ThincFrame.initGUI()
          initGUI() initializes the login GUI for user.
 void ThincClientCanvas.moveThincCursor(int x, int y)
          moveThincCursor() moves the cursor to the specific location
private  void ThincSMsgSoundPlay.playSound(javax.sound.sampled.SourceDataLine src, int size, int timestamp)
          playSound() play the sound by using write method from SourceDataLine object.
 void ThincSMsgFBRawUpdate.process()
          process() get the image to draw from network or cache and try to draw an image using drawImage() and drawImageScaled() method from ThincClientCanvas class.
 void ThincSMsgInitReplyCursor.process()
          process() gets the information for cursor and set it using createCursor() and setThincCursor() method from ThincClientCanvas class.
 void ThincSMsgFBFillBilevel.process()
          process() get the source bitmap image from cache or network and try to generate RGB image with those. finally draw it into frame buffer using drawTile(), drawImage(), drawImageScaled() methods from ThincClientCanvas class.
 void ThincSMsgInitReplyOK.process()
          process() do nothing if properly accepted.
 void ThincSMsgInitReplyVideoServerFormat.process()
          process() receive every supported format from the server and use bitwise & operator to get client supported format correspond with server. finally, ThincMsgInitReplyHandler sends ThincCMsgInitRequestClientFormat to notify the client supported video format by using sendNextMessage() method.
 void ThincCMsgResizeEvent.process()
          process() Set resized width and height into ThincSMsgFlagResize class and invokes send method in ThincMsgHandler.
 void ThincCMsgVideoStartOK.process()
          Deprecated.  
 void ThincSMsgCursorColor.process()
          process() get the foreground and background color for cursor and change the color using colorChangeCursor() method in ThincClientCanvas class.
 void ThincSMsgCursorMove.process()
          process() get the new coordination for cursor and change the position using moveThincCursor() method in ThincClientCanvas class.
 void ThincSMsgSoundOpen.process()
          process() gets the rate, bits, channels and endian for sound device and set it into AudioFormat and DataLine.Info object.
 void ThincSMsgSoundClose.process()
          process() gets the stream id for sound and remove it from hash table.
 void ThincCMsgInitClientDone.process()
           
 void ThincSMsgCursorShowHide.process()
          process() get the flag for showing cursor and change it into show/hide using showThincCursor() method in ThincClientCanvas class.
 void ThincSMsgVideoResize.process()
          process() gets the stream id,width, height and new format information from the server, then set them onto the stream information.
abstract  void ThincMsg.process()
          process() is general processing method for each thinc messages.
 void ThincSMsgInitNotOK.process()
          process() receives the reason of nak and print it into user window.
 void ThincCMsgInitRequestVideoClientFormat.process()
           
 void ThincCMsgInitRequestCursor.process()
           
 void ThincCMsgResizeUpdate.process()
           
 void ThincCMsgInitRequestEncoder.process()
           
 void ThincCMsgEventMouseButton.process()
          process() simply calls the send method on ThincMsgHandler
 void ThincCMsgInitRequestVideo.process()
           
 void ThincCMsgEventMouseMove.process()
           
 void ThincSMsgInitReplyNotOK.process()
          process() just prints out the cause of the error and do nothing.
 void ThincSMsgFBFillGlyph.process()
          process() get the source glyph-map image from cache or network and try to generate RGB image with those. finally draw it into frame buffer using drawTile(), drawImage(), drawImageScaled() methods from ThincClientCanvas class.
 void ThincCMsgEventKey.process()
           
 void ThincSMsgVideoEnd.process()
          process() gets the stream id from the server to close, then closes stream by removing stream information from the vector.
 void ThincCMsgInitAuth.process()
           
 void ThincSMsgInitReplyFBInfo.process()
          process() gets the message containing information for frame buffer, then set it into ThincClientCanvas class by using createFrameBuffer method.
 void ThincSMsgVideoScale.process()
          process() gets the stream id,dst_width and dst_height from the server, then set them onto the stream information.
 void ThincSMsgInitSessCaps.process()
          process() gets the session security capability from the server and trys to send next message by creating proper ThincCMsg object or using sendNextMessage() method from ThincMsgInitReplyHandler class. because SSL seems not to be implemented on the server side, it is simply ignored just for now.
 void ThincSMsgInitSecCaps.process()
          process() receive security capability from the server and use bitwise & operator to get client security capability correspond with server. finally, it creates and sends ThincCMsgInitRequestClientFormat to notify the client supported video format.
 void ThincCMsgInitRequestFBData.process()
           
 void ThincSMsgCursorChange.process()
          process() get the new information about cursor such as hot x, hot y, size and image respectively, and set it into ThincClientCanvas object.
 void ThincSMsgAck.process()
          process() if the received message is NAK, simply throws new ThincException.
 void ThincSMsgInitReplyFBData.process()
          process() gets the message containing information for init frame buffer image, then receiving the init frame buffer image and draw it into frame buffer by using setFrameBuffer() and drawFrameBuffer methods in ThincClientCanvas class.
 void ThincCMsgInitRequestVideoServerFormat.process()
           
 void ThincSMsgVideoStart.process()
          process() gets the initialized information for stream id from the server, then creates and sets them onto the stream information vector.
 void ThincSMsgInitReplyUnknown.process()
          process() just throw ThincException for unknown messages.
 void ThincSMsgFBFillPixMap.process()
          process() get the source pixel-map image from cache or network and try to draw an image using drawTile(), drawImage(), drawImageScaled() methods from ThincClientCanvas class.
 void ThincCMsgSoundStart.process()
           
 void ThincSMsgSoundPlay.process()
          process() get the stream from the server and try to play it. if it is the first stream from the server, save the information for stream in the hash table.
 void ThincCMsgInitRequestCacheSize.process()
           
 void ThincSMsgInitOK.process()
          process() gets the last sent message from ThincMsgHandler and conducts the proper action for each sent message.
 void ThincSMsgResizeAck.process()
          Deprecated.  
 void ThincSMsgVideoMove.process()
          process() gets the stream id and new coordination from the server to move, then moves the stream by modifying stream information from the vector.
 void ThincCMsgInitSecCaps.process()
           
 void ThincSMsgFBCopy.process()
          process() get the source coodinate, destination coordinate, width and height respectively, then copy the region using copyRegion() method in ThincClientCanvas class.
 java.nio.IntBuffer ThincSMsgFlagFBZData.process()
          process() receives the header for compression and try to unzip the compressed image.
 void ThincCMsgInitRequestFBInfo.process()
           
 void ThincCMsgInitRequestNoVideo.process()
           
 void ThincSMsgVideoNext.process()
          process() gets the stream id,size and timestamp from the server, then show the frame onto the canvas by using the generated ABGR image from ThincVideoFormat.
 void ThincSMsgInitReplyEncoder.process()
          process() gets the encoding option from the server.
 void ThincSMsgFBFillSolid.process()
          process() get the region to draw and color from network and try to draw a filled rectangle using drawFillRect() method from ThincClientCanvas class.
 void ThincSMsgInitReplyCacheSize.process()
          process() gets the information for caches and set it using createCache() method from ThincClientCanvas class.
 java.nio.IntBuffer ThincVideoFormatYUY2.process(int width, int height, int size)
           
abstract  java.nio.IntBuffer ThincVideoFormat.process(int width, int height, int size)
          process() receives YUV image and converts it into ARGB images. it is used in ThinSMsgVideo to draw ARGB image into frame buffer.
 java.nio.IntBuffer ThincVideoFormatUYVY.process(int width, int height, int size)
           
 java.nio.IntBuffer ThincVideoFormatYV12.process(int width, int height, int size)
           
 void ThincSMsgFlagResize.process(java.awt.Rectangle r)
          process() receives resized flag message from the network. if hasInformation is true, it compares the resized flag message with resized height and width of frame buffer. if it is false, just discard resized flag message
private  java.nio.IntBuffer ThincSMsgFlagFBZData.processPNG()
           
 java.nio.IntBuffer ThincSMsgFlagFBZData.processZLIB()
           
protected  int ThincHandler.recvBytes(java.nio.ByteBuffer bb)
          recvBytes() is the primitive method used by getMessage method. it also used when version exchange required (which does not have general thinc header
 int ThincHandler.send(ThincCMsg c)
          send() send messages to the server.
 int ThincMsgHandler.send(ThincCMsg c)
          send() overriden to save last sent messages.
protected  int ThincHandler.sendBytes(java.nio.ByteBuffer bb)
          sendBytes() is the primitive method used by send method. it also used when version exchange required (which does not have general thinc header
 void ThincMsgInitReplyHandler.sendNextMessage()
          sendNextMessage() send next init request message to the server.
private  void ThincSoundHandler.sendStart()
          sentStart() sends initialization message to the server.
 void ThincClientCanvas.setCache(java.lang.Object contents, int id, int type)
          setCache() sets the object into cache.
 void ThincSMsgFlagCache.setCacheId(int type)
          setCacheId() receives the cache id from network and save it temporary.
 void ThincFrame.setCanvas(ThincClientCanvas ca)
          setCanvas() disables the main login components and registers the ThincClientCanvas into this object. it also set ThincClientCanvas object onto the ThincFrame.
 void ThincHandler.setSSLSocketChannel(java.lang.String host, int port)
          setSSLSocketChannel() uses SSLEngine class in Java to establish SSL connection.
 void ThincHandler.SSLHandshake()
          SSLHandshake() do handshake for SSLEngine.
 void ThincMsgHandler.start()
          start() actually starts to receive message from server. if it comes, this parses general thinc header and pass the control to the proper server message class.
 void ThincMsgInitReplyHandler.start()
          start() actually starts to receive the init reply messages from server. if it comes, this parses init reply header and pass the control to the proper server init reply message class.
private  int ThincHandler.unwrapSSL(java.nio.ByteBuffer bb)
          unwrapSSL() unwrap from ssl messages & send it
private  int ThincHandler.wrapSSL(java.nio.ByteBuffer bb)
          wrapSSL() wrap into ssl messages & send it
 

Constructors in <Unnamed> that throw ThincException
ThincCMsgSoundStart(ThincHandler h, byte[] version)
          creates ThincCMsgSoundStart object.
ThincFrame(ThincClient cl)
          creates ThincFrame object. it sets User interfaces using initGUI() method and set the WindowListener for closing window.
ThincMsgHandler(ThincClient tc, ThincClientCanvas c)
          create ThincMsgHandler object
ThincSoundHandler(ThincClient tc, ThincClientCanvas ca)
          create ThincSoundHandler object. it also send initialize message to the server.
ThincVideoFormatUYVY(ThincMsgHandler th, short width, short height)
          creates ThincVideoFormatUYVY object. it also receives the message format information from the server.
ThincVideoFormatYUY2(ThincMsgHandler th, short width, short height)
          creates ThincVideoFormatYUY2 object. it also receives the message format information from the server.
ThincVideoFormatYV12(ThincMsgHandler th, short width, short height)
          creates ThincVideoFormatYV12 object. it also receives the message format information from the server.