1# Copyright (c) 2017, The MITRE Corporation. All rights reserved.
2# See LICENSE.txt for complete terms.
3
4from mixbox import fields
5
6import cybox.bindings.win_pipe_object as win_pipe_binding
7from cybox.objects.pipe_object import Pipe
8from cybox.objects.win_handle_object import WinHandle
9from cybox.common import String, NonNegativeInteger, HexBinary
10
11
12class WinPipe(Pipe):
13    _binding = win_pipe_binding
14    _binding_class = win_pipe_binding.WindowsPipeObjectType
15    _namespace = 'http://cybox.mitre.org/objects#WinPipeObject-2'
16    _XSI_NS = "WinPipeObj"
17    _XSI_TYPE = "WindowsPipeObjectType"
18
19    default_time_out = fields.TypedField("Default_Time_Out", NonNegativeInteger)
20    handle = fields.TypedField("Handle", WinHandle)
21    in_buffer_size = fields.TypedField("In_Buffer_Size", NonNegativeInteger)
22    max_instances = fields.TypedField("Max_Instances", NonNegativeInteger)
23    open_mode = fields.TypedField("Open_Mode", HexBinary)
24    out_buffer_size = fields.TypedField("Out_Buffer_Size", NonNegativeInteger)
25    pipe_mode = fields.TypedField("Pipe_Mode", HexBinary)
26    security_attributes = fields.TypedField("Security_Attributes", String)
27