Proud::CDbCacheClient2 클래스 참조abstract

Public 멤버 함수

virtual bool Connect (CDbCacheClient2ConnectParameter &param, ErrorInfoPtr &outError)=0
 
virtual bool Connect (CDbCacheClient2ConnectParameter &param)=0
 
virtual void Disconnect ()=0
 
virtual void RequestExclusiveLoadData (String rootTableName, String fieldName, CVariant cmpValue, intptr_t tag, ByteArray &message=ByteArray())=0
 
virtual void RequestExclusiveLoadDataByGuid (String rootTableName, Guid rootUUID, intptr_t tag, ByteArray &message=ByteArray())=0
 
virtual void RequestExclusiveLoadDataByQuery (String rootTableName, String queryString, intptr_t tag, ByteArray &message=ByteArray())=0
 
virtual void RequestExclusiveLoadNewData (String rootTableName, CPropNodePtr addData, intptr_t tag, bool transaction=false)=0
 
virtual bool RequestAddData (Guid rootUUID, Guid ownerUUID, CPropNodePtr addData, intptr_t tag)=0
 
virtual bool RequestUpdateData (CPropNodePtr updateData, intptr_t tag)=0
 
virtual bool RequestRemoveData (Guid rootUUID, Guid removeUUID, intptr_t tag)=0
 
virtual bool RequestRecursiveUpdateData (CLoadedData2Ptr loadedData, intptr_t tag, bool transactional=false)=0
 
virtual bool BlockedAddData (Guid rootUUID, Guid ownerUUID, CPropNodePtr addData, uint32_t timeOutTime=30000, ErrorInfoPtr outError=ErrorInfoPtr())=0
 
virtual bool BlockedUpdateData (CPropNodePtr updateData, uint32_t timeOutTime=30000, ErrorInfoPtr outError=ErrorInfoPtr())=0
 
virtual bool BlockedRemoveData (Guid rootUUID, Guid removeUUID, uint32_t timeOutTime=30000, ErrorInfoPtr outError=ErrorInfoPtr())=0
 
virtual bool BlockedRecursiveUpdateData (CLoadedData2Ptr loadedData, bool transactional=false, uint32_t timeOutTime=30000, ErrorInfoPtr outError=ErrorInfoPtr())=0
 
virtual bool UnilateralAddData (Guid rootUUID, Guid ownerUUID, CPropNodePtr addData, bool writeDbmsImmediately=true)=0
 
virtual bool UnilateralUpdateData (CPropNodePtr updateData, bool writeDbmsImmediately=true)=0
 
virtual bool UnilateralMoveData (String rootTableName, Guid rootUUID, Guid nodeUUID, Guid destRootUUID, Guid destNodeUUID, bool writeDbmsImmediately=true)=0
 
virtual bool UnilateralRemoveData (Guid rootUUID, Guid removeUUID, bool writeDbmsImmediately=true)=0
 
virtual bool UnilateralRecursiveUpdateData (CLoadedData2Ptr loadedData, bool transactional=false, bool writeDbmsImmediately=true)=0
 
virtual bool UnloadDataBySessionGuid (Guid sessionGuid, ByteArray &messageToNextLoader=ByteArray())=0
 
virtual void DenyUnloadData (Guid sessionGuid, ByteArray &messageToRequester=ByteArray())=0
 
virtual void ForceCompleteUnload (Guid rootUUID)=0
 
virtual void RequestNonExclusiveSnapshotData (String rootTableName, String fieldName, CVariant cmpValue, intptr_t tag)=0
 
virtual void RequestNonExclusiveSnapshotDataByGuid (String rootTableName, Guid rootUUID, intptr_t tag)=0
 
virtual void RequestNonExclusiveSnapshotDataByQuery (String rootTableName, String searchString, intptr_t tag)=0
 
virtual void RequestNonExclusiveAddData (String rootTableName, Guid rootUUID, Guid ownerUUID, CPropNodePtr addData, intptr_t tag, ByteArray &messageToLoader=ByteArray())=0
 
