Skip to content
This repository
Browse code

サークルの操作APIを何個か実装した

  • Loading branch information...
commit 615c75710f6ff1136b3810f37375a3b683cf4dcc 1 parent ac14162
gplusnasite authored February 14, 2013

Showing 190 changed files with 1,662 additions and 421 deletions. Show diff stats Hide diff stats

  1. 1  .gitignore
  2. 15  Include/Account/Account.hpp
  3. 2  Include/Account/Accounts/AddedAccounts.hpp
  4. 2  Include/Account/Accounts/AddedYouAccounts.hpp
  5. 2  Include/Account/Accounts/BlockedAccounts.hpp
  6. 2  Include/Account/Accounts/FriendSuggestions.hpp
  7. 2  Include/Account/Accounts/IgnoredAccounts.hpp
  8. 2  Include/Account/Accounts/MyAddedAccounts.hpp
  9. 2  Include/Account/Accounts/MyAddedYouAccounts.hpp
  10. 2  Include/Account/MyAccount.hpp
  11. 37  Include/Circle/Circle.hpp
  12. 77  Include/Circle/CircleCreateSetting.hpp
  13. 106  Include/Circle/CircleEditSetting.hpp
  14. 34  Include/Circle/Circles.hpp
  15. 2  Include/GooglePlusLibrary.hpp
  16. 31  LuaScript/CreateCircle.lua
  17. 26  LuaScript/DeleteCircle.lua
  18. 13  LuaScript/{UpdateAddedAccountList.lua → UpdateAddedAccounts.lua}
  19. 0  LuaScript/{UpdateAddedYouAccountList.lua → UpdateAddedYouAccounts.lua}
  20. 52  LuaScript/UpdateCircles.lua
  21. 0  LuaScript/{UpdateIgnoredAccountList.lua → UpdateIgnoredAccounts.lua}
  22. 0  LuaScript/{UpdateNotificationList.lua → UpdateNotifications.lua}
  23. 110  LuaScript/signal.lua
  24. 7  Src/Account/Account/Account.cpp
  25. 8  Src/Account/Account/AccountData.cpp
  26. 18  Src/Account/Account/AccountData.hpp
  27. 2  Src/Account/AccountID/AccountID.cpp
  28. 2  Src/Account/AccountProfile/AccountName/AccountName.cpp
  29. 2  Src/Account/AccountProfile/AccountName/AccountNameData.cpp
  30. 2  Src/Account/AccountProfile/AccountName/MyAccountName.cpp
  31. 2  Src/Account/AccountProfile/AccountProfile.cpp
  32. 2  Src/Account/AccountProfile/AccountProfileData.cpp
  33. 2  Src/Account/AccountProfile/ContactAddress/ContactAddress.cpp
  34. 2  Src/Account/AccountProfile/ContactAddress/ContactAddressData.cpp
  35. 2  Src/Account/AccountProfile/ContactAddress/MyContactAddress.cpp
  36. 2  Src/Account/AccountProfile/Education/Education.cpp
  37. 2  Src/Account/AccountProfile/Education/EducationData.cpp
  38. 2  Src/Account/AccountProfile/Education/MyEducation.cpp
  39. 2  Src/Account/AccountProfile/Employment/Employment.cpp
  40. 2  Src/Account/AccountProfile/Employment/EmploymentData.cpp
  41. 2  Src/Account/AccountProfile/Employment/MyEmployment.cpp
  42. 2  Src/Account/AccountProfile/LabeledLink/LabeledLink.cpp
  43. 2  Src/Account/AccountProfile/LabeledLink/LabeledLinkData.cpp
  44. 2  Src/Account/AccountProfile/LabeledLink/MyLabeledLink.cpp
  45. 2  Src/Account/AccountProfile/LivedPlace/LivedPlace.cpp
  46. 2  Src/Account/AccountProfile/LivedPlace/LivedPlaceData.cpp
  47. 2  Src/Account/AccountProfile/LivedPlace/MyLivedPlace.cpp
  48. 2  Src/Account/AccountProfile/MyAccountProfile.cpp
  49. 2  Src/Account/Accounts/Accounts.cpp
  50. 8  Src/Account/Accounts/AddedAccounts.cpp
  51. 8  Src/Account/Accounts/AddedYouAccounts.cpp
  52. 6  Src/Account/Accounts/BlockedAccounts.cpp
  53. 4  Src/Account/Accounts/CommonWithYouAccounts.cpp
  54. 6  Src/Account/Accounts/FriendSuggestions.cpp
  55. 6  Src/Account/Accounts/IgnoredAccounts.cpp
  56. 8  Src/Account/Accounts/MyAddedAccounts.cpp
  57. 8  Src/Account/Accounts/MyAddedYouAccounts.cpp
  58. 4  Src/Account/MyAccount/MyAccount.cpp
  59. 8  Src/Account/MyAccount/MyAccountData.cpp
  60. 2  Src/Account/MyPageAccount.cpp
  61. 2  Src/Account/PageAccount.cpp
  62. 2  Src/AttachedData/AttachedAlbum/AttachedAlbum.cpp
  63. 4  Src/AttachedData/AttachedAlbum/AttachedAlbumData.cpp
  64. 2  Src/AttachedData/AttachedData.cpp
  65. 2  Src/AttachedData/AttachedDataLua.cpp
  66. 2  Src/AttachedData/AttachedEvent/AttachedEvent.cpp
  67. 2  Src/AttachedData/AttachedImageVideo/AttachedImageVideo.cpp
  68. 2  Src/AttachedData/AttachedLocation/AttachedLocation.cpp
  69. 2  Src/AttachedData/AttachedLocation/AttachedLocationData.cpp
  70. 2  Src/AttachedData/AttachedLocation/AttachedLocationDataLua.cpp
  71. 2  Src/AttachedData/AttachedPage/AttachedPage.cpp
  72. 2  Src/AttachedData/AttachedPage/AttachedPageData.cpp
  73. 2  Src/AttachedData/AttachedPage/AttachedPageDataLua.cpp
  74. 2  Src/AttachedData/AttachedSearchResult/AttachedSearchResult.cpp
  75. 2  Src/AttachedData/AttachedSearchResult/AttachedSearchResultData.cpp
  76. 2  Src/AttachedData/AttachedSearchResult/AttachedSearchResultDataLua.cpp
  77. 2  Src/AttachedData/AttachedYouTubePlaylist/AttachedYouTubePlaylist.cpp
  78. 31  Src/Circle/Circle/Circle.cpp
  79. 72  Src/Circle/Circle/CircleLua.cpp
  80. 37  Src/Circle/CircleCreateSetting.cpp
  81. 119  Src/Circle/CircleCreateSetting/CircleCreateSetting.cpp
  82. 51  Src/Circle/CircleCreateSetting/Impl/CircleCreateSettingImpl.cpp
  83. 95  Src/Circle/CircleCreateSetting/Impl/CircleCreateSettingImpl.hpp
  84. 12  Src/Circle/CircleData.cpp
  85. 34  Src/Circle/CircleData.hpp
  86. 24  Src/Circle/CircleDataLua.cpp
  87. 92  Src/Circle/CircleEditSetting/CircleEditSetting.cpp
  88. 39  Src/Circle/CircleEditSetting/Impl/CircleEditSettingImpl.cpp
  89. 89  Src/Circle/CircleEditSetting/Impl/CircleEditSettingImpl.hpp
  90. 2  Src/Circle/CircleID/CircleID.cpp
  91. 36  Src/Circle/Circles/Circles.cpp
  92. 4  Src/Circle/Circles/CirclesData.cpp
  93. 7  Src/Circle/Circles/CirclesData.hpp
  94. 67  Src/Circle/Circles/CirclesLua.cpp
  95. 2  Src/Community/Community.cpp
  96. 2  Src/Community/CommunityData.cpp
  97. 3  Src/Connection/CMakeLists.txt
  98. 4  Src/Connection/Connection/Connection.cpp
  99. 2  Src/Connection/Cookie/Cookie.cpp
  100. 2  Src/Connection/Cookie/CookieContainer.cpp
  101. 2  Src/Connection/Cookie/Cookies.cpp
  102. 2  Src/Connection/HttpResponse/HttpResponse.cpp
  103. 2  Src/Connection/Uri/Uri.cpp
  104. 2  Src/Connection/WebClient/WebClient.cpp
  105. 4  Src/Connection/WebClient/WebClientCppNetlib.cpp
  106. 4  Src/Connection/WebClient/WebClientHandler.cpp
  107. 27  Src/Datas/Datas.hpp
  108. 285  Src/Datas/NamedDatas.hpp
  109. 2  Src/DateTime/DateTime/DateTime.cpp
  110. 2  Src/DateTime/DateTime/Impl/DateTimeImpl.cpp
  111. 2  Src/DateTime/Day/Day.cpp
  112. 2  Src/DateTime/Day/Impl/DayImpl.cpp
  113. 2  Src/DateTime/Hour/Hour.cpp
  114. 2  Src/DateTime/Hour/Impl/HourImpl.cpp
  115. 2  Src/DateTime/Millisecond/Impl/MillisecondImpl.cpp
  116. 2  Src/DateTime/Millisecond/Millisecond.cpp
  117. 2  Src/DateTime/Minute/Impl/MinuteImpl.cpp
  118. 2  Src/DateTime/Minute/Minute.cpp
  119. 2  Src/DateTime/Month/Impl/MonthImpl.cpp
  120. 2  Src/DateTime/Month/Month.cpp
  121. 2  Src/DateTime/Second/Impl/SecondImpl.cpp
  122. 2  Src/DateTime/Second/Second.cpp
  123. 2  Src/DateTime/UnixTime.cpp
  124. 2  Src/DateTime/UnixTimeLua.cpp
  125. 2  Src/DateTime/Year/Impl/YearImpl.cpp
  126. 2  Src/DateTime/Year/Year.cpp
  127. 6  Src/EventHandler/CommentAddedEventHandler.cpp
  128. 6  Src/EventHandler/CommentDeletedEventHandler.cpp
  129. 6  Src/EventHandler/CommentEditedEventHandler.cpp
  130. 6  Src/EventHandler/PostAddedEventHandler.cpp
  131. 6  Src/EventHandler/PostDeletedEventHandler.cpp
  132. 6  Src/EventHandler/PostEditedEventHandler.cpp
  133. 6  Src/EventHandler/UpdateCompletedEventHandler.cpp
  134. 2  Src/Hangout/GroupChat.cpp
  135. 2  Src/Hangout/Hangout.cpp
  136. 2  Src/Hangout/HangoutConnection.cpp
  137. 2  Src/Hangout/Hangouts.cpp
  138. 2  Src/Hangout/MyHangout.cpp
  139. 2  Src/Information/InformationContainer.cpp
  140. 1  Src/Json/CMakeLists.txt
  141. 2  Src/Json/Impl/JsonObjectImpl.cpp
  142. 2  Src/Json/JsonMember.cpp
  143. 4  Src/Json/JsonObject.cpp
  144. 2  Src/Json/JsonObjectLua.cpp
  145. 2  Src/Json/JsonParser.cpp
  146. 2  Src/Json/JsonPathParser.cpp
  147. 2  Src/Notification/CircleNotification/CircleNotification.cpp
  148. 2  Src/Notification/CircleNotification/CircleNotificationDetail.cpp
  149. 2  Src/Notification/Notification/Notification.cpp
  150. 2  Src/Notification/NotificationData/NotificationData.cpp
  151. 2  Src/Notification/NotificationData/NotificationDataLua.cpp
  152. 4  Src/Notification/NotificationParser/NotificationParser.cpp
  153. 6  Src/Notification/Notifications/Notifications.cpp
  154. 2  Src/Notification/PostNotification/PostNotification.cpp
  155. 2  Src/Notification/PostNotification/PostNotificationDetail.cpp
  156. 2  Src/Share/PostMessageSender.cpp
  157. 2  Src/Share/Share/CircleShare.cpp
  158. 2  Src/Share/Share/CommunityShare.cpp
  159. 2  Src/Share/Share/Impl/ShareImpl.cpp
  160. 2  Src/Share/Share/Share.cpp
  161. 4  Src/Share/ShareRanges/Impl/ShareRangesImpl.cpp
  162. 4  Src/Share/ShareRanges/ShareRanges.cpp
  163. 6  Src/Stream/AccountStream/AccountStream.cpp
  164. 2  Src/Stream/Comment/Comment.cpp
  165. 2  Src/Stream/Comment/CommentData.cpp
  166. 2  Src/Stream/Comment/CommentID/CommentID.cpp
  167. 2  Src/Stream/Comment/CommentParser/CommentParser.cpp
  168. 6  Src/Stream/Comment/Comments/Comments.cpp
  169. 8  Src/Stream/HomeStream/HomeStream.cpp
  170. 2  Src/Stream/Impl/StreamConnectionImpl.cpp
  171. 4  Src/Stream/Impl/StreamConnectionImplLua.cpp
  172. 2  Src/Stream/Post/MyPost/MyPost.cpp
  173. 2  Src/Stream/Post/Post.cpp
  174. 2  Src/Stream/Post/PostData.cpp
  175. 2  Src/Stream/Post/PostDataLua.cpp
  176. 2  Src/Stream/Post/PostID/PostID.cpp
  177. 2  Src/Stream/Post/PostParser/PostParser.cpp
  178. 2  Src/Stream/Post/PostParser/PostParserLua.cpp
  179. 2  Src/Stream/Stream.cpp
  180. 2  Src/Stream/StreamConnection.cpp
  181. 2  Src/Stream/StreamObserver/Impl/StreamObserverImpl.cpp
  182. 2  Src/Stream/StreamObserver/StreamObserver.cpp
  183. 4  Src/Talkgadget/TalkgadgetConnection.cpp
  184. 4  Src/Thread/ReadWriteMutex.cpp
  185. 2  Src/UTF8/UTF8String.cpp
  186. 1  Src/Utility/CMakeLists.txt
  187. 2  Src/Utility/Impl/UtilityImpl.cpp
  188. 2  Src/Utility/Utility.cpp
  189. 6  Src/Utility/UtilityLua.cpp
  190. 2  cmake_modules/FindLUABIND.cmake
