blob: 4e92ee071e36197d975cee022a15b058caecd3be [file] [log] [blame]
//
// 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.activemq.store.kahadb.data;
option java_multiple_files = true;
option java_outer_classname = "JournalData";
enum KahaEntryType {
//| option java_create_message="true";
KAHA_TRACE_COMMAND = 0;
KAHA_ADD_MESSAGE_COMMAND = 1;
KAHA_REMOVE_MESSAGE_COMMAND = 2;
KAHA_PREPARE_COMMAND = 3;
KAHA_COMMIT_COMMAND = 4;
KAHA_ROLLBACK_COMMAND = 5;
KAHA_REMOVE_DESTINATION_COMMAND = 6;
KAHA_SUBSCRIPTION_COMMAND = 7;
KAHA_PRODUCER_AUDIT_COMMAND = 8;
}
message KahaTraceCommand {
// We make use of the wonky comment style bellow because the following options
// are not valid for protoc, but they are valid for the ActiveMQ proto compiler.
// In the ActiveMQ proto compiler, comments terminate with the pipe character: |
//| option java_implments = "org.apache.activemq.store.kahadb.JournalCommand<KahaTraceCommand>";
//| option java_visitor = "org.apache.activemq.store.kahadb.Visitor:void:java.io.IOException";
//| option java_type_method = "KahaEntryType";
required string message = 1;
}
message KahaAddMessageCommand {
//| option java_implments = "org.apache.activemq.store.kahadb.JournalCommand<KahaAddMessageCommand>";
//| option java_visitor = "org.apache.activemq.store.kahadb.Visitor:void:java.io.IOException";
//| option java_type_method = "KahaEntryType";
optional KahaTransactionInfo transaction_info=1;
required KahaDestination destination = 2;
required string messageId = 3;
required bytes message = 4;
optional int32 priority =5 [default = 4];
optional bool prioritySupported = 6;
}
message KahaRemoveMessageCommand {
//| option java_implments = "org.apache.activemq.store.kahadb.JournalCommand<KahaRemoveMessageCommand>";
//| option java_visitor = "org.apache.activemq.store.kahadb.Visitor:void:java.io.IOException";
//| option java_type_method = "KahaEntryType";
optional KahaTransactionInfo transaction_info=1;
required KahaDestination destination = 2;
required string messageId = 3;
optional bytes ack = 4;
optional string subscriptionKey = 5; // Set if it is a topic ack.
}
message KahaPrepareCommand {
//| option java_implments = "org.apache.activemq.store.kahadb.JournalCommand<KahaPrepareCommand>";
//| option java_visitor = "org.apache.activemq.store.kahadb.Visitor:void:java.io.IOException";
//| option java_type_method = "KahaEntryType";
required KahaTransactionInfo transaction_info=1;
}
message KahaCommitCommand {
//| option java_implments = "org.apache.activemq.store.kahadb.JournalCommand<KahaCommitCommand>";
//| option java_visitor = "org.apache.activemq.store.kahadb.Visitor:void:java.io.IOException";
//| option java_type_method = "KahaEntryType";
required KahaTransactionInfo transaction_info=1;
}
message KahaRollbackCommand {
//| option java_implments = "org.apache.activemq.store.kahadb.JournalCommand<KahaRollbackCommand>";
//| option java_visitor = "org.apache.activemq.store.kahadb.Visitor:void:java.io.IOException";
//| option java_type_method = "KahaEntryType";
required KahaTransactionInfo transaction_info=1;
}
message KahaRemoveDestinationCommand {
//| option java_implments = "org.apache.activemq.store.kahadb.JournalCommand<KahaRemoveDestinationCommand>";
//| option java_visitor = "org.apache.activemq.store.kahadb.Visitor:void:java.io.IOException";
//| option java_type_method = "KahaEntryType";
required KahaDestination destination = 1;
}
message KahaSubscriptionCommand {
//| option java_implments = "org.apache.activemq.store.kahadb.JournalCommand<KahaSubscriptionCommand>";
//| option java_visitor = "org.apache.activemq.store.kahadb.Visitor:void:java.io.IOException";
//| option java_type_method = "KahaEntryType";
required KahaDestination destination = 1;
required string subscriptionKey = 2;
optional bool retroactive = 3;
optional bytes subscriptionInfo = 4;
}
message KahaProducerAuditCommand {
// We make use of the wonky comment style bellow because the following options
// are not valid for protoc, but they are valid for the ActiveMQ proto compiler.
// In the ActiveMQ proto compiler, comments terminate with the pipe character: |
//| option java_implments = "org.apache.activemq.store.kahadb.JournalCommand<KahaProducerAuditCommand>";
//| option java_visitor = "org.apache.activemq.store.kahadb.Visitor:void:java.io.IOException";
//| option java_type_method = "KahaEntryType";
required bytes audit = 1;
}
message KahaDestination {
enum DestinationType {
QUEUE = 0;
TOPIC = 1;
TEMP_QUEUE = 2;
TEMP_TOPIC = 3;
}
required DestinationType type = 1 [default = QUEUE];
required string name = 2;
}
message KahaTransactionInfo {
optional KahaLocalTransactionId local_transaciton_id=1;
optional KahaXATransactionId xa_transaciton_id=2;
optional KahaLocation previous_entry=3;
}
message KahaLocalTransactionId {
required string connection_id=1;
required int64 transaciton_id=1;
}
message KahaXATransactionId {
required int32 format_id = 1;
required bytes branch_qualifier = 2;
required bytes global_transaction_id = 3;
}
message KahaLocation {
required int32 log_id = 1;
required int32 offset = 2;
}
// TODO things to ponder
// should we move more message fields
// that are set by the sender (and rarely required by the broker
// into the Properties object?