//PROTOBUF private CommandInfo ParseCommand(Alachisoft.NCache.Common.Protobuf.Command command, ClientManager clientManager) { CommandInfo cmdInfo = new CommandInfo(); Hashtable eventList = new Hashtable(); Alachisoft.NCache.Common.Protobuf.SyncEventsCommand syncEventsCommand = command.syncEventsCommand; List <Alachisoft.NCache.Common.Protobuf.EventIdCommand> eventIds = syncEventsCommand.eventIds; Alachisoft.NCache.Caching.EventId cacheEventId = null; foreach (EventIdCommand eventId in eventIds) { cacheEventId = new Alachisoft.NCache.Caching.EventId(); cacheEventId.EventUniqueID = eventId.eventUniqueId; cacheEventId.EventCounter = eventId.eventCounter; cacheEventId.OperationCounter = eventId.operationCounter; cacheEventId.EventType = (Persistence.EventType)eventId.eventType; cacheEventId.QueryChangeType = (Caching.Queries.QueryChangeType)eventId.queryChangeType; cacheEventId.QueryId = eventId.queryId; if (String.IsNullOrEmpty(cacheEventId.QueryId)) { cacheEventId.QueryId = null; } // Need to assing querychnagetype and query id here eventList.Add(cacheEventId, null); } cmdInfo.EventsList = eventList; cmdInfo.RequestId = syncEventsCommand.requestId.ToString(); return(cmdInfo); }
//PROTOBUF private CommandInfo ParseCommand(Alachisoft.NCache.Common.Protobuf.Command command, ClientManager clientManager) { CommandInfo cmdInfo = new CommandInfo(); Hashtable eventList = new Hashtable(); Alachisoft.NCache.Common.Protobuf.SyncEventsCommand syncEventsCommand = command.syncEventsCommand; List <Alachisoft.NCache.Common.Protobuf.EventIdCommand> eventIds = syncEventsCommand.eventIds; Alachisoft.NCache.Caching.EventId cacheEventId = null; foreach (EventIdCommand eventId in eventIds) { cacheEventId = new Alachisoft.NCache.Caching.EventId(); cacheEventId.EventUniqueID = eventId.eventUniqueId; cacheEventId.EventCounter = eventId.eventCounter; cacheEventId.OperationCounter = eventId.operationCounter; cacheEventId.EventType = (Persistence.EventType)eventId.eventType; eventList.Add(cacheEventId, null); } cmdInfo.EventsList = eventList; cmdInfo.RequestId = syncEventsCommand.requestId.ToString(); return(cmdInfo); }
internal static Alachisoft.NCache.Caching.EventId ConvertToEventID(Alachisoft.NCache.Common.Protobuf.BulkEventItemResponse eventItem, NCache.Persistence.EventType eventType) { Alachisoft.NCache.Caching.EventId eventId = eventId = new Alachisoft.NCache.Caching.EventId(); switch (eventType) { case NCache.Persistence.EventType.ITEM_UPDATED_CALLBACK: eventId.EventUniqueID = eventItem.ItemUpdatedCallback.eventId.eventUniqueId; eventId.EventCounter = eventItem.ItemUpdatedCallback.eventId.eventCounter; eventId.OperationCounter = eventItem.ItemUpdatedCallback.eventId.operationCounter; eventId.EventType = NCache.Persistence.EventType.ITEM_UPDATED_CALLBACK; break; case NCache.Persistence.EventType.ITEM_REMOVED_CALLBACK: eventId.EventUniqueID = eventItem.itemRemoveCallback.eventId.eventUniqueId; eventId.EventCounter = eventItem.itemRemoveCallback.eventId.eventCounter; eventId.OperationCounter = eventItem.itemRemoveCallback.eventId.operationCounter; eventId.EventType = NCache.Persistence.EventType.ITEM_REMOVED_CALLBACK; break; } return(eventId); }
internal static Alachisoft.NCache.Caching.EventId ConvertToEventID(Alachisoft.NCache.Common.Protobuf.BulkEventItemResponse eventItem, NCache.Persistence.EventType eventType) { Alachisoft.NCache.Caching.EventId eventId = eventId = new Alachisoft.NCache.Caching.EventId(); switch (eventType) { case NCache.Persistence.EventType.ITEM_UPDATED_CALLBACK: eventId.EventUniqueID = eventItem.ItemUpdatedCallback.eventId.eventUniqueId; eventId.EventCounter = eventItem.ItemUpdatedCallback.eventId.eventCounter; eventId.OperationCounter = eventItem.ItemUpdatedCallback.eventId.operationCounter; eventId.EventType = NCache.Persistence.EventType.ITEM_UPDATED_CALLBACK; break; case NCache.Persistence.EventType.ITEM_REMOVED_CALLBACK: eventId.EventUniqueID = eventItem.itemRemoveCallback.eventId.eventUniqueId; eventId.EventCounter = eventItem.itemRemoveCallback.eventId.eventCounter; eventId.OperationCounter = eventItem.itemRemoveCallback.eventId.operationCounter; eventId.EventType = NCache.Persistence.EventType.ITEM_REMOVED_CALLBACK; break; } return eventId; }
public object Clone() { EventId ei = new EventId(); lock (this) { ei._eventUniqueId = _eventUniqueId; ei._operationCounter = _operationCounter; ei._eventCounter = _eventCounter; ei._eventType = _eventType; ei._queryId = _queryId; } return ei; }
public static EventId CreateEventId(OperationID opId) { EventId eventId = new EventId(); if (opId != null) { eventId._eventUniqueId = opId.OperationId; eventId._operationCounter = opId.OpCounter; } return eventId; }
internal static Alachisoft.NCache.Caching.EventId ConvertToEventID( Alachisoft.NCache.Common.Protobuf.BulkEventItemResponse eventItem, NCache.Persistence.EventType eventType) { Alachisoft.NCache.Caching.EventId eventId = eventId = new Alachisoft.NCache.Caching.EventId(); switch (eventType) { case NCache.Persistence.EventType.ITEM_ADDED_EVENT: eventId.EventUniqueID = eventItem.itemAddedEvent.eventId.eventUniqueId; eventId.EventCounter = eventItem.itemAddedEvent.eventId.eventCounter; eventId.OperationCounter = eventItem.itemAddedEvent.eventId.operationCounter; eventId.EventType = NCache.Persistence.EventType.ITEM_ADDED_EVENT; break; case NCache.Persistence.EventType.ITEM_UPDATED_EVENT: eventId.EventUniqueID = eventItem.itemUpdatedEvent.eventId.eventUniqueId; eventId.EventCounter = eventItem.itemUpdatedEvent.eventId.eventCounter; eventId.OperationCounter = eventItem.itemUpdatedEvent.eventId.operationCounter; eventId.EventType = NCache.Persistence.EventType.ITEM_UPDATED_EVENT; break; case NCache.Persistence.EventType.ITEM_UPDATED_CALLBACK: eventId.EventUniqueID = eventItem.ItemUpdatedCallback.eventId.eventUniqueId; eventId.EventCounter = eventItem.ItemUpdatedCallback.eventId.eventCounter; eventId.OperationCounter = eventItem.ItemUpdatedCallback.eventId.operationCounter; eventId.EventType = NCache.Persistence.EventType.ITEM_UPDATED_CALLBACK; break; case NCache.Persistence.EventType.CQ_CALLBACK: eventId.EventUniqueID = eventItem.CQCallback.eventId.eventUniqueId; eventId.EventCounter = eventItem.CQCallback.eventId.eventCounter; eventId.OperationCounter = eventItem.CQCallback.eventId.operationCounter; eventId.EventType = NCache.Persistence.EventType.CQ_CALLBACK; eventId.QueryChangeType = (NCache.Caching.Queries.QueryChangeType)eventItem.CQCallback.changeType; eventId.QueryId = eventItem.CQCallback.queryId; break; case NCache.Persistence.EventType.ITEM_REMOVED_CALLBACK: eventId.EventUniqueID = eventItem.itemRemoveCallback.eventId.eventUniqueId; eventId.EventCounter = eventItem.itemRemoveCallback.eventId.eventCounter; eventId.OperationCounter = eventItem.itemRemoveCallback.eventId.operationCounter; eventId.EventType = NCache.Persistence.EventType.ITEM_REMOVED_CALLBACK; break; case NCache.Persistence.EventType.ITEM_REMOVED_EVENT: eventId.EventUniqueID = eventItem.itemRemovedEvent.eventId.eventUniqueId; eventId.EventCounter = eventItem.itemRemovedEvent.eventId.eventCounter; eventId.OperationCounter = eventItem.itemRemovedEvent.eventId.operationCounter; eventId.EventType = NCache.Persistence.EventType.ITEM_REMOVED_EVENT; break; case NCache.Persistence.EventType.CACHE_CLEARED_EVENT: eventId.EventUniqueID = eventItem.cacheClearedEvent.eventId.eventUniqueId; eventId.EventCounter = eventItem.cacheClearedEvent.eventId.eventCounter; eventId.OperationCounter = eventItem.cacheClearedEvent.eventId.operationCounter; eventId.EventType = NCache.Persistence.EventType.CACHE_CLEARED_EVENT; break; } return(eventId); }
private void RaiseBulkEvent(object arg) { try { Alachisoft.NCache.Caching.EventId eventId; Address remoteServerAddress = null; if (arg == null || ((object[]) arg).Length != 2) return; remoteServerAddress = ((object[]) arg)[0] as Address; List<Alachisoft.NCache.Common.Protobuf.BulkEventItemResponse> bulkEvents = ((object[]) arg)[1] as List<Alachisoft.NCache.Common.Protobuf.BulkEventItemResponse>; if (bulkEvents == null) return; foreach (Alachisoft.NCache.Common.Protobuf.BulkEventItemResponse eventItem in bulkEvents) { try { if (_perfStatsColl2 != null) { _perfStatsColl2.IncrementEventsTriggeredPerSeconds(); } eventId = new Alachisoft.NCache.Caching.EventId(); switch (eventItem.eventType) { case Common.Protobuf.BulkEventItemResponse.EventType.ITEM_UPDATED_CALLBACK: { eventId.EventUniqueID = eventItem.ItemUpdatedCallback.eventId.eventUniqueId; eventId.EventCounter = eventItem.ItemUpdatedCallback.eventId.eventCounter; eventId.OperationCounter = eventItem.ItemUpdatedCallback.eventId.operationCounter; eventId.EventType = NCache.Persistence.EventType.ITEM_UPDATED_CALLBACK; BitSet flag = new BitSet((byte) eventItem.ItemUpdatedCallback.flag); EventCacheItem item = EventUtil.ConvertToEventEntry(eventItem.ItemUpdatedCallback.eventId.item); EventCacheItem oldItem = EventUtil.ConvertToEventEntry(eventItem.ItemUpdatedCallback.eventId.oldItem); if (_notifyAsync) { if (_cache != null && _cache.AsyncEventHandler != null) { _cache.EventListener.OnCustomUpdateCallback( (Int16) eventItem.ItemUpdatedCallback.callbackId, eventItem.ItemUpdatedCallback.key, _notifyAsync, item, oldItem, flag, (EventDataFilter) eventItem.ItemUpdatedCallback.dataFilter); } } else _eventProcessor.Enqueue(new ItemUpdateCallbackTask(this, eventItem.ItemUpdatedCallback.key, (Int16) eventItem.ItemUpdatedCallback.callbackId, _notifyAsync, item, oldItem, flag, (EventDataFilter) eventItem.ItemUpdatedCallback.dataFilter)); } break; case Common.Protobuf.BulkEventItemResponse.EventType.ITEM_REMOVED_CALLBACK: { CompressedValueEntry flagValueEntry = new CompressedValueEntry(); flagValueEntry.Flag = new BitSet((byte) eventItem.itemRemoveCallback.flag); EventCacheItem item = EventUtil.ConvertToEventEntry(eventItem.itemRemoveCallback.eventId.item); byte[] value = null; if (item != null && eventItem.itemRemoveCallback.value != null && eventItem.itemRemoveCallback.value.Count > 0) { UserBinaryObject ubObject = UserBinaryObject.CreateUserBinaryObject( eventItem.itemRemoveCallback.value.ToArray()); value = ubObject.GetFullObject(); if (item != null) { item.Value = value; } } eventId.EventUniqueID = eventItem.itemRemoveCallback.eventId.eventUniqueId; eventId.EventCounter = eventItem.itemRemoveCallback.eventId.eventCounter; eventId.OperationCounter = eventItem.itemRemoveCallback.eventId.operationCounter; eventId.EventType = NCache.Persistence.EventType.ITEM_REMOVED_CALLBACK; if (_notifyAsync) { if (_cache != null && _cache.AsyncEventHandler != null) _cache.EventListener.OnCustomRemoveCallback( (Int16) eventItem.itemRemoveCallback.callbackId, eventItem.itemRemoveCallback.key, value, (CacheItemRemovedReason) eventItem.itemRemoveCallback.itemRemoveReason, flagValueEntry.Flag, _notifyAsync, item, (EventDataFilter) eventItem.itemRemoveCallback.dataFilter); } else _eventProcessor.Enqueue(new ItemRemoveCallBackTask(this, eventItem.itemRemoveCallback.key, (Int16) eventItem.itemRemoveCallback.callbackId, value, (CacheItemRemovedReason) eventItem.itemRemoveCallback.itemRemoveReason, flagValueEntry.Flag, _notifyAsync, item, (EventDataFilter) eventItem.itemRemoveCallback.dataFilter)); } break; } } catch (Exception ex) { if (_logger.IsErrorLogsEnabled) _logger.NCacheLog.Error("Broker.RaiseBulkEvent", "An error occurred while raising bulk event of type : " + eventItem.eventType + ". Error :" + ex.ToString()); } } } catch (Exception ex) { } }