Initial merge-commit of the OIC code. Should successfully do discovery for single...
[platform/upstream/iotivity.git] / csdk / controller / src / remoting / LiteSession.hpp
1 //******************************************************************
2 //
3 // Copyright 2014 Intel Corporation All Rights Reserved.
4 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
5
6 #ifndef LITESESSION_HPP_
7 #define LITESESSION_HPP_
8
9 // ============================================================================
10 // Includes
11 // ============================================================================
12 #include <string>
13 #include <uuid.h>
14 #include <set>
15 #include <boost/shared_ptr.hpp>
16 #include "api.h"
17 using namespace Intel::STC;
18
19 #include "LiteConnection.h"
20
21 // ============================================================================
22 // Namespace
23 // ============================================================================
24 namespace remoting {
25
26   class LiteSession
27   {
28
29   public:
30     LiteSession(API::Context::SharedPtr pCCFContext, UUID_t uuid) : pCCFContext_(pCCFContext), sessionId_(uuid) {};
31     virtual ~LiteSession() { connectionSet_.clear(); };
32
33     virtual void invite() = 0;
34     virtual void disconnect() = 0;
35
36   public:
37     bool isInvited() {
38       return isInvited_;
39     }
40
41     bool isConnected() {
42       return isConnected_;
43     }
44
45     void setPublicAvatarId(const UUID_t& avatarId) {
46       publicAvatarId_ = avatarId;
47     }
48
49     void setPrivateAvatarId(const UUID_t& avatarId) {
50       privateAvatarId_ = avatarId;
51     }
52
53     void setUserId(const UUID_t& userId) {
54       userId_ = userId;
55     }
56
57     void setIssuer(const std::string& issuer) {
58       issuer_ = issuer;
59     }
60
61     void setName(const std::string& name) {
62       sessionName_ = name;
63     }
64
65     void setStatusText(const std::string& text) {
66       statusText_ = text;
67     }
68
69     void setSecurityCode(const std::string& code) {
70       securityCode_ = code;
71     }
72
73     void setApplicationSet(const std::set<UUID_t>& applicationSet) {
74       applicationSet_ = applicationSet;
75     }
76
77     const UUID_t& getPublicAvatarId() {
78       return publicAvatarId_;
79     }
80
81     const UUID_t& getPrivateAvatarId() {
82       return privateAvatarId_;
83     }
84
85     const UUID_t& getUserId() {
86       return userId_;
87     }
88
89     const std::string& getIssuer() {
90       return issuer_;
91     }
92
93     const std::string& getName() {
94       return sessionName_;
95     }
96
97     const std::string& getStatusText() {
98       return statusText_;
99     }
100
101     const std::string& getSecurityCode() {
102       return securityCode_;
103     }
104     const std::set<UUID_t>& getApplicationSet() {
105       return applicationSet_;
106     }
107
108     void addConnection(boost::shared_ptr<LiteConnection> connection) {
109       connectionSet_.insert(connection);
110     }
111
112     void removeConnection(boost::shared_ptr<LiteConnection> connection) {
113       connectionSet_.erase(connection);
114     }
115
116   protected:
117     bool onLocalNetwork_;
118     bool onCloudNetwork_;
119     bool isController_;
120     bool isInvited_;
121     bool isConnected_;
122
123     API::Context::SharedPtr pCCFContext_;
124     API::InvitationBuilder::SharedPtr pInvitationBuilder_;
125
126     UUID_t            sessionId_;
127     UUID_t            publicAvatarId_;
128     UUID_t            privateAvatarId_;
129     UUID_t            userId_;
130     std::string       issuer_;
131     std::string       sessionName_;
132     std::string       statusText_;
133     std::string       securityCode_;
134     std::set <UUID_t> applicationSet_;
135
136     std::set<boost::shared_ptr<LiteConnection>> connectionSet_;
137
138
139   };
140
141 }
142
143
144 #endif /* LITESESSION_HPP_ */