001 /**
002 * Copyright (C) 2010, Skype Limited
003 *
004 * All intellectual property rights, including but not limited to copyrights,
005 * trademarks and patents, as well as know how and trade secrets contained in,
006 * relating to, or arising from the internet telephony software of
007 * Skype Limited (including its affiliates, "Skype"), including without
008 * limitation this source code, Skype API and related material of such
009 * software proprietary to Skype and/or its licensors ("IP Rights") are and
010 * shall remain the exclusive property of Skype and/or its licensors.
011 * The recipient hereby acknowledges and agrees that any unauthorized use of
012 * the IP Rights is a violation of intellectual property laws.
013 *
014 * Skype reserves all rights and may take legal action against infringers of
015 * IP Rights.
016 *
017 * The recipient agrees not to remove, obscure, make illegible or alter any
018 * notices or indications of the IP Rights and/or Skype's rights and
019 * ownership thereof.
020 */
021
022 package com.skype.ipc;
023
024 import java.io.IOException;
025
026 import com.skype.util.Log;
027
028 public class Event extends AbstractTaggedInputMessage {
029 private static final String TAG="Event";
030 private int module_id;
031 private int event_id;
032
033 Event(Transport in) throws IOException
034 {
035 super(in);
036
037 module_id = decodeVaruint();
038 event_id = decodeVaruint();
039 //Log.d(TAG,"Event decoding started. module_id="+module_id+", event_id="+event_id+".");
040 // Decode parms
041 try {
042 while(decodeNextParm()==true) {};
043 } catch (IOException e) {
044 Log.e(TAG,"IOException while decoding " + e.getMessage());
045 invalid=true;
046 //e.printStackTrace();
047 }
048 //Log.d(TAG,"Event decoded. module_id="+module_id+", event_id="+event_id+", validity="+(!invalid));
049 }
050
051 public int getEventId()
052 {
053 return event_id;
054 }
055 public int getModuleId()
056 {
057 return module_id;
058 }
059
060 private boolean decodeNextParm() throws IOException
061 {
062 int kind=ioTransport.read();
063 while(kind==']')
064 {
065 kind=ioTransport.read();
066 }
067 if(kind=='z')
068 {
069 return false;
070 }
071 int tag=ioTransport.read();
072 addParm(tag, decodeOneOfKind(kind));
073 //Log.d(TAG,"Decoded one parm of event_id="+event_id+", tag="+tag+", kind='"+(char)(kind&0xff)+"'.");
074 return true;
075 }
076
077 }