virtual void RequestNonExclusiveRemoveData (String rootTableName, Guid rootUUID, Guid removeUUID, intptr_t tag, ByteArray &messageToLoader=ByteArray())=0
 
virtual void RequestNonExclusiveSetValueIf (String rootTableName, Guid rootUUID, Guid nodeUUID, String propertyName, CVariant newValue, ValueCompareType compareType, CVariant compareValue, intptr_t tag, ByteArray &messageToLoader=ByteArray())=0
 
virtual void RequestNonExclusiveModifyValue (String rootTableName, Guid rootUUID, Guid nodeUUID, String propertyName, ValueOperType operType, CVariant value, intptr_t tag, ByteArray &messageToLoader=ByteArray())=0
 
virtual bool RequestIsolateData (Guid rootUUID, String rootTableName, Guid &outSessionGuid)=0
 
virtual bool RequestDeisolateData (Guid rootUUID, String filterText, Guid &outSessionGuid)=0
 
virtual CLoadedData2Ptr GetClonedLoadedDataBySessionGuid (Guid sessionGuid)=0
 
virtual CLoadedData2Ptr GetClonedLoadedDataByUUID (Guid rootUUID)=0
 
virtual HostID GetLocalHostID ()=0
 
virtual bool IsLoggedOn ()=0
 

정적 Public 멤버 함수

static PROUDSRV_API
CDbCacheClient2
New ()
 

상세한 설명

멤버 함수 문서화

virtual bool Proud::CDbCacheClient2::BlockedAddData ( Guid  rootUUID,
Guid  ownerUUID,
CPropNodePtr  addData,
uint32_t  timeOutTime = 30000,
ErrorInfoPtr  outError = ErrorInfoPtr() 
)
pure virtual

블록형 메서드 입니다.

  • 요청응답형과 마찬가지로 먼저 DBMS에 기록후 메모리에 업데이트 됩니다.
  • 요청응답형과의 차이는 요청이 처리되기 전까지 리턴하지 않습니다. 요청이 처리되면 리턴합니다.
    매개변수
    rootUUIDadd할 데이터의 rootUUID
    ownerUUIDadd할 데이터의 ownerUUID
    addDataadd할 데이터
    timeOutTime무한루프에 빠지지 않기위해 리턴을 기다리는시간. default 30sec
    outError에러타입
virtual bool Proud::CDbCacheClient2::BlockedRecursiveUpdateData ( CLoadedData2Ptr  loadedData,
bool  transactional = false,
uint32_t  timeOutTime = 30000,
ErrorInfoPtr  outError = ErrorInfoPtr() 
)
pure virtual

BlockedUpdateData(CPropNodePtr,...)과 달리 LoadedData가 가지고 있는 하위의 모든 node를 검색하여 add,update,remove등을 처리해 줍니다.

  • transactional을 지정하지 않으면 실패하였을때 일부 데이터가 dbms에 commit되었을수 있습니다.
  • Notify를 받기전에는 데이터를 신뢰 하시면 안됩니다.
  • 실패했을 경우 롤백하시려면 GetClonedDataBySessionGuid를 사용하십시요.
    매개변수
    loadedData변화를 저장할 LoadedData입니다.
    transactional본요청에 transaction을 할지에 대한 여부입니다.
    timeOutTime무한대기에 빠지지 않기위해 리턴을 기다리는 시간.default 30sec
    outError에러타입
virtual bool Proud::CDbCacheClient2::BlockedRemoveData ( Guid  rootUUID,
Guid  removeUUID,
uint32_t  timeOutTime = 30000,
ErrorInfoPtr  outError = ErrorInfoPtr() 
)
pure virtual

BlockedNonCacheAddData 참고

매개변수
rootUUIDadd할 데이터의 rootUUID
removeUUID제거하고자 하는 UUID
timeOutTime무한루프에 빠지지 않기위해 리턴을 기다리는시간. default 30sec
outError에러타입
virtual bool Proud::CDbCacheClient2::BlockedUpdateData ( CPropNodePtr  updateData,
uint32_t  timeOutTime = 30000,
ErrorInfoPtr  outError = ErrorInfoPtr() 
)
pure virtual

