packages feed

casadi-bindings-1.8.0.0: Casadi/Wrappers/Classes/IOScheme.hs

{-# OPTIONS_GHC -Wall #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-orphans #-}
{-# Language ForeignFunctionInterface #-}
{-# Language FlexibleInstances #-}
{-# Language MultiParamTypeClasses #-}

module Casadi.Wrappers.Classes.IOScheme
       (
         IOScheme,
         IOSchemeClass(..),
         ioScheme,
         ioScheme',
         ioScheme'',
         ioScheme_checkNode,
         ioScheme_compatibleSize,
         ioScheme_describe,
         ioScheme_describeInput,
         ioScheme_describeOutput,
         ioScheme_entry,
         ioScheme_entryEnum,
         ioScheme_entryLabel,
         ioScheme_entryNames,
         ioScheme_index,
         ioScheme_known,
         ioScheme_name,
         ioScheme_size,
       ) where


import Prelude hiding ( Functor )

import Data.Vector ( Vector )
import Foreign.C.Types
import Foreign.Ptr ( Ptr )
import Foreign.ForeignPtr ( newForeignPtr )
import System.IO.Unsafe ( unsafePerformIO ) -- for show instances

import Casadi.Wrappers.Classes.PrintableObject
import Casadi.Wrappers.ForeignToolsInstances ( )
import Casadi.Wrappers.Deleters
import Casadi.Wrappers.Data
import Casadi.Wrappers.Enums
import Casadi.MarshalTypes ( CppVec, CppVecVec, CppVecVecVec,
                             StdString', CppBool' ) -- StdOstream'
import Casadi.Marshal ( CornerCase(..), Marshal(..) )
import Casadi.WrapReturn ( WrapReturn(..) )

instance Show IOScheme where
  show = unsafePerformIO . printableObject_getDescription
-- direct wrapper
foreign import ccall unsafe "CasADi__IOScheme__checkNode" c_CasADi__IOScheme__checkNode
  :: Ptr IOScheme' -> IO (Ptr CppBool')
casADi__IOScheme__checkNode
  :: IOScheme -> IO Bool
casADi__IOScheme__checkNode x0 =
  withMarshal x0 $ \x0' ->
  c_CasADi__IOScheme__checkNode x0' >>= (newForeignPtr c_delete_bool) >>= wrapReturn

-- classy wrapper
{-|
>Check if the node is pointing to the right type of object.
-}
ioScheme_checkNode :: IOSchemeClass a => a -> IO Bool
ioScheme_checkNode x = casADi__IOScheme__checkNode (castIOScheme x)


-- direct wrapper
foreign import ccall unsafe "CasADi__IOScheme__name" c_CasADi__IOScheme__name
  :: Ptr IOScheme' -> IO (Ptr StdString')
casADi__IOScheme__name
  :: IOScheme -> IO String
casADi__IOScheme__name x0 =
  withMarshal x0 $ \x0' ->
  c_CasADi__IOScheme__name x0' >>= (newForeignPtr c_delete_std__string) >>= wrapReturn

-- classy wrapper
{-|
>Name of the scheme.
-}
ioScheme_name :: IOSchemeClass a => a -> IO String
ioScheme_name x = casADi__IOScheme__name (castIOScheme x)


-- direct wrapper
foreign import ccall unsafe "CasADi__IOScheme__entryNames" c_CasADi__IOScheme__entryNames
  :: Ptr IOScheme' -> IO (Ptr StdString')
casADi__IOScheme__entryNames
  :: IOScheme -> IO String
casADi__IOScheme__entryNames x0 =
  withMarshal x0 $ \x0' ->
  c_CasADi__IOScheme__entryNames x0' >>= (newForeignPtr c_delete_std__string) >>= wrapReturn

-- classy wrapper
{-|
>List available entries.
-}
ioScheme_entryNames :: IOSchemeClass a => a -> IO String
ioScheme_entryNames x = casADi__IOScheme__entryNames (castIOScheme x)


-- direct wrapper
foreign import ccall unsafe "CasADi__IOScheme__index" c_CasADi__IOScheme__index
  :: Ptr IOScheme' -> Ptr StdString' -> IO CInt
casADi__IOScheme__index
  :: IOScheme -> String -> IO Int
casADi__IOScheme__index x0 x1 =
  withMarshal x0 $ \x0' ->
  withMarshal x1 $ \x1' ->
  c_CasADi__IOScheme__index x0' x1' >>= wrapReturn

-- classy wrapper
{-|
>Get index by entry name.
-}
ioScheme_index :: IOSchemeClass a => a -> String -> IO Int
ioScheme_index x = casADi__IOScheme__index (castIOScheme x)


-- direct wrapper
foreign import ccall unsafe "CasADi__IOScheme__size" c_CasADi__IOScheme__size
  :: Ptr IOScheme' -> IO CInt
casADi__IOScheme__size
  :: IOScheme -> IO Int
casADi__IOScheme__size x0 =
  withMarshal x0 $ \x0' ->
  c_CasADi__IOScheme__size x0' >>= wrapReturn

-- classy wrapper
{-|
>Number of entries.
-}
ioScheme_size :: IOSchemeClass a => a -> IO Int
ioScheme_size x = casADi__IOScheme__size (castIOScheme x)


-- direct wrapper
foreign import ccall unsafe "CasADi__IOScheme__entry" c_CasADi__IOScheme__entry
  :: Ptr IOScheme' -> CInt -> IO (Ptr StdString')
