@Test
  public void Advise() {

    // query for ConnectionPointContainer
    Unknown unk = new Unknown(this.ppWordApp.getValue());
    PointerByReference ppCpc = new PointerByReference();
    IID cpcIID = new IID("{B196B284-BAB4-101A-B69C-00AA00341D07}");
    HRESULT hr = unk.QueryInterface(new REFIID.ByValue(cpcIID), ppCpc);
    COMUtils.checkRC(hr);
    ConnectionPointContainer cpc = new ConnectionPointContainer(ppCpc.getValue());

    // find connection point for Application_Events4
    IID appEvnts4 = new IID("{00020A01-0000-0000-C000-000000000046}");
    REFIID riid = new REFIID(appEvnts4.getPointer());
    PointerByReference ppCp = new PointerByReference();
    hr = cpc.FindConnectionPoint(riid, ppCp);
    COMUtils.checkRC(hr);
    ConnectionPoint cp = new ConnectionPoint(ppCp.getValue());
    IID cp_iid = new IID();
    hr = cp.GetConnectionInterface(cp_iid);
    COMUtils.checkRC(hr);

    Application_Events4 listener = new Application_Events4();

    DWORDByReference pdwCookie = new DWORDByReference();
    hr = cp.Advise(listener, pdwCookie);
    COMUtils.checkRC(hr);

    Assert.assertTrue(listener.QueryInterface_called);
  }
 @Test
 public void queryInterface_ConnectionPointContainer() {
   Unknown unk = new Unknown(this.ppWordApp.getValue());
   PointerByReference ppCpc = new PointerByReference();
   IID cpcIID = new IID("{B196B284-BAB4-101A-B69C-00AA00341D07}");
   HRESULT hr = unk.QueryInterface(new REFIID.ByValue(cpcIID), ppCpc);
   COMUtils.checkRC(hr);
   ConnectionPointContainer cpc = new ConnectionPointContainer(ppCpc.getValue());
 }
  @Test
  public void FindConnectionPoint() {
    // query for ConnectionPointContainer
    Unknown unk = new Unknown(this.ppWordApp.getValue());
    PointerByReference ppCpc = new PointerByReference();
    IID cpcIID = new IID("{B196B284-BAB4-101A-B69C-00AA00341D07}");
    HRESULT hr = unk.QueryInterface(new REFIID.ByValue(cpcIID), ppCpc);
    COMUtils.checkRC(hr);
    ConnectionPointContainer cpc = new ConnectionPointContainer(ppCpc.getValue());

    // find connection point for Application_Events4
    IID appEvnts4 = new IID("{00020A01-0000-0000-C000-000000000046}");
    REFIID riid = new REFIID(appEvnts4.getPointer());
    PointerByReference ppCp = new PointerByReference();
    hr = cpc.FindConnectionPoint(riid, ppCp);
    COMUtils.checkRC(hr);
    ConnectionPoint cp = new ConnectionPoint(ppCp.getValue());
  }
Esempio n. 4
0
 public static void init() {
   Add.init();
   Address.init();
   Align.init();
   Alloc.init();
   Anchor.init();
   And.init();
   Bad.init();
   Bitcast.init();
   Block.init();
   Builtin.init();
   Call.init();
   Cmp.init();
   Cond.init();
   Confirm.init();
   Const.init();
   Conv.init();
   CopyB.init();
   Deleted.init();
   Div.init();
   Dummy.init();
   End.init();
   Eor.init();
   Free.init();
   IJmp.init();
   Id.init();
   Jmp.init();
   Load.init();
   Member.init();
   Minus.init();
   Mod.init();
   Mul.init();
   Mulh.init();
   Mux.init();
   NoMem.init();
   Not.init();
   Offset.init();
   Or.init();
   Phi.init();
   Pin.init();
   Proj.init();
   Raise.init();
   Return.init();
   Sel.init();
   Shl.init();
   Shr.init();
   Shrs.init();
   Size.init();
   Start.init();
   Store.init();
   Sub.init();
   Switch.init();
   Sync.init();
   Tuple.init();
   Unknown.init();
 }