자세한 설명은 BlockedNonCacheAddData 참고

매개변수
updateDataupdate할 node
timeOutTime무한루프에 빠지지 않기위해 리턴을 기다리는시간. default 30sec
outError에러타입
virtual bool Proud::CDbCacheClient2::Connect ( CDbCacheClient2ConnectParameter param,
ErrorInfoPtr outError 
)
pure virtual

DB cache server2에 접속을 시도합니다.

매개변수
paramCDbCacheClient2를 구동하고 DBCacheServer2에 접속하기 위한 정보 객체 입니다.
virtual void Proud::CDbCacheClient2::DenyUnloadData ( Guid  sessionGuid,
ByteArray messageToRequester = ByteArray() 
)
pure virtual

Unload를 인정하지 않습니다.

  • OnUnloadDataRequested 에 콜백이 온 이후 호출해야 하는 인터페이스입니다.
  • 이 함수를 호출하면 다른 클라이언트의 독점권을 넘겨주지 않습니다.
    매개변수
    sessionGuid독점중인 데이터의 session Guid입니다. 독점권 요청자에게 전달하는 사용자 임의 메시지입니다. 요청자는 IDbCacheClientDelegate2.OnExclusiveLoadDataFailed의 args.m_loadResults[index].m_message를 통해 해당 메시지를 확인 할 수 있습니다.
virtual void Proud::CDbCacheClient2::Disconnect ( )
pure virtual

DB cache server2와 접속을 종료하고 모든 데이터를 일소합니다.

virtual void Proud::CDbCacheClient2::ForceCompleteUnload ( Guid  rootUUID)
pure virtual

Data tree를 DB cache로부터 완전히 unload해 버립니다. DB cache client뿐만 아니라 DB cache server에서도 unload를 합니다.

DB cache가 사용중인 data tree를 직접 DB 억세스를 통해 다루고자 한다면, 이 함수 대신 DB cache가 다루는 데이터를 DB가 직접 억세스하기 기능을 사용하십시오.

매개변수
rootUUIDunload하고자 하는 data tree의 root UUID입니다.
virtual CLoadedData2Ptr Proud::CDbCacheClient2::GetClonedLoadedDataBySessionGuid ( Guid  sessionGuid)
pure virtual

데이터의 최신 상태 값을 얻는다.

매개변수
sessionGuidRequestExclusiveLoadData 나 RequestExclusiveLoadNewData 에서 받은 session guid
반환값
얻은 데이터 객체. 사본이므로 얻은 객체의 값을 변형해도 실제 DB에 업데이트되지 못한다. 실제 DB에 업데이트하려면 변경한 후 객체를 UpdateData 함수를 통해 서버에 전송해야 한다.
virtual CLoadedData2Ptr Proud::CDbCacheClient2::GetClonedLoadedDataByUUID ( Guid  rootUUID)
pure virtual

GetClonedLoadedDataBySessionGuid 와 같은 함수이나, rootUUID로 찾는다. 자세한 설명은 GetClonedLoadedDataBySessionGuid 를 참고.

반환값
얻은 데이터 객체. 사본이므로 얻은 객체의 값을 변형해도 실제 DB에 업데이트되지 못한다. 실제 DB에 업데이트하려면 변경한 후 객체를 UpdateData 함수를 통해 서버에 전송해야 한다.
virtual HostID Proud::CDbCacheClient2::GetLocalHostID ( )
pure virtual

이 클라이언트의 HostID를 얻는다.

virtual bool Proud::CDbCacheClient2::IsLoggedOn ( )
pure virtual

이 DB cache client2가 DB cache server2에 로그온(인증)이 완료된 상태인지 여부를 구한다.

반환값
로그인 되어 있으면 true.
static PROUDSRV_API CDbCacheClient2* Proud::CDbCacheClient2::New ( )
static

DB cache client2 인스턴스를 생성합니다.

virtual bool Proud::CDbCacheClient2::RequestAddData ( Guid  rootUUID,
Guid  ownerUUID,
CPropNodePtr  addData,
intptr_t  tag 
)
pure virtual