1  .gitignore
@@ -31,3 +31,4 @@ lib
31 31
 /Src/Connection/Json
32 32
 /Src/Connection/Thread
33 33
 /Src/Connection/Utility
  34
+Dependency
15  Include/Account/Account.hpp
@@ -20,6 +20,7 @@ class AccountData;
20 20
 class AccountStream;
21 21
 class AddedAccounts;
22 22
 class AddedYouAccounts;
  23
+class Circles;
23 24
 
24 25
 /// @~english
25 26
 /// @brief Class to retrieve the information of Google+
@@ -118,6 +119,20 @@ class GOOGLEPLUSLIBRARY_API Account
118 119
 	AddedYouAccounts getAddedYouAccounts() const;
119 120
 
120 121
 	/// @~english
  122
+	/// @brief Get the circle that contains this account
  123
+	/// @invariant This function does not throw an exception
  124
+	/// @invariant This function is thread-safe
  125
+	/// @return Circle that contains a list of this account
  126
+	/// @~japanese
  127
+	/// @brief このアカウントを含んだサークルを取得します
  128
+	/// @invariant この関数は例外を投げません
  129
+	/// @invariant この関数はスレッドセーフです
  130
+	/// @return このアカウントを含んだサークルのリスト
  131
+	/// @~
  132
