Making DALi public API typesafe using guaranteed types; uint8_t, uint32_t
[platform/core/uifw/dali-core.git] / dali / public-api / object / property.cpp
1 /*
2  * Copyright (c) 2018 Samsung Electronics Co., Ltd.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  */
17
18 // CLASS HEADER
19 #include <dali/public-api/object/property.h>
20
21 // INTERNAL INCLUDES
22 #include <dali/public-api/object/handle.h>
23
24 namespace Dali
25 {
26
27 const int32_t Property::INVALID_INDEX           = -1;
28 const int32_t Property::INVALID_KEY             = -1;
29 const int32_t Property::INVALID_COMPONENT_INDEX = -1;
30
31 Property::Property(Handle& obj, Property::Index propIndex)
32 : object(obj),
33   propertyIndex(propIndex),
34   componentIndex(Property::INVALID_COMPONENT_INDEX)
35 {
36 }
37
38 Property::Property(Handle& obj, Property::Index propIndex, int32_t compIndex)
39 : object(obj),
40   propertyIndex(propIndex),
41   componentIndex(compIndex)
42 {
43 }
44
45 Property::Property(Handle& obj, const std::string& propertyName)
46 : object(obj),
47   propertyIndex(Property::INVALID_INDEX),
48   componentIndex(Property::INVALID_COMPONENT_INDEX)
49 {
50   propertyIndex = object.GetPropertyIndex( propertyName );
51 }
52
53 Property::Property(Handle& obj, const std::string& propertyName, int32_t compIndex)
54 : object(obj),
55   propertyIndex(Property::INVALID_INDEX),
56   componentIndex(compIndex)
57 {
58   propertyIndex = object.GetPropertyIndex( propertyName );
59 }
60
61 Property::~Property()
62 {
63 }
64
65 } // namespace Dali