요청 응답형 메서드입니다.

  • field에 constraints가 있는 경우 이 메서드를 쓰면 됩니다.
  • 각 함수에대해 Sucess 및 failed 이벤트가 도착합니다.
  • 데이터를 메모리에 캐쉬한뒤 나중에 DBMS에 기록하는게 아니라 요청시 DBMS에 기록후 메모리에 업데이트됩니다.
  • 아래는 사용 예입니다.
    intptr_t tag = new object;
    RequestAddData(rootUUID,ownerUUID,addData,tag);
    ->이후
    OnAddDataSuccess(CCallbackArgs &args)
    {
    args.m_tag;//여기로 아까 설정한 값이 들어옵니다.
    }
    매개변수
    rootUUIDadd할 데이터의 rootUUID
    ownerUUIDadd할 데이터의 ownerUUID
    addDataadd할 데이터
    tag이 요청에대한 사용자가 넣어줄 식별 값입니다. 콜백시 CCallbackArg 안의 m_tag 로 들어갑니다.
virtual bool Proud::CDbCacheClient2::RequestDeisolateData ( Guid  rootUUID,
String  filterText,
Guid outSessionGuid 
)
pure virtual

DB cache가 다루는 데이터를 DB가 직접 억세스하기 기능입니다. isolate 한 data tree 를 deisolate 하도록 요청합니다.

deisolate 요청이 성공하면 다시 DB cache 가 load & save 할 수 있는 상태가 됩니다.

  • DB cache 에서 data tree 가 성공적으로 deisolate 되면 OnDeisolateDataSuccess 이벤트가 발생합니다.
  • data tree 가 이미 isolate 상태이거나 deisolate 에 실패하면 OnDeisolateDataFailed 이벤트가 발생합니다.
매개변수
rootUUIDdeisolate하고자 하는 data tree의 root UUID입니다.
rootTableNamedeisolate하고자 하는 data tree의 root테이블의 이름입니다.
[out]outSessionGuidsession 식별자입니다.
virtual void Proud::CDbCacheClient2::RequestExclusiveLoadData ( String  rootTableName,
String  fieldName,
CVariant  cmpValue,
intptr_t  tag,
ByteArray message = ByteArray() 
)
pure virtual

독점적 불러오기 요청 메서드입니다.

매개변수
rootTableName추가할 데이터의 root 테이블 이름
fieldName찾을 fieldName입니다.
cmpValue찾아서 비교할 값입니다.
tagIDbCacheClientDelegate2.OnExclusiveLoadDataComplete 응답을 받을 때 그대로 돌려받을 사용자 임의 데이터입니다. 이 값은 인자 args.m_tag를 통해 돌려받습니다.
message이미 독점로딩되어있는 데이터를 요청할 경우 기존 독점자에게 전달되는 사용자 임의 데이터입니다. 기존 독점자는 IDbCacheClientDelegate2.OnDataUnloadRequested의 인자 args.m_loadResults[index].m_message를 통해 이 메시지를 전달받습니다.
virtual void Proud::CDbCacheClient2::RequestExclusiveLoadDataByGuid ( String  rootTableName,
Guid  rootUUID,
intptr_t  tag,
ByteArray message = ByteArray() 
)
pure virtual

독점적 불러오기 요청 메서드입니다.

매개변수
rootTableName추가할 데이터의 root 테이블 이름
rootUUID찾을 rootUUID입니다.
tagIDbCacheClientDelegate2.OnExclusiveLoadDataComplete 응답을 받을 때 그대로 돌려받을 사용자 임의 데이터입니다. 이 값은 인자 args.m_tag를 통해 돌려받습니다.
message이미 독점로딩되어있는 데이터를 요청할 경우 기존 독점자에게 전달되는 사용자 임의 데이터입니다. 기존 독점자는 IDbCacheClientDelegate2.OnDataUnloadRequested의 인자 args.m_loadResults[index].m_message를 통해 이 메시지를 전달받습니다.
virtual void Proud::CDbCacheClient2::RequestExclusiveLoadDataByQuery ( String  rootTableName,
String  queryString,
intptr_t  tag,
ByteArray message = ByteArray() 
)
pure virtual

