Mako 8.2.0 API
MakoCore SDK API Documentation
Loading...
Searching...
No Matches
idomhashable.h
Go to the documentation of this file.
1/*
2* Copyright (C) 2012-2025 Global Graphics Software Ltd. All rights reserved.
3*/
4
5#ifndef __EDLIDOMHASHABLE_H_DECLS__
6#define __EDLIDOMHASHABLE_H_DECLS__
7
12
13#include <edl/edlerrors.h>
14#include <edl/edlnamespaces.h>
15#include <edl/iedlobject.h>
16
18
28{
29 public:
33 virtual ~IDOMHashable ()
34 {}
35
36#ifdef SWIG
37 %apply long long &OUTPUT { uint64 &hash };
38#endif
44 virtual bool hash(uint64 &hash) = 0;
45#ifdef SWIG
46 %clear uint64 &hash;
47#endif
48
53 virtual uint64 hashE()
54 {
55 uint64 hash = 0;
56 if (!this->hash(hash))
57 {
58 throwEDLError(JM_ERR_GENERAL, L"Hashing failure");
59 }
60 return hash;
61 }
62};
63#define edlobj2IDOMHashable(src) dynamic_cast<IDOMHashable *>((IEDLObject *) src)
64
66
67#endif
68
Abstract interface for objects that can be hashed.
Definition idomhashable.h:28
virtual bool hash(uint64 &hash)=0
Retrieve a hash for this object.
virtual ~IDOMHashable()
Virtual destructor.
Definition idomhashable.h:33
virtual uint64 hashE()
As hash(), but throws an exception if the operation fails.
Definition idomhashable.h:53
EDL_API void throwEDLError(uint32 errorcode)
Utility - Throw an IEDLError exception with the given error code.
EDL C++ namespace(s)
#define _END_EDL_DOM_NAMESPACE
Definition edlnamespaces.h:110
#define _BEGIN_EDL_DOM_NAMESPACE
Definition edlnamespaces.h:109
unsigned long long uint64
Definition edltypes.h:35
@ JM_ERR_GENERAL
A general error occurred. Additional information will be provided with the exception.
Definition edlerrors.h:50