Updated license header to reference Apache 2.0 License
[platform/upstream/iotivity.git] / include / ResourceInitException.h
1 //******************************************************************
2 //
3 // Copyright 2014 Intel Corporation All Rights Reserved.
4 //
5 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
6 //
7 // Licensed under the Apache License, Version 2.0 (the "License");
8 // you may not use this file except in compliance with the License.
9 // You may obtain a copy of the License at
10 //
11 //      http://www.apache.org/licenses/LICENSE-2.0
12 //
13 // Unless required by applicable law or agreed to in writing, software
14 // distributed under the License is distributed on an "AS IS" BASIS,
15 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 // See the License for the specific language governing permissions and
17 // limitations under the License.
18 //
19 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
20
21 #ifndef _RESOURCE_INIT_EXCEPTION_H_
22 #define _RESOURCE_INIT_EXCEPTION_H_
23
24 #include <stdexcept>
25 #include <ocstack.h>
26
27 namespace OC
28 {
29     class ResourceInitException : public std::exception
30     {
31     public:
32         ResourceInitException(bool missingUri, bool missingType, bool missingInterface)
33                 : m_missingUri(missingUri), m_missingType(missingType), m_missingInterface(missingInterface)
34         {
35         }
36                 
37                 bool isUriMissing()
38                 {
39                         return m_missingUri;
40                 }
41                 
42                 bool isTypeMissing()
43                 {
44                         return m_missingType;
45                 }
46                 
47                 bool isInterfaceMissing()
48                 {
49                         return m_missingInterface;
50                 }
51                 
52                 std::string Reason()
53                 {
54                         std::string ret;
55                         
56                         if(isUriMissing())
57                         {
58                                 ret += "Missing URI;";
59                         }
60                         
61                         if(isTypeMissing())
62                         {
63                                 ret += "Missing Resource Type;";
64                         }
65                         
66                         if(isInterfaceMissing())
67                         {
68                                 ret += "Missing Interface;";
69                         }
70                         
71                         return ret;
72                 }
73
74     private:
75         bool m_missingUri;
76                 bool m_missingType;
77                 bool m_missingInterface;
78     };
79 }
80
81 #endif