독점적 불러오기 요청 메서드입니다.

매개변수
rootTableName추가할 데이터의 root 테이블 이름
queryStringRootUUID를 찾기위해 "select RootUUID from %s where %s" 다음과 같은 쿼리를 날리게 되는데 첫번째 인자는 rootTableName이고 where이후 필드에 들어갈 문자열이다. SQL문법에 맞게 작성해야 한다.
tagIDbCacheClientDelegate2.OnExclusiveLoadDataComplete 응답을 받을 때 그대로 돌려받을 사용자 임의 데이터입니다. 이 값은 인자 args.m_tag를 통해 돌려받습니다.
message이미 독점로딩되어있는 데이터를 요청할 경우 기존 독점자에게 전달되는 사용자 임의 데이터입니다. 기존 독점자는 IDbCacheClientDelegate2.OnDataUnloadRequested의 인자 args.m_loadResults[index].m_message를 통해 이 메시지를 전달받습니다.
virtual void Proud::CDbCacheClient2::RequestExclusiveLoadNewData ( String  rootTableName,
CPropNodePtr  addData,
intptr_t  tag,
bool  transaction = false 
)
pure virtual

RootTable에 데이터를 추가하고 바로 사용할때 사용되는 함수입니다.

  • 아래는 사용예입니다.
CPropNodePtr newNode = CPropNodePtr(new CPropNode(L"Gamer"));
newNode->Fields[L"GamerID"] = "Ulelio";
intptr_t tag; // User Defined Identifier
m_dbCacheClient->RequestExclusiveLoadNewData(L"Gamer", newNode, tag, transaction);
매개변수
rootTableName추가할 데이터의 root 테이블 이름
addData추가할 데이터
tagIDbCacheClientDelegate2.OnExclusiveLoadDataComplete 응답을 받을 때 그대로 돌려받을 사용자 임의 데이터입니다. 이 값은 인자 args.m_tag를 통해 돌려받습니다.
transaction본요청에 transaction을 할지에 대한 여부입니다.
virtual bool Proud::CDbCacheClient2::RequestIsolateData ( Guid  rootUUID,
String  rootTableName,
Guid outSessionGuid 
)
pure virtual

DB cache가 다루는 데이터를 DB가 직접 억세스하기 기능입니다. DB cache가 사용중인 data tree를 직접 DB 억세스를 통해 접근할 수 있도록 요청합니다. DB cache는 사용자가 안전하게 접근할 수 있도록 캐싱하던 Data tree 를 unload 합니다.

isolate 요청이 성공하면 DB cache 는 data tree 에 절대 접근하지 않습니다. 사용자는 이 함수를 호출한 뒤 data 를 직접 억세스합니다. 사용자는 작업을 완료하면 RequestDeisolateData 를 호출하여 DB cache 에 작업이 끝났음을 알려야 합니다.

  • DB cache 에서 data tree 가 성공적으로 isolate 되면 OnIsolateDataSuccess 이벤트가 발생합니다.
  • data tree 가 이미 isolate 상태이거나 unload 에 실패하면 OnIsolateDataFailed 이벤트가 발생합니다.
매개변수
rootUUIDisolate하고자 하는 data tree의 root UUID입니다.
rootTableNameisolate하고자 하는 data tree의 root테이블의 이름입니다.
[out]outSessionGuidsession 식별자입니다.
virtual void Proud::CDbCacheClient2::RequestNonExclusiveAddData ( String  rootTableName,
Guid  rootUUID,
Guid  ownerUUID,
CPropNodePtr  addData,
intptr_t  tag,
ByteArray messageToLoader = ByteArray() 
)
pure virtual

비독점적 데이터 접근하기 기능입니다. Callback:

독점중인 DB Cache Client Callback:

