NCBI C++ ToolKit
hookfunc.hpp
Go to the documentation of this file.

Go to the SVN repository for this file.

1 #ifndef HOOKFUNC__HPP
2 #define HOOKFUNC__HPP
3 
4 /* $Id: hookfunc.hpp 99791 2023-05-10 18:00:42Z vasilche $
5 * ===========================================================================
6 *
7 * PUBLIC DOMAIN NOTICE
8 * National Center for Biotechnology Information
9 *
10 * This software/database is a "United States Government Work" under the
11 * terms of the United States Copyright Act. It was written as part of
12 * the author's official duties as a United States Government employee and
13 * thus cannot be copyrighted. This software/database is freely available
14 * to the public for use. The National Library of Medicine and the U.S.
15 * Government have not placed any restriction on its use or reproduction.
16 *
17 * Although all reasonable efforts have been taken to ensure the accuracy
18 * and reliability of the software and data, the NLM and the U.S.
19 * Government do not and cannot warrant the performance or results that
20 * may be obtained by using this software or data. The NLM and the U.S.
21 * Government disclaim all warranties, express or implied, including
22 * warranties of performance, merchantability or fitness for any particular
23 * purpose.
24 *
25 * Please cite the author in any work or product based on this material.
26 *
27 * ===========================================================================
28 *
29 * Author: Eugene Vasilchenko
30 *
31 * File Description:
32 * !!! PUT YOUR DESCRIPTION HERE !!!
33 */
34 
35 #include <corelib/ncbistd.hpp>
36 #include <serial/serialdef.hpp>
37 
38 
39 /** @addtogroup HookSupport
40  *
41  * @{
42  */
43 
44 
46 
47 class CObjectIStream;
48 class CObjectOStream;
50 class CTypeInfo;
51 class CMemberInfo;
52 class CVariantInfo;
53 
55  const CTypeInfo* objectType,
56  TObjectPtr objectPtr);
58  const CTypeInfo* objectType,
59  TConstObjectPtr objectPtr);
60 typedef void (*TTypeCopyFunction)(CObjectStreamCopier& copier,
61  const CTypeInfo* objectType);
63  const CTypeInfo* objectType);
64 
66  const CMemberInfo* memberInfo,
67  TObjectPtr classPtr);
69  const CMemberInfo* memberInfo,
70  TConstObjectPtr classPtr);
71 typedef void (*TMemberCopyFunction)(CObjectStreamCopier& copier,
72  const CMemberInfo* memberInfo);
74  const CMemberInfo* memberInfo);
75 /*
76 struct SMemberReadFunctions
77 {
78  SMemberReadFunctions(TMemberReadFunction main = 0,
79  TMemberReadFunction missing = 0)
80  : m_Main(main), m_Missing(missing)
81  {
82  }
83  TMemberReadFunction m_Main, m_Missing;
84 };
85 
86 struct SMemberSkipFunctions
87 {
88  SMemberSkipFunctions(TMemberSkipFunction main = 0,
89  TMemberSkipFunction missing = 0)
90  : m_Main(main), m_Missing(missing)
91  {
92  }
93  TMemberSkipFunction m_Main, m_Missing;
94 };
95 
96 struct SMemberCopyFunctions
97 {
98  SMemberCopyFunctions(TMemberCopyFunction main = 0,
99  TMemberCopyFunction missing = 0)
100  : m_Main(main), m_Missing(missing)
101  {
102  }
103  TMemberCopyFunction m_Main, m_Missing;
104 };
105 */
106 
108  const CVariantInfo* variantInfo,
109  TObjectPtr classPtr);
111  const CVariantInfo* variantInfo,
112  TConstObjectPtr classPtr);
114  const CVariantInfo* variantInfo);
116  const CVariantInfo* variantInfo);
117 
118 /* @} */
119 
120 
122 
123 #endif /* HOOKFUNC__HPP */
CObjectIStream –.
Definition: objistr.hpp:93
CObjectOStream –.
Definition: objostr.hpp:83
CObjectStreamCopier –.
Definition: objcopy.hpp:71
CTypeInfo class contains all information about C++ types (both basic and classes): members and layout...
Definition: typeinfo.hpp:76
Include a standard set of the NCBI C++ Toolkit most basic headers.
std::ofstream out("events_result.xml")
main entry point for tests
void * TObjectPtr
Definition: serialdef.hpp:55
const void * TConstObjectPtr
Definition: serialdef.hpp:59
void(* TTypeWriteFunction)(CObjectOStream &out, const CTypeInfo *objectType, TConstObjectPtr objectPtr)
Definition: hookfunc.hpp:57
void(* TVariantSkipFunction)(CObjectIStream &in, const CVariantInfo *variantInfo)
Definition: hookfunc.hpp:115
void(* TVariantReadFunction)(CObjectIStream &in, const CVariantInfo *variantInfo, TObjectPtr classPtr)
Definition: hookfunc.hpp:107
void(* TMemberReadFunction)(CObjectIStream &in, const CMemberInfo *memberInfo, TObjectPtr classPtr)
Definition: hookfunc.hpp:65
void(* TTypeCopyFunction)(CObjectStreamCopier &copier, const CTypeInfo *objectType)
Definition: hookfunc.hpp:60
void(* TTypeReadFunction)(CObjectIStream &in, const CTypeInfo *objectType, TObjectPtr objectPtr)
Definition: hookfunc.hpp:54
void(* TVariantCopyFunction)(CObjectStreamCopier &copier, const CVariantInfo *variantInfo)
Definition: hookfunc.hpp:113
void(* TMemberWriteFunction)(CObjectOStream &out, const CMemberInfo *memberInfo, TConstObjectPtr classPtr)
Definition: hookfunc.hpp:68
void(* TMemberSkipFunction)(CObjectIStream &in, const CMemberInfo *memberInfo)
Definition: hookfunc.hpp:73
void(* TTypeSkipFunction)(CObjectIStream &in, const CTypeInfo *objectType)
Definition: hookfunc.hpp:62
void(* TMemberCopyFunction)(CObjectStreamCopier &copier, const CMemberInfo *memberInfo)
Definition: hookfunc.hpp:71
void(* TVariantWriteFunction)(CObjectOStream &out, const CVariantInfo *variantInfo, TConstObjectPtr classPtr)
Definition: hookfunc.hpp:110
#define END_NCBI_SCOPE
End previously defined NCBI scope.
Definition: ncbistl.hpp:103
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
Definition: ncbistl.hpp:100
std::istream & in(std::istream &in_, double &x_)
Modified on Wed May 22 11:28:06 2024 by modify_doxy.py rev. 669887