(root)/
gcc-13.2.0/
gcc/
go/
gofrontend/
go-sha1.h
       1  // go-sha1.h -- GCC specific sha1 checksum utilities.   -*- C++ -*-
       2  
       3  // Copyright 2016 The Go Authors. All rights reserved.
       4  // Use of this source code is governed by a BSD-style
       5  // license that can be found in the LICENSE file.
       6  
       7  #ifndef GO_SHA1_H
       8  #define GO_SHA1_H
       9  
      10  #include "go-system.h"
      11  
      12  //
      13  // Interface class for computation of SHA1 checksums. Front end requests
      14  // one of these objects from the back end to use for computing
      15  // checksums (each back end tends to have a different SHA1 implementation).
      16  // Back ends are expected to create a new class that derives from this
      17  // one containing an implementation.
      18  //
      19  
      20  class Go_sha1_helper
      21  {
      22   public:
      23    virtual ~Go_sha1_helper() { }
      24    virtual void process_bytes(const void* buffer, size_t len) = 0;
      25    virtual std::string finish() = 0;
      26    static const int checksum_len = 20;
      27  };
      28  
      29  // Call to create and return a new sha1 helper (this routine defined
      30  // by the backend). Caller is responsible for deletion.
      31  extern Go_sha1_helper* go_create_sha1_helper();
      32  
      33  #endif // !defined(GO_SHA1_H)