diff options
Diffstat (limited to 'src/vm/sigformat.h')
-rw-r--r-- | src/vm/sigformat.h | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/vm/sigformat.h b/src/vm/sigformat.h new file mode 100644 index 0000000000..1bcd6c3310 --- /dev/null +++ b/src/vm/sigformat.h @@ -0,0 +1,43 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + + + +#ifndef _SIGFORMAT_H +#define _SIGFORMAT_H + +#include "invokeutil.h" +#include "field.h" + +#define SIG_INC 256 + +class SigFormat +{ +public: + SigFormat(); + + //@GENERICS: the owning type handle is required because pMeth may be shared between instantiations + SigFormat(MethodDesc* pMeth, TypeHandle owner, BOOL fIgnoreMethodName = false); + SigFormat(MetaSig &metaSig, LPCUTF8 memberName, LPCUTF8 className = NULL, LPCUTF8 ns = NULL); + + ~SigFormat(); + + const char * GetCString(); + const char * GetCStringParmsOnly(); + + void AddType(TypeHandle th); + +protected: + void FormatSig(MetaSig &metaSig, LPCUTF8 memberName, LPCUTF8 className = NULL, LPCUTF8 ns = NULL); + + char* _fmtSig; + size_t _size; + size_t _pos; + + void AddString(LPCUTF8 s); + void AddTypeString(Module* pModule, SigPointer sig, const SigTypeContext *pTypeContext); + +}; + +#endif // _SIGFORMAT_H |