オブジェクト管理クラス. [詳細]
#include "necbaas/nb_object.h"
Public メソッド | |
NbObject () | |
[内部処理用] [詳細] | |
NbObject (const std::shared_ptr< NbService > &service, const std::string &bucket_name) | |
コンストラクタ. [詳細] | |
virtual | ~NbObject () |
デストラクタ. [詳細] | |
NbResult< NbObject > | PartUpdateObject (const NbJsonObject &json, bool acl=false) |
オブジェクトを部分更新する. [詳細] | |
NbResult< NbObject > | DeleteObject (bool delete_mark=false) |
オブジェクトを削除する. [詳細] | |
NbResult< NbObject > | Save (bool acl=false) |
オブジェクトを保存する. [詳細] | |
int | GetTimeout () const |
RESTタイムアウト取得. [詳細] | |
void | SetTimeout (int timeout) |
RESTタイムアウト設定. [詳細] | |
const std::string & | GetBucketName () const |
バケット名取得. [詳細] | |
const std::string & | GetObjectId () const |
オブジェクトID取得. [詳細] | |
void | SetObjectId (const std::string &object_id) |
オブジェクトID設定. [詳細] | |
const std::tm | GetCreatedTime () const |
オブジェクトの作成日時取得. [詳細] | |
const std::tm | GetUpdatedTime () const |
オブジェクトの更新日時取得. [詳細] | |
void | SetCreatedTime (const std::tm &created_time) |
オブジェクトの作成日時設定. [詳細] | |
const std::string & | GetETag () const |
ETag取得. [詳細] | |
void | SetETag (const std::string &etag) |
ETag設定. [詳細] | |
const NbAcl & | GetAcl () const |
ACL取得. [詳細] | |
void | SetAcl (const NbAcl &acl) |
ACL設定. [詳細] | |
bool | IsDeleteMark () const |
削除マーク付与確認. [詳細] | |
void | SetObjectData (const NbJsonObject &json) |
オブジェクトデータ設定. [詳細] | |
void | SetCurrentParam (const NbJsonObject &json) |
[内部処理用] [詳細] | |
Public メソッド inherited from necbaas::NbJsonObject | |
NbJsonObject () | |
コンストラクタ. [詳細] | |
NbJsonObject (const std::string &json_string) | |
コンストラクタ. [詳細] | |
NbJsonObject (const std::vector< char > &json_char) | |
コンストラクタ. [詳細] | |
virtual | ~NbJsonObject () |
デストラクタ. [詳細] | |
bool | PutAll (const std::string &json) |
全データセット. [詳細] | |
std::vector< std::string > | GetKeySet () const |
キーセット取得. [詳細] | |
int | GetInt (const std::string &key, int default_value=0) const |
整数値取得. [詳細] | |
int64_t | GetInt64 (const std::string &key, int64_t default_value=0) const |
64bit整数値取得. [詳細] | |
double | GetDouble (const std::string &key, double default_value=0.0) const |
浮動小数点値取得. [詳細] | |
bool | GetBoolean (const std::string &key, bool default_value=false) const |
真偽値取得. [詳細] | |
std::string | GetString (const std::string &key, const std::string default_value="") const |
文字列取得. [詳細] | |
NbJsonObject | GetJsonObject (const std::string &key) const |
Jsonオブジェクト取得. [詳細] | |
NbJsonArray | GetJsonArray (const std::string &key) const |
Json配列取得. [詳細] | |
const Json::Value & | GetSubstitutableValue () const |
[内部処理用] [詳細] | |
Json::Value & | operator[] (const std::string &key) |
Value設定用添え字演算子. [詳細] | |
const Json::Value & | operator[] (const std::string &key) const |
Value参照用添え字演算子. [詳細] | |
void | PutJsonObject (const std::string &key, const NbJsonObject &json_object) |
Jsonオブジェクト設定. [詳細] | |
void | PutJsonArray (const std::string &key, const NbJsonArray &json_array) |
Json配列設定. [詳細] | |
void | PutNull (const std::string &key) |
null設定. [詳細] | |
unsigned int | GetSize () const |
サイズ取得. [詳細] | |
bool | IsEmpty () const |
オブジェクト空確認. [詳細] | |
bool | IsMember (const std::string &key) const |
Key存在確認. [詳細] | |
NbJsonType | GetType (const std::string &key) const |
Jsonタイプ取得. [詳細] | |
void | Remove (const std::string &key) |
Key削除. [詳細] | |
void | Clear () |
全データ削除. [詳細] | |
std::string | ToJsonString () const |
Json文字列変換. [詳細] | |
void | Replace (const Json::Value &value) |
[内部処理用] [詳細] | |
bool | operator== (const NbJsonObject &other) const |
==演算子. [詳細] | |
Additional Inherited Members | |
Protected 変数 inherited from necbaas::NbJsonObject | |
Json::Value | value_ |
オブジェクト管理クラス.
オブジェクトストレージに格納される Json オブジェクトデータ1件を表現する。
JsonオブジェクトのFieldに予約名(_id, createdAt, updatedAt, ACL, etag, _deleted)の設定が可能であるが、 Saveメソッド実行時に予約名は削除される。
オブジェクトIDや作成日時を変更したい場合は、対応するSetメソッドを使用すること。
本クラスのインスタンスはスレッドセーフではない
necbaas::NbObject::NbObject | ( | ) |
[内部処理用]
necbaas::NbObject::NbObject | ( | const std::shared_ptr< NbService > & | service, |
const std::string & | bucket_name | ||
) |
コンストラクタ.
[in] | service | サービスインスタンス |
[in] | bucket_name | バケット名 |
|
virtual |
デストラクタ.
オブジェクトを削除する.
インスタンスに設定されているバケット名、オブジェクトIDが空文字の場合は、エラーを返す。
インスタンスにETagが設定されている場合、ETagがリクエストパラメータに設定される。
delete_markがtureの場合、削除マークのみを行う。
[in] | delete_mark | 削除マークのみを行うフラグ |
const NbAcl& necbaas::NbObject::GetAcl | ( | ) | const |
ACL取得.
const std::string& necbaas::NbObject::GetBucketName | ( | ) | const |
バケット名取得.
const std::tm necbaas::NbObject::GetCreatedTime | ( | ) | const |
オブジェクトの作成日時取得.
std::tm の tm_year が 0 の場合は無効データ。
const std::string& necbaas::NbObject::GetETag | ( | ) | const |
ETag取得.
const std::string& necbaas::NbObject::GetObjectId | ( | ) | const |
オブジェクトID取得.
int necbaas::NbObject::GetTimeout | ( | ) | const |
RESTタイムアウト取得.
const std::tm necbaas::NbObject::GetUpdatedTime | ( | ) | const |
オブジェクトの更新日時取得.
std::tm の tm_year が 0 の場合は無効データ。
bool necbaas::NbObject::IsDeleteMark | ( | ) | const |
削除マーク付与確認.
true | 削除マークあり |
false | 削除マークなし |
NbResult<NbObject> necbaas::NbObject::PartUpdateObject | ( | const NbJsonObject & | json, |
bool | acl = false |
||
) |
オブジェクトを部分更新する.
部分更新用Jsonオブジェクトが空の場合は、パラメータエラーを返す。
インスタンスに設定されているバケット名、オブジェクトIDが空文字の場合は、エラーを返す。
aclがtrueの場合は、インスタンスに設定されているデータを使用して更新する。
createdAtは、自インスタンスに設定されているデータを使用して更新する。空文字の場合は更新しない。
部分更新用Jsonオブジェクトに予約名(_id, createdAt, updatedAt, ACL, etag, _deleted)が使用されている場合は削除する。
[in] | json | 部分更新用Jsonオブジェクト |
[in] | acl | ACL更新フラグ |
オブジェクトを保存する.
インスタンスに設定されているバケット名が空文字の場合は、エラーを返す。
インスタンスに設定されているオブジェクトIDが空文字の場合は新規作成、空文字でない場合は対象IDを完全上書きする。
新規作成の場合
作成用のJsonオブジェクトに予約名(_id, createdAt, updatedAt, ACL, etag, _deleted)が使用されている場合は削除する。
aclがtrueの場合、インスタンスに設定されているデータを使用する。
完全上書きの場合
作成用のJsonオブジェクトに予約名(_id, createdAt, updatedAt, ACL, etag, _deleted)が使用されている場合は削除する。
aclはフラグに関係なく、インスタンスに設定されているデータを使用して更新する。
createdAtは、自インスタンスに設定されているデータを使用して更新する。空文字の場合は更新しない。
インスタンスにETagが設定されている場合、ETagがリクエストパラメータに設定される。
[in] | acl | ACL更新フラグ |
void necbaas::NbObject::SetAcl | ( | const NbAcl & | acl | ) |
ACL設定.
[in] | acl | ACL |
void necbaas::NbObject::SetCreatedTime | ( | const std::tm & | created_time | ) |
オブジェクトの作成日時設定.
std::tm の tm_year が 0 の場合は無効データを設定する。
[in] | created_time | オブジェクトの作成日時(UTC) |
void necbaas::NbObject::SetCurrentParam | ( | const NbJsonObject & | json | ) |
[内部処理用]
void necbaas::NbObject::SetETag | ( | const std::string & | etag | ) |
ETag設定.
[in] | etag | ETag |
void necbaas::NbObject::SetObjectData | ( | const NbJsonObject & | json | ) |
オブジェクトデータ設定.
Jsonオブジェクトを設定する。
Jsonオブジェクトデータは、渡されたJsonオブジェクトに差し替えられる(現在設定されているデータは破棄される)
[in] | json | Jsonオブジェクト |
void necbaas::NbObject::SetObjectId | ( | const std::string & | object_id | ) |
オブジェクトID設定.
[in] | object_id | オブジェクトID |
void necbaas::NbObject::SetTimeout | ( | int | timeout | ) |
RESTタイムアウト設定.
RESTのタイムアウト値(秒)を設定する。
0以下の値が設定された場合は、デフォルト値(60秒)が設定される。
[in] | timeout | タイムアウト(秒) |