예제 #1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ContractMessage"/> class.
 /// </summary>
 /// <param name="messagePrefix">The message prefix.</param>
 /// <param name="throwException">The throw exception.</param>
 /// <param name="isSatisfied">The is failed.</param>
 /// <param name="getErrorMessage">The get error message.</param>
 public ContractMessage(
     string messagePrefix,
     ThrowException throwException,
     IsSatisfied isSatisfied,
     GetErrorMessage getErrorMessage)
 {
     this.messagePrefix   = messagePrefix;
     this.throwException  = throwException;
     this.isSatisfied     = isSatisfied;
     this.getErrorMessage = getErrorMessage;
 }
예제 #2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ContractMessage"/> class.
        /// </summary>
        /// <param name="messagePrefix">The message prefix.</param>
        /// <param name="throwException">The throw exception.</param>
        /// <param name="isSatisfied">The is failed.</param>
        /// <param name="getErrorMessage">The get error message.</param>
        public ContractMessage(
            string messagePrefix, 
            ThrowException throwException,
            IsSatisfied isSatisfied,
            GetErrorMessage getErrorMessage)
        {
            this.messagePrefix = messagePrefix;
            this.throwException = throwException;
            this.isSatisfied = isSatisfied;
            this.getErrorMessage = getErrorMessage;

        }
예제 #3
0
        private Library(LibraryHandle libraryHandle)
        {
            LibraryHandle = libraryHandle;

            _getErrorMessage = LibraryHandle.GetUnmanagedDelegate<GetErrorMessage>();

            _freeBson = libraryHandle.GetUnmanagedDelegate<FreeBsonDelegate>();
            _bsonToString = libraryHandle.GetUnmanagedDelegate<BsonToStringDelegate>();
            //_jsonToBson = libraryHandle.GetUnmanagedDelegate<JsonToBsonDelegate>();

            var getVersion = LibraryHandle.GetUnmanagedDelegate<GetVersion>();

            IntPtr version = getVersion(LibraryHandle);

            if (version == IntPtr.Zero)
            {
                throw new Exception("Unable to get ejdb library version");
            }

            _version = Native.StringFromNativeUtf8(version); //UnixMarshal.PtrToString(vres, Encoding.UTF8);
            _hexVersion = Convert.ToInt64("0x" + Version.Replace(".", ""), 16);
        }
예제 #4
0
        private unsafe Library(LibraryHandle libraryHandle)
        {
            LibraryHandle = libraryHandle;

            Functions = new Functions(libraryHandle);

            _getErrorMessage = LibraryHandle.GetUnmanagedDelegate <GetErrorMessage>();

            _freeBson   = libraryHandle.GetUnmanagedDelegate <FreeBsonDelegate>();
            GetBsonData = libraryHandle.GetUnmanagedDelegate <BsonToStringDelegate>();
            //_jsonToBson = libraryHandle.GetUnmanagedDelegate<JsonToBsonDelegate>();

            var getVersion = LibraryHandle.GetUnmanagedDelegate <GetVersion>();

            var version = getVersion(LibraryHandle);

            if (version == IntPtr.Zero.ToPointer())
            {
                throw new Exception("Unable to get ejdb library version");
            }

            _version    = new string(version); //UnixMarshal.PtrToString(vres, Encoding.UTF8);
            _hexVersion = Convert.ToInt64("0x" + Version.Replace(".", ""), 16);
        }
예제 #5
0
 /// <summary>
 /// Initializes the <see cref="Contract"/> class.
 /// </summary>
 public Contract()
 {
     appendErrorMessage = AppendMessageError;
     getErrorMessage    = GetMessageError;
     throwException     = ThrowAnException;
 }