+	/// @since Version 1.0
  133
+	Circles getAssociatedCircles() const;
  134
+
  135
+	/// @~english
121 136
 	/// @brief Gets whether this account is empty
122 137
 	/// @invariant This function does not throw an exception
123 138
 	/// @invariant This function is thread-safe
2  Include/Account/Accounts/AddedAccounts.hpp
@@ -83,7 +83,7 @@ class GOOGLEPLUSLIBRARY_API AddedAccounts
83 83
 	/// @invariant この関数はスレッドセーフです
84 84
 	/// @~
85 85
 	/// @since Version 1.0
86  
-	void waitUpdateAsync();
  86
+	void waitUpdateAsync() const;
87 87
 
88 88
 	UpdateCompletedEventHandler onUpdateCompleted;
89 89
 	
2  Include/Account/Accounts/AddedYouAccounts.hpp
@@ -84,7 +84,7 @@ class GOOGLEPLUSLIBRARY_API AddedYouAccounts
84 84
 	/// @invariant この関数はスレッドセーフです
85 85
 	/// @~
86 86
 	/// @since Version 1.0
87  
-	void waitUpdateAsync();
  87
+	void waitUpdateAsync() const;
88 88
 
89 89
 	UpdateCompletedEventHandler onUpdateCompleted;
90 90
 	
2  Include/Account/Accounts/BlockedAccounts.hpp
@@ -85,7 +85,7 @@ class GOOGLEPLUSLIBRARY_API BlockedAccounts
85 85
 	/// @invariant この関数はスレッドセーフです
86 86
 	/// @~
87 87
 	/// @since Version 1.0
88  
-	void waitUpdateAsync();
  88
+	void waitUpdateAsync() const;
89 89
 
90 90
 	UpdateCompletedEventHandler onUpdateCompleted;
91 91
 
2  Include/Account/Accounts/FriendSuggestions.hpp
@@ -85,7 +85,7 @@ class GOOGLEPLUSLIBRARY_API FriendSuggestions
85 85
 	/// @invariant この関数はスレッドセーフです
86 86
 	/// @~
87 87
 	/// @since Version 1.0
88  
-	void waitUpdateAsync();
  88
+	void waitUpdateAsync() const;
89 89
 
90 90
 	UpdateCompletedEventHandler onUpdateCompleted;
91 91
 
2  Include/Account/Accounts/IgnoredAccounts.hpp
@@ -85,7 +85,7 @@ class GOOGLEPLUSLIBRARY_API IgnoredAccounts
85 85
 	/// @invariant この関数はスレッドセーフです
86 86
 	/// @~
87 87
 	/// @since Version 1.0
88  
-	void waitUpdateAsync();
  88
+	void waitUpdateAsync() const;
89 89
 
90 90
 	UpdateCompletedEventHandler onUpdateCompleted;
91 91
 
2  Include/Account/Accounts/MyAddedAccounts.hpp
@@ -84,7 +84,7 @@ class GOOGLEPLUSLIBRARY_API MyAddedAccounts
84 84
 	/// @invariant この関数はスレッドセーフです
85 85
 	/// @~
86 86
 	/// @since Version 1.0
87  
-	void waitUpdateAsync();
  87
+	void waitUpdateAsync() const;
88 88
 
89 89
 	UpdateCompletedEventHandler onUpdateCompleted;
90 90
 	
2  Include/Account/Accounts/MyAddedYouAccounts.hpp
@@ -85,7 +85,7 @@ class GOOGLEPLUSLIBRARY_API MyAddedYouAccounts
85 85
 	/// @invariant この関数はスレッドセーフです
86 86
 	/// @~
87 87
 	/// @since Version 1.0
88  
-	void waitUpdateAsync();
  88
+	void waitUpdateAsync() const;
89 89
 
90 90
 	UpdateCompletedEventHandler onUpdateCompleted;
91 91
 	
2  Include/Account/MyAccount.hpp
@@ -243,7 +243,7 @@ class GOOGLEPLUSLIBRARY_API MyAccount
243 243
 	/// @return このアカウントのサークルのリスト
244 244
 	/// @~
245 245
 	/// @since Version 1.0
246  
-	Circles getCircle() const;
  246
+	Circles getCircles() const;
247 247
 
248 248
 	/// @~english
249 249
 	/// @brief Get a list of the circle of this account
37  Include/Circle/Circle.hpp
@@ -11,12 +11,15 @@
11 11
 #include <memory>
12 12
 #include <string>
13 13
 
  14
+struct lua_State;
  15
+
14 16
 namespace Gplusnasite