Esempio n. 5
0
  /**
   * Get File Type String by File Type Name.
   *
   * @param typeName ("Image"/"ConfigFile"/"LogFile"
   * @return
   * @throws CcException
   */
  public static String getAcsFileTypeString(String typeName) {
    for (AcsFileType fileType : values()) {
      if (fileType.name().equals(typeName)) {
        return fileType.typeString;
      }
    }

    log.error("Invalid ACS File Type " + typeName + "!");
    return Unknown.name();
  }
Esempio n. 6
0
 public void visitUnknown(Unknown attribute) {
   attribute.accept(visitor);
 }
Esempio n. 7
0
 /**
  * Breaks-up the aggregate into its individual parts and returns them as a list. The parts are
  * returned based on the ordering of the aggregate itself.
  *
  * @return list of IRTMPEvent objects
  */
 public LinkedList<IRTMPEvent> getParts() {
   LinkedList<IRTMPEvent> parts = new LinkedList<IRTMPEvent>();
   log.trace("Aggregate data length: {}", data.limit());
   int position = data.position();
   do {
     try {
       // read the header
       // log.trace("Hex: {}", data.getHexDump());
       byte subType = data.get();
       // when we run into subtype 0 break out of here
       if (subType == 0) {
         log.debug("Subtype 0 encountered within this aggregate, processing with exit");
         break;
       }
       int size = IOUtils.readUnsignedMediumInt(data);
       log.debug("Data subtype: {} size: {}", subType, size);
       // TODO ensure the data contains all the bytes to support the specified size
       int timestamp = IOUtils.readExtendedMediumInt(data);
       /*timestamp = ntohap((GETIBPOINTER(buffer) + 4)); 0x12345678 == 34 56 78 12*/
       int streamId = IOUtils.readUnsignedMediumInt(data);
       log.debug("Data timestamp: {} stream id: {}", timestamp, streamId);
       Header partHeader = new Header();
       partHeader.setChannelId(header.getChannelId());
       partHeader.setDataType(subType);
       partHeader.setSize(size);
       // use the stream id from the aggregate's header
       partHeader.setStreamId(header.getStreamId());
       partHeader.setTimer(timestamp);
       // timer delta == time stamp - timer base
       // the back pointer may be used to verify the size of the individual part
       // it will be equal to the data size + header size
       int backPointer = 0;
       switch (subType) {
         case TYPE_AUDIO_DATA:
           AudioData audio = new AudioData(data.getSlice(size));
           audio.setTimestamp(timestamp);
           audio.setHeader(partHeader);
           log.debug("Audio header: {}", audio.getHeader());
           parts.add(audio);
           // log.trace("Hex: {}", data.getHexDump());
           // ensure 4 bytes left to read an int
           if (data.position() < data.limit() - 4) {
             backPointer = data.getInt();
             // log.trace("Back pointer: {}", backPointer);
             if (backPointer != (size + 11)) {
               log.debug("Data size ({}) and back pointer ({}) did not match", size, backPointer);
             }
           }
           break;
         case TYPE_VIDEO_DATA:
           VideoData video = new VideoData(data.getSlice(size));
           video.setTimestamp(timestamp);
           video.setHeader(partHeader);
           log.debug("Video header: {}", video.getHeader());
           parts.add(video);
           // log.trace("Hex: {}", data.getHexDump());
           // ensure 4 bytes left to read an int
           if (data.position() < data.limit() - 4) {
             backPointer = data.getInt();
             // log.trace("Back pointer: {}", backPointer);
             if (backPointer != (size + 11)) {
               log.debug("Data size ({}) and back pointer ({}) did not match", size, backPointer);
             }
           }
           break;
         default:
           log.debug("Non-A/V subtype: {}", subType);
           Unknown unk = new Unknown(subType, data.getSlice(size));
           unk.setTimestamp(timestamp);
           unk.setHeader(partHeader);
           parts.add(unk);
           // ensure 4 bytes left to read an int
           if (data.position() < data.limit() - 4) {
             backPointer = data.getInt();
           }
       }
       position = data.position();
     } catch (Exception e) {
       log.error("Exception decoding aggregate parts", e);
       break;
     }
     log.trace("Data position: {}", position);
   } while (position < data.limit());
   log.trace("Aggregate processing complete, {} parts extracted", parts.size());
   return parts;
 }