매개변수
rootTableNameroot테이블의 이름입니다.
rootUUIDroot의 UUID입니다.
ownerUUIDowner의 UUID입니다.
addData추가할 node의 data입니다.
tag요청 식별을 위한 사용자 임의 데이터입니다. 콜백 시 CCallbackArg 의 m_tag를 통해 돌려받습니다.
messageToLoader해당 데이터의 독점자에게 전달하는 사용자 임의 메시지입니다. 독점자는 IDbCacheClientDelegate2::OnSomeoneAddData의 args.m_loadResults[index].m_message를 통해 이를 전달받습니다.
virtual void Proud::CDbCacheClient2::RequestNonExclusiveModifyValue ( String  rootTableName,
Guid  rootUUID,
Guid  nodeUUID,
String  propertyName,
ValueOperType  operType,
CVariant  value,
intptr_t  tag,
ByteArray messageToLoader = ByteArray() 
)
pure virtual

비독점적 데이터 접근하기 기능입니다.

Callback:

독점 중인 DB Cache Client Callback:

매개변수
rootTableNameroot테이블의 이름입니다.
rootUUIDroot의 UUID입니다.
nodeUUIDnode의 UUID입니다.
propertyName값을 setting할 속성의 이름입니다.
operType연산 타입
value적용시킬 값입니다.
tag요청 식별을 위한 사용자 임의 데이터입니다. 콜백 시 CCallbackArg 의 m_tag를 통해 돌려받습니다.
messageToLoader해당 데이터의 독점자에게 전달하는 메시지입니다. 독점자는 IDbCacheClientDelegate2::OnSomeoneModifyValue의 args.m_loadResults[index].m_message를 통해 이를 전달받습니다.
virtual void Proud::CDbCacheClient2::RequestNonExclusiveRemoveData ( String  rootTableName,
Guid  rootUUID,
Guid  removeUUID,
intptr_t  tag,
ByteArray messageToLoader = ByteArray() 
)
pure virtual

비독점적 데이터 접근하기 기능입니다.

Callback:

독점 중인 DB Cache Client Callback:

매개변수
rootTableNameroot테이블의 이름입니다.
rootUUIDroot의 UUID입니다.
removeUUID제거하고자 하는 UUID입니다.
tag요청 식별을 위한 사용자 임의 데이터입니다. 콜백 시 CCallbackArg 의 m_tag를 통해 돌려받습니다.
messageToLoader해당 데이터의 독점자에게 전달하는 메시지입니다. 독점자는 IDbCacheClientDelegate2::OnSomeoneRemoveData의 args.m_loadResults[index].m_message를 통해 이를 전달받습니다.
virtual void Proud::CDbCacheClient2::RequestNonExclusiveSetValueIf ( String  rootTableName,
Guid  rootUUID,
Guid  nodeUUID,
String  propertyName,
CVariant  newValue,
ValueCompareType  compareType,
CVariant  compareValue,
intptr_t  tag,
ByteArray messageToLoader = ByteArray() 
)
pure virtual

비독점적 데이터 접근하기 기능입니다.

  • DBCacheServer에 로드되어있는 기존값과 compareValue를 비교하여 조건을 충족하면 newValue로 변경합니다.

Callback:

독점 중인 DB Cache Client Callback:

매개변수
rootTableNameroot테이블의 이름입니다.
rootUUIDroot의 UUID입니다.
nodeUUIDnode의 UUID입니다.
propertyName값을 setting할 속성의 이름입니다.
newValue비교 조건을 충족하는 경우 새로 대입될 값입니다.
compareType비교 조건 type입니다.
compareValue기존 값과 비교할 값입니다.
tag요청 식별을 위한 사용자 임의 데이터입니다. 콜백 시 CCallbackArg 의 m_tag를 통해 돌려받습니다.
messageToLoader해당 데이터의 독점자에게 전달하는 메시지입니다. 독점자는 IDbCacheClientDelegate2::OnSomeoneSetValue의 args.m_loadResults[index].m_message를 통해 이를 전달받습니다.
virtual void Proud::CDbCacheClient2::RequestNonExclusiveSnapshotData ( String  rootTableName,
String  fieldName,
CVariant  cmpValue,
intptr_t  tag 
)
pure virtual