15 17
 {
16 18
 namespace GooglePlusLibrary
17 19
 {
18 20
 
19 21
 class CircleData;
  22
+class CircleEditSetting;
20 23
 
21 24
 /// @~english
22 25
 /// @brief Class for operating circle information
@@ -31,6 +34,20 @@ class GOOGLEPLUSLIBRARY_API Circle
31 34
 	explicit Circle(const std::wstring& circle_id);
32 35
 
33 36
 	/// @~english
  37
+	/// @brief Get the account ID that holds this circle
  38
+	/// @invariant This function does not throw an exception
  39
+	/// @invariant This function is thread-safe
  40
+	/// @return Account ID that holds this circle(e.g. 116324207729009185938)
  41
+	/// @~japanese
  42
+	/// @brief このサークルを保持しているアカウントIDを取得します
  43
+	/// @invariant この関数は例外を投げません
  44
+	/// @invariant この関数はスレッドセーフです
  45
+	/// @return このサークルを保持しているアカウントID(例: 116324207729009185938)
  46
+	/// @~
  47
+	/// @since Version 1.0
  48
+	std::wstring getAccountID() const;
  49
+
  50
+	/// @~english
34 51
 	/// @brief Check for the correct format of circle ID
35 52
 	/// @invariant This function does not throw an exception
36 53
 	/// @invariant This function is thread-safe
@@ -57,6 +74,7 @@ class GOOGLEPLUSLIBRARY_API Circle
57 74
 	/// @~
58 75
 	/// @since Version 1.0
59 76
 	std::wstring getCircleID() const;
  77
+	std::string getCircleIDAsString() const;
60 78
 
61 79
 	/// @~english
62 80
 	/// @brief Gets the name of the circle
@@ -71,11 +89,16 @@ class GOOGLEPLUSLIBRARY_API Circle
71 89
 	/// @~
72 90
 	/// @since Version 1.0
73 91
 	std::wstring getCircleName() const;
  92
+	std::string getCircleNameAsString() const;
74 93
 
75 94
 	//void editCircle(const std::wstring& circle_name);
76 95
 	
77 96
 	//Circle& operator >> (Stream stream);
78 97
 
  98
+	void edit(const CircleEditSetting& edit_setting) const;
  99
+
  100
+	void remove() const;
  101
+
79 102
 	/// @~english
80 103
 	/// @brief Gets whether this circle is empty
81 104
 	/// @invariant This function does not throw an exception
@@ -90,6 +113,20 @@ class GOOGLEPLUSLIBRARY_API Circle
90 113
 	/// @since Version 1.0
91 114
 	bool isNull() const;
92 115
 
  116
+	/// @~english
  117
+	/// @brief Register this class to lua script to use
  118
+	/// @invariant This function does not throw an exception
  119
+	/// @invariant This function is thread-safe
  120
+	/// @param[in] lua_state Lua state of which it is registered
  121
+	/// @~japanese
  122
+	/// @brief Luaスクリプトにこのクラスを登録して使えるようにします
  123
+	/// @invariant この関数は例外を投げません
  124
+	/// @invariant この関数はスレッドセーフです
  125
+	/// @param[in] lua_state 登録先Luaステート
  126
+	/// @~
  127
+	/// @since Version 1.0
  128
+	static void bindToScript(lua_State* lua_state);
  129
+
93 130
 	virtual ~Circle();
94 131
 private:
95 132
 	std::shared_ptr<CircleData> circle_data_;
77  Include/Circle/CircleCreateSetting.hpp
@@ -9,12 +9,16 @@
9 9
 #endif
10 10
 
11 11
 #include <string>
  12
+#include <memory>
  13
+
  14
+struct lua_State;
12 15
 
13 16
 namespace Gplusnasite
14 17
 {
15 18
 namespace GooglePlusLibrary
16 19
 {
17 20
 
  21
+class CircleCreateSettingImpl;
18 22
 class Account;
19 23
 
20 24
 class GOOGLEPLUSLIBRARY_API CircleCreateSetting
@@ -22,14 +26,85 @@ class GOOGLEPLUSLIBRARY_API CircleCreateSetting
22 26
 public:
23 27
 	CircleCreateSetting();
24 28
 
25  
-	void setCircleName(const std::wstring& name);
  29
+	/// @~english
  30
+	/// @brief Get the name of the Circle
  31
+	/// @invariant This function does not throw an exception
  32
+	/// @invariant This function is thread-safe
  33
+	/// @return Circle name that has been set
  34
+	/// @~japanese
  35
+	/// @brief サークル名を取得します
  36
+	/// @invariant この関数は例外を投げません
  37
+	/// @invariant この関数はスレッドセーフです
  38
+	/// @return 設定されたサークル名
  39
+	/// @~
  40
+	/// @since Version 1.0
  41
+	std::wstring getCircleName() const;
  42
+	std::string getCircleNameAsString() const;
  43
+
  44
+	/// @~english
  45
+	/// @brief Set the name of the Circle
  46
+	/// @invariant This function does not throw an exception
  47
+	/// @invariant This function is thread-safe
  48
+	/// @param[in] circle_name Circle name you want to set
  49
+	/// @~japanese
  50
+	/// @brief サークル名を設定します
  51
+	/// @invariant この関数は例外を投げません
  52
+	/// @invariant この関数はスレッドセーフです
  53
+	/// @param[in] circle_name 設定したいサークル名
  54
+	/// @~
  55
+	/// @since Version 1.0
  56
+	void setCircleName(const std::wstring& circle_name);
  57
+
  58
+	/// @~english
  59
+	/// @brief Get the description of the Circle
  60
+	/// @invariant This function does not throw an exception
  61
+	/// @invariant This function is thread-safe
  62
+	/// @return Description of the circle that has been set
  63
+	/// @~japanese
  64
+	/// @brief サークルの説明を取得します
  65
+	/// @invariant この関数は例外を投げません
  66
+	/// @invariant この関数はスレッドセーフです
  67
+	/// @return 設定されたサークルの説明
  68
+	/// @~
  69
+	/// @since Version 1.0
  70
+	std::wstring getDescription() const;
  71
+	std::string getDescriptionAsString() const;
  72
+
  73
+	/// @~english
  74
+	/// @brief Set the description of the Circle
  75
+	/// @invariant This function does not throw an exception
  76
+	/// @invariant This function is thread-safe
  77
+	/// @param[in] description Description of the circle you want to set
  78
+	/// @~japanese
  79
+	/// @brief サークルの説明を設定します
  80
+	/// @invariant この関数は例外を投げません
  81
+	/// @invariant この関数はスレッドセーフです
  82
+	/// @param[in] description 設定したいサークルの説明
  83
+	/// @~
  84
+	/// @since Version 1.0
26 85
 	void setDescription(const std::wstring& description);
27 86
 
28 87
 	void addAccount(const Account& account);
29 88
 	void removeAccount(const Account& account);
30 89
 	void clearAccount();
31 90
 
  91
+	/// @~english
  92
+	/// @brief Register this class to lua script to use
  93
+	/// @invariant This function does not throw an exception
  94
+	/// @invariant This function is thread-safe
  95
+	/// @param[in] lua_state Lua state of which it is registered
  96
+	/// @~japanese
  97
+	/// @brief Luaスクリプトにこのクラスを登録して使えるようにします
  98
+	/// @invariant この関数は例外を投げません
  99
+	/// @invariant この関数はスレッドセーフです
  100
+	/// @param[in] lua_state 登録先Luaステート
  101
+	/// @~
  102
+	/// @since Version 1.0
  103
+	static void bindToScript(lua_State* lua_state);
  104
+
32 105
 	virtual ~CircleCreateSetting();
  106
+private:
  107
+	std::shared_ptr<CircleCreateSettingImpl> impl_;
33 108
 };
34 109
 
35 110
 }// namespace GooglePlusLibrary
106  Include/Circle/CircleEditSetting.hpp
... ...
@@ -0,0 +1,106 @@
  1
+#pragma once
  2
+
  3
+#include <GooglePlusLibraryExports.hpp>
  4
+
  5
+#ifdef GOOGLEPLUSLIBRARY_NO_WARNINGS
  6
+#ifdef _MSC_VER
  7
+#pragma warning (disable:4251)
  8
+#endif
  9
+#endif
  10
+
  11
+#include <string>
  12
+#include <memory>
  13
+
  14
+struct lua_State;
  15
+
  16
+namespace Gplusnasite
  17
+{
  18
+namespace GooglePlusLibrary
  19
+{
  20
+
  21
+class CircleEditSettingImpl;
  22
+
  23
+class GOOGLEPLUSLIBRARY_API CircleEditSetting
  24
+{
  25
+public:
  26
+	CircleEditSetting();
  27
+
  28
+	/// @~english
  29
+	/// @brief Get the name of the Circle
  30
+	/// @invariant This function does not throw an exception
  31
+	/// @invariant This function is thread-safe
  32
+	/// @return Circle name that has been set
  33
+	/// @~japanese
  34
+	/// @brief サークル名を取得します
  35
+	/// @invariant この関数は例外を投げません
  36
+	/// @invariant この関数はスレッドセーフです
  37
+	/// @return 設定されたサークル名
  38
+	/// @~
  39
+	/// @since Version 1.0
  40
+	std::wstring getCircleName() const;
  41
+	std::string getCircleNameAsString() const;
  42
+
  43
+	/// @~english
  44
+	/// @brief Set the name of the Circle
  45
+	/// @invariant This function does not throw an exception
  46
+	/// @invariant This function is thread-safe
  47
+	/// @param[in] circle_name Circle name you want to set
  48
+	/// @~japanese
  49
+	/// @brief サークル名を設定します
  50
+	/// @invariant この関数は例外を投げません
  51
+	/// @invariant この関数はスレッドセーフです
  52
+	/// @param[in] circle_name 設定したいサークル名
  53
+	/// @~
  54
+	/// @since Version 1.0
  55
+	void setCircleName(const std::wstring& circle_name);
  56
+
  57
+	/// @~english
  58
+	/// @brief Get the description of the Circle
  59
+	/// @invariant This function does not throw an exception
  60
+	/// @invariant This function is thread-safe
  61
+	/// @return Description of the circle that has been set
  62
+	/// @~japanese
  63
+	/// @brief サークルの説明を取得します
  64
+	/// @invariant この関数は例外を投げません
  65
+	/// @invariant この関数はスレッドセーフです
  66
+	/// @return 設定されたサークルの説明
  67
+	/// @~
  68
+	/// @since Version 1.0
  69
+	std::wstring getDescription() const;
  70
+	std::string getDescriptionAsString() const;
  71
+
  72
+	/// @~english
  73
+	/// @brief Set the description of the Circle
  74
+	/// @invariant This function does not throw an exception
  75
+	/// @invariant This function is thread-safe
  76
+	/// @param[in] description Description of the circle you want to set
  77
+	/// @~japanese
  78
+	/// @brief サークルの説明を設定します
  79
+	/// @invariant この関数は例外を投げません
  80
+	/// @invariant この関数はスレッドセーフです
  81
+	/// @param[in] description 設定したいサークルの説明
  82
+	/// @~
  83
+	/// @since Version 1.0
  84
+	void setDescription(const std::wstring& description);
  85
+
  86
+	/// @~english
  87
+	/// @brief Register this class to lua script to use
  88
+	/// @invariant This function does not throw an exception
  89
+	/// @invariant This function is thread-safe
  90
+	/// @param[in] lua_state Lua state of which it is registered
  91
+	/// @~japanese
  92
+	/// @brief Luaスクリプトにこのクラスを登録して使えるようにします
  93
+	/// @invariant この関数は例外を投げません
  94
+	/// @invariant この関数はスレッドセーフです
  95
+	/// @param[in] lua_state 登録先Luaステート
  96
+	/// @~
  97
+	/// @since Version 1.0
  98
+	static void bindToScript(lua_State* lua_state);
  99
+
  100
+	virtual ~CircleEditSetting();
  101
+private:
  102
+	std::shared_ptr<CircleEditSettingImpl> impl_;
  103
+};
  104
+
  105
+}// namespace GooglePlusLibrary
  106
+}// namespace Gplusnasite
34  Include/Circle/Circles.hpp
@@ -89,7 +89,7 @@ class GOOGLEPLUSLIBRARY_API Circles
89 89
 	/// @invariant この関数はスレッドセーフです
90 90
 	/// @~
91 91
 	/// @since Version 1.0
92  
-	void waitUpdateAsync();
  92
+	void waitUpdateAsync() const;
93 93
 
94 94
 	UpdateCompletedEventHandler onUpdateCompleted;
95 95
 
@@ -98,18 +98,18 @@ class GOOGLEPLUSLIBRARY_API Circles
98 98
 	/// @details Returns empty Circle if the corresponding circle could not be found
99 99
 	/// @invariant This function does not throw an exception
100 100
 	/// @invariant This function is thread-safe
101  
-	/// @param[in] circle_id ID of the circle information you want to get(e.g. 6e1ff5b889ea6c7e)
  101
+	/// @param[in] circle_name Name of the circle information you want to get
102 102
 	/// @return Circle information with the specified circle id
103 103
 	/// @~japanese
104 104
 	/// @brief サークル情報を取得します
105 105
 	/// @details 該当するサークルが見つからなかった場合空のCircleを返します
106 106
 	/// @invariant この関数は例外を投げません
107 107
 	/// @invariant この関数はスレッドセーフです
108  
-	/// @param[in] circle_id 取得したいサークルのID(例: 6e1ff5b889ea6c7e)
  108
+	/// @param[in] circle_name 取得したいサークルの名前
109 109
 	/// @return 指定したサークルIDを持つサークルの情報
110 110
 	/// @~
111 111
 	/// @since Version 1.0
112  
-	Circle getByCircleID(const std::wstring& circle_id) const;
  112
+	Circle getByCircleName(const std::wstring& circle_id) const;
113 113
 
114 114
 	/// @~english
115 115
 	/// @brief Get circle information
@@ -135,7 +135,7 @@ class GOOGLEPLUSLIBRARY_API Circles
135 135
 	/// @details This operator is only internally calls the getByCircleID
136 136
 	/// @invariant This function does not throw an exception
137 137
 	/// @invariant This function is thread-safe
138  
-	/// @param[in] circle_id ID of the circle information you want to get(e.g. 6e1ff5b889ea6c7e)
  138
+	/// @param[in] circle_name Name of the circle information you want to get
139 139
 	/// @return Circle information with the specified circle id
140 140
 	/// @~japanese
141 141
 	/// @brief サークル情報を取得します
@@ -143,11 +143,11 @@ class GOOGLEPLUSLIBRARY_API Circles
143 143
 	/// @details この演算子は内部的にgetByCircleIDを呼び出しているだけです
144 144
 	/// @invariant この関数は例外を投げません
145 145
 	/// @invariant この関数はスレッドセーフです
146  
-	/// @param[in] circle_id 取得したいサークルのID(例: 6e1ff5b889ea6c7e)
  146
+	/// @param[in] circle_name 取得したいサークルの名前
147 147
 	/// @return 指定したサークルIDを持つサークルの情報
148 148
 	/// @~
149 149
 	/// @since Version 1.0
150  
-	Circle operator[](const std::wstring& circle_id) const;
  150
+	Circle operator[](const std::wstring& circle_name) const;
151 151
 
152 152
 	/// @~english
153 153
 	/// @brief Get circle information
@@ -169,8 +169,24 @@ class GOOGLEPLUSLIBRARY_API Circles
169 169
 	/// @since Version 1.0
170 170
 	Circle operator[](unsigned int index) const;
171 171
 
172  
-	void createCircle(const CircleCreateSetting& create_setting);
173  
-	
  172
+	/// @~english
  173
+	/// @brief Create a new circle
  174
+	/// @details Returns an empty string if fail to create the circle
  175
+	/// @invariant This function does not throw an exception
  176
+	/// @invariant This function is thread-safe
  177
+	/// @param[in] create_setting Setting in creating
  178
+	/// @return Circle ID of the newly created Circle
  179
+	/// @~japanese
  180
+	/// @brief サークルを新規作成します
  181
+	/// @details サークルの作成に失敗した場合は空の文字列を返します
  182
+	/// @invariant この関数は例外を投げません
  183
+	/// @invariant この関数はスレッドセーフです
  184
+	/// @param[in] create_setting 作成における設定
  185
+	/// @return 作成したサークルのサークルID
  186
+	/// @~
  187
+	/// @since Version 1.0
  188
+	std::wstring createCircle(const CircleCreateSetting& create_setting) const;
  189
+		
174 190
 	/// @~english
175 191
 	/// @brief Get the number of circles that are included in the list
176 192
 	/// @invariant This function does not throw an exception
2  Include/GooglePlusLibrary.hpp
@@ -14,6 +14,8 @@
14 14
 #include <Account/Accounts/FriendSuggestions.hpp>
15 15
 
16 16
 #include <Circle/Circles.hpp>
  17
+#include <Circle/CircleCreateSetting.hpp>
  18
+#include <Circle/CircleEditSetting.hpp>
17 19
 #include <Circle/Circle.hpp>
18 20
 
19 21
 #include <Hangout/Hangouts.hpp>
31  LuaScript/CreateCircle.lua
... ...
@@ -0,0 +1,31 @@
  1
+function createCircle(account_id, circle_create_setting)
  2
+	
  3
+	require("LuaScript/Utility")
  4
+	
  5
+	if(isStringNullOrEmpty(account_id) == nil) then
  6
+		print("StringNullOrEmpty(account_id) == nil")
  7
+		do return "" end
  8
+	end
  9
+		
  10
+	connection = Connection()
  11
+	connection:setCurrentAccountID(account_id)
  12
+
  13
+	url = "https://plus.google.com/_/socialgraph/mutate/create/?t=2&f=false&af=true&as=0&_reqid=" .. Utility.getRandomRequestID() .. "&rt=j";
  14
+		
  15
+	at = InformationContainer.getInformationByAccountID("at", account_id)
  16
+	if(isStringNullOrEmpty(at) == nil) then
  17
+		print("StringNullOrEmpty(at) == nil")
  18
+		do return "" end
  19
+	end
  20
+
  21
+	circle_name = circle_create_setting:getCircleName()
  22
+	description = circle_create_setting:getDescription()
  23
+	parameter = "n=" .. Connection.escapeString(circle_name) .. "&m=%5B%5B%5D%5D&d=" .. Connection.escapeString(description) .. "&at=" .. Connection.escapeString(at)
  24
+	
  25
+	response = connection:httpPost(url, parameter)
  26
+	json = connection:convertResponseToJson(response:getResponseBody())
  27
+	
  28
+	circle_id = json:selectChildNode("[0].[1].[1].[0]"):asString()
  29
+	
  30
+	do return circle_id end
  31
+end
26  LuaScript/DeleteCircle.lua
... ...
@@ -0,0 +1,26 @@
  1
+function deleteCircle(account_id, circle_id)
  2
+	
  3
+	require("LuaScript/Utility")
  4
+	
  5
+	if(isStringNullOrEmpty(account_id) == nil) then
  6
+		print("StringNullOrEmpty(account_id) == nil")
  7
+		do return false end
  8
+	end
  9
+		
  10
+	connection = Connection()
  11
+	connection:setCurrentAccountID(account_id)
  12
+
  13
+	url = "https://plus.google.com/_/socialgraph/mutate/delete/?_reqid=" .. Utility.getRandomRequestID() .. "&rt=j"
  14
+		
  15
+	at = InformationContainer.getInformationByAccountID("at", account_id)
  16
+	if(isStringNullOrEmpty(at) == nil) then
  17
+		print("StringNullOrEmpty(at) == nil")
  18
+		do return false end
  19
+	end
  20
+
  21
+	parameter = "c=" .. Connection.escapeString("[\"" .. circle_id .. "\"]") .. "&at=" .. Connection.escapeString(at)
  22
+	
  23
+	response = connection:httpPost(url, parameter)
  24
+	
  25
+	do return true end
  26
+end
13  LuaScript/UpdateAddedAccountList.lua → LuaScript/UpdateAddedAccounts.lua
@@ -15,8 +15,8 @@ function updateAddedAccounts(account_id)
15 15
 	
16 16
 	connection = Connection()
17 17
 	connection:setCurrentAccountID(account_id)
18  
-	
19  
-	url = "https://plus.google.com/_/socialgraph/lookup/circles/?ct=2&m=true&tag=fg&_reqid=" .. Utility.getRandomRequestID() .. "&rt=j"
  18
+
  19
+	url = "https://plus.google.com/_/socialgraph/lookup/circles/?ct=2&m=true&_reqid=" .. Utility.getRandomRequestID() .. "&rt=j"
20 20
 	print(url)
21 21
 	parameter = "at=" .. at
22 22
 	print(parameter)
@@ -25,11 +25,8 @@ function updateAddedAccounts(account_id)
25 25
 	--print(response_body)
26 26
 	json = connection:convertResponseToJson(response_body)
27 27
 	
28  
-	--child_json = json:selectChildNode("")
29  
-	
30  
-	json:show()
  28
+	child_json = json:selectChildNode("[0].[1].[1]")
31 29
 	
32  
-	--[[
33 30
 	print("id0:" .. json:selectChildNode("[0].[1].[1].[0].[0].[0]"):asString())
34 31
 	print("id1:" .. json:selectChildNode("[0].[1].[1].[1].[0].[0]"):asString())
35 32
 	print("id2:" .. json:selectChildNode("[0].[1].[1].[2].[0].[0]"):asString())
@@ -59,8 +56,6 @@ function updateAddedAccounts(account_id)
59 56
 		end
60 57
 		print("circle_name:" .. circle_name)
61 58
 	end
62  
-	
63  
-	print(response_body)
64  
-	]]
  59
+		
65 60
 	do return true end
66 61
 end
0  LuaScript/UpdateAddedYouAccountList.lua → LuaScript/UpdateAddedYouAccounts.lua
File renamed without changes
52  LuaScript/UpdateCircles.lua
... ...
@@ -0,0 +1,52 @@
  1
+function updateCircles(account_id, circle_datas)
  2
+	
  3
+	require("LuaScript/Utility")
  4
+	
  5
+	if(isStringNullOrEmpty(account_id) == nil) then
  6
+		print("StringNullOrEmpty(account_id) == nil")
  7
+		do return false end
  8
+	end
  9
+	
  10
+	at = InformationContainer.getInformationByAccountID("at", account_id)
  11
+	if(isStringNullOrEmpty(at) == nil) then
  12
+		print("StringNullOrEmpty(at) == nil")
  13
+		do return false end
  14
+	end
  15
+	
  16
+	connection = Connection()
  17
+	connection:setCurrentAccountID(account_id)
  18
+
  19
+	url = "https://plus.google.com/_/socialgraph/lookup/circles/?ct=2&m=true&tag=fg&_reqid=" .. Utility.getRandomRequestID() .. "&rt=j"
  20
+	print(url)
  21
+	parameter = "at=" .. at
  22
+	print(parameter)
  23
+	response = connection:httpPost(url, parameter)
  24
+	response_body = response:getResponseBody()
  25
+	--print(response_body)
  26
+	json = connection:convertResponseToJson(response_body)
  27
+	
  28
+	child_json = json:selectChildNode("[0].[1].[1]")
  29
+	
  30
+	for count = 0, child_json:count(), 1 do
  31
+		print(count)
  32
+		circle_info_json = child_json:selectChildNode(count)
  33
+		
  34
+		circle_id = circle_info_json:selectChildNode("[0].[0]"):asString()
  35
+		
  36
+		if(isStringNullOrEmpty(circle_id) == nil) then
  37
+			print("StringNullOrEmpty(circle_id) == nil")
  38
+			do return false end
  39
+		end
  40
+		print("circle_id:" .. circle_id)
  41
+		
  42
+		circle_name = circle_info_json:selectChildNode("[1].[0]"):asString()
  43
+		
  44
+		if(isStringNullOrEmpty(circle_name) == nil) then
  45
+			print("StringNullOrEmpty(circle_name) == nil")
  46
+			do return false end
  47
+		end
  48
+		print("circle_name:" .. circle_name)
  49
+	end
  50
+	print("end")
  51
+	do return true end
  52
+end
0  LuaScript/UpdateIgnoredAccountList.lua → LuaScript/UpdateIgnoredAccounts.lua
File renamed without changes
0  LuaScript/UpdateNotificationList.lua → LuaScript/UpdateNotifications.lua
File renamed without changes
110  LuaScript/signal.lua
... ...
@@ -1,110 +0,0 @@
1  
---[[
2  
-signal.lua
3  
-Copyright (c) 2011 Josh Tynjala
4  
-Released under the MIT license.
5  
-
6  
-Based on as3-signals by Robert Penner
7  
-http://github.com/robertpenner/as3-signals
8  
-Copyright (c) 2009 Robert Penner
9  
-Released under the MIT license.
10  
-]]--
11  
-module(..., package.seeall)
12  
-
13  
-local function indexOf(t, value, start)
14  
-	if start == nil then
15  
-		start = 1
16  
-	end
17  
-	for i,v in ipairs(t) do
18  
-		if i >= start and v == value then
19  
-			return i
20  
-		end
21  
-	end
22  
-	return nil
23  
-end
24  
-
25  
-local listenerMT = {};
26  
-
27  
---this is used by the == comparison in indexOf
28  
-listenerMT.__eq = function (a, b)
29  
-	return a.func == b.func and a.scope == b.scope
30  
-end
31  
-
32  
-local function newListener(func, scope)
33  
-	local listener =
34  
-	{
35  
-		func = func,
36  
-		scope = scope
37  
-	}
38  
-	setmetatable(listener, listenerMT)
39  
-	
40  
-	return listener
41  
-end
42  
-
43  
-function new()
44  
-	local signal = {}
45  
-	local listeners = {}
46  
-	local oneTimeListeners = {}
47  
-	
48  
-	signal.numListeners = 0
49  
-
50  
-	function signal:add(func, scope)
51  
-		if func == nil then
52  
-			error("Function passed to signal:add() must not non-nil.")
53  
-		end
54  
-		local listener = newListener(func, scope)
55  
-		table.insert(listeners, listener)
56  
-		self.numListeners = self.numListeners + 1
57  
-		return listener
58  
-	end
59  
-		
60  
-	function signal:addOnce(func, scope)
61  
-		local listener = self:add(listener)
62  
-		table.insert(oneTimeListeners, listener)
63  
-		return listener
64  
-	end
65  
-	
66  
-	function signal:dispatch(...)
67  
-		for i,listener in ipairs(listeners) do
68  
-			if listener.scope then
69  
-				listener.func(listener.scope, unpack(arg))
70  
-			else
71  
-				listener.func(unpack(arg))
72  
-			end
73  
-		end
74  
-		
75  
-		for i,listener in ipairs(oneTimeListeners) do
76  
-			self:remove(listener)
77  
-		end
78  
-	end
79  
-	
80  
-	function signal:remove(func, scope)
81  
-		local listener
82  
-		if type(func) == "function" then
83  
-			listener = newListener(func, scope)
84  
-		else
85  
-			--special case used by removeAll so that we don't need to create
86  
-			--a new instance of the listener
87  
-			listener = func
88  
-		end
89  
-		local index = indexOf(listeners, listener)
90  
-		if index ~= nil then
91  
-			table.remove(listeners, index)
92  
-			self.numListeners = self.numListeners - 1
93  
-			
94  
-			--check if it was a one-time listener
95  
-			index = indexOf(oneTimeListeners, listener)
96  
-			if index ~= nil then
97  
-				table.remove(oneTimeListeners, index)
98  
-			end
99  
-		end
100  
-		
101  
-	end
102  
-	
103  
-	function signal:removeAll()
104  
-		while #listeners > 0 do
105  
-			self:remove(listeners[1])
106  
-		end
107  
-	end
108  
-	
109  
-	return signal
110  
-end
7  Src/Account/Account/Account.cpp
... ...
@@ -1,4 +1,4 @@
1  
-#include <Account/Account.hpp>
  1
+#include <Account/Account.hpp>
2 2
 #include <Account/Account/AccountData.hpp>
3 3
 #include <Datas/DataContainer.hpp>
4 4
 
@@ -65,6 +65,11 @@ AddedYouAccounts Account::getAddedYouAccounts() const
65 65
 	return account_data_->getAddedYouAccounts();
66 66
 }
67 67
 
  68
+Circles Account::getAssociatedCircles() const
  69
+{
  70
+	return account_data_->getAssociatedCircles();
  71
+}
  72
+
68 73
 bool Account::isNull() const
69 74
 {
70 75
 	return getAccountID().empty();
8  Src/Account/Account/AccountData.cpp
... ...
@@ -1,4 +1,4 @@
1  
-#include <Account/Account/AccountData.hpp>
  1
+#include <Account/Account/AccountData.hpp>
2 2
 #include <Account/AccountID/AccountID.hpp>
3 3
 #include <Stream/AccountStream.hpp>
4 4
 #include <Account/Accounts/AddedAccounts.hpp>
@@ -84,6 +84,12 @@ AddedYouAccounts AccountData::getAddedYouAccounts() const
84 84
 	return added_you_accounts_;
85 85
 }
86 86
 
  87
+Circles AccountData::getAssociatedCircles() const
  88
+{
  89
+	ScopedReadLock lock(read_write_mutex_);
  90
+	return associated_circles_;
  91
+}
  92
+
87 93
 bool AccountData::isNull() const
88 94
 {
89 95
 	return getAccountID().empty();
18  Src/Account/Account/AccountData.hpp
@@ -11,6 +11,7 @@
11 11
 #include <Stream/AccountStream.hpp>
12 12
 #include <Account/Accounts/AddedAccounts.hpp>
13 13
 #include <Account/Accounts/AddedYouAccounts.hpp>
  14
+#include <Circle/Circles.hpp>
14 15
 
15 16
 #include <Thread/ReadWriteMutex.hpp>
16 17
 
@@ -213,6 +214,23 @@ class GOOGLEPLUSLIBRARY_API AccountData
213 214
 
214 215
 public:
215 216
 	/// @~english
  217
+	/// @brief Get the circle that contains this account
  218
+	/// @invariant This function does not throw an exception
  219
+	/// @invariant This function is thread-safe
  220
+	/// @return Circle that contains a list of this account
  221
+	/// @~japanese
  222
+	/// @brief このアカウントを含んだサークルを取得します
  223
+	/// @invariant この関数は例外を投げません
  224
+	/// @invariant この関数はスレッドセーフです
  225
+	/// @return このアカウントを含んだサークルのリスト
  226
+	/// @~
  227
+	/// @since Version 1.0
  228
+	Circles getAssociatedCircles() const;
  229
+private:
  230
+	Circles associated_circles_;
  231
+
  232
+public:
  233
+	/// @~english
216 234
 	/// @brief Gets whether this account data is empty
217 235
 	/// @invariant This function does not throw an exception
218 236
 	/// @invariant This function is thread-safe
2  Src/Account/AccountID/AccountID.cpp
... ...
@@ -1,4 +1,4 @@
1  
-#include <Account/AccountID/AccountID.hpp>
  1
+#include <Account/AccountID/AccountID.hpp>
2 2
 
3 3
 #ifdef GOOGLEPLUSLIBRARY_NO_WARNINGS
4 4
 #ifdef _MSC_VER
2  Src/Account/AccountProfile/AccountName/AccountName.cpp
... ...
@@ -1,4 +1,4 @@
1  
-#include <Account/AccountProfile/AccountName.hpp>
  1
+#include <Account/AccountProfile/AccountName.hpp>
2 2
 #include <Account/AccountProfile/AccountName/AccountNameData.hpp>
3 3
 
4 4
 #include <cassert>
2  Src/Account/AccountProfile/AccountName/AccountNameData.cpp
... ...
@@ -1,4 +1,4 @@
1  
-#include <Account/AccountProfile/AccountName/AccountNameData.hpp>
  1
+#include <Account/AccountProfile/AccountName/AccountNameData.hpp>
2 2
 
3 3
 namespace Gplusnasite
4 4
 {
2  Src/Account/AccountProfile/AccountName/MyAccountName.cpp
... ...
@@ -1,4 +1,4 @@
1  
-#include <Account/AccountProfile/MyAccountName.hpp>
  1
+#include <Account/AccountProfile/MyAccountName.hpp>
2 2
 #include <Account/AccountProfile/AccountName/AccountNameData.hpp>
3 3
 
4 4
 #include <cassert>
2  Src/Account/AccountProfile/AccountProfile.cpp
... ...
@@ -1,4 +1,4 @@
1  
-#include <Account/AccountProfile/AccountProfile.hpp>
  1
+#include <Account/AccountProfile/AccountProfile.hpp>
2 2
 #include <Account/AccountProfile/AccountProfileData.hpp>
3 3
 
4 4
 #include <Account/AccountProfile/Employment/Employment.hpp>
2  Src/Account/AccountProfile/AccountProfileData.cpp
... ...
@@ -1,4 +1,4 @@
1  
-#include <Account/AccountProfile/AccountProfileData.hpp>
  1
+#include <Account/AccountProfile/AccountProfileData.hpp>
2 2
 
3 3
 namespace Gplusnasite
4 4
 {
2  Src/Account/AccountProfile/ContactAddress/ContactAddress.cpp
... ...
@@ -1,4 +1,4 @@
1  
-#include <Account/AccountProfile/ContactAddress/ContactAddress.hpp>
  1
+#include <Account/AccountProfile/ContactAddress/ContactAddress.hpp>
2 2
 #include <Account/AccountProfile/ContactAddress/ContactAddressData.hpp>
3 3
 
4 4
 namespace Gplusnasite
2  Src/Account/AccountProfile/ContactAddress/ContactAddressData.cpp
... ...
@@ -1,4 +1,4 @@
1  
-#include <Account/AccountProfile/ContactAddress/ContactAddressData.hpp>
  1
+#include <Account/AccountProfile/ContactAddress/ContactAddressData.hpp>
2 2
 
3 3
 namespace Gplusnasite
4 4
 {
2  Src/Account/AccountProfile/ContactAddress/MyContactAddress.cpp
... ...
@@ -1,4 +1,4 @@
1  
-#include <Account/AccountProfile/ContactAddress/MyContactAddress.hpp>
  1
+#include <Account/AccountProfile/ContactAddress/MyContactAddress.hpp>
2 2
 #include <Account/AccountProfile/ContactAddress/ContactAddressData.hpp>
3 3
 
4 4
 namespace Gplusnasite
2  Src/Account/AccountProfile/Education/Education.cpp
... ...
@@ -1,4 +1,4 @@
1  
-#include <Account/AccountProfile/Education/Education.hpp>
  1
+#include <Account/AccountProfile/Education/Education.hpp>
2 2
 #include <Account/AccountProfile/Education/EducationData.hpp>
3 3
 
4 4
 namespace Gplusnasite
2  Src/Account/AccountProfile/Education/EducationData.cpp
... ...
@@ -1,4 +1,4 @@
1  
-#include <Account/AccountProfile/Education/EducationData.hpp>
  1
+#include <Account/AccountProfile/Education/EducationData.hpp>
2 2
 
3 3
 namespace Gplusnasite
4 4
 {
2  Src/Account/AccountProfile/Education/MyEducation.cpp
... ...
@@ -1,4 +1,4 @@
1  
-#include <Account/AccountProfile/Education/MyEducation.hpp>
  1
+#include <Account/AccountProfile/Education/MyEducation.hpp>
2 2
 #include <Account/AccountProfile/Education/EducationData.hpp>
3 3
 
4 4
 namespace Gplusnasite
2  Src/Account/AccountProfile/Employment/Employment.cpp
... ...
@@ -1,4 +1,4 @@
1  
-#include <Account/AccountProfile/Employment/Employment.hpp>
  1
+#include <Account/AccountProfile/Employment/Employment.hpp>
2 2
 #include <Account/AccountProfile/Employment/EmploymentData.hpp>
3 3
 
4 4
 namespace Gplusnasite
2  Src/Account/AccountProfile/Employment/EmploymentData.cpp
... ...
@@ -1,4 +1,4 @@
1  
-#include <Account/AccountProfile/Employment/EmploymentData.hpp>
  1
+#include <Account/AccountProfile/Employment/EmploymentData.hpp>
2 2
 
3 3
 namespace Gplusnasite
4 4
 {
2  Src/Account/AccountProfile/Employment/MyEmployment.cpp
... ...
@@ -1,4 +1,4 @@
1  
-#include <Account/AccountProfile/Employment/MyEmployment.hpp>
  1
+#include <Account/AccountProfile/Employment/MyEmployment.hpp>
2 2
 #include <Account/AccountProfile/Employment/EmploymentData.hpp>
3 3
 
4 4
 namespace Gplusnasite
2  Src/Account/AccountProfile/LabeledLink/LabeledLink.cpp
... ...
@@ -1,4 +1,4 @@
2  Src/Account/AccountProfile/LabeledLink/LabeledLinkData.cpp
... ...
@@ -1,4 +1,4 @@
2  Src/Account/AccountProfile/LabeledLink/MyLabeledLink.cpp
... ...
@@ -1,4 +1,4 @@
2  Src/Account/AccountProfile/LivedPlace/LivedPlace.cpp
... ...
@@ -1,4 +1,4 @@
1  
-#include <Account/AccountProfile/LivedPlace/LivedPlace.hpp>
  1
+#include <Account/AccountProfile/LivedPlace/LivedPlace.hpp>
2 2
 #include <Account/AccountProfile/LivedPlace/LivedPlaceData.hpp>
3 3
 
4 4
 namespace Gplusnasite
2  Src/Account/AccountProfile/LivedPlace/LivedPlaceData.cpp
... ...
@@ -1,4 +1,4 @@
1  
-#include <Account/AccountProfile/LivedPlace/LivedPlaceData.hpp>
  1
+#include <Account/AccountProfile/LivedPlace/LivedPlaceData.hpp>
2 2
 
3 3
 namespace Gplusnasite
4 4
 {
2  Src/Account/AccountProfile/LivedPlace/MyLivedPlace.cpp