casADi__IOScheme__entry
  :: IOScheme -> Int -> IO String
casADi__IOScheme__entry x0 x1 =
  withMarshal x0 $ \x0' ->
  withMarshal x1 $ \x1' ->
  c_CasADi__IOScheme__entry x0' x1' >>= (newForeignPtr c_delete_std__string) >>= wrapReturn

-- classy wrapper
{-|
>Get the entry name by index.
-}
ioScheme_entry :: IOSchemeClass a => a -> Int -> IO String
ioScheme_entry x = casADi__IOScheme__entry (castIOScheme x)


-- direct wrapper
foreign import ccall unsafe "CasADi__IOScheme__entryLabel" c_CasADi__IOScheme__entryLabel
  :: Ptr IOScheme' -> CInt -> IO (Ptr StdString')
casADi__IOScheme__entryLabel
  :: IOScheme -> Int -> IO String
casADi__IOScheme__entryLabel x0 x1 =
  withMarshal x0 $ \x0' ->
  withMarshal x1 $ \x1' ->
  c_CasADi__IOScheme__entryLabel x0' x1' >>= (newForeignPtr c_delete_std__string) >>= wrapReturn

-- classy wrapper
{-|
>Get the entry label by index If scheme is unknown, returns the index as a
>string.
-}
ioScheme_entryLabel :: IOSchemeClass a => a -> Int -> IO String
ioScheme_entryLabel x = casADi__IOScheme__entryLabel (castIOScheme x)


-- direct wrapper
foreign import ccall unsafe "CasADi__IOScheme__entryEnum" c_CasADi__IOScheme__entryEnum
  :: Ptr IOScheme' -> CInt -> IO (Ptr StdString')
casADi__IOScheme__entryEnum
  :: IOScheme -> Int -> IO String
casADi__IOScheme__entryEnum x0 x1 =
  withMarshal x0 $ \x0' ->
  withMarshal x1 $ \x1' ->
  c_CasADi__IOScheme__entryEnum x0' x1' >>= (newForeignPtr c_delete_std__string) >>= wrapReturn

-- classy wrapper
{-|
>Get the entry enum name by index.
-}
ioScheme_entryEnum :: IOSchemeClass a => a -> Int -> IO String
ioScheme_entryEnum x = casADi__IOScheme__entryEnum (castIOScheme x)


-- direct wrapper
foreign import ccall unsafe "CasADi__IOScheme__describeInput" c_CasADi__IOScheme__describeInput
  :: Ptr IOScheme' -> CInt -> IO (Ptr StdString')
casADi__IOScheme__describeInput
  :: IOScheme -> Int -> IO String
casADi__IOScheme__describeInput x0 x1 =
  withMarshal x0 $ \x0' ->
  withMarshal x1 $ \x1' ->
  c_CasADi__IOScheme__describeInput x0' x1' >>= (newForeignPtr c_delete_std__string) >>= wrapReturn

-- classy wrapper
{-|
>Describe the index as an input.
-}
ioScheme_describeInput :: IOSchemeClass a => a -> Int -> IO String
ioScheme_describeInput x = casADi__IOScheme__describeInput (castIOScheme x)


-- direct wrapper
foreign import ccall unsafe "CasADi__IOScheme__describeOutput" c_CasADi__IOScheme__describeOutput
  :: Ptr IOScheme' -> CInt -> IO (Ptr StdString')
casADi__IOScheme__describeOutput
  :: IOScheme -> Int -> IO String
casADi__IOScheme__describeOutput x0 x1 =
  withMarshal x0 $ \x0' ->
  withMarshal x1 $ \x1' ->
  c_CasADi__IOScheme__describeOutput x0' x1' >>= (newForeignPtr c_delete_std__string) >>= wrapReturn

-- classy wrapper
{-|
>Describe the index as an output.
-}
ioScheme_describeOutput :: IOSchemeClass a => a -> Int -> IO String
ioScheme_describeOutput x = casADi__IOScheme__describeOutput (castIOScheme x)