비독점적으로 data의 최신 상태를 얻어옵니다. 비독점적 데이터 접근하기 기능입니다.
Callback:

  • IDbCacheClientDelegate2::OnNonExclusiveSnapshotDataSuccess (CCallbackArgs args)
  • IDbCacheClientDelegate2::OnNonExclusiveSnapshotDataFailed (CCallbackArgs args)
매개변수
rootTableNameroot 테이블의 이름
fieldName필드명
cmpValue비교할 값. 이를 SQL문에 비유하면 WHERE fieldName = cmpValue 와 동일합니다.
tag이요청에대한 사용자가 넣어줄 식별 값입니다.콜백시 CCallbackArg 안의 m_tag로 들어갑니다.
virtual void Proud::CDbCacheClient2::RequestNonExclusiveSnapshotDataByGuid ( String  rootTableName,
Guid  rootUUID,
intptr_t  tag 
)
pure virtual

비독점적으로 data의 최신 상태를 얻어옵니다. 비독점적 데이터 접근하기 기능입니다.
Callback:

  • IDbCacheClientDelegate2::OnNonExclusiveSnapshotDataSuccess (CCallbackArgs args)
  • IDbCacheClientDelegate2::OnNonExclusiveSnapshotDataFailed (CCallbackArgs args)
매개변수
rootTableNameroot 테이블의 이름
rootUUID데이터 검색을 RootUUID
tag이요청에대한 사용자가 넣어줄 식별 값입니다.콜백시 CCallbackArg 안의 m_tag로 들어갑니다.
virtual void Proud::CDbCacheClient2::RequestNonExclusiveSnapshotDataByQuery ( String  rootTableName,
String  searchString,
intptr_t  tag 
)
pure virtual

비독점적으로 data의 최신 상태를 얻어옵니다. 비독점적 데이터 접근하기 기능입니다.
Callback:

  • IDbCacheClientDelegate2::OnNonExclusiveSnapshotDataSuccess (CCallbackArgs args)
  • IDbCacheClientDelegate2::OnNonExclusiveSnapshotDataFailed (CCallbackArgs args)
매개변수
rootTableNameroot 테이블의 이름
searchString데이터 검색을 위한 쿼리문 ( where절 이후에 들어갈 구문 )
tag이요청에대한 사용자가 넣어줄 식별 값입니다.콜백시 CCallbackArg 안의 m_tag로 들어갑니다.
virtual bool Proud::CDbCacheClient2::RequestRecursiveUpdateData ( CLoadedData2Ptr  loadedData,
intptr_t  tag,
bool  transactional = false 
)
pure virtual

RequestUpdateData(CPropNodePtr,Guid&)과 달리 LoadedData가 가지고 있는 하위의 모든 node 를 검색하여 add,update,remove등을 처리해 줍니다.

  • transactional을 지정하지 않으면 실패하였을때 일부 데이터가 dbms 에 commit 되었을수 있습니다.
  • Notify를 받기전에는 데이터를 신뢰 하시면 안됩니다.
  • 실패했을 경우 롤백하시려면 GetClonedDataBySessionGuid 를 사용하십시요.
    매개변수
    loadedData변화를 저장할 LoadedData입니다.
    tag이요청에대한 사용자가 넣어줄 식별 값입니다. 콜백시 CCallbackArg 안의 m_tag로 들어갑니다.
    transactional본요청에 transaction을 할지에 대한 여부입니다.
virtual bool Proud::CDbCacheClient2::RequestRemoveData ( Guid  rootUUID,
Guid  removeUUID,
intptr_t  tag 
)
pure virtual

자세한 설명은 RequestAddData 참고

매개변수
rootUUIDroot의 UUID
removeUUID제거할 UUID
tag이 요청에대한 사용자가 넣어줄 식별 값입니다. 콜백시 CCallbackArg 안의 m_tag로 들어갑니다.
virtual bool Proud::CDbCacheClient2::RequestUpdateData ( CPropNodePtr  updateData,
intptr_t  tag 
)
pure virtual

자세한 설명은 RequestAddData 참고

