Exposed APIs for getting resource types and resource interfaces in OCResource header...
[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, bool missingClientWrapper)
33         : m_missingUri(missingUri), m_missingType(missingType), m_missingInterface(missingInterface), m_missingClientWrapper(missingClientWrapper)
34         {
35         }
36         
37         bool isClientWrapperMissing() const
38         {
39             return m_missingClientWrapper;
40         }
41
42         bool isUriMissing() const
43         {
44             return m_missingUri;
45         }
46         
47         bool isTypeMissing() const
48         {
49             return m_missingType;
50         }
51         
52         bool isInterfaceMissing() const
53         {
54             return m_missingInterface;
55         }
56         
57         virtual const char* what() noexcept 
58         {
59             std::string ret;
60             
61             if(isUriMissing())
62             {
63                 ret += "Missing URI;";
64             }
65             
66             if(isTypeMissing())
67             {
68                 ret += "Missing Resource Type;";
69             }
70             
71             if(isInterfaceMissing())
72             {
73                 ret += "Missing Interface;";
74             }
75             
76             if(isClientWrapperMissing())
77             {
78                 ret += "Missing ClientWrapper;";
79             }
80
81             return ret.c_str();
82         }
83
84     private:
85
86         bool m_missingUri;
87         bool m_missingType;
88         bool m_missingInterface;
89         bool m_missingClientWrapper;
90     };
91 }
92
93 #endif