-- direct wrapper
foreign import ccall unsafe "CasADi__IOScheme__describe" c_CasADi__IOScheme__describe
  :: Ptr IOScheme' -> CInt -> IO (Ptr StdString')
casADi__IOScheme__describe
  :: IOScheme -> Int -> IO String
casADi__IOScheme__describe x0 x1 =
  withMarshal x0 $ \x0' ->
  withMarshal x1 $ \x1' ->
  c_CasADi__IOScheme__describe x0' x1' >>= (newForeignPtr c_delete_std__string) >>= wrapReturn

-- classy wrapper
{-|
>Describe the index.
-}
ioScheme_describe :: IOSchemeClass a => a -> Int -> IO String
ioScheme_describe x = casADi__IOScheme__describe (castIOScheme x)


-- direct wrapper
foreign import ccall unsafe "CasADi__IOScheme__known" c_CasADi__IOScheme__known
  :: Ptr IOScheme' -> IO (Ptr CppBool')
casADi__IOScheme__known
  :: IOScheme -> IO Bool
casADi__IOScheme__known x0 =
  withMarshal x0 $ \x0' ->
  c_CasADi__IOScheme__known x0' >>= (newForeignPtr c_delete_bool) >>= wrapReturn

-- classy wrapper
{-|
>Check wether the scheme is known.
-}
ioScheme_known :: IOSchemeClass a => a -> IO Bool
ioScheme_known x = casADi__IOScheme__known (castIOScheme x)


-- direct wrapper
foreign import ccall unsafe "CasADi__IOScheme__compatibleSize" c_CasADi__IOScheme__compatibleSize
  :: Ptr IOScheme' -> CInt -> IO CInt
casADi__IOScheme__compatibleSize
  :: IOScheme -> Int -> IO Int
casADi__IOScheme__compatibleSize x0 x1 =
  withMarshal x0 $ \x0' ->
  withMarshal x1 $ \x1' ->
  c_CasADi__IOScheme__compatibleSize x0' x1' >>= wrapReturn

-- classy wrapper
{-|
>Check wether this scheme is compatible with the given size.
-}
ioScheme_compatibleSize :: IOSchemeClass a => a -> Int -> IO Int
ioScheme_compatibleSize x = casADi__IOScheme__compatibleSize (castIOScheme x)


-- direct wrapper
foreign import ccall unsafe "CasADi__IOScheme__IOScheme" c_CasADi__IOScheme__IOScheme
  :: IO (Ptr IOScheme')
casADi__IOScheme__IOScheme
  :: IO IOScheme
casADi__IOScheme__IOScheme  =
  c_CasADi__IOScheme__IOScheme  >>= (newForeignPtr c_delete_CasADi__IOScheme) >>= wrapReturn

-- classy wrapper
{-|
>>  CasADi::IOScheme::IOScheme()
>------------------------------------------------------------------------
>
>Default constructor.
>
>>  CasADi::IOScheme::IOScheme(InputOutputScheme scheme)
>------------------------------------------------------------------------
>
>Constructor with enum.
>
>>  CasADi::IOScheme::IOScheme(const std::vector< std::string > &entries)
>------------------------------------------------------------------------
>
>Constructor with entry names.
-}
ioScheme :: IO IOScheme
ioScheme = casADi__IOScheme__IOScheme


-- direct wrapper
foreign import ccall unsafe "CasADi__IOScheme__IOScheme_TIC" c_CasADi__IOScheme__IOScheme_TIC
  :: CInt -> IO (Ptr IOScheme')
casADi__IOScheme__IOScheme'
  :: InputOutputScheme -> IO IOScheme
casADi__IOScheme__IOScheme' x0 =
  withMarshal x0 $ \x0' ->
  c_CasADi__IOScheme__IOScheme_TIC x0' >>= (newForeignPtr c_delete_CasADi__IOScheme) >>= wrapReturn

-- classy wrapper
ioScheme' :: InputOutputScheme -> IO IOScheme
ioScheme' = casADi__IOScheme__IOScheme'


-- direct wrapper
foreign import ccall unsafe "CasADi__IOScheme__IOScheme_TIC_TIC" c_CasADi__IOScheme__IOScheme_TIC_TIC
  :: Ptr (CppVec (Ptr StdString')) -> IO (Ptr IOScheme')
casADi__IOScheme__IOScheme''
  :: Vector String -> IO IOScheme
casADi__IOScheme__IOScheme'' x0 =
  withMarshal (CornerCase x0) $ \x0' ->
  c_CasADi__IOScheme__IOScheme_TIC_TIC x0' >>= (newForeignPtr c_delete_CasADi__IOScheme) >>= wrapReturn

-- classy wrapper
ioScheme'' :: Vector String -> IO IOScheme
ioScheme'' = casADi__IOScheme__IOScheme''