매개변수
updateData변경된 노드의 data
tag이 요청에대한 사용자가 넣어줄 식별 값입니다. 콜백시 CCallbackArg 안의 m_tag 로 들어갑니다.
virtual bool Proud::CDbCacheClient2::UnilateralAddData ( Guid  rootUUID,
Guid  ownerUUID,
CPropNodePtr  addData,
bool  writeDbmsImmediately = true 
)
pure virtual

일방적(Unilateral) 메서드입니다.

  • 데이터가 메모리에 Cache된뒤 나중에 DBMS에 기록됩니다.
  • 기존의 DbCacheClient 과 같은방식입니다.
  • field에 constraints가 없다면 이방식을 쓰는것을 권장합니다.
  • 일방메서드이기 때문에 따로 이벤트 콜백이 오지 않습니다.
    매개변수
    rootUUIDadd할 데이터의 rootUUID
    ownerUUIDadd할 데이터의 ownerUUID
    addDataadd할 데이터
    writeDbmsImmediatelytrue이면 DBMS에 아이템 추가 사실을 최대한 빨리 기록을 수행한다.
virtual bool Proud::CDbCacheClient2::UnilateralMoveData ( String  rootTableName,
Guid  rootUUID,
Guid  nodeUUID,
Guid  destRootUUID,
Guid  destNodeUUID,
bool  writeDbmsImmediately = true 
)
pure virtual

일방적(Unilateral) 메서드입니다.

  • 데이터가 메모리에 Cache된뒤 나중에 DBMS에 기록됩니다.
  • 데이터 노드(rootUUID,nodeUUID)를 정해진 트리 노드(destRootUUID,destNodeUUID) 하위로 이동 시 킵니다.
  • field에 constraints가 없다면 이방식을 쓰는것을 권장합니다.
  • 데이터가 이동된 DBCacheClient 에게 이벤트가 콜백됩니다.
    매개변수
    rootUUIDmove할 rootUUID 노드
    ownerUUIDmove할 ownerUUID 노드
    destRootUUIDattach할 destRootUUID 노드
    destNodeUUIDattach할 destNodeUUID 노드
virtual bool Proud::CDbCacheClient2::UnilateralRecursiveUpdateData ( CLoadedData2Ptr  loadedData,
bool  transactional = false,
bool  writeDbmsImmediately = true 
)
pure virtual

자세한 설명은 UnilateralAddData 참고

매개변수
loadedData로드된 Data
transactional트렌젝션 기능 사용 여부
writeDbmsImmediatelytrue이면 DBMS에 최대한 빨리 기록을 수행
virtual bool Proud::CDbCacheClient2::UnilateralRemoveData ( Guid  rootUUID,
Guid  removeUUID,
bool  writeDbmsImmediately = true 
)
pure virtual

자세한 설명은 UnilateralAddData 참고

매개변수
rootUUIDroot의 UUID
removeUUID제거할 UUID
writeDbmsImmediatelytrue이면 DBMS에 최대한 빨리 기록을 수행
virtual bool Proud::CDbCacheClient2::UnilateralUpdateData ( CPropNodePtr  updateData,
bool  writeDbmsImmediately = true 
)
pure virtual

자세한 설명은 UnilateralAddData 참고

매개변수
update하고자 하는 node의 data
writeDbmsImmediatelytrue이면 DBMS에 최대한 빨리 기록을 수행
virtual bool Proud::CDbCacheClient2::UnloadDataBySessionGuid ( Guid  sessionGuid,
ByteArray messageToNextLoader = ByteArray() 
)
pure virtual
  • 특정 Session의 Unload를 요청하고 해당 데이터의 독점권을 포기합니다.
  • OnUnloadDataRequested 가 호출되었을 때 요청자에게 독점권을 넘겨주려면 이 함수를 호출해야 합니다.
    매개변수
    sessionGuidUnload 할 데이터의 session Guid입니다.
    messageToNextLoader독점권 요청자에게 전달하는 사용자 임의 메시지입니다. 요청자는 IDbCacheClientDelegate2.OnExclusiveLoadDataSuccess의 args.m_loadResults[index].m_message를 통해 해당 메시지를 확인 할 수 있습니다.