Apache Qpid - AMQP Messaging for Java JMS, C++, Python, Ruby, and .NET | Apache Qpid Documentation |
00001 #ifndef _QmfEngineObject_ 00002 #define _QmfEngineObject_ 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 <qmf/engine/Schema.h> 00024 #include <qmf/engine/ObjectId.h> 00025 #include <qmf/engine/Value.h> 00026 00027 namespace qmf { 00028 namespace engine { 00029 00030 struct ObjectImpl; 00031 class Object { 00032 public: 00033 Object(const SchemaObjectClass* type); 00034 Object(const Object& from); 00035 virtual ~Object(); 00036 00037 void destroy(); 00038 const ObjectId* getObjectId() const; 00039 void setObjectId(ObjectId* oid); 00040 const SchemaObjectClass* getClass() const; 00041 Value* getValue(const char* key) const; 00042 void invokeMethod(const char* methodName, const Value* inArgs, void* context) const; 00043 bool isDeleted() const; 00044 void merge(const Object& from); 00045 00046 private: 00047 friend struct ObjectImpl; 00048 friend class AgentImpl; 00049 Object(ObjectImpl* impl); 00050 ObjectImpl* impl; 00051 }; 00052 } 00053 } 00054 00055 #endif 00056