예제 #1
0
void CTypeInfo::SetLocalSkipHook(CObjectIStream& stream,
                                 CSkipObjectHook* hook)
{
    CMutexGuard guard(GetTypeInfoMutex());
    m_SkipHookData.SetLocalHook(stream.m_ObjectSkipHookKey, hook);
    stream.AddMonitorType(this);
}
예제 #2
0
파일: objostr.cpp 프로젝트: swuecho/igblast
void CObjectOStream::ResetLocalHooks(void)
{
    CMutexGuard guard(GetTypeInfoMutex());
    m_ObjectHookKey.Clear();
    m_ClassMemberHookKey.Clear();
    m_ChoiceVariantHookKey.Clear();
}
예제 #3
0
void CSoapMessage::AddObject(const CSerialObject& obj,
                             EMessagePart destination)
{
// verify namespace
    if (!m_DefNamespaceName.empty()) {
        CSerialObject* ser = const_cast<CSerialObject*>(&obj);
        CAnyContentObject* any = dynamic_cast<CAnyContentObject*>(ser);
        if (any) {
            if ((any->GetNamespaceName()).empty()) {
                any->SetNamespaceName(m_DefNamespaceName);
            }
        } else {
            if (!ser->HasNamespaceName()) {
                CMutexGuard guard(GetTypeInfoMutex());
                ser->GetThisTypeInfo()->SetNamespaceName(m_DefNamespaceName);
            }
        }
    }

    if (destination == eMsgHeader) {
        m_Header.push_back( CConstRef<CSerialObject>(&obj));
    } else if (destination == eMsgBody) {
        m_Body.push_back( CConstRef<CSerialObject>(&obj));
    } else {
        m_FaultDetail.push_back( CConstRef<CSerialObject>(&obj));
    }
}
예제 #4
0
TTypeInfo CStlClassInfoUtil::GetInfo(TTypeInfo& storage,
                                     TTypeInfo arg, TTypeInfoCreator1 f)
{
    if ( !storage ) {
        CMutexGuard guard(GetTypeInfoMutex());
        if ( !storage ) {
            storage = f(arg);
        }
    }
    return storage;
}
예제 #5
0
void CTypeInfo::SetPathCopyHook(CObjectStreamCopier* copier, const string& path,
                                CCopyObjectHook* hook)
{
    CMutexGuard guard(GetTypeInfoMutex());
    m_CopyHookData.SetPathHook(copier ? &(copier->In()) : 0,path,hook);
}
예제 #6
0
void CTypeInfo::ResetLocalCopyHook(CObjectStreamCopier& stream)
{
    CMutexGuard guard(GetTypeInfoMutex());
    m_CopyHookData.ResetLocalHook(stream.m_ObjectHookKey);
}
예제 #7
0
void CTypeInfo::ResetGlobalCopyHook(void)
{
    CMutexGuard guard(GetTypeInfoMutex());
    m_CopyHookData.ResetGlobalHook();
}
예제 #8
0
void CTypeInfo::SetLocalCopyHook(CObjectStreamCopier& stream,
                                 CCopyObjectHook* hook)
{
    CMutexGuard guard(GetTypeInfoMutex());
    m_CopyHookData.SetLocalHook(stream.m_ObjectHookKey, hook);
}
예제 #9
0
void CTypeInfo::SetGlobalCopyHook(CCopyObjectHook* hook)
{
    CMutexGuard guard(GetTypeInfoMutex());
    m_CopyHookData.SetGlobalHook(hook);
}
예제 #10
0
void CTypeInfo::SetPathSkipHook(CObjectIStream* in, const string& path,
                                CSkipObjectHook* hook)
{
    CMutexGuard guard(GetTypeInfoMutex());
    m_SkipHookData.SetPathHook(in,path,hook);
}
예제 #11
0
void CTypeInfo::ResetLocalSkipHook(CObjectIStream& stream)
{
    CMutexGuard guard(GetTypeInfoMutex());
    m_SkipHookData.ResetLocalHook(stream.m_ObjectSkipHookKey);
}
예제 #12
0
void CTypeInfo::SetPathWriteHook(CObjectOStream* out, const string& path,
                                 CWriteObjectHook* hook)
{
    CMutexGuard guard(GetTypeInfoMutex());
    m_WriteHookData.SetPathHook(out,path,hook);
}
예제 #13
0
void CTypeInfo::ResetLocalWriteHook(CObjectOStream& stream)
{
    CMutexGuard guard(GetTypeInfoMutex());
    m_WriteHookData.ResetLocalHook(stream.m_ObjectHookKey);
}
예제 #14
0
void CTypeInfo::SetLocalWriteHook(CObjectOStream& stream,
                                 CWriteObjectHook* hook)
{
    CMutexGuard guard(GetTypeInfoMutex());
    m_WriteHookData.SetLocalHook(stream.m_ObjectHookKey, hook);
}
예제 #15
0
void CTypeInfo::SetGlobalWriteHook(CWriteObjectHook* hook)
{
    CMutexGuard guard(GetTypeInfoMutex());
    m_WriteHookData.SetGlobalHook(hook);
}
예제 #16
0
void CTypeInfo::SetGlobalReadHook(CReadObjectHook* hook)
{
    CMutexGuard guard(GetTypeInfoMutex());
    m_ReadHookData.SetGlobalHook(hook);
}
예제 #17
0
void CTypeInfo::SetLocalReadHook(CObjectIStream& stream,
                                 CReadObjectHook* hook)
{
    CMutexGuard guard(GetTypeInfoMutex());
    m_ReadHookData.SetLocalHook(stream.m_ObjectHookKey, hook);
}