void decode(FilterList filterList) { for(FilterEntry filterEntry : filterList) { System.out.println("ID: " + filterEntry.filterId() + " Action = " + filterEntry.filterActionAsString() + " DataType: " + DataType.asString(filterEntry.loadType()) + " Value: "); switch (filterEntry.loadType()) { case DataTypes.ELEMENT_LIST : decode(filterEntry.elementList()); break; case DataTypes.MAP : decode(filterEntry.map()); break; default: System.out.println(); break; } } } }
for (FilterEntry filterEntry : _filterListCollection) load = (DataImpl) filterEntry.load(); if ( load == null ) return "\nDecoding of just encoded object in the same application is not supported\n"; .append(filterEntry.filterActionAsString()) .append("\" filterId=\"") .append(filterEntry.filterId()); if (filterEntry.hasPermissionData()) Utilities.asHexString(_toString, filterEntry.permissionData()).append("\"");
private void decode(Map map) { FilterList filterList; boolean findMapEntry = false; for(MapEntry mapEntry : map) { if (mapEntry.loadType() == DataTypes.FILTER_LIST) { filterList = mapEntry.filterList(); for(FilterEntry filterEntry : filterList) { if (filterEntry.loadType() == DataTypes.ELEMENT_LIST ) { if (decode(filterEntry.elementList())) { _serviceId = (int) mapEntry.key().uintValue(); findMapEntry = true; } } } } if (findMapEntry) return; } }
checkResult(filterEntry1.filterId(), 1); checkResult(filterEntry1.loadType(), com.thomsonreuters.ema.access.DataType.DataTypes.FIELD_LIST); checkResult(filterEntry1.load().dataType(), com.thomsonreuters.ema.access.DataType.DataTypes.FIELD_LIST); checkResult(filterEntry1.action(), com.thomsonreuters.ema.access.FilterEntry.FilterAction.SET); checkResult(filterEntry1.hasPermissionData()); checkResult(filterEntry1.permissionData().equals( ByteBuffer.wrap("PermissionData".getBytes()) )); EmaDecode_UPAFieldListAll(filterEntry1.fieldList(), EncodingTypeFlags.PRIMITIVE_TYPES); checkResult(filterEntry2.filterId(), 2); checkResult(filterEntry2.loadType(), com.thomsonreuters.ema.access.DataType.DataTypes.ELEMENT_LIST); checkResult(filterEntry2.load().dataType(), com.thomsonreuters.ema.access.DataType.DataTypes.ELEMENT_LIST); checkResult(filterEntry2.action(), com.thomsonreuters.ema.access.FilterEntry.FilterAction.SET); checkResult(filterEntry2.hasPermissionData()); checkResult(filterEntry2.permissionData().equals(ByteBuffer.wrap("PermissionData".getBytes()) )); EmaDecode_UPAElementListAll(filterEntry2.elementList(), EncodingTypeFlags.PRIMITIVE_TYPES); checkResult(filterEntry3.filterId(), 3); checkResult(filterEntry3.loadType(), com.thomsonreuters.ema.access.DataType.DataTypes.FILTER_LIST); checkResult(filterEntry3.load().dataType(), com.thomsonreuters.ema.access.DataType.DataTypes.FILTER_LIST); checkResult(filterEntry3.action(), com.thomsonreuters.ema.access.FilterEntry.FilterAction.SET); checkResult(filterEntry3.hasPermissionData()); checkResult(filterEntry3.permissionData().equals(ByteBuffer.wrap("PermissionData".getBytes()) )); EmaDecode_UPAFilterListAll(filterEntry3.filterList(), EncodingTypeFlags.MESSAGE_TYPES); checkResult(filterEntry4.filterId(), 4); checkResult(filterEntry4.loadType(), com.thomsonreuters.ema.access.DataType.DataTypes.SERIES); checkResult(filterEntry4.load().dataType(), com.thomsonreuters.ema.access.DataType.DataTypes.SERIES); checkResult(filterEntry4.action(), com.thomsonreuters.ema.access.FilterEntry.FilterAction.SET); checkResult(filterEntry4.hasPermissionData());
FilterEntry fe = EmaFactory.createFilterEntry().noData(1, FilterEntry.FilterAction.SET); TestUtilities.checkResult("FilterEntry.toString() == toString() not supported", fe.toString().equals("\nDecoding of just encoded object in the same application is not supported\n")); filterList.add(EmaFactory.createFilterEntry().noData(2, FilterEntry.FilterAction.UPDATE, permissionData)); TestUtilities.checkResult("FilterList.toString() == toString() not supported", filterList.toString().equals("\nDecoding of just encoded object in the same application is not supported\n")); filterList.add(EmaFactory.createFilterEntry().fieldList(3, FilterEntry.FilterAction.SET, fieldListEnc)); TestUtilities.checkResult("FilterList.toString() == toString() not supported", filterList.toString().equals("\nDecoding of just encoded object in the same application is not supported\n")); TestUtilities.checkResult("FilterEntry.toString() != toString() not supported", !(filterEntry.toString().equals("\nDecoding of just encoded object in the same application is not supported\n"))); TestUtilities.checkResult( filterEntry.filterId() == 1, "Check the filter ID of the first entry"); TestUtilities.checkResult( filterEntry.action() == FilterEntry.FilterAction.SET, "Check the action of the first entry"); TestUtilities.checkResult( filterEntry.hasPermissionData() == false , "Check has permission data for first entry"); TestUtilities.checkResult( filterEntry.filterId() == 2, "Check the filter ID of the second entry"); TestUtilities.checkResult( filterEntry.action() == FilterEntry.FilterAction.UPDATE, "Check the action of the second entry"); TestUtilities.checkResult( filterEntry.hasPermissionData() , "Check has permission data for second entry"); TestUtilities.checkResult( filterEntry.permissionData().equals(permissionData) , "Check the permission data for the second entry"); TestUtilities.checkResult( filterEntry.filterId() == 3, "Check the filter ID of the third entry"); TestUtilities.checkResult( filterEntry.action() == FilterEntry.FilterAction.SET, "Check the action of the third entry"); TestUtilities.checkResult( filterEntry.hasPermissionData() == false , "Check has permission data for third entry"); FieldList fieldListDec = filterEntry.fieldList();
filterList.totalCountHint(1).add(EmaFactory.createFilterEntry().fieldList(3, FilterEntry.FilterAction.SET, fieldList)); TestUtilities.checkResult( filterListDec.iterator().next().loadType() == DataType.DataTypes.FIELD_LIST, "Check data type of an entry before calling the clear method" ); filterList.add(EmaFactory.createFilterEntry().noData(5, FilterEntry.FilterAction.UPDATE)); TestUtilities.checkResult( filterEntry.filterId() == 5, "Check the filter ID value of the first FilterList entry" ); TestUtilities.checkResult( filterEntry.action() == FilterEntry.FilterAction.UPDATE, "Check the action of the first FilterList entry" ); TestUtilities.checkResult( filterEntry.loadType() == DataType.DataTypes.NO_DATA, "Check the load type of the first FilterList entry" );
TestUtilities.checkResult( fe1.action() == FilterEntry.FilterAction.CLEAR, "FilterEntry.action() == FilterEntry.FilterAction.CLEAR" ); TestUtilities.checkResult( fe1.load().dataType() == DataTypes.NO_DATA, "FilterEntry.load().dataType() == DataTypes.NO_DATA" ); TestUtilities.checkResult( fe1.action() == FilterEntry.FilterAction.CLEAR, "FilterEntry.action() == FilterEntry.FilterAction.CLEAR" ); TestUtilities.checkResult( fe1.load().dataType() == DataTypes.NO_DATA, "FilterEntry.load().dataType() == DataTypes.NO_DATA" ); TestUtilities.checkResult( fe2.action() == FilterEntry.FilterAction.SET, "FilterEntry.action() == FilterEntry.FilterAction.SET" ); TestUtilities.checkResult( fe2.load().dataType() == DataType.DataTypes.FIELD_LIST, "FilterEntry.load().dataType() == DataType.DataTypes.FIELD_LIST" ); TestUtilities.EmaDecodeFieldListAll( fe2.fieldList() ); TestUtilities.checkResult( fe3.action() == FilterEntry.FilterAction.UPDATE, "FilterEntry.action() == FilterEntry.FilterAction.UPDATE" ); TestUtilities.checkResult( fe3.load().dataType() == DataType.DataTypes.ELEMENT_LIST, "FilterEntry.load().dataType() == DataTypes.ELEMENT_LIST" ); TestUtilities.EmaDecodeElementListAll( fe3.elementList() );
void processUpdateServiceStatus( OmmProvider provider) { ElementList serviceState = EmaFactory.createElementList(); serviceState.add( EmaFactory.createElementEntry().uintValue( EmaRdm.ENAME_SVC_STATE, EmaRdm.SERVICE_DOWN )); FilterList filterList = EmaFactory.createFilterList(); filterList.add( EmaFactory.createFilterEntry().elementList( EmaRdm.SERVICE_STATE_ID, FilterEntry.FilterAction.UPDATE, serviceState ) ); Map map = EmaFactory.createMap(); map.add( EmaFactory.createMapEntry().keyUInt( 1, MapEntry.MapAction.UPDATE, filterList )); RefreshMsg refreshMsg = EmaFactory.createRefreshMsg(); provider.submit( refreshMsg.domainType( EmaRdm.MMT_DIRECTORY ). filter( EmaRdm.SERVICE_STATE_FILTER ). payload( map ).complete( true ), 0); // use 0 item handle to fanout to all subscribers }
static void EmaEncodeFilterListAllWithFieldListElementList( FilterList filterList) { // FieldList-Clear, // FieldList-Set, // ElementList-Update, filterList.totalCountHint(3); FieldList flEnc = EmaFactory.createFieldList(); EmaEncodeFieldListAll(flEnc); ByteBuffer permission = ByteBuffer.wrap("PERMISSION DATA".getBytes()); //first entry //Clear FieldList filterList.add(EmaFactory.createFilterEntry().fieldList(1, FilterEntry.FilterAction.CLEAR, flEnc, permission)); //second entry //Add FieldList filterList.add(EmaFactory.createFilterEntry().fieldList(2, FilterEntry.FilterAction.SET, flEnc)); ElementList elEnc = EmaFactory.createElementList(); EmaEncodeElementListAll(elEnc); //third entry //Add FieldList filterList.add(EmaFactory.createFilterEntry().elementList(3, FilterEntry.FilterAction.UPDATE, elEnc, permission)); }
void processUpdateGroupStatus( OmmProvider provider) { ElementList serviceGroupId = EmaFactory.createElementList(); serviceGroupId.add( EmaFactory.createElementEntry().buffer( EmaRdm.ENAME_GROUP, groupId )); serviceGroupId.add( EmaFactory.createElementEntry().state( EmaRdm.ENAME_STATUS, OmmState.StreamState.CLOSED_RECOVER, OmmState.DataState.SUSPECT, OmmState.StatusCode.NONE, "Group Status Msg" ) ); FilterList filterList = EmaFactory.createFilterList(); filterList.add( EmaFactory.createFilterEntry().elementList( EmaRdm.SERVICE_GROUP_ID, FilterEntry.FilterAction.SET, serviceGroupId ) ); Map map = EmaFactory.createMap(); map.add( EmaFactory.createMapEntry().keyUInt(1, MapEntry.MapAction.UPDATE, filterList)); provider.submit( EmaFactory.createUpdateMsg().domainType( EmaRdm.MMT_DIRECTORY ). filter( EmaRdm.SERVICE_GROUP_FILTER ). payload( map ), 0); // use 0 item handle to fanout to all subscribers }
void processDirectoryRequest(ReqMsg reqMsg, OmmProviderEvent event) { OmmArray capablities = EmaFactory.createOmmArray(); capablities.add(EmaFactory.createOmmArrayEntry().uintValue( EmaRdm.MMT_MARKET_PRICE)); capablities.add(EmaFactory.createOmmArrayEntry().uintValue( EmaRdm.MMT_MARKET_BY_PRICE)); OmmArray dictionaryUsed = EmaFactory.createOmmArray(); dictionaryUsed.add(EmaFactory.createOmmArrayEntry().ascii( "RWFFld")); dictionaryUsed.add(EmaFactory.createOmmArrayEntry().ascii( "RWFEnum")); ElementList serviceInfoId = EmaFactory.createElementList(); serviceInfoId.add( EmaFactory.createElementEntry().ascii(EmaRdm.ENAME_NAME, "DIRECT_FEED")); serviceInfoId.add( EmaFactory.createElementEntry().array(EmaRdm.ENAME_CAPABILITIES, capablities)); serviceInfoId.add( EmaFactory.createElementEntry().array(EmaRdm.ENAME_DICTIONARYS_USED, dictionaryUsed)); ElementList serviceStateId = EmaFactory.createElementList(); serviceStateId.add( EmaFactory.createElementEntry().uintValue(EmaRdm.ENAME_SVC_STATE, EmaRdm.SERVICE_UP)); FilterList filterList = EmaFactory.createFilterList(); filterList.add( EmaFactory.createFilterEntry().elementList(EmaRdm.SERVICE_INFO_ID, FilterEntry.FilterAction.SET, serviceInfoId) ); filterList.add( EmaFactory.createFilterEntry().elementList(EmaRdm.SERVICE_STATE_ID, FilterEntry.FilterAction.SET, serviceStateId)); Map map = EmaFactory.createMap(); map.add( EmaFactory.createMapEntry().keyUInt(2, MapEntry.MapAction.ADD, filterList)); RefreshMsg refreshMsg = EmaFactory.createRefreshMsg(); event.provider().submit( refreshMsg.domainType(EmaRdm.MMT_DIRECTORY).clearCache(true). filter( EmaRdm.SERVICE_INFO_FILTER | EmaRdm.SERVICE_STATE_FILTER). payload(map).solicited(true).complete(true), event.handle()); }
filterList.add( EmaFactory.createFilterEntry().elementList(EmaRdm.SERVICE_INFO_ID, FilterEntry.FilterAction.SET, serviceInfoId) ); filterList.add( EmaFactory.createFilterEntry().elementList(EmaRdm.SERVICE_STATE_ID, FilterEntry.FilterAction.SET, serviceStateId));
filterList.add( EmaFactory.createFilterEntry().elementList(EmaRdm.SERVICE_INFO_ID, FilterEntry.FilterAction.SET, serviceInfoId) ); filterList.add( EmaFactory.createFilterEntry().elementList(EmaRdm.SERVICE_STATE_ID, FilterEntry.FilterAction.SET, serviceStateId));
filterList.add(EmaFactory.createFilterEntry().elementList(EmaRdm.SERVICE_INFO_ID, FilterEntry.FilterAction.SET, serviceInfoId)); filterList.add(EmaFactory.createFilterEntry().elementList(EmaRdm.SERVICE_STATE_ID, FilterEntry.FilterAction.SET, serviceStateId));