Qpid Management Framework  0.24
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Object.h
Go to the documentation of this file.
1 #ifndef _QmfEngineObject_
2 #define _QmfEngineObject_
3 
4 /*
5  * Licensed to the Apache Software Foundation (ASF) under one
6  * or more contributor license agreements. See the NOTICE file
7  * distributed with this work for additional information
8  * regarding copyright ownership. The ASF licenses this file
9  * to you under the Apache License, Version 2.0 (the
10  * "License"); you may not use this file except in compliance
11  * with the License. You may obtain a copy of the License at
12  *
13  * http://www.apache.org/licenses/LICENSE-2.0
14  *
15  * Unless required by applicable law or agreed to in writing,
16  * software distributed under the License is distributed on an
17  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
18  * KIND, either express or implied. See the License for the
19  * specific language governing permissions and limitations
20  * under the License.
21  */
22 
23 #include <qmf/engine/Schema.h>
24 #include <qmf/engine/ObjectId.h>
25 #include <qmf/engine/Value.h>
26 
27 namespace qmf {
28 namespace engine {
29 
30  struct ObjectImpl;
31  class Object {
32  public:
33  Object(const SchemaObjectClass* type);
34  Object(const Object& from);
35  virtual ~Object();
36 
37  void destroy();
38  const ObjectId* getObjectId() const;
39  void setObjectId(ObjectId* oid);
40  const SchemaObjectClass* getClass() const;
41  Value* getValue(const char* key) const;
42  void invokeMethod(const char* methodName, const Value* inArgs, void* context) const;
43  bool isDeleted() const;
44  void merge(const Object& from);
45 
46  private:
47  friend struct ObjectImpl;
48  friend class AgentImpl;
49  Object(ObjectImpl* impl);
50  ObjectImpl* impl;
51  };
52 }
53 }
54 
55 #endif
56