| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package org.apache.ignite.internal.client.thin; |
| |
| import java.util.HashMap; |
| import java.util.Map; |
| import org.apache.ignite.client.ClientOperationType; |
| import org.jetbrains.annotations.Nullable; |
| |
| /** Operation codes. */ |
| public enum ClientOperation { |
| /** Resource close. */ |
| RESOURCE_CLOSE(0), |
| |
| /** Heartbeat. */ |
| HEARTBEAT(1), |
| |
| /** Get idle timeout. */ |
| GET_IDLE_TIMEOUT(2), |
| |
| /** Cache get or create with name. */ |
| CACHE_GET_OR_CREATE_WITH_NAME(1052), |
| |
| /** Cache put. */ |
| CACHE_PUT(1001), |
| |
| /** Cache get. */ |
| CACHE_GET(1000), |
| |
| /** Cache create with configuration. */ |
| CACHE_CREATE_WITH_CONFIGURATION(1053), |
| |
| /** Cache get names. */ |
| CACHE_GET_NAMES(1050), |
| |
| /** Cache destroy. */ |
| CACHE_DESTROY(1056), |
| |
| /** Cache get or create with configuration. */ |
| CACHE_GET_OR_CREATE_WITH_CONFIGURATION(1054), |
| |
| /** Cache create with name. */ |
| CACHE_CREATE_WITH_NAME(1051), |
| |
| /** Cache contains key. */ |
| CACHE_CONTAINS_KEY(1011), |
| |
| /** Cache contains keys. */ |
| CACHE_CONTAINS_KEYS(1012), |
| |
| /** Cache get configuration. */ |
| CACHE_GET_CONFIGURATION(1055), |
| |
| /** Get size. */ |
| CACHE_GET_SIZE(1020), |
| |
| /** Put all. */ |
| CACHE_PUT_ALL(1004), |
| |
| /** Get all. */ |
| CACHE_GET_ALL(1003), |
| |
| /** Cache replace if equals. */ |
| CACHE_REPLACE_IF_EQUALS(1010), |
| |
| /** Cache replace. */ |
| CACHE_REPLACE(1009), |
| |
| /** Cache remove key. */ |
| CACHE_REMOVE_KEY(1016), |
| |
| /** Cache remove if equals. */ |
| CACHE_REMOVE_IF_EQUALS(1017), |
| |
| /** Cache remove keys. */ |
| CACHE_REMOVE_KEYS(1018), |
| |
| /** Cache remove all. */ |
| CACHE_REMOVE_ALL(1019), |
| |
| /** Cache get and put. */ |
| CACHE_GET_AND_PUT(1005), |
| |
| /** Cache get and remove. */ |
| CACHE_GET_AND_REMOVE(1007), |
| |
| /** Cache get and replace. */ |
| CACHE_GET_AND_REPLACE(1006), |
| |
| /** Cache put if absent. */ |
| CACHE_PUT_IF_ABSENT(1002), |
| |
| /** Cache get and put if absent. */ |
| CACHE_GET_AND_PUT_IF_ABSENT(1008), |
| |
| /** Cache clear. */ |
| CACHE_CLEAR(1013), |
| |
| /** Cache clear key. */ |
| CACHE_CLEAR_KEY(1014), |
| |
| /** Cache clear keys. */ |
| CACHE_CLEAR_KEYS(1015), |
| |
| /** Cache put all conflict. */ |
| CACHE_PUT_ALL_CONFLICT(1022), |
| |
| /** Cache remove all conflict. */ |
| CACHE_REMOVE_ALL_CONFLICT(1023), |
| |
| /** Cache partitions. */ |
| CACHE_PARTITIONS(1101), |
| |
| /** Query scan. */ |
| QUERY_SCAN(2000), |
| |
| /** Query scan cursor get page. */ |
| QUERY_SCAN_CURSOR_GET_PAGE(2001), |
| |
| /** Query sql. */ |
| QUERY_SQL(2002), |
| |
| /** Query sql cursor get page. */ |
| QUERY_SQL_CURSOR_GET_PAGE(2003), |
| |
| /** Query sql fields. */ |
| QUERY_SQL_FIELDS(2004), |
| |
| /** Query sql fields cursor get page. */ |
| QUERY_SQL_FIELDS_CURSOR_GET_PAGE(2005), |
| |
| /** Continuous query. */ |
| QUERY_CONTINUOUS(2006), |
| |
| /** Continuous query event. */ |
| QUERY_CONTINUOUS_EVENT(2007, ClientNotificationType.CONTINUOUS_QUERY_EVENT), |
| |
| /** Index query event. */ |
| QUERY_INDEX(2008), |
| |
| /** Query index cursor get page. */ |
| QUERY_INDEX_CURSOR_GET_PAGE(2009), |
| |
| /** Get binary type name. */ |
| GET_BINARY_TYPE_NAME(3000), |
| |
| /** Register binary type name. */ |
| REGISTER_BINARY_TYPE_NAME(3001), |
| |
| /** Get binary type. */ |
| GET_BINARY_TYPE(3002), |
| |
| /** Put binary type. */ |
| PUT_BINARY_TYPE(3003), |
| |
| /** Get binary configuration. */ |
| GET_BINARY_CONFIGURATION(3004), |
| |
| /** Start new transaction. */ |
| TX_START(4000), |
| |
| /** End the transaction (commit or rollback). */ |
| TX_END(4001), |
| |
| /** Get cluster state. */ |
| CLUSTER_GET_STATE(5000), |
| |
| /** Change cluster state. */ |
| CLUSTER_CHANGE_STATE(5001), |
| |
| /** Get WAL state. */ |
| CLUSTER_GET_WAL_STATE(5003), |
| |
| /** Change WAL state. */ |
| CLUSTER_CHANGE_WAL_STATE(5002), |
| |
| /** Get nodes IDs by filter. */ |
| CLUSTER_GROUP_GET_NODE_IDS(5100), |
| |
| /** Get nodes info by IDs. */ |
| CLUSTER_GROUP_GET_NODE_INFO(5101), |
| |
| /** Execute compute task. */ |
| COMPUTE_TASK_EXECUTE(6000), |
| |
| /** Finished compute task notification. */ |
| COMPUTE_TASK_FINISHED(6001, ClientNotificationType.COMPUTE_TASK_FINISHED), |
| |
| /** Invoke service. */ |
| SERVICE_INVOKE(7000), |
| |
| /** Get service descriptors. */ |
| SERVICE_GET_DESCRIPTORS(7001), |
| |
| /** Get service descriptors. */ |
| SERVICE_GET_DESCRIPTOR(7002), |
| |
| /** Get or create an AtomicLong by name. */ |
| ATOMIC_LONG_CREATE(9000), |
| |
| /** Remove an AtomicLong. */ |
| ATOMIC_LONG_REMOVE(9001), |
| |
| /** Check if AtomicLong exists. */ |
| ATOMIC_LONG_EXISTS(9002), |
| |
| /** AtomicLong.get. */ |
| ATOMIC_LONG_VALUE_GET(9003), |
| |
| /** AtomicLong.addAndGet (also covers incrementAndGet, getAndIncrement, getAndAdd, decrementAndGet, getAndDecrement). */ |
| ATOMIC_LONG_VALUE_ADD_AND_GET(9004), |
| |
| /** AtomicLong.getAndSet. */ |
| ATOMIC_LONG_VALUE_GET_AND_SET(9005), |
| |
| /** AtomicLong.compareAndSet. */ |
| ATOMIC_LONG_VALUE_COMPARE_AND_SET(9006), |
| |
| /** AtomicLong.compareAndSetAndGet. */ |
| ATOMIC_LONG_VALUE_COMPARE_AND_SET_AND_GET(9007), |
| |
| /** Create an IgniteSet. */ |
| OP_SET_GET_OR_CREATE(9010), |
| |
| /** Remove an IgniteSet. */ |
| OP_SET_CLOSE(9011), |
| |
| /** Check if IgniteSet exists. */ |
| OP_SET_EXISTS(9012), |
| |
| /** IgniteSet.add. */ |
| OP_SET_VALUE_ADD(9013), |
| |
| /** IgniteSet.addAll. */ |
| OP_SET_VALUE_ADD_ALL(9014), |
| |
| /** IgniteSet.remove. */ |
| OP_SET_VALUE_REMOVE(9015), |
| |
| /** IgniteSet.removeAll. */ |
| OP_SET_VALUE_REMOVE_ALL(9016), |
| |
| /** IgniteSet.contains. */ |
| OP_SET_VALUE_CONTAINS(9017), |
| |
| /** IgniteSet.containsAll. */ |
| OP_SET_VALUE_CONTAINS_ALL(9018), |
| |
| /** IgniteSet.retainAll. */ |
| OP_SET_VALUE_RETAIN_ALL(9019), |
| |
| /** IgniteSet.size. */ |
| OP_SET_SIZE(9020), |
| |
| /** IgniteSet.clear. */ |
| OP_SET_CLEAR(9021), |
| |
| /** IgniteSet.iterator. */ |
| OP_SET_ITERATOR_START(9022), |
| |
| /** IgniteSet.iterator page. */ |
| OP_SET_ITERATOR_GET_PAGE(9023); |
| |
| /** Code. */ |
| private final int code; |
| |
| /** Type of notification. */ |
| private final ClientNotificationType notificationType; |
| |
| /** Constructor. */ |
| ClientOperation(int code) { |
| this(code, null); |
| } |
| |
| /** Constructor. */ |
| ClientOperation(int code, ClientNotificationType notificationType) { |
| this.code = code; |
| this.notificationType = notificationType; |
| } |
| |
| /** |
| * @return Code. |
| */ |
| public short code() { |
| return (short)code; |
| } |
| |
| /** |
| * @return Type of notification. |
| */ |
| public ClientNotificationType notificationType() { |
| return notificationType; |
| } |
| |
| /** |
| * Converts this internal operation code to public {@link ClientOperationType}. |
| * |
| * @return Corresponding {@link ClientOperationType}, or {@code null} if there is no match. |
| * Some operations, such as {@link #RESOURCE_CLOSE}, do not have a public counterpart. |
| */ |
| @Nullable public ClientOperationType toPublicOperationType() { |
| switch (this) { |
| case CACHE_GET_OR_CREATE_WITH_NAME: |
| case CACHE_GET_OR_CREATE_WITH_CONFIGURATION: |
| return ClientOperationType.CACHE_GET_OR_CREATE; |
| |
| case CACHE_CREATE_WITH_CONFIGURATION: |
| case CACHE_CREATE_WITH_NAME: |
| return ClientOperationType.CACHE_CREATE; |
| |
| case CACHE_PUT: |
| return ClientOperationType.CACHE_PUT; |
| |
| case CACHE_GET: |
| return ClientOperationType.CACHE_GET; |
| |
| case CACHE_GET_NAMES: |
| return ClientOperationType.CACHE_GET_NAMES; |
| |
| case CACHE_DESTROY: |
| return ClientOperationType.CACHE_DESTROY; |
| |
| case CACHE_CONTAINS_KEY: |
| return ClientOperationType.CACHE_CONTAINS_KEY; |
| |
| case CACHE_CONTAINS_KEYS: |
| return ClientOperationType.CACHE_CONTAINS_KEYS; |
| |
| case CACHE_GET_CONFIGURATION: |
| return ClientOperationType.CACHE_GET_CONFIGURATION; |
| |
| case CACHE_GET_SIZE: |
| return ClientOperationType.CACHE_GET_SIZE; |
| |
| case CACHE_PUT_ALL: |
| return ClientOperationType.CACHE_PUT_ALL; |
| |
| case CACHE_GET_ALL: |
| return ClientOperationType.CACHE_GET_ALL; |
| |
| case CACHE_REPLACE_IF_EQUALS: |
| case CACHE_REPLACE: |
| return ClientOperationType.CACHE_REPLACE; |
| |
| case CACHE_REMOVE_KEY: |
| case CACHE_REMOVE_IF_EQUALS: |
| return ClientOperationType.CACHE_REMOVE_ONE; |
| |
| case CACHE_REMOVE_KEYS: |
| return ClientOperationType.CACHE_REMOVE_MULTIPLE; |
| |
| case CACHE_REMOVE_ALL: |
| return ClientOperationType.CACHE_REMOVE_EVERYTHING; |
| |
| case CACHE_GET_AND_PUT: |
| return ClientOperationType.CACHE_GET_AND_PUT; |
| |
| case CACHE_GET_AND_REMOVE: |
| return ClientOperationType.CACHE_GET_AND_REMOVE; |
| |
| case CACHE_GET_AND_REPLACE: |
| return ClientOperationType.CACHE_GET_AND_REPLACE; |
| |
| case CACHE_PUT_IF_ABSENT: |
| return ClientOperationType.CACHE_PUT_IF_ABSENT; |
| |
| case CACHE_GET_AND_PUT_IF_ABSENT: |
| return ClientOperationType.CACHE_GET_AND_PUT_IF_ABSENT; |
| |
| case CACHE_CLEAR: |
| return ClientOperationType.CACHE_CLEAR_EVERYTHING; |
| |
| case CACHE_CLEAR_KEY: |
| return ClientOperationType.CACHE_CLEAR_ONE; |
| |
| case CACHE_CLEAR_KEYS: |
| return ClientOperationType.CACHE_CLEAR_MULTIPLE; |
| |
| case QUERY_SCAN: |
| return ClientOperationType.QUERY_SCAN; |
| |
| case QUERY_SQL: |
| case QUERY_SQL_FIELDS: |
| return ClientOperationType.QUERY_SQL; |
| |
| case QUERY_CONTINUOUS: |
| return ClientOperationType.QUERY_CONTINUOUS; |
| |
| case QUERY_INDEX: |
| return ClientOperationType.QUERY_INDEX; |
| |
| case TX_START: |
| return ClientOperationType.TRANSACTION_START; |
| |
| case CLUSTER_GET_STATE: |
| return ClientOperationType.CLUSTER_GET_STATE; |
| |
| case CLUSTER_CHANGE_STATE: |
| return ClientOperationType.CLUSTER_CHANGE_STATE; |
| |
| case CLUSTER_GET_WAL_STATE: |
| return ClientOperationType.CLUSTER_GET_WAL_STATE; |
| |
| case CLUSTER_CHANGE_WAL_STATE: |
| return ClientOperationType.CLUSTER_CHANGE_WAL_STATE; |
| |
| case CLUSTER_GROUP_GET_NODE_IDS: |
| case CLUSTER_GROUP_GET_NODE_INFO: |
| return ClientOperationType.CLUSTER_GROUP_GET_NODES; |
| |
| case COMPUTE_TASK_EXECUTE: |
| return ClientOperationType.COMPUTE_TASK_EXECUTE; |
| |
| case SERVICE_INVOKE: |
| return ClientOperationType.SERVICE_INVOKE; |
| |
| case SERVICE_GET_DESCRIPTORS: |
| return ClientOperationType.SERVICE_GET_DESCRIPTORS; |
| |
| case SERVICE_GET_DESCRIPTOR: |
| return ClientOperationType.SERVICE_GET_DESCRIPTOR; |
| |
| case ATOMIC_LONG_CREATE: |
| return ClientOperationType.ATOMIC_LONG_CREATE; |
| |
| case ATOMIC_LONG_REMOVE: |
| return ClientOperationType.ATOMIC_LONG_REMOVE; |
| |
| case ATOMIC_LONG_EXISTS: |
| return ClientOperationType.ATOMIC_LONG_EXISTS; |
| |
| case ATOMIC_LONG_VALUE_GET: |
| return ClientOperationType.ATOMIC_LONG_VALUE_GET; |
| |
| case ATOMIC_LONG_VALUE_ADD_AND_GET: |
| return ClientOperationType.ATOMIC_LONG_VALUE_ADD_AND_GET; |
| |
| case ATOMIC_LONG_VALUE_GET_AND_SET: |
| return ClientOperationType.ATOMIC_LONG_VALUE_GET_AND_SET; |
| |
| case ATOMIC_LONG_VALUE_COMPARE_AND_SET: |
| case ATOMIC_LONG_VALUE_COMPARE_AND_SET_AND_GET: |
| return ClientOperationType.ATOMIC_LONG_VALUE_COMPARE_AND_SET; |
| |
| case OP_SET_GET_OR_CREATE: |
| return ClientOperationType.SET_GET_OR_CREATE; |
| |
| case OP_SET_CLOSE: |
| return ClientOperationType.SET_REMOVE; |
| |
| case OP_SET_EXISTS: |
| return ClientOperationType.SET_EXISTS; |
| |
| case OP_SET_VALUE_ADD: |
| return ClientOperationType.SET_VALUE_ADD; |
| |
| case OP_SET_VALUE_ADD_ALL: |
| return ClientOperationType.SET_VALUE_ADD_ALL; |
| |
| case OP_SET_VALUE_REMOVE: |
| return ClientOperationType.SET_VALUE_REMOVE; |
| |
| case OP_SET_VALUE_REMOVE_ALL: |
| return ClientOperationType.SET_VALUE_REMOVE_ALL; |
| |
| case OP_SET_VALUE_CONTAINS: |
| return ClientOperationType.SET_VALUE_CONTAINS; |
| |
| case OP_SET_VALUE_CONTAINS_ALL: |
| return ClientOperationType.SET_VALUE_CONTAINS_ALL; |
| |
| case OP_SET_VALUE_RETAIN_ALL: |
| return ClientOperationType.SET_VALUE_RETAIN_ALL; |
| |
| case OP_SET_SIZE: |
| return ClientOperationType.SET_SIZE; |
| |
| case OP_SET_CLEAR: |
| return ClientOperationType.SET_CLEAR; |
| |
| case OP_SET_ITERATOR_START: |
| return ClientOperationType.SET_ITERATOR; |
| |
| default: |
| return null; |
| } |
| } |
| |
| /** Enum mapping from code to values. */ |
| private static final Map<Short, ClientOperation> map; |
| |
| static { |
| map = new HashMap<>(); |
| |
| for (ClientOperation op : values()) |
| map.put(op.code(), op); |
| } |
| |
| /** |
| * @param code Code to convert to enum. |
| * @return Enum. |
| */ |
| @Nullable public static ClientOperation fromCode(short code) { |
| return map.get(code); |
| } |
| } |