;********************************
;*
;* lweb_header_privat.pbi 
;*
;* LiHaSo Webserver Modul Header/Declare Privatmodule
;*
;* It is usable as standalone Webserver, look at lhttpd.pb
;*
;* 
;* 

  Structure server_http
    enabled.i
    port.i
    binding.s
    max_clients.i
    reuse.b
    thread_id.i
  EndStructure
  
  Structure server_https
    enabled.i
    port.i
    binding.s
    max_clients.i
    reuse.b
    CA.s
    Certs.s
    key.s
    key_pass.s
    thread_id.i
    server_id.i
  EndStructure
  
  Structure server_cache
    time.i
    maxsize.i
    current.i
    enable.i
  EndStructure
  
  Structure memory
    MaxFileSize.i  
    DefaultBlockSize.i
  EndStructure
  
  Structure log_config
    DebuglogUUID.s
    DebuglogFile.s
    Debugdisable.i
    AccesslogFile.s
    AccesslogUUID.s
    ErrorlogFile.s
    ErrorlogUUID.s
    CachelogFile.s
    CachelogUUID.s
  EndStructure
  
  Enumeration http_header_fieldtype
    #http_header_field_Static           ;Fieldcontent could be directly used
    #http_header_field_Dynamic_auto     ;Must be handled by the Fieldcontent_proc
  EndEnumeration
  
  Enumeration http_headerfield_param
    #http_headerfield_param_string
    #http_headerfield_param_map
    #http_headerfield_param_integer
  EndEnumeration
  
  Structure http_headerfield_params
    Type.i                    ;Types of Field #Content or #Map
    Content_string.s          ;String Field
    Map Content_Maps.s()      ;Map Field
    Content_integer.i         ;Integer Field
  EndStructure
  
  Structure http_headerfield
    Fieldname.s             ; Name bevore   : for ex. "keep-alive:"
    Fieldcontent.s          ; Content after : for ex. "Keep-Alive"
    Fieldcontent_type.i     ; #http_header_field_Static or #http_header_field_Dynamic_auto
    Fieldcontent_proc.i     ; A Procedure Prototype to call
    Map Field_proc_parameters.http_headerfield_params()   ;Parameters to give to call
  EndStructure
  
  IncludeFile "lweb_http_status_header_private.pbi"

  Structure dynamichandler
    functiontype.s
    proc.s
    file.s
    routetype.s
    url.s
    extension.s
    permlib.s
  EndStructure
  
  Structure usedlibs
    permlib.s
    lib_id.i
  EndStructure
  
  Structure headerfunctions
    header_name.s
    call.i
    type.i
    library.s
    perm.i
  EndStructure
  
  Structure session
    Cookie.s
    TTL.q
    KillTime.q
    Daten.s
  EndStructure
  
  Structure host
    description.s
    http.server_http
    https.server_https
    cache.server_cache
    log.log_config
    mem.memory
    Map dynamichandler.dynamichandler()
    Map usedlibs.usedlibs()
    Map headerfunctions.headerfunctions()
    Map sessions.session()
    defaultfile.s
    basedir.s
    Map status.http_status_codes()     ;Individual Error Messages and Headers
  EndStructure
  
  Structure config_loader
    name.s
    type.s
    configtype.s
  EndStructure
  
  Structure server
    Map hosts.host()
    Map status.http_status_codes()     ;Default Error Messages and Headers
    Map config_file.config_loader()                ;Map Key is Type and string is file
    log.log_config
    mem.memory
    global_max_cli_threads.i           ;The maximum Thread Count = 0 unlimited
    global_max_cli_memory.i            ;The maximum Used Memory per Client Thread = 0 unlimited
    version.s
    identifikation.s
    type.i
  EndStructure