Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: plugins/IcqEngine/protocol/IcqMessageFactory.java


1   /*
2    * IcqMessageFactory.java
3    *
4    * Created on October 31, 2002, 5:13 PM
5    */
6   
7   package plugins.IcqEngine.protocol;
8   
9   import java.util.HashMap;
10  
11  /**
12   *
13   * @author  Tobias Riemer
14   */
15  public class IcqMessageFactory {
16          
17      public int uin, sid, seq1, seq2;    
18      /** Creates a new instance of IcqMessageFactory */
19      public IcqMessageFactory(int uin) {
20          this.uin = uin;
21          createNewSequence1();
22          createNewSequence2();
23          createNewSessionId();
24      }
25      
26      public IncomingMessage createIncomingMessage(ByteMessage bmsg) {
27          int cmd = ByteDecoder.decodeInt(bmsg.getBytes(), 2, 4);
28          System.out.println("cmd: " + cmd);
29          switch(cmd) {
30              case 0x00E6:
31                  return new UserStatusMessage(bmsg);
32              case 0x000A:
33                  return new SvrAckMessage(bmsg);
34          }
35          return null;
36      }
37      
38      
39      
40      public LoginMessage createLoginMessage(String password) {                 
41          return new LoginMessage(password);        
42      }
43      
44      public UserStatusMessage createUserStatusMessage(ByteMessage msg) {
45          return new UserStatusMessage(msg);
46      }
47      
48      public AckMessage createAckMessage(int serverTid) {
49          return new AckMessage(serverTid);
50      }
51      
52      public ContactListMessage createContactListMessage(HashMap contactList) {
53          return new ContactListMessage(contactList);
54      }
55      
56      
57      public static void main(String[] args) throws Exception {
58          /*IcqMessageFactory imf = new IcqMessageFactory();
59          LoginMessage lm = imf.createLoginMessage();
60          
61          HashMap contactMap = new HashMap();
62  //        contactMap.put("",new plugins.Messenger.DefaultContact("","",null));        
63          int serverTid = 22;
64          AckMessage am = imf.createAckMessage(serverTid);
65          imf.increaseSequenceNumbers();
66          ContactListMessage cm = imf.createContactListMessage(contactMap);
67          System.out.println(lm.getMessage(imf.uin, imf.sid, imf.seq1, imf.seq2));
68          System.out.println(am.getMessage(imf.uin, imf.sid, imf.seq1, imf.seq2));
69          System.out.println(cm.getMessage(imf.uin, imf.sid, imf.seq1, imf.seq2));
70          
71          ByteMessage bmsg = new ByteMessage();
72          
73          UserStatusMessage usm = imf.createUserStatusMessage(bmsg);
74          System.out.println(bmsg);
75          System.out.println(usm.getUin());*/
76          
77          for(int i=0;i<255;i++) {
78              System.out.println(i + " " + (i ^ 0xFF) + " " + (int) ((char) (i ^ 0xFF)));
79          }
80      }
81      
82      public void increaseSequenceNumbers() {
83          seq1++;
84          seq2++;
85      }
86          
87      protected void createNewSessionId() {
88          sid = (int) ( Math.random() * 65536 * 65536 );
89      }
90      protected void createNewSequence1() {
91          seq1 = (int) ( Math.random() * 65536 );
92      }
93      
94      protected void createNewSequence2() {
95          seq2 = 1;
96      }
97  }