001    /**
002     * Licensed to the Apache Software Foundation (ASF) under one or more
003     * contributor license agreements.  See the NOTICE file distributed with
004     * this work for additional information regarding copyright ownership.
005     * The ASF licenses this file to You under the Apache License, Version 2.0
006     * (the "License"); you may not use this file except in compliance with
007     * the License.  You may obtain a copy of the License at
008     *
009     *      http://www.apache.org/licenses/LICENSE-2.0
010     *
011     * Unless required by applicable law or agreed to in writing, software
012     * distributed under the License is distributed on an "AS IS" BASIS,
013     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014     * See the License for the specific language governing permissions and
015     * limitations under the License.
016     */
017    package org.apache.activemq.command;
018    
019    /**
020     * Holds the command id constants used by the command objects.
021     * 
022     * 
023     */
024    public interface CommandTypes {
025    
026        // What is the latest version of the openwire protocol
027        byte PROTOCOL_VERSION = 9;
028    
029        // What is the latest version of the openwire protocol used in the stores
030        byte PROTOCOL_STORE_VERSION = 6;
031    
032    
033        // A marshaling layer can use this type to specify a null object.
034        byte NULL = 0;
035    
036        // /////////////////////////////////////////////////
037        //
038        // Info objects sent back and forth client/server when
039        // setting up a client connection.
040        //
041        // /////////////////////////////////////////////////
042        byte WIREFORMAT_INFO = 1;
043        byte BROKER_INFO = 2;
044        byte CONNECTION_INFO = 3;
045        byte SESSION_INFO = 4;
046        byte CONSUMER_INFO = 5;
047        byte PRODUCER_INFO = 6;
048        byte TRANSACTION_INFO = 7;
049        byte DESTINATION_INFO = 8;
050        byte REMOVE_SUBSCRIPTION_INFO = 9;
051        byte KEEP_ALIVE_INFO = 10;
052        byte SHUTDOWN_INFO = 11;
053        byte REMOVE_INFO = 12;
054        byte CONTROL_COMMAND = 14;
055        byte FLUSH_COMMAND = 15;
056        byte CONNECTION_ERROR = 16;
057        byte CONSUMER_CONTROL = 17;
058        byte CONNECTION_CONTROL = 18;
059    
060        // /////////////////////////////////////////////////
061        //
062        // Messages that go back and forth between the client
063        // and the server.
064        //
065        // /////////////////////////////////////////////////
066        byte PRODUCER_ACK = 19;
067        byte MESSAGE_PULL = 20;
068        byte MESSAGE_DISPATCH = 21;
069        byte MESSAGE_ACK = 22;
070    
071        byte ACTIVEMQ_MESSAGE = 23;
072        byte ACTIVEMQ_BYTES_MESSAGE = 24;
073        byte ACTIVEMQ_MAP_MESSAGE = 25;
074        byte ACTIVEMQ_OBJECT_MESSAGE = 26;
075        byte ACTIVEMQ_STREAM_MESSAGE = 27;
076        byte ACTIVEMQ_TEXT_MESSAGE = 28;
077        byte ACTIVEMQ_BLOB_MESSAGE = 29;
078    
079        // /////////////////////////////////////////////////
080        //
081        // Command Response messages
082        //
083        // /////////////////////////////////////////////////
084        byte RESPONSE = 30;
085        byte EXCEPTION_RESPONSE = 31;
086        byte DATA_RESPONSE = 32;
087        byte DATA_ARRAY_RESPONSE = 33;
088        byte INTEGER_RESPONSE = 34;
089    
090        // /////////////////////////////////////////////////
091        //
092        // Used by discovery
093        //
094        // /////////////////////////////////////////////////
095        byte DISCOVERY_EVENT = 40;
096    
097        // /////////////////////////////////////////////////
098        //
099        // Command object used by the Journal
100        //
101        // /////////////////////////////////////////////////
102        byte JOURNAL_ACK = 50;
103        byte JOURNAL_REMOVE = 52;
104        byte JOURNAL_TRACE = 53;
105        byte JOURNAL_TRANSACTION = 54;
106        byte DURABLE_SUBSCRIPTION_INFO = 55;
107    
108        // /////////////////////////////////////////////////
109        //
110        // Reliability and fragmentation
111        //
112        // /////////////////////////////////////////////////
113        byte PARTIAL_COMMAND = 60;
114        byte PARTIAL_LAST_COMMAND = 61;
115    
116        byte REPLAY = 65;
117    
118        // /////////////////////////////////////////////////
119        //
120        // Types used represent basic Java types.
121        //
122        // /////////////////////////////////////////////////
123        byte BYTE_TYPE = 70;
124        byte CHAR_TYPE = 71;
125        byte SHORT_TYPE = 72;
126        byte INTEGER_TYPE = 73;
127        byte LONG_TYPE = 74;
128        byte DOUBLE_TYPE = 75;
129        byte FLOAT_TYPE = 76;
130        byte STRING_TYPE = 77;
131        byte BOOLEAN_TYPE = 78;
132        byte BYTE_ARRAY_TYPE = 79;
133    
134        // /////////////////////////////////////////////////
135        //
136        // Broker to Broker command objects
137        //
138        // /////////////////////////////////////////////////
139    
140        byte MESSAGE_DISPATCH_NOTIFICATION = 90;
141        byte NETWORK_BRIDGE_FILTER = 91;
142    
143        // /////////////////////////////////////////////////
144        //
145        // Data structures contained in the command objects.
146        //
147        // /////////////////////////////////////////////////
148        byte ACTIVEMQ_QUEUE = 100;
149        byte ACTIVEMQ_TOPIC = 101;
150        byte ACTIVEMQ_TEMP_QUEUE = 102;
151        byte ACTIVEMQ_TEMP_TOPIC = 103;
152    
153        byte MESSAGE_ID = 110;
154        byte ACTIVEMQ_LOCAL_TRANSACTION_ID = 111;
155        byte ACTIVEMQ_XA_TRANSACTION_ID = 112;
156    
157        byte CONNECTION_ID = 120;
158        byte SESSION_ID = 121;
159        byte CONSUMER_ID = 122;
160        byte PRODUCER_ID = 123;
161        byte BROKER_ID = 124;
162    
163    }