Apache Qpid - AMQP Messaging for Java JMS, C++, Python, Ruby, and .NET | Apache Qpid Documentation |
00001 #ifndef _QmfEngineObjectId_ 00002 #define _QmfEngineObjectId_ 00003 00004 /* 00005 * Licensed to the Apache Software Foundation (ASF) under one 00006 * or more contributor license agreements. See the NOTICE file 00007 * distributed with this work for additional information 00008 * regarding copyright ownership. The ASF licenses this file 00009 * to you under the Apache License, Version 2.0 (the 00010 * "License"); you may not use this file except in compliance 00011 * with the License. You may obtain a copy of the License at 00012 * 00013 * http://www.apache.org/licenses/LICENSE-2.0 00014 * 00015 * Unless required by applicable law or agreed to in writing, 00016 * software distributed under the License is distributed on an 00017 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 00018 * KIND, either express or implied. See the License for the 00019 * specific language governing permissions and limitations 00020 * under the License. 00021 */ 00022 00023 #include <qpid/sys/IntegerTypes.h> 00024 00025 namespace qmf { 00026 namespace engine { 00027 00028 // TODO: Add to/from string and << operator 00029 00030 struct ObjectIdImpl; 00031 class ObjectId { 00032 public: 00033 ObjectId(); 00034 ObjectId(const ObjectId& from); 00035 ~ObjectId(); 00036 00037 uint64_t getObjectNum() const; 00038 uint32_t getObjectNumHi() const; 00039 uint32_t getObjectNumLo() const; 00040 bool isDurable() const; 00041 const char* str() const; 00042 uint8_t getFlags() const; 00043 uint16_t getSequence() const; 00044 uint32_t getBrokerBank() const; 00045 uint32_t getAgentBank() const; 00046 00047 bool operator==(const ObjectId& other) const; 00048 bool operator<(const ObjectId& other) const; 00049 bool operator>(const ObjectId& other) const; 00050 bool operator<=(const ObjectId& other) const; 00051 bool operator>=(const ObjectId& other) const; 00052 ObjectId& operator=(const ObjectId &other); 00053 00054 private: 00055 friend struct ObjectIdImpl; 00056 friend struct ObjectImpl; 00057 friend class BrokerProxyImpl; 00058 friend struct QueryImpl; 00059 friend struct ValueImpl; 00060 friend class AgentImpl; 00061 ObjectId(ObjectIdImpl* impl); 00062 ObjectIdImpl* impl; 00063 }; 00064 } 00065 } 00066 00